ENH:  Added paths to find fink version of fftw on MacOSX.

--- CMake/FindFFTW.cmake
+++ CMake/FindFFTW.cmake
@@ -1,15 +1,37 @@
 IF (USE_FFTW)
-SET(FFTW_INC_SEARCHPATH
-  /usr/include
-  /usr/include/fftw
-  /usr/local/include
-  /usr/local/include/fftw
-)
 SET(FFTW_LIB_SEARCHPATH
   /usr/lib
   /usr/lib/fftw
   /usr/local/lib
   /usr/local/lib/fftw
+)
+
+FIND_LIBRARY(FFTWD_LIB fftw3 ${FFTW_LIB_SEARCHPATH}) #Double Precision Lib
+FIND_LIBRARY(FFTWF_LIB fftw3f ${FFTW_LIB_SEARCHPATH}) #Single Precision Lib
+
+IF(FFTWD_LIB)
+  SET(FFTWD_FOUND 1)
+  LINK_LIBRARIES( ${FFTWD_LIB} )
+  ADD_DEFINITIONS(-DUSE_FFTWD)
+ENDIF(FFTWD_LIB)
+
+IF(FFTWF_LIB)
+  SET(FFTWF_FOUND 1)
+  LINK_LIBRARIES( ${FFTWF_LIB} )
+  ADD_DEFINITIONS(-DUSE_FFTWF)
+ENDIF(FFTWF_LIB)
+
+IF(FFTWD_LIB AND FFTWF_LIB)
+  ADD_DEFINITIONS(-DUSE_FFTW) #Requires that both double and single precision are available
+  SET(FFTW_LIB ${FFTWD_LIB} ${FFTWF_LIB}) #For backwards compatibility
+ENDIF(FFTWD_LIB AND FFTWF_LIB)
+
+SET(FFTW_INC_SEARCHPATH
+  /sw/include
+  /usr/include
+  /usr/include/fftw
+  /usr/local/include
+  /usr/local/include/fftw
 )

 FIND_PATH(FFTW_INCLUDE_PATH fftw3.h ${FFTW_INC_SEARCHPATH})
@@ -18,25 +40,13 @@
   SET(FFTW_INCLUDE ${FFTW_INCLUDE_PATH})
 ENDIF (FFTW_INCLUDE_PATH)

-FIND_LIBRARY(FFTW_LIB_PATH fftw3 ${FFTW_LIB_SEARCHPATH})
-
-IF(FFTW_LIB_PATH)
-  SET(FFTW_LIB ${FFTW_LIB_PATH})
-ENDIF (FFTW_LIB_PATH)
-
 IF(FFTW_INCLUDE)
-  IF(FFTW_LIB)
-    SET(FFTW_FOUND 1)
-  ENDIF (FFTW_LIB)
+  INCLUDE_DIRECTORIES( ${FFTW_INCLUDE})
 ENDIF(FFTW_INCLUDE)

-IF(FFTW_FOUND)
-  INCLUDE_DIRECTORIES( ${FFTW_INCLUDE})
-  LINK_LIBRARIES( ${FFTW_LIB} )
-  ADD_DEFINITIONS(-DUSE_FFTW)
-  SET(FFTW_DIR .)
-ENDIF (FFTW_FOUND)
-
-MARK_AS_ADVANCED(FFTW_INCLUDE_PATH FFTW_LIB_PATH)
+MARK_AS_ADVANCED(FFTW_INCLUDE_PATH FFTWD_LIB FFTWF_LIB)
+OPTION(FFTW_INCLUDE_PATH "The base path of the directory that includes fftw3.h" )
+OPTION(FFTWD_LIB "The full path to the fftw3 library (including the library)" )
+OPTION(FFTWF_LIB "The full path to the fftw3f library (including the library)" )

 ENDIF (USE_FFTW)


CMake: Remove LLVM_GCC_EXECUTABLE and LLVM_GXX_EXECUTABLE

They are not used so drop them.

Signed-off-by: Pekka Enberg <add4fcd06328a394f0ad91feda7ee057316dc5ed@iki.fi>

--- CMake/FindLLVM.cmake
+++ CMake/FindLLVM.cmake
@@ -43,36 +43,6 @@
     /opt/llvm/bin
     )

-  find_program(LLVM_GCC_EXECUTABLE
-    NAMES llvm-gcc llvmgcc
-    PATHS
-    /opt/local/bin
-    /opt/llvm/2.6/bin
-    /opt/llvm/bin
-    /Developer/usr/bin
-    /usr/lib/llvm/llvm/gcc-4.2/bin
-    )
-
-  find_program(LLVM_GXX_EXECUTABLE
-    NAMES llvm-g++ llvmg++
-    PATHS
-    /opt/local/bin
-    /opt/llvm/2.6/bin
-    /opt/llvm/bin
-    /Developer/usr/bin
-    /usr/lib/llvm/llvm/gcc-4.2/bin
-    )
-
-  if(LLVM_GCC_EXECUTABLE)
-    MESSAGE(STATUS "LLVM llvm-gcc found at: ${LLVM_GCC_EXECUTABLE}")
-    #CMAKE_FORCE_C_COMPILER(${LLVM_GCC_EXECUTABLE} GNU)
-  endif(LLVM_GCC_EXECUTABLE)
-
-  if(LLVM_GXX_EXECUTABLE)
-    MESSAGE(STATUS "LLVM llvm-g++ found at: ${LLVM_GXX_EXECUTABLE}")
-    #CMAKE_FORCE_CXX_COMPILER(${LLVM_GXX_EXECUTABLE} GNU)
-  endif(LLVM_GXX_EXECUTABLE)
-
   if(LLVM_CONFIG_EXECUTABLE)
     MESSAGE(STATUS "LLVM llvm-config found at: ${LLVM_CONFIG_EXECUTABLE}")
   else(LLVM_CONFIG_EXECUTABLE)


Disable randomly failing test

Disable randomly failing test

--- Modules/PhotoacousticsLib/test/files.cmake
+++ Modules/PhotoacousticsLib/test/files.cmake
@@ -19,7 +19,7 @@
   mitkPhotoacousticTissueGeneratorTest.cpp
   mitkPhotoacousticVectorTest.cpp
   mitkPhotoacoustic3dVolumeTest.cpp
-  mitkPhotoacousticVolumeTest.cpp
+  # mitkPhotoacousticVolumeTest.cpp (See T27024)
   mitkPhotoacousticVesselTreeTest.cpp
   mitkMcxyzXmlTest.cpp
   mitkPhotoacousticComposedVolumeTest.cpp


fix: update Google Test to 1.9 (#191)

fix: update Google Test to 1.9 (#191)

Replaced downloading a Google Test 1.8 ZIP archive by using git for
getting the latest Google Test version according to the Abseil Live At Head
philosophy.

Closes #188.

--- tests/cmake/PrepareGoogleTesting.cmake
+++ tests/cmake/PrepareGoogleTesting.cmake
@@ -1,25 +1,41 @@
 include(Compiler)
 include(ExternalProject)

-# Builds at least on GCC 4.8 and Apple clang-703.0.31.
+# Builds at least on GCC 4.8 and Apple clang-703.0.31.
 function(download_google_testing)
-    set(GOOGLEMOCK_URL "https://github.com/google/googletest/archive/release-1.8.0.zip")
-    set(GOOGLEMOCK_URL_MD5 adfafc8512ab65fd3cf7955ef0100ff5)
+    set(GOOGLETEST_GIT_REPO "https://github.com/abseil/googletest.git")
+
+    if(${CMAKE_VERSION} VERSION_LESS "3.0.0")
+        set(GOOGLETEST_GIT_TAG release-1.8.0)
+    else()
+        set(GOOGLETEST_GIT_TAG "")
+    endif()
+
+    # Using a specific git tag violates the Abseil/Google Test Live At Head philosophy.
+    # https://abseil.io/about/philosophy
+    # But in case the blackhole tests fail to build, uncommenting the GIT_TAG line will
+    # use a Google Test version, which was working.

     set_directory_properties(properties EP_PREFIX "${CMAKE_BINARY_DIR}/foreign")
     ExternalProject_ADD(googlemock
-        URL ${GOOGLEMOCK_URL}
-        URL_MD5 ${GOOGLEMOCK_URL_MD5}
+        GIT_REPOSITORY ${GOOGLETEST_GIT_REPO}
+        GIT_TAG  ${GOOGLETEST_GIT_TAG}
         SOURCE_DIR "${CMAKE_BINARY_DIR}/foreign/googlemock"
         CMAKE_ARGS "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}" "-DCMAKE_CXX_FLAGS=-fPIC"
         INSTALL_COMMAND "")
     ExternalProject_GET_PROPERTY(googlemock SOURCE_DIR)
     ExternalProject_GET_PROPERTY(googlemock BINARY_DIR)

-    set(GOOGLETEST_INCLUDE_DIR ${SOURCE_DIR}/googletest/include PARENT_SCOPE)
+    set(GOOGLETEST_INCLUDE_DIR ${SOURCE_DIR}/googletest/include PARENT_SCOPE)
     set(GOOGLEMOCK_INCLUDE_DIR ${SOURCE_DIR}/googlemock/include PARENT_SCOPE)
-    set(GOOGLETEST_BINARY_DIR ${BINARY_DIR}/googlemock/gtest PARENT_SCOPE)
-    set(GOOGLEMOCK_BINARY_DIR ${BINARY_DIR}/googlemock PARENT_SCOPE)
+
+    if(${CMAKE_VERSION} VERSION_LESS "3.0.0")
+        set(GOOGLETEST_BINARY_DIR ${BINARY_DIR}/googlemock/gtest PARENT_SCOPE)
+        set(GOOGLEMOCK_BINARY_DIR ${BINARY_DIR}/googlemock PARENT_SCOPE)
+	  else()
+        set(GOOGLETEST_BINARY_DIR "")
+        set(GOOGLEMOCK_BINARY_DIR ${BINARY_DIR}/lib PARENT_SCOPE)
+		endif()
 endfunction()

 function(prepare_google_testing)


[c++] Only use /permissive- on VC++ 2017 and later

The original condition (`NOT (MSVC_VERSION LESS 1900)`) was triggering
for Visual C++ 2015 as well.

* Visual C++ 2015 has a `MSVC_VERSION` of 1900.
* Visual C++ 2017 has a `MSVC_VERSION` of 1910.

The original error was not caught, as it was causing the _command line
warning_ "Command line warning D9002 : ignoring unknown option
'/permissive-'" to be emitted. The CI builds don't fail on these sort of
warnings. (The cl.exe switch `/WX` does not turn this warning into a
non-zero exit code.)

--- cmake/Config.cmake
+++ cmake/Config.cmake
@@ -42,7 +42,7 @@
     # Our minimum required version of CMake doesn't have GREATER_EQUAL, so
     # we invert a less-than comparison instead. CMake 3.7 added
     # GREATER_EQUAL.
-    if (NOT (MSVC_VERSION LESS 1900))
+    if (NOT (MSVC_VERSION LESS 1910))
       add_compile_options (/permissive-)
     endif()


Minor refactoring of our cmake/common.cmake file.

--- cmake/common.cmake
+++ cmake/common.cmake
@@ -318,10 +318,12 @@
         ADD_DEFINITIONS(-D${DEFINITION})
     ENDFOREACH()

-    # Make sure that the plugin refers to our embedded version of itself and
-    # to other plugins on which it depends
-
+    # A few Mac OS X specific things
+
     IF(APPLE)
+        # Make sure that the plugin refers to our embedded version of itself
+        # and to other plugins on which it depends
+
         ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD
                            COMMAND install_name_tool -id @executable_path/../PlugIns/${MAIN_PROJECT_NAME}/${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX}
                                                          ${MAC_OS_X_PROJECT_BINARY_DIR}/Contents/PlugIns/${MAIN_PROJECT_NAME}/${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
@@ -332,12 +334,10 @@
                                                                  @executable_path/../PlugIns/${MAIN_PROJECT_NAME}/${CMAKE_SHARED_LIBRARY_PREFIX}${OPENCOR_DEPENDENCY}${CMAKE_SHARED_LIBRARY_SUFFIX}
                                                                  ${MAC_OS_X_PROJECT_BINARY_DIR}/Contents/PlugIns/${MAIN_PROJECT_NAME}/${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
         ENDFOREACH()
-    ENDIF()
-
-    # Make sure that the plugin refers to our embedded version of the Qt
-    # libraries on which it depends
-
-    IF(APPLE)
+
+        # Make sure that the plugin refers to our embedded version of the Qt
+        # libraries on which it depends
+
         FOREACH(QT_DEPENDENCY ${QT_DEPENDENCIES})
             ADD_CUSTOM_COMMAND(TARGET ${PROJECT_NAME} POST_BUILD
                                COMMAND install_name_tool -change ${QT_LIBRARY_DIR}/${QT_DEPENDENCY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_DEPENDENCY}


Fix LuaJIT compilation with Xcode

Fix LuaJIT compilation with Xcode

Add missing -isysroot flag for LuaJIT on macOS.

Fixes #2091

--- cmake/luajit.cmake
+++ cmake/luajit.cmake
@@ -127,6 +127,7 @@

 macro(luajit_build)
     set (luajit_cc ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
+    set (luajit_hostcc ${CMAKE_HOST_C_COMPILER})
     # Cmake rules concerning strings and lists of strings are weird.
     #   set (foo "1 2 3") defines a string, while
     #   set (foo 1 2 3) defines a list.
@@ -176,6 +177,7 @@
         if (NOT "${CMAKE_OSX_SYSROOT}" STREQUAL "")
             set (luajit_cflags ${luajit_cflags} ${CMAKE_C_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT})
             set (luajit_ldflags ${luajit_ldlags} ${CMAKE_C_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT})
+            set (luajit_hostcc ${luajit_hostcc} ${CMAKE_C_SYSROOT_FLAG} ${CMAKE_OSX_SYSROOT})
         endif()
         # Pass deployment target
         if ("${CMAKE_OSX_DEPLOYMENT_TARGET}" STREQUAL "")
@@ -203,7 +205,7 @@
     endif()
     set (luajit_buildoptions
         BUILDMODE=static
-        HOST_CC="${CMAKE_HOST_C_COMPILER}"
+        HOST_CC="${luajit_hostcc}"
         TARGET_CC="${luajit_cc}"
         TARGET_CFLAGS="${luajit_cflags}"
         TARGET_LDFLAGS="${luajit_ldflags}"


Revert "Remove support for crosscompilation in luajit.cmake"

This reverts commit 3010b98b59fca1fd2a7b41bf11e2cb787ad36ac5.

--- cmake/luajit.cmake
+++ cmake/luajit.cmake
@@ -129,7 +129,6 @@
 message (STATUS "Use LuaJIT library: ${LUAJIT_LIB}")

 macro(luajit_build)
-    set (luajit_cc ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
     # Cmake rules concerning strings and lists of strings are weird.
     #   set (foo "1 2 3") defines a string, while
     #   set (foo 1 2 3) defines a list.
@@ -170,14 +169,30 @@
         set (luajit_xcflags ${luajit_xcflags}
             -DLUAJIT_USE_VALGRIND -DLUAJIT_USE_SYSMALLOC)
     endif()
+    set (luajit_target_cc ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
+    if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})
+        # Regular mode - use CMake compiler for building host utils.
+        set (luajit_host_cc ${CMAKE_C_COMPILER} ${CMAKE_C_COMPILER_ARG1})
+    else()
+        # Crosscompile mode - use a host CC compiler for building host utils.
+        # Since CMake does not support cross compilation properly
+        # we have to use system CC here.
+        set (luajit_host_cc "cc")
+    endif()
+    if (${CMAKE_HOST_SYSTEM_PROCESSOR} STREQUAL "x86_64" AND
+            ${CMAKE_SIZEOF_VOID_P} EQUAL 4)
+        # The host compiler must have same pointer size as the target compiler.
+        set (luajit_host_cc "${luajit_host_cc} -m32")
+    endif()
     set (luajit_buildoptions
         BUILDMODE=static
-        CC="${luajit_cc}"
+        CC="${luajit_host_cc}"
         CFLAGS="${luajit_cflags}"
         LDFLAGS="${luajit_ldflags}"
         CCOPT="${luajit_ccopt}"
         CCDEBUG="${luajit_ccdebug}"
         XCFLAGS="${luajit_xcflags}"
+        TARGET_CC="${luajit_target_cc}"
         Q='')
     if (${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
         add_custom_command(OUTPUT ${PROJECT_BINARY_DIR}/third_party/luajit/src/libluajit.a


cmake: ensure numpy >= 1.19 is available for gcc >= 10

--- cmake/f2py.cmake
+++ cmake/f2py.cmake
@@ -1,10 +1,18 @@
 # f2py
 if(CMAKE_VERSION VERSION_LESS 3.17)
+  message(WARNING "CMake >= 3.17 required for f2py")
   return()
 endif()

-find_package(Python3 COMPONENTS Interpreter)
+find_package(Python3 COMPONENTS Interpreter NumPy)
 if(NOT Python3_FOUND)
+  return()
+endif()
+
+if(CMAKE_Fortran_COMPILER_ID STREQUAL GNU AND
+  CMAKE_Fortran_COMPILER_VERSION VERSION_GREATER_EQUAL 10 AND
+  Python3_NumPy_VERSION VERSION_LESS 1.19)
+  message(WARNING "Numpy >= 1.19 required for GCC >= 10")
   return()
 endif()


Make variables in zlib.cmake uppercase

Make variables in zlib.cmake uppercase

--- cmake/zlib.cmake
+++ cmake/zlib.cmake
@@ -7,44 +7,44 @@
 else()
   include(ExternalProject)
   # An external project for zlib
-  set(zlib_source  "${CMAKE_CURRENT_BINARY_DIR}/zlib-src")
-  set(zlib_build   "${CMAKE_CURRENT_BINARY_DIR}/zlib")
-  set(zlib_install "${CMAKE_CURRENT_BINARY_DIR}/prefix")
-  set(zlib_file "http://zlib.net/fossils/zlib-1.2.8.tar.gz")
-  set(zlib_md5 "44d667c142d7cda120332623eab69f40")
+  set(ZLIB_SOURCE  "${CMAKE_CURRENT_BINARY_DIR}/zlib-src")
+  set(ZLIB_BUILD   "${CMAKE_CURRENT_BINARY_DIR}/zlib")
+  set(ZLIB_INSTALL "${CMAKE_CURRENT_BINARY_DIR}/prefix")
+  set(ZLIB_FILE "http://zlib.net/fossils/zlib-1.2.8.tar.gz")
+  set(ZLIB_MD5 "44d667c142d7cda120332623eab69f40")

   if(CMAKE_CFG_INTDIR STREQUAL ".")
-    set(zlib_build_type ${CMAKE_BUILD_TYPE})
+    set(ZLIB_BUILD_TYPE ${CMAKE_BUILD_TYPE})
   else()
-    set(zlib_build_type ${CMAKE_CFG_INTDIR})
+    set(ZLIB_BUILD_TYPE ${CMAKE_CFG_INTDIR})
   endif()

   ExternalProject_Add(
       zlib
       DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}
-      SOURCE_DIR ${zlib_source}
-      BINARY_DIR ${zlib_build}
-      INSTALL_DIR ${zlib_install}
-      URL ${zlib_file}
-      URL_MD5 ${zlib_md5}
+      SOURCE_DIR ${ZLIB_SOURCE}
+      BINARY_DIR ${ZLIB_BUILD}
+      INSTALL_DIR ${ZLIB_INSTALL}
+      URL ${ZLIB_FILE}
+      URL_MD5 ${ZLIB_MD5}
       PATCH_COMMAND ${CMAKE_COMMAND} -E remove "<SOURCE_DIR>/zconf.h"
       CMAKE_CACHE_ARGS
       -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
       -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS}
-      -DCMAKE_BUILD_TYPE:STRING=${zlib_build_type}
-      ${zlib_EXTRA_ARGS}
+      -DCMAKE_BUILD_TYPE:STRING=${ZLIB_BUILD_TYPE}
+      ${ZLIB_EXTRA_ARGS}
       CMAKE_ARGS
       -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
   )

-  set(ZLIB_INCLUDE_DIRS "${zlib_install}/include/")
+  set(ZLIB_INCLUDE_DIRS "${ZLIB_INSTALL}/include/")
   set(ZLIB_INCLUDES "${ZLIB_INCLUDE_DIRS}/zconf.h" "${ZLIB_INCLUDE_DIRS}/zlib.h")

   if(MSVC)
-    set(ZLIB_LIBRARIES "${zlib_install}/lib/zlibstatic$<$<CONFIG:Debug>:d>.lib")
+    set(ZLIB_LIBRARIES "${ZLIB_INSTALL}/lib/zlibstatic$<$<CONFIG:Debug>:d>.lib")
   endif()
   if(UNIX)
-    set(ZLIB_LIBRARIES "${zlib_install}/lib/libz.a")
+    set(ZLIB_LIBRARIES "${ZLIB_INSTALL}/lib/libz.a")
   endif()
 endif()


Split off 8.0.58

Split off 8.0.58

Signed-off-by: Richard Chapman <5900d56196fe29dba8e3ae556d57eae28e9f0195@hpccsystems.com>

--- version.cmake
+++ version.cmake
@@ -5,7 +5,7 @@
 set ( HPCC_PROJECT "nagios-monitoring" )
 set ( HPCC_MAJOR 8 )
 set ( HPCC_MINOR 0 )
-set ( HPCC_POINT 57 )
+set ( HPCC_POINT 59 )
 set ( HPCC_MATURITY "closedown" )
 set ( HPCC_SEQUENCE 0 )
 ###


Split off 8.6.34

Split off 8.6.34

Signed-off-by: Richard Chapman <5900d56196fe29dba8e3ae556d57eae28e9f0195@hpccsystems.com>

--- version.cmake
+++ version.cmake
@@ -5,7 +5,7 @@
 set ( HPCC_PROJECT "nagios-monitoring" )
 set ( HPCC_MAJOR 8 )
 set ( HPCC_MINOR 6 )
-set ( HPCC_POINT 33 )
+set ( HPCC_POINT 35 )
 set ( HPCC_MATURITY "closedown" )
 set ( HPCC_SEQUENCE 0 )
 ###


Graph Control 4.0.0-rc10 Release Candidate 10

Signed-off-by: Richard Chapman <5900d56196fe29dba8e3ae556d57eae28e9f0195@hpccsystems.com>

--- version.cmake
+++ version.cmake
@@ -6,7 +6,7 @@
 set ( HPCC_MINOR 0 )
 set ( HPCC_POINT 0 )
 set ( HPCC_MATURITY "rc" )
-set ( HPCC_SEQUENCE 9 )
+set ( HPCC_SEQUENCE 10 )
 ###
 IF ( ${HPCC_POINT} GREATER 65 )
   error ( "HPCC_POINT must be less than 66." )


Split off 7.10.20

Split off 7.10.20

Signed-off-by: Richard Chapman <5900d56196fe29dba8e3ae556d57eae28e9f0195@hpccsystems.com>

--- version.cmake
+++ version.cmake
@@ -5,7 +5,7 @@
 set ( HPCC_PROJECT "nagios-monitoring" )
 set ( HPCC_MAJOR 7 )
 set ( HPCC_MINOR 10 )
-set ( HPCC_POINT 19 )
+set ( HPCC_POINT 21 )
 set ( HPCC_MATURITY "closedown" )
 set ( HPCC_SEQUENCE 0 )
 ###


Bump version to 0.15.0

Bump version to 0.15.0

--- version.cmake
+++ version.cmake
@@ -14,6 +14,6 @@
 # limitations under the License.

 set(TCAM_VERSION_MAJOR 0)
-set(TCAM_VERSION_MINOR 14)
+set(TCAM_VERSION_MINOR 15)
 set(TCAM_VERSION_PATCH 0)
 set(TCAM_VERSION_MODIFIER "")


Split off 8.2.16

Split off 8.2.16

Signed-off-by: Gavin Halliday <2edfa8aca9fb78974188e5b35be8b52d4e4967ae@lexisnexis.com>

--- version.cmake
+++ version.cmake
@@ -5,7 +5,7 @@
 set ( HPCC_PROJECT "nagios-monitoring" )
 set ( HPCC_MAJOR 8 )
 set ( HPCC_MINOR 2 )
-set ( HPCC_POINT 15 )
+set ( HPCC_POINT 17 )
 set ( HPCC_MATURITY "closedown" )
 set ( HPCC_SEQUENCE 0 )
 ###


GraphControl 3.10.4-5rc Release Candidate 5

Signed-off-by: Richard Chapman <5900d56196fe29dba8e3ae556d57eae28e9f0195@hpccsystems.com>

--- version.cmake
+++ version.cmake
@@ -6,7 +6,7 @@
 set ( HPCC_MINOR 10 )
 set ( HPCC_POINT 4 )
 set ( HPCC_MATURITY "rc" )
-set ( HPCC_SEQUENCE 4 )
+set ( HPCC_SEQUENCE 5 )
 ###
 IF ( ${HPCC_POINT} GREATER 65 )
   error ( "HPCC_POINT must be less than 66." )


Split off 8.6.54

Split off 8.6.54

Signed-off-by: Richard Chapman <5900d56196fe29dba8e3ae556d57eae28e9f0195@hpccsystems.com>

--- version.cmake
+++ version.cmake
@@ -5,7 +5,7 @@
 set ( HPCC_PROJECT "nagios-monitoring" )
 set ( HPCC_MAJOR 8 )
 set ( HPCC_MINOR 6 )
-set ( HPCC_POINT 53 )
+set ( HPCC_POINT 55 )
 set ( HPCC_MATURITY "closedown" )
 set ( HPCC_SEQUENCE 0 )
 ###


[cmake] Remove duplicate command line options from build

CMAKE_CXX_FLAGS was added twice to the command line. This causes the command
line options to be doubled which works until it doesn't as not all options
can be specified twice.

For example,

clang-cl foo.c /GS- /GS- -mllvm -small-loop-cost=1 -mllvm -small-loop-cost=1
clang (LLVM option parsing): for the -small-loop-cost option: may only occur zero or one times!

git-svn-id: c199f293c43da69278bea8e88f92242bf3aa95f7@329817 91177308-0d34-0410-b5e6-96231b3b80d8

--- cmake/Modules/AddCompilerRT.cmake
+++ cmake/Modules/AddCompilerRT.cmake
@@ -63,8 +63,8 @@
       list(REMOVE_ITEM target_flags "-msse3")
     endif()

-    set_target_compile_flags(${libname}
-      ${CMAKE_CXX_FLAGS} ${extra_cflags_${libname}} ${target_flags})
+    set_target_compile_flags(${libname} ${extra_cflags_${libname}} ${target_flags})
+
     set_property(TARGET ${libname} APPEND PROPERTY
       COMPILE_DEFINITIONS ${LIB_DEFS})
     set_target_properties(${libname} PROPERTIES FOLDER "Compiler-RT Libraries")


Be more specific on what is a header file to be moved and installed (#528)

--- cmake/modules/RootNewMacros.cmake
+++ cmake/modules/RootNewMacros.cmake
@@ -777,7 +777,8 @@
     ROOT_GLOB_FILES(include_files
       RECURSE
       RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${d}
-      FILTER ${filter} ${d}/*)
+      FILTER ${filter}
+      ${d}/*.h ${d}/*.hxx ${d}/*.icc )
     foreach (include_file ${include_files})
       set (src ${CMAKE_CURRENT_SOURCE_DIR}/${d}/${include_file})
       set (dst ${CMAKE_BINARY_DIR}/include/${include_file})


On windows, in debug mode, install also the .pdb files

--- cmake/modules/RootNewMacros.cmake
+++ cmake/modules/RootNewMacros.cmake
@@ -520,6 +520,16 @@
     else()
       install(TARGETS ${executable} EXPORT ${CMAKE_PROJECT_NAME}Exports RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT applications)
     endif()
+    if(WIN32 AND CMAKE_GENERATOR MATCHES "Visual Studio")
+      install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${executable}.pdb
+              CONFIGURATIONS Debug
+              DESTINATION ${CMAKE_INSTALL_BINDIR}
+              COMPONENT applications)
+      install(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${executable}.pdb
+              CONFIGURATIONS RelWithDebInfo
+              DESTINATION ${CMAKE_INSTALL_BINDIR}
+              COMPONENT applications)
+    endif()
   endif()
 endfunction()


Add run-clang-tidy as possible binary name.

From ubuntu 20 with clang-tidy >10.0, what used to be a python script is
now hidden behind an executable.

--- source/cmake_modules/EnableClangTidy.cmake
+++ source/cmake_modules/EnableClangTidy.cmake
@@ -21,7 +21,7 @@
 find_program(CLANG_TIDY_BIN ${CLANG_TIDY_BINARY_NAME})

 set(RUN_CLANG_TIDY_BINARY_NAME
-    NAMES run-clang-tidy.py run-clang-tidy-6.0.py)
+    NAMES run-clang-tidy run-clang-tidy.py run-clang-tidy-6.0.py)
 find_program(RUN_CLANG_TIDY_BIN ${RUN_CLANG_TIDY_BINARY_NAME})

 if( NOT CLANG_TIDY_BIN STREQUAL "CLANG_TIDY_BIN-NOTFOUND"


cache for travis

cache for travis

--- cmake/Modules/SetupBoost.cmake
+++ cmake/Modules/SetupBoost.cmake
@@ -144,7 +144,7 @@

 INCLUDE(ProcessorCount)
 ProcessorCount(CPUS)
-LIST(APPEND B2ARGS "-j${CPUS}")
+# LIST(APPEND B2ARGS "-j${CPUS}")
 IF (BOOST_CXX_FLAGS)
     LIST(APPEND B2ARGS "${BOOST_CXX_FLAGS}")
 ENDIF (BOOST_CXX_FLAGS)


hopefully, correctly applied modified patch #2034 that handles Windows case

--- cmake/OpenCVDetectPython.cmake
+++ cmake/OpenCVDetectPython.cmake
@@ -95,19 +95,23 @@
   endif(NOT ANDROID AND NOT IOS)

   if(BUILD_DOCS)
-    # look for Sphinx
-    execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sphinx; print sphinx.__version__"
-                    RESULT_VARIABLE SPHINX_PROCESS
-                    OUTPUT_VARIABLE SPHINX_VERSION
-                    OUTPUT_STRIP_TRAILING_WHITESPACE)
-
-
-    if(SPHINX_PROCESS EQUAL 0)
-      find_host_program(SPHINX_BUILD sphinx-build)
-      if(SPHINX_BUILD)
-        set(HAVE_SPHINX 1)
-        message(STATUS "Found Sphinx ${SPHINX_VERSION}: ${SPHINX_BUILD}")
-      endif()
+    find_host_program(SPHINX_BUILD sphinx-build)
+    if(SPHINX_BUILD)
+        if(UNIX)
+            execute_process(COMMAND sh -c "${SPHINX_BUILD} -_ 2>&1 | sed -ne 1p"
+                             RESULT_VARIABLE SPHINX_PROCESS
+                             OUTPUT_VARIABLE SPHINX_VERSION
+                             OUTPUT_STRIP_TRAILING_WHITESPACE)
+        else()
+            execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "import sphinx; print sphinx.__version__"
+                            RESULT_VARIABLE SPHINX_PROCESS
+                            OUTPUT_VARIABLE SPHINX_VERSION
+                            OUTPUT_STRIP_TRAILING_WHITESPACE)
+        endif()
+        if(SPHINX_PROCESS EQUAL 0)
+          set(HAVE_SPHINX 1)
+          message(STATUS "Found Sphinx ${SPHINX_VERSION}: ${SPHINX_BUILD}")
+        endif()
     endif()
   endif(BUILD_DOCS)
 endif(PYTHON_EXECUTABLE)


Correctly include LLVM_EXTERNAL_CLANG_SOURCE_DIR.

Reviewers: sas, ovyalov

Subscribers: lldb-commits

Differential Revision: http://reviews.llvm.org/D14166

git-svn-id: 4c4cc70b1ef44ba2b7963015e681894188cea27e@251589 91177308-0d34-0410-b5e6-96231b3b80d8

--- cmake/modules/LLDBConfig.cmake
+++ cmake/modules/LLDBConfig.cmake
@@ -194,7 +194,11 @@
   add_definitions( -DLLDB_DISABLE_PYTHON )
 endif()

-include_directories(${CMAKE_SOURCE_DIR}/tools/clang/include)
+if (LLVM_EXTERNAL_CLANG_SOURCE_DIR)
+  include_directories(${LLVM_EXTERNAL_CLANG_SOURCE_DIR}/include)
+else ()
+  include_directories(${CMAKE_SOURCE_DIR}/tools/clang/include)
+endif ()
 include_directories("${CMAKE_CURRENT_BINARY_DIR}/../clang/include")

 # Disable GCC warnings


Revert "Fix NO_CXXMODULE handling logic for dependencies"

It broke C++17 build of ROOT with:
In module 'std' imported from input_line_1:1:
/usr/lib/gcc/x86_64-pc-linux-gnu/10.1.0/../../../../include/c++/10.1.0/bits/unique_ptr.h:207:12: error: 'std::__uniq_ptr_data<RooDataSet, std::default_delete<RooDataSet>, true, true>' has different definitions
      in different modules; defined here
    struct __uniq_ptr_data : __uniq_ptr_impl<_Tp, _Dp>
           ^
/usr/lib/gcc/x86_64-pc-linux-gnu/10.1.0/../../../../include/c++/10.1.0/bits/unique_ptr.h:207:12: note: definition in module 'std.condition_variable' is here
Error: /home/stefan/builds/root-dev/bin/rootcling: compilation failure (/home/stefan/builds/root-dev/lib/libRooStats03cff1ce95_dictUmbrella.h)
make[2]: *** [roofit/roostats/CMakeFiles/G__RooStats.dir/build.make:222: roofit/roostats/G__RooStats.cxx] Error 1

--- cmake/modules/RootMacros.cmake
+++ cmake/modules/RootMacros.cmake
@@ -562,15 +562,11 @@
   #---Get the library and module dependencies-----------------
   if(ARG_DEPENDENCIES)
     foreach(dep ${ARG_DEPENDENCIES})
-      set(dict "G__${dep}")
-      set(dependent_pcm ${libprefix}${dep}_rdict.pcm})
-      if(runtime_cxxmodules)
-        #---Check for NO_CXXMODULE flag in a dependent module---
-        set(dependent_pcm "$<IF:$<BOOL:$<TARGET_PROPERTY:${dict},NO_MODULE>>,,-m ${dep}.pcm>")
-        set(newargs ${newargs} ${dependent_pcm})
-      else()
-        set(newargs ${newargs} -m ${dependent_pcm})
-      endif()
+      set(dependent_pcm ${libprefix}${dep}_rdict.pcm)
+      if (runtime_cxxmodules)
+        set(dependent_pcm ${dep}.pcm)
+      endif()
+      set(newargs ${newargs} -m  ${dependent_pcm})
     endforeach()
   endif()

@@ -651,7 +647,7 @@
   # would not happen if we used target_sources() directly with the dictionary source.
   if(TARGET "${ARG_MODULE}" AND NOT "${ARG_MODULE}" STREQUAL "${dictionary}")
     add_library(${dictionary} OBJECT ${dictionary}.cxx)
-    set_target_properties(${dictionary} PROPERTIES POSITION_INDEPENDENT_CODE TRUE NO_MODULE ${ARG_NO_CXXMODULE})
+    set_target_properties(${dictionary} PROPERTIES POSITION_INDEPENDENT_CODE TRUE)
     target_sources(${ARG_MODULE} PRIVATE $<TARGET_OBJECTS:${dictionary}>)

     target_compile_options(${dictionary} PRIVATE


Update RootMacros.cmake

Update RootMacros.cmake

Allow dictionary files to be created in subdirectories. This was working earlier and is broken now. As there is no way to define othe output directory, providing the dictionary with path is the only way to achieve that.

--- cmake/modules/RootMacros.cmake
+++ cmake/modules/RootMacros.cmake
@@ -659,6 +659,7 @@
     target_include_directories(${dictionary} PRIVATE
       ${incdirs} $<TARGET_PROPERTY:${ARG_MODULE},INCLUDE_DIRECTORIES>)
   else()
+    get_filename_component(dictionary_name ${dictionary} NAME)
     add_custom_target(${dictionary} DEPENDS ${dictionary}.cxx ${pcm_name} ${rootmap_name} ${cpp_module_file})
   endif()


Ensure OGRE_USE_BOOST is 0 by default (thanks dermont)

--- CMake/ConfigureBuild.cmake
+++ CMake/ConfigureBuild.cmake
@@ -36,6 +36,7 @@
 set(OGRE_SET_DISABLE_DDS 0)
 set(OGRE_SET_NEW_COMPILERS 0)
 set(OGRE_STATIC_LIB 0)
+set(OGRE_USE_BOOST 0)
 if (OGRE_CONFIG_DOUBLE)
   set(OGRE_SET_DOUBLE 1)
 endif()


Fix FindMKL script for GNU OpenMP threading layer

--- CMakeModules/FindMKL.cmake
+++ CMakeModules/FindMKL.cmake
@@ -218,7 +218,11 @@
 elseif(MKL_THREAD_LAYER STREQUAL "GNU OpenMP")
   find_package(OpenMP REQUIRED)
   find_mkl_library(NAME ThreadLayer LIBRARY_NAME mkl_gnu_thread)
-  set(MKL::ThreadingLibrary OpenMP::OpenMP_CXX CACHE STRING "The OpenMP Threading Library")
+  add_library(MKL::ThreadingLibrary SHARED IMPORTED)
+  set_target_properties(MKL::ThreadingLibrary
+    PROPERTIES
+      IMPORTED_LOCATION "${OpenMP_gomp_LIBRARY}"
+      INTERFACE_LINK_LIBRARIES OpenMP::OpenMP_CXX)
 elseif(MKL_THREAD_LAYER STREQUAL "TBB")
   find_mkl_library(NAME ThreadLayer LIBRARY_NAME mkl_tbb_thread)
   find_mkl_library(NAME ThreadingLibrary LIBRARY_NAME tbb)


Increment version to v3.4.2

Increment version to v3.4.2

--- CMakeModules/Version.cmake
+++ CMakeModules/Version.cmake
@@ -10,7 +10,7 @@

 SET(AF_VERSION_MAJOR "3")
 SET(AF_VERSION_MINOR "4")
-SET(AF_VERSION_PATCH "1")
+SET(AF_VERSION_PATCH "2")

 SET(AF_VERSION "${AF_VERSION_MAJOR}.${AF_VERSION_MINOR}.${AF_VERSION_PATCH}")
 SET(AF_API_VERSION_CURRENT ${AF_VERSION_MAJOR}${AF_VERSION_MINOR})


fix BOB var to point to ZAZU var

fix BOB var to point to ZAZU var

(hotfix/0.5.1)

--- zazu/cmake/arm32-linux-gnueabihf.cmake
+++ zazu/cmake/arm32-linux-gnueabihf.cmake
@@ -4,7 +4,7 @@
 SET( CMAKE_CROSSCOMPILING TRUE )

 # Set toolchain path
-SET(ROOTPATH    ${BOB_TOOL_PATH}/gcc-linaro-arm-linux-gnueabihf/4.9/arm-linux-gnueabihf)
+SET(ROOTPATH    ${ZAZU_TOOL_PATH}/gcc-linaro-arm-linux-gnueabihf/4.9/arm-linux-gnueabihf)

 SET(CROSSFIX        arm-linux-gnueabihf-)


Comments clean-up

Comments clean-up

***NO_CI***

--- CMake/binutils.ESP32.cmake
+++ CMake/binutils.ESP32.cmake
@@ -668,7 +668,7 @@

     # set variables to mirror SDK CONFIG options

-    # need to read the supplied SDK CONFIG file and replace the appropriate options
+    # need to read the supplied SDK CONFIG file
     file(READ
         ${CMAKE_SOURCE_DIR}/sdkconfig
         SDKCONFIG_DEFAULT_CONTENTS)
@@ -704,7 +704,7 @@
     # set variable
     if(${CONFIG_BT_ENABLED_POS} GREATER -1)
         set(BLE_INFO ", support for BLE")
-    endif()
+    endif()

 endmacro()


Fix download error for dcmtk

Fix download error for dcmtk

Typo

--- CMakeExternals/DCMTK.cmake
+++ CMakeExternals/DCMTK.cmake
@@ -28,7 +28,7 @@

     ExternalProject_Add(${proj}
       LIST_SEPARATOR ${sep}
-      URL ${MITK_THIRDPARY_DOWNLOAD_PREFIX_URL}/dcmtk-3.6.2.tar.gz
+      URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/dcmtk-3.6.2.tar.gz
       URL_MD5 d219a4152772985191c9b89d75302d12
       CMAKE_GENERATOR ${gen}
       CMAKE_ARGS


Support multiple project libraries in flagpoll config file.

--- CMakeSupport/Support.cmake
+++ CMakeSupport/Support.cmake
@@ -54,6 +54,20 @@

 #
+# _listMemberAppend
+#
+# For each list element in _inList, prepend _prefix and
+# append _suffix, and store the result in _outList. This macro
+# does not modify _inList.
+#
+macro( _listMemberAppend _inList _outList _prefix _suffix )
+    foreach( _item ${${_inList}} )
+        list( APPEND ${_outList} ${_prefix}${_item}${_suffix} )
+    endforeach()
+endmacro()
+
+
+#
 # _projectName
 #
 # Sets the project name and creates an uppercase variant.
@@ -404,14 +418,25 @@
 # each for storing in _fpcLibraries. Right now, this works
 # if there is only one library.
 macro( _flagpoll )
+    set( _libPrefix )
+    set( _libSuffix )
     if( WIN32 )
-        set( _fpcLibraries "/libpath:${CMAKE_INSTALL_FULL_LIBDIR} ${_projectLibraries}.lib" )
+        set( _libSuffix ".lib" )
+        set( _fpcLibraries "/libpath:${CMAKE_INSTALL_FULL_LIBDIR} " )
         set( _fpcIncludes "/I${CMAKE_INSTALL_FULL_INCLUDEDIR}" )
     else()
-        set( _fpcLibraries "-L${CMAKE_INSTALL_FULL_LIBDIR} -l${_projectLibraries}" )
+        set( _libPrefix "-l" )
+        set( _fpcLibraries "-L${CMAKE_INSTALL_FULL_LIBDIR} " )
         set( _fpcIncludes "-I${CMAKE_INSTALL_FULL_INCLUDEDIR}" )
     endif()

+    # Apply prefix and suffix to libraries, convert the lib list
+    # to a space separated string, and append to _fpxLibraries.
+    _listMemberAppend( _projectLibraries _appended "${_libPrefix}" "${_libSuffix}" )
+    string( REPLACE ";" " " _outString "${_appended}" )
+    set( _fpcLibraries "${_fpcLibraries}${_outString}" )
+
+    # Expects _fpcLibraries and _fpxIncludes.
     configure_file( ${_supportDir}/fpc.in
         "${PROJECT_BINARY_DIR}/lib/flagpoll/${CMAKE_PROJECT_NAME}.fpc" @ONLY )


fixed a bug in treecore CMake finder module

--- cmake/FindTreeCore.cmake
+++ cmake/FindTreeCore.cmake
@@ -132,4 +132,4 @@
     target_link_libraries(${target_name} treecore_test_framework)
     target_use_treecore(${target_name})
     add_test(NAME ${target_name} COMMAND ${target_name})
-endfunction
+endfunction()


Update ctest_script.cmake

Update ctest_script.cmake

--- cmake/ctest_script.cmake
+++ cmake/ctest_script.cmake
@@ -268,7 +268,7 @@
   if(NOT DEFINED CTEST_COVERAGE_COMMAND)
     find_program(CTEST_COVERAGE_COMMAND NAMES gcov)
   endif()
-    set(CTEST_CUSTOM_COVERAGE_EXCLUDE "${CTEST_SOURCE_DIRECTORY}/external/")
+  set(CTEST_CUSTOM_COVERAGE_EXCLUDE "${CTEST_SOURCE_DIRECTORY}/external/")
   set(ENV{CXXFLAGS} "$ENV{CXXFLAGS} -g -O0 --coverage -fprofile-arcs -ftest-coverage")
   set(ENV{CFLAGS} "$ENV{CFLAGS} -g -O0 --coverage -fprofile-arcs -ftest-coverage")
 endif()
@@ -462,9 +462,9 @@
   get_filename_component(cxxnamewe "${CXXNAME}" NAME_WE)
   set(CTEST_BUILD_NAME "${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR} ${CTEST_CMAKE_GENERATOR}-${CTEST_CONFIGURATION_TYPE}-${cxxnamewe}${smHead}")
 endif()
-  STRING(REPLACE " " "_" CTEST_BUILD_NAME "${CTEST_BUILD_NAME}")
-  message("NAME: ${CTEST_BUILD_NAME}")
-
+STRING(REPLACE " " "_" CTEST_BUILD_NAME "${CTEST_BUILD_NAME}")
+message("NAME: ${CTEST_BUILD_NAME}")
+
 if(NOT CTEST_BUILD_JOBS)
   include(ProcessorCount)
   ProcessorCount(NPROC)
@@ -494,10 +494,10 @@

 macro(get_git_status res)
   if(EXISTS "${CTEST_SOURCE_DIRECTORY}/.git" )
-#    execute_process(COMMAND ${CTEST_UPDATE_COMMAND} rev-parse --verify HEAD
-#      WORKING_DIRECTORY ${CTEST_SOURCE_DIRECTORY}
-#      OUTPUT_STRIP_TRAILING_WHITESPACE
-#      OUTPUT_VARIABLE gitHash)
+    #    execute_process(COMMAND ${CTEST_UPDATE_COMMAND} rev-parse --verify HEAD
+    #      WORKING_DIRECTORY ${CTEST_SOURCE_DIRECTORY}
+    #      OUTPUT_STRIP_TRAILING_WHITESPACE
+    #      OUTPUT_VARIABLE gitHash)
     execute_process(COMMAND ${CTEST_UPDATE_COMMAND} log -1
       WORKING_DIRECTORY ${CTEST_SOURCE_DIRECTORY}
       OUTPUT_STRIP_TRAILING_WHITESPACE
@@ -592,15 +592,16 @@
   ctest_configure(OPTIONS "${CMAKE_ARGS};${SUBM_ARGS};-DCTEST_USE_LAUNCHERS=${CTEST_USE_LAUNCHERS};-DBUILD_TESTING=ON;-DDART_TESTING_TIMEOUT=${CTEST_TEST_TIMEOUT}"  RETURN_VALUE confResult)

   #ctest_submit(PARTS Configure Update  RETRY_COUNT 3 RETRY_DELAY 3)
-if(EXISTS ${CTEST_BINARY_DIRECTORY}/gitstatus.txt)
-  ctest_submit(PARTS Configure Notes RETRY_COUNT 3 RETRY_DELAY 3)
-else()
-  ctest_submit(PARTS Configure RETRY_COUNT 3 RETRY_DELAY 3)
-endif()
-
-if (NOT confResult EQUAL 0)
-  message(SEND_ERROR "CMake Configuration failed.")
-endif()
+  if(EXISTS ${CTEST_BINARY_DIRECTORY}/gitstatus.txt)
+    set(CTEST_NOTES_FILES ${CTEST_BINARY_DIRECTORY}/gitstatus.txt)
+    ctest_submit(PARTS Configure Notes RETRY_COUNT 3 RETRY_DELAY 3)
+  else()
+    ctest_submit(PARTS Configure RETRY_COUNT 3 RETRY_DELAY 3)
+  endif()
+
+  if (NOT confResult EQUAL 0)
+    message(SEND_ERROR "CMake Configuration failed.")
+  endif()

   #"${CMAKE_VERSION}" VERSION_LESS "3.10"
   if(NOT "x${LABELS_FOR_SUBPROJECTS}" STREQUAL "x")
@@ -614,9 +615,9 @@
       ctest_build(TARGET ${subproject} APPEND)
       ctest_submit(PARTS Build  RETRY_COUNT 3 RETRY_DELAY 3)
       ctest_test(INCLUDE_LABEL "${subproject}" PARALLEL_LEVEL ${CTEST_TEST_JOBS} RETURN_VALUE testResult)
-    if (narg GREATER 0 AND NOT testResult EQUAL 0)
-      set(${ARGV0} -1)
-    endif()
+      if (narg GREATER 0 AND NOT testResult EQUAL 0)
+	set(${ARGV0} -1)
+      endif()

       ctest_submit(PARTS Test  RETRY_COUNT 3 RETRY_DELAY 3)

@@ -667,8 +668,6 @@

 file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")

-set(CTEST_NOTES_FILES ${CTEST_BINARY_DIRECTORY}/gitstatus.txt)
-
 if(NOT "${CTEST_TEST_MODEL}" STREQUAL "Continuous")

   ctest_start(${CTEST_TEST_MODEL})


ctest update

ctest update

--- cmake/ctest_script.cmake
+++ cmake/ctest_script.cmake
@@ -21,20 +21,15 @@
 ##
 ## or even -VV.
 ##
-## Set execution options in the Configuration part.
-## For multiple tests (eg. different compilers) make multiple copies
-## of this file and adjust options. Few options can be passed by arguments:
-##
-## ctest -S ctest_script.cmake,"Experimental;Release;8;Ninja;cc;g++;180;Valgrind"
-##
-## ctest -S ctest_script.cmake,"Nightly;Debug;8;Ninja;cc;g++;180;"";1"
-##
-## ctest -S ctest_script.cmake,"Nightly;RelWithDebInfo;8;Ninja;clang;clang++;180;"AddressSanitizer";0"
+## Options can be passed by arguments (default options are displayed here):
+##
+## ctest -S ctest_script.cmake -D CTEST_TEST_MODEL=Experimental -D CTEST_CONFIGURATION_TYPE=Release -D CTEST_BUILD_JOBS=8 -D CTEST_CMAKE_GENERATOR="Unix Makefiles" -D CNAME=gcc -D CXXNAME=g++ -D CTEST_TEST_TIMEOUT=100 -D CTEST_MEMORYCHECK_TYPE=Valgrind -D test_coverage=TRUE
+##
 ##
 ## On linux this script can be invoked in a cronjob. e.g.:
 ##    $ crontab -e
 ## Add the line:
-##    0 3 * * * ctest -S /path/toctest_script.cmake,"Nightly" -Q
+##    0 3 * * * ctest -S /path/toctest_script.cmake -D CTEST_TEST_MODEL=Nightly -Q
 ## save and exit. Now with
 ##    $ crontab -l
 ## you can see the scheduled task. The script will
@@ -141,7 +136,8 @@
 #set(ENV{MAKEFLAGS} "-j12")

 # Build options
-set(gismo_build_options
+if(NOT DEFINED CMAKE_ARGS)
+  set(CMAKE_ARGS
     -DGISMO_WARNINGS=OFF
     -DGISMO_COEFF_TYPE=double
     -DGISMO_BUILD_LIB=ON
@@ -160,7 +156,8 @@
     -DGISMO_EXTRA_DEBUG=OFF
     -DGISMO_BUILD_PCH=OFF
     #-DGISMO_PLAINDOX=ON
-)
+    )
+endif()

 # Source folder (defaults inside the script directory)
 if(NOT DEFINED CTEST_SOURCE_DIRECTORY)
@@ -349,36 +346,61 @@
   endif()
   set(CTEST_LABELS_FOR_SUBPROJECTS ${LABELS_FOR_SUBPROJECTS})

-  ctest_configure(OPTIONS "${gismo_build_options};-DCTEST_USE_LAUNCHERS=${CTEST_USE_LAUNCHERS};-DBUILD_TESTING=ON;-DDART_TESTING_TIMEOUT=${CTEST_TEST_TIMEOUT})")
+  ctest_configure(OPTIONS "${CMAKE_ARGS};-DCTEST_USE_LAUNCHERS=${CTEST_USE_LAUNCHERS};-DBUILD_TESTING=ON;-DDART_TESTING_TIMEOUT=${CTEST_TEST_TIMEOUT})")

   ctest_submit(PARTS Configure Update)

-  #if("${CMAKE_VERSION}" VERSION_LESS "3.10" AND NOT "x${CTEST_LABELS_FOR_SUBPROJECTS}" STREQUAL "x")
-  #foreach(subproject ${CTEST_LABELS_FOR_SUBPROJECTS})
-  #else() # CMake 3.10
-
-  ctest_build(TARGET gsUnitTest APPEND) # for older versions of ninja
-  ctest_submit(PARTS Build)
-  ctest_build(APPEND)
-  ctest_submit(PARTS Build)
-  ctest_build(TARGET unittests APPEND)
-  ctest_submit(PARTS Build)
-  ctest_test(PARALLEL_LEVEL ${CTEST_TEST_JOBS})
-  ctest_submit(PARTS Test)
-
-  if(test_coverage)
-     #message("Running coverage..")
-     ctest_coverage(BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
-     ctest_submit(PARTS Coverage)
-  endif()
-
-  if(NOT "x${CTEST_MEMORYCHECK_TYPE}" STREQUAL "xNone")
-    #message("Running memcheck..")
-    ctest_memcheck()
-    ctest_submit(PARTS MemCheck)
-  endif()
-
-  #endif()
+  #"${CMAKE_VERSION}" VERSION_LESS "3.10"
+  if(NOT "x${CTEST_LABELS_FOR_SUBPROJECTS}" STREQUAL "x")
+
+    foreach(subproject ${CTEST_LABELS_FOR_SUBPROJECTS})
+      set_property(GLOBAL PROPERTY SubProject ${subproject}) #cdash subproject
+      set_property(GLOBAL PROPERTY Label ${subproject})      #test selection
+      ctest_build(TARGET ${subproject} APPEND)
+      ctest_submit(PARTS Build)
+      if ("${subproject}" STREQUAL "gismo")
+        ctest_build(TARGET doc-snippets APPEND)
+        ctest_submit(PARTS Build)
+      endif()
+      ctest_test(INCLUDE_LABEL "${subproject}" PARALLEL_LEVEL ${CTEST_TEST_JOBS})
+      ctest_submit(PARTS Test)
+
+      if(test_coverage)
+        ctest_coverage(BUILD "${CTEST_BINARY_DIRECTORY}" LABELS "${subproject}" APPEND)
+        ctest_submit(PARTS Coverage)
+      endif()
+
+      if(NOT "x${CTEST_MEMORYCHECK_TYPE}" STREQUAL "xNone")
+        ctest_memcheck(INCLUDE_LABEL "${subproject}" APPEND)
+        ctest_submit(PARTS MemCheck)
+      endif()
+
+    endforeach()
+
+  else() # No subprojects
+
+    ctest_build(TARGET gsUnitTest APPEND) # for older versions of ninja
+    ctest_submit(PARTS Build)
+    ctest_build(APPEND)
+    ctest_submit(PARTS Build)
+    ctest_build(TARGET unittests APPEND)
+    ctest_submit(PARTS Build)
+    ctest_test(PARALLEL_LEVEL ${CTEST_TEST_JOBS})
+    ctest_submit(PARTS Test)
+
+    if(test_coverage)
+      #message("Running coverage..")
+      ctest_coverage(BUILD "${CTEST_BINARY_DIRECTORY}" APPEND)
+      ctest_submit(PARTS Coverage)
+    endif()
+
+    if(NOT "x${CTEST_MEMORYCHECK_TYPE}" STREQUAL "xNone")
+      #message("Running memcheck..")
+      ctest_memcheck()
+      ctest_submit(PARTS MemCheck)
+    endif()
+
+  endif()
 endmacro(run_ctests)

 file(MAKE_DIRECTORY "${CTEST_BINARY_DIRECTORY}")
@@ -387,9 +409,9 @@

 if(NOT "${CTEST_TEST_MODEL}" STREQUAL "Continuous")

-#if(NOT "${CTEST_UPDATE_COMMAND}" STREQUAL "CTEST_UPDATE_COMMAND-NOTFOUND")
-#  ctest_update()
-#endif()
+if(NOT "${CTEST_UPDATE_COMMAND}" STREQUAL "CTEST_UPDATE_COMMAND-NOTFOUND")
+  ctest_update()
+endif()

 run_ctests()


CMake: Added CMAKE_POSITION_INDEPENDENT_CODE for linux Seems clang wants it under linux

--- cmake/globalconfig.cmake
+++ cmake/globalconfig.cmake
@@ -340,6 +340,10 @@
     endif()
 endif()

+if (LINUX)
+    set(CMAKE_POSITION_INDEPENDENT_CODE ON) # Will add -fPIC under linux.
+endif()
+
 #--------------------------------------------------------------------
 # Check if OpenMP is available and set it to use, and include the dll in packs
 find_package(OpenMP QUIET)


STM32_TOOLCHAIN_PATH is automatically set if CMAKE_C_COMPILER is (for vscode userswith cmake tools)

--- cmake/stm32/common.cmake
+++ cmake/stm32/common.cmake
@@ -10,11 +10,17 @@
 endforeach()
 list(REMOVE_DUPLICATES STM32_SUPPORTED_FAMILIES_SHORT_NAME)

-if(NOT STM32_TOOLCHAIN_PATH)
-     set(STM32_TOOLCHAIN_PATH "/usr")
-     message(STATUS "No STM32_TOOLCHAIN_PATH specified, using default: " ${STM32_TOOLCHAIN_PATH})
+if(NOT STM32_TOOLCHAIN_PATH AND NOT CMAKE_C_COMPILER)
+    set(STM32_TOOLCHAIN_PATH "/usr")
+    message(STATUS "No STM32_TOOLCHAIN_PATH specified, using default: " ${STM32_TOOLCHAIN_PATH})
 else()
-     file(TO_CMAKE_PATH "${STM32_TOOLCHAIN_PATH}" STM32_TOOLCHAIN_PATH)
+    if(NOT STM32_TOOLCHAIN_PATH)
+        # keep only directory of compiler
+        get_filename_component(STM32_TOOLCHAIN_PATH ${CMAKE_C_COMPILER} DIRECTORY)
+        # remove the last /bin directory
+        get_filename_component(STM32_TOOLCHAIN_PATH ${STM32_TOOLCHAIN_PATH} DIRECTORY)
+    endif()
+    file(TO_CMAKE_PATH "${STM32_TOOLCHAIN_PATH}" STM32_TOOLCHAIN_PATH)
 endif()

 if(NOT STM32_TARGET_TRIPLET)


Make uninstall work even with embeded chemfiles

--- cmake/uninstall.in.cmake
+++ cmake/uninstall.in.cmake
@@ -1,10 +1,10 @@
 # This file provide an uninstall target for Makefiles

-if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
-  message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
-endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
+if(NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt")
+  message(FATAL_ERROR "Cannot find install manifest: @PROJECT_BINARY_DIR@/install_manifest.txt")
+endif(NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt")

-file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
+file(READ "@PROJECT_BINARY_DIR@/install_manifest.txt" files)
 string(REGEX REPLACE "\n" ";" files "${files}")
 foreach(file ${files})
   message(STATUS "Uninstalling $ENV{DESTDIR}${file}")


Fix GPUSD inclusion

Fix GPUSD inclusion

[ ] May break build
[ ] May break existing applications (see CHANGES.txt)
[x] Bugfix
[ ] New Feature
[ ] Cleanup
[ ] Optimization
[ ] Documentation

--- GPUSD.cmake
+++ GPUSD.cmake
@@ -19,6 +19,7 @@
 endif()

 if(EXISTS "${CMAKE_SOURCE_DIR}/gpu-sd/CMakeLists.txt")
+  add_subdirectory(gpu-sd)
   find_package(GPUSD)
 else()
   message(WARNING "git submodule update failed, no automatic configuration")


perform compile test to select -march or -mcpu for clang

--- cmake/LLVM.cmake
+++ cmake/LLVM.cmake
@@ -487,15 +487,6 @@
 endif()

 ####################################################################
-#X86 has -march and -mcpu reversed, for clang
-
-if(CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "(powerpc|arm|aarch64)")
-  set(CLANG_MARCH_FLAG "-mcpu=")
-else()
-  set(CLANG_MARCH_FLAG "-march=")
-endif()
-
-####################################################################

 macro(CHECK_ALIGNOF TYPE TYPEDEF OUT_VAR)

@@ -700,6 +691,26 @@

 ####################################################################
+# Some architectures have -march and -mcpu reversed
+
+if(NOT DEFINED ${CLANG_MARCH_FLAG})
+  message(STATUS "Checking clang -march vs. -mcpu flag")
+  custom_try_compile_clang_silent("" "return 0;" RES ${CLANG_TARGET_OPTION}${LLC_TRIPLE} -march=${LLC_HOST_CPU})
+  if(NOT RES)
+    set(CLANG_MARCH_FLAG "-march=")
+  else()
+    custom_try_compile_clang_silent("" "return 0;" RES ${CLANG_TARGET_OPTION}${LLC_TRIPLE} -mcpu=${LLC_HOST_CPU})
+    if(NOT RES)
+      set(CLANG_MARCH_FLAG "-mcpu=")
+    else()
+      message(FATAL_ERROR "Could not determine whether to use -march or -mcpu with clang")
+    endif()
+  endif()
+
+  set(CLANG_MARCH_FLAG ${CLANG_MARCH_FLAG} CACHE INTERNAL "Clang option used to specify the target cpu")
+endif()
+
+####################################################################

 # This tests that we can actually link to the llvm libraries.
 # Mostly to catch issues like #295 - cannot find -ledit


specify cuda arch when dectected fail (#26420)

specify cuda arch when dectected fail

--- cmake/cuda.cmake
+++ cmake/cuda.cmake
@@ -61,6 +61,10 @@
   if(NOT CUDA_gpu_detect_output)
     message(STATUS "Automatic GPU detection failed. Building for all known architectures.")
     set(${out_variable} ${paddle_known_gpu_archs} PARENT_SCOPE)
+    #Todo: fix Automatic GPU detection failed on windows
+    if(WIN32)
+      set(${out_variable} "61 75" PARENT_SCOPE)
+    endif()
   else()
     set(${out_variable} ${CUDA_gpu_detect_output} PARENT_SCOPE)
   endif()


cmake: Fix typo

cmake: Fix typo

--- cmake/deps.cmake
+++ cmake/deps.cmake
@@ -88,7 +88,7 @@
   endif()
 endif()

-if(USE_PLDP)
+if(USE_PDLP)
   if(NOT BUILD_PDLP)
     find_package(PDLP REQUIRED)
   else()


cmake-modules/FindThirdPartyOgre3D:
* find also CEGUI and OIS

git-svn-id: ed1ce8e5c168003d808aec37bc6fda77b178f7bb@1865 c330d7e9-fc0c-0410-a5b3-fd85c6f5aa8f

--- trunk/cmake-modules/FindThirdPartyOgre3D.cmake
+++ trunk/cmake-modules/FindThirdPartyOgre3D.cmake
@@ -20,9 +20,9 @@
 		SET(Ogre3D_FOUND TRUE)
 		SET(Ogre3D_INCLUDE_DIRS ${PATH_Ogre3D}/include)
 		IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
-			SET(Ogre3D_LIBRARIES OgreMain_d)
+			SET(Ogre3D_LIBRARIES OgreMain_d OIS_d CEGUIBase_d OgreGUIRenderer_d)
 		ELSE(CMAKE_BUILD_TYPE STREQUAL "Debug")
-			SET(Ogre3D_LIBRARIES OgreMain)
+			SET(Ogre3D_LIBRARIES OgreMain OIS CEGUIBase OgreGUIRenderer)
 		ENDIF(CMAKE_BUILD_TYPE STREQUAL "Debug")
 		SET(Ogre3D_LIBRARY_DIRS ${PATH_Ogre3D}/lib )
 	ENDIF(PATH_Ogre3D)


Remove registration from default and release configuration

--- CMake/BuildConfigurations/Default.cmake
+++ CMake/BuildConfigurations/Default.cmake
@@ -16,7 +16,6 @@
   org.mitk.planarfigure
   org.mitk.gui.qt.moviemaker
   org.mitk.gui.qt.pointsetinteraction
-  org.mitk.gui.qt.registration
   org.mitk.gui.qt.remeshing
   org.mitk.gui.qt.viewnavigator
   org.mitk.gui.qt.imagecropper


STYLE: Remove CMake workaround `ITK_REQUIRED_CXX_FLAGS` for GCC 4.8

ITKv5.3 ("itkCompilerChecks.cmake") requires at least GCC 5.1.

Follow-up to:

pull request https://github.com/InsightSoftwareConsortium/ITK/pull/2563
commit 4e812d60743a3ed7c09647e7f3f0e8498583c2da
"COMP: Require compiler versions that support C++14"
(merged on 3 June 2021)

--- CMake/ITKSetStandardCompilerFlags.cmake
+++ CMake/ITKSetStandardCompilerFlags.cmake
@@ -321,13 +321,6 @@
   #-----------------------------------------------------------------------------
   #ITK requires special compiler flags on some platforms.
   if(CMAKE_COMPILER_IS_GNUCXX)
-    # GCC's -Warray-bounds has been shown to throw false positives with -O3 on 4.8.
-    if(UNIX AND (
-      ("${CMAKE_CXX_COMPILER_VERSION}" VERSION_EQUAL "4.8") OR
-      ("${CMAKE_CXX_COMPILER_VERSION}" VERSION_GREATER "4.8" AND "${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS "4.9") ))
-      set(ITK_REQUIRED_CXX_FLAGS "${ITK_REQUIRED_CXX_FLAGS} -Wno-array-bounds")
-    endif()
-
     if(APPLE)
       option(ITK_USE_64BITS_APPLE_TRUNCATION_WARNING "Turn on warnings on 64bits to 32bits truncations." OFF)
       mark_as_advanced(ITK_USE_64BITS_APPLE_TRUNCATION_WARNING)


check Mathematica_RUN_KERNEL_ON_CONFIGURE in _find_munit_package

--- CMake/Mathematica/FindMathematica.cmake
+++ CMake/Mathematica/FindMathematica.cmake
@@ -1950,7 +1950,7 @@

 # internal macro to find MUnit package
 macro (_find_munit_package)
-	if (COMMAND Mathematica_FIND_PACKAGE)
+	if (Mathematica_RUN_KERNEL_ON_CONFIGURE AND COMMAND Mathematica_FIND_PACKAGE)
 		Mathematica_FIND_PACKAGE(Mathematica_MUnit_PACKAGE_FILE "MUnit`MUnit`")
 		# determine enclosing MUnit package directory
 		if (Mathematica_MUnit_PACKAGE_FILE)
@@ -4009,7 +4009,7 @@
 	_get_mprep_output_file(${_templateFile} _outfile)
 	Mathematica_MathLink_MPREP_TARGET(${_templateFile} OUTPUT ${_outfile})
 	add_executable (${_executableName} WIN32 ${_outfile} ${ARGN})
-	target_link_libraries(${_executableName} ${Mathematica_MathLink_LIBRARIES})
+	target_link_libraries(${_executableName} PRIVATE ${Mathematica_MathLink_LIBRARIES})
 	if (Mathematica_MathLink_LINKER_FLAGS)
 		set_target_properties(${_executableName} PROPERTIES LINK_FLAGS "${Mathematica_MathLink_LINKER_FLAGS}")
 	endif()
@@ -4139,7 +4139,7 @@
 	_get_mprep_output_file("${_templateFile}" _outfile)
 	Mathematica_WSTP_WSPREP_TARGET(${_templateFile} OUTPUT ${_outfile})
 	add_executable (${_executableName} WIN32 ${_outfile} ${ARGN})
-	target_link_libraries(${_executableName} ${Mathematica_WSTP_LIBRARIES})
+	target_link_libraries(${_executableName} PRIVATE ${Mathematica_WSTP_LIBRARIES})
 	if (Mathematica_WSTP_LINKER_FLAGS)
 		set_target_properties(${_executableName} PROPERTIES LINK_FLAGS "${Mathematica_WSTP_LINKER_FLAGS}")
 	endif()


Fix URHO3D_PACKAGING option to ensure bash subshell is being used. [ci only: Emscripten, OSX]

--- CMake/Modules/Urho3D-CMake-common.cmake
+++ CMake/Modules/Urho3D-CMake-common.cmake
@@ -1097,7 +1097,7 @@
                 else ()
                     set (OUTPUT_COMMAND true)   # Nothing to output
                 endif ()
-                list (APPEND COMMANDS COMMAND echo Checking ${DIR}... && \(\( `find ${DIR} -newer ${DIR} |wc -l` \)\) && touch -cm ${DIR} ${PACKAGING_COMMAND} || ${OUTPUT_COMMAND})
+                list (APPEND COMMANDS COMMAND echo Checking ${DIR}... && bash -c \"\(\( `find ${DIR} -newer ${DIR} |wc -l` \)\)\" && touch -cm ${DIR} ${PACKAGING_COMMAND} || ${OUTPUT_COMMAND})
             endif ()
         endforeach ()
         string (MD5 MD5ALL ${MD5ALL})


[Build] Added support for the run-path/rpath in the installed binaries.

--- config/project_config_embeddable.cmake
+++ config/project_config_embeddable.cmake
@@ -57,9 +57,13 @@

 ##
 # Set a few options:
-#  * BUILD_SHARED_LIBS   - Whether or not to build shared libraries
-#  * CMAKE_BUILD_TYPE    - Debug or release
-#  * CMAKE_INSTALL_PREFIX
+#  * BUILD_SHARED_LIBS    - Whether or not to build shared libraries
+#  * CMAKE_BUILD_TYPE     - Debug or release
+#  * CMAKE_INSTALL_PREFIX - Where to install the deliverable parts
+#  * CMAKE_INSTALL_RPATH  - The list of paths to be used by the linker
+#  * CMAKE_INSTALL_RPATH_USE_LINK_PATH
+#                         - Whether or not to set the run-path/rpath within
+#                           the (executable and library) binaries
 #  * INSTALL_DOC         - Whether or not to build and install the documentation
 #  * INSTALL_LIB_DIR     - Installation directory for the libraries
 #  * INSTALL_BIN_DIR     - Installation directory for the binaries
@@ -108,6 +112,19 @@
       set (${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
     endif ()
   endforeach (_path_type)
+
+  # When the install directory is the canonical one (i.e., /usr), the
+  # run-path/rpath must be set in all the (executable and library)
+  # binaries, so that the dynamic loader can find the dependencies
+  # without the user having to set the LD_LIBRARY_PATH environment
+  # variable.
+  if (CMAKE_INSTALL_PREFIX STREQUAL "/usr")
+    set (CMAKE_INSTALL_RPATH "")
+    set (CMAKE_INSTALL_RPATH_USE_LINK_PATH OFF)
+  else()
+    set (CMAKE_INSTALL_RPATH ${INSTALL_LIB_DIR})
+    set (CMAKE_INSTALL_RPATH_USE_LINK_PATH ON)
+  endif()

   # Define STDAIR_SAMPLE_DIR if the project is STDAIR
   if ("${PROJECT_NAME}" STREQUAL "stdair")
@@ -139,20 +156,27 @@
 macro (store_in_cache)
   # Force some variables that could be defined in the command line to be
   # written to cache
+  set (PACKAGE_VERSION "${PACKAGE_VERSION}" CACHE STRING
+    "Version of the project/package")
   set (BUILD_SHARED_LIBS "${BUILD_SHARED_LIBS}" CACHE BOOL
-	"Set to OFF to build static libraries" FORCE)
+    "Set to OFF to build static libraries" FORCE)
   set (CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}" CACHE PATH
-	"Where to install ${PROJECT_NAME}" FORCE)
+    "Where to install ${PROJECT_NAME}" FORCE)
+  set (CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}" CACHE PATH
+    "Run-path for the library/executable binaries" FORCE)
+  set (CMAKE_INSTALL_RPATH_USE_LINK_PATH "${CMAKE_INSTALL_RPATH_USE_LINK_PATH}"
+    CACHE BOOL
+    "Whether to set the run-path for the library/executable binaries" FORCE)
   set (CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING
-	"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
+    "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE)
   set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}" CACHE STRING
-	"C++ compilation flags" FORCE)
+    "C++ compilation flags" FORCE)
   set (COMPILE_FLAGS "${COMPILE_FLAGS}" CACHE STRING
-	"Supplementary C++ compilation flags" FORCE)
+    "Supplementary C++ compilation flags" FORCE)
   set (CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" CACHE PATH
-	"Path to custom CMake Modules" FORCE)
+    "Path to custom CMake Modules" FORCE)
   set (INSTALL_DOC "${INSTALL_DOC}" CACHE BOOL
-	"Set to OFF to skip build/install Documentation" FORCE)
+    "Set to OFF to skip build/install Documentation" FORCE)
 endmacro (store_in_cache)

@@ -343,6 +367,10 @@
       get_simcrs (${_arg_version})
     endif (${_arg_lower} STREQUAL "simcrs")

+    if (${_arg_lower} STREQUAL "dsim")
+      get_dsim (${_arg_version})
+    endif (${_arg_lower} STREQUAL "dsim")
+
     if (${_arg_lower} STREQUAL "doxygen")
       get_doxygen (${_arg_version})
     endif (${_arg_lower} STREQUAL "doxygen")
@@ -980,6 +1008,38 @@
   endif (SimCRS_FOUND)

 endmacro (get_simcrs)
+
+# ~~~~~~~~~~ DSim ~~~~~~~~~
+macro (get_dsim)
+  unset (_required_version)
+  if (${ARGC} GREATER 0)
+    set (_required_version ${ARGV0})
+    message (STATUS "Requires DSim-${_required_version}")
+  else (${ARGC} GREATER 0)
+    message (STATUS "Requires DSim without specifying any version")
+  endif (${ARGC} GREATER 0)
+
+  find_package (DSim ${_required_version} REQUIRED
+	HINTS ${WITH_DSIM_PREFIX})
+  if (DSim_FOUND)
+    #
+    message (STATUS "Found DSim version: ${DSIM_VERSION}")
+
+    # Update the list of include directories for the project
+    include_directories (${DSIM_INCLUDE_DIRS})
+
+    # Update the list of dependencies for the project
+    set (PROJ_DEP_LIBS_FOR_LIB ${PROJ_DEP_LIBS_FOR_LIB} ${DSIM_LIBRARIES})
+
+  else (DSim_FOUND)
+    set (ERROR_MSG "The DSim library cannot be found. If it is installed in")
+    set (ERROR_MSG "${ERROR_MSG} a in a non standard directory, just invoke")
+    set (ERROR_MSG "${ERROR_MSG} 'cmake' specifying the -DWITH_DSIM_PREFIX=")
+    set (ERROR_MSG "${ERROR_MSG}<DSim install path> variable.")
+    message (FATAL_ERROR "${ERROR_MSG}")
+  endif (DSim_FOUND)
+
+endmacro (get_dsim)

 ##############################################
@@ -1000,8 +1060,10 @@
 	#set (CMAKE_CXX_FLAGS "-Wall -Wextra -pedantic -Werror")
 	set (CMAKE_CXX_FLAGS "-Wall -Werror")
   endif (NOT CMAKE_CXX_FLAGS)
-  # Tell the source code the version of Boost
-  set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBOOST_VERSION=${Boost_VERSION}")
+  # Tell the source code the version of Boost (only once)
+  if (NOT "${CMAKE_CXX_FLAGS}" MATCHES "-DBOOST_VERSION=")
+    set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DBOOST_VERSION=${Boost_VERSION}")
+  endif (NOT "${CMAKE_CXX_FLAGS}" MATCHES "-DBOOST_VERSION=")

   #
   include_directories (BEFORE ${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
@@ -1217,9 +1279,10 @@
   endif (_publish_all_headers_flag)

   # Convenient message to the user/developer
-  if (NOT "${INSTALL_LIB_DIR}" MATCHES "^/usr/${LIBDIR}$")
-    install (CODE "message (\"On Unix-based platforms, run export LD_LIBRARY_PATH=\$LD_LIBRARY_PATH:${INSTALL_LIB_DIR} once per session\")")
-  endif ()
+  if (NOT ${CMAKE_INSTALL_RPATH_USE_LINK_PATH}
+      AND "${CMAKE_INSTALL_PREFIX}" STREQUAL "/usr")
+    install (CODE "message (\"On Unix-based platforms, run export LD_LIBRARY_PATH=${INSTALL_LIB_DIR}:\$LD_LIBRARY_PATH once per session\")")
+  endif()

 endmacro (module_library_add_standard)

@@ -1871,10 +1934,10 @@
 macro (display_doxygen)
   message (STATUS)
   message (STATUS "* Doxygen:")
-  message (STATUS "  - DOXYGEN_VERSION .............. : ${DOXYGEN_VERSION}")
-  message (STATUS "  - DOXYGEN_EXECUTABLE ........... : ${DOXYGEN_EXECUTABLE}")
-  message (STATUS "  - DOXYGEN_DOT_EXECUTABLE ....... : ${DOXYGEN_DOT_EXECUTABLE}")
-  message (STATUS "  - DOXYGEN_DOT_PATH ............. : ${DOXYGEN_DOT_PATH}")
+  message (STATUS "  - DOXYGEN_VERSION ............... : ${DOXYGEN_VERSION}")
+  message (STATUS "  - DOXYGEN_EXECUTABLE ............ : ${DOXYGEN_EXECUTABLE}")
+  message (STATUS "  - DOXYGEN_DOT_EXECUTABLE ........ : ${DOXYGEN_DOT_EXECUTABLE}")
+  message (STATUS "  - DOXYGEN_DOT_PATH .............. : ${DOXYGEN_DOT_PATH}")
 endmacro (display_doxygen)

 # Python
@@ -1882,12 +1945,12 @@
   if (PYTHONLIBS_FOUND)
     message (STATUS)
 	message (STATUS "* Python:")
-	message (STATUS "  - PYTHONLIBS_VERSION ......... : ${PYTHONLIBS_VERSION}")
-	message (STATUS "  - PYTHON_LIBRARIES ........... : ${PYTHON_LIBRARIES}")
-	message (STATUS "  - PYTHON_INCLUDE_PATH ........ : ${PYTHON_INCLUDE_PATH}")
-	message (STATUS "  - PYTHON_INCLUDE_DIRS ........ : ${PYTHON_INCLUDE_DIRS}")
-	message (STATUS "  - PYTHON_DEBUG_LIBRARIES ..... : ${PYTHON_DEBUG_LIBRARIES}")
-	message (STATUS "  - Python_ADDITIONAL_VERSIONS . : ${Python_ADDITIONAL_VERSIONS}")
+	message (STATUS "  - PYTHONLIBS_VERSION ............ : ${PYTHONLIBS_VERSION}")
+	message (STATUS "  - PYTHON_LIBRARIES .............. : ${PYTHON_LIBRARIES}")
+	message (STATUS "  - PYTHON_INCLUDE_PATH ........... : ${PYTHON_INCLUDE_PATH}")
+	message (STATUS "  - PYTHON_INCLUDE_DIRS ........... : ${PYTHON_INCLUDE_DIRS}")
+	message (STATUS "  - PYTHON_DEBUG_LIBRARIES ........ : ${PYTHON_DEBUG_LIBRARIES}")
+	message (STATUS "  - Python_ADDITIONAL_VERSIONS .... : ${Python_ADDITIONAL_VERSIONS}")
   endif (PYTHONLIBS_FOUND)
 endmacro (display_python)

@@ -1896,9 +1959,9 @@
   if (ZEROMQ_FOUND)
     message (STATUS)
 	message (STATUS "* ZeroMQ:")
-	message (STATUS "  - ZeroMQ_VERSION ............. : ${ZeroMQ_VERSION}")
-	message (STATUS "  - ZeroMQ_LIBRARIES ........... : ${ZeroMQ_LIBRARIES}")
-	message (STATUS "  - ZeroMQ_INCLUDE_DIR ......... : ${ZeroMQ_INCLUDE_DIR}")
+	message (STATUS "  - ZeroMQ_VERSION ................ : ${ZeroMQ_VERSION}")
+	message (STATUS "  - ZeroMQ_LIBRARIES .............. : ${ZeroMQ_LIBRARIES}")
+	message (STATUS "  - ZeroMQ_INCLUDE_DIR ............ : ${ZeroMQ_INCLUDE_DIR}")
   endif (ZEROMQ_FOUND)
 endmacro (display_zeromq)

@@ -1907,12 +1970,12 @@
   if (Boost_FOUND)
     message (STATUS)
     message (STATUS "* Boost:")
-    message (STATUS "  - Boost_VERSION .............. : ${Boost_VERSION}")
-    message (STATUS "  - Boost_LIB_VERSION .......... : ${Boost_LIB_VERSION}")
-    message (STATUS "  - Boost_HUMAN_VERSION ........ : ${Boost_HUMAN_VERSION}")
-    message (STATUS "  - Boost_INCLUDE_DIRS ......... : ${Boost_INCLUDE_DIRS}")
-    message (STATUS "  - Boost required components .. : ${BOOST_REQUIRED_COMPONENTS}")
-    message (STATUS "  - Boost required libraries ... : ${BOOST_REQUIRED_LIBS}")
+    message (STATUS "  - Boost_VERSION ................. : ${Boost_VERSION}")
+    message (STATUS "  - Boost_LIB_VERSION ............. : ${Boost_LIB_VERSION}")
+    message (STATUS "  - Boost_HUMAN_VERSION ........... : ${Boost_HUMAN_VERSION}")
+    message (STATUS "  - Boost_INCLUDE_DIRS ............ : ${Boost_INCLUDE_DIRS}")
+    message (STATUS "  - Boost required components ..... : ${BOOST_REQUIRED_COMPONENTS}")
+    message (STATUS "  - Boost required libraries ...... : ${BOOST_REQUIRED_LIBS}")
   endif (Boost_FOUND)
 endmacro (display_boost)

@@ -1920,10 +1983,10 @@
 macro (display_xapian)
   if (XAPIAN_FOUND)
     message (STATUS)
-	message (STATUS "* Xapian:")
-	message (STATUS "  - XAPIAN_VERSION ............. : ${XAPIAN_VERSION}")
-	message (STATUS "  - XAPIAN_LIBRARIES ........... : ${XAPIAN_LIBRARIES}")
-	message (STATUS "  - XAPIAN_INCLUDE_DIR ......... : ${XAPIAN_INCLUDE_DIR}")
+    message (STATUS "* Xapian:")
+    message (STATUS "  - XAPIAN_VERSION ................ : ${XAPIAN_VERSION}")
+    message (STATUS "  - XAPIAN_LIBRARIES .............. : ${XAPIAN_LIBRARIES}")
+    message (STATUS "  - XAPIAN_INCLUDE_DIR ............ : ${XAPIAN_INCLUDE_DIR}")
   endif (XAPIAN_FOUND)
 endmacro (display_xapian)

@@ -1932,9 +1995,9 @@
   if (READLINE_FOUND)
     message (STATUS)
     message (STATUS "* Readline:")
-    message (STATUS "  - READLINE_VERSION ........... : ${READLINE_VERSION}")
-    message (STATUS "  - READLINE_INCLUDE_DIR ....... : ${READLINE_INCLUDE_DIR}")
-    message (STATUS "  - READLINE_LIBRARY ........... : ${READLINE_LIBRARY}")
+    message (STATUS "  - READLINE_VERSION .............. : ${READLINE_VERSION}")
+    message (STATUS "  - READLINE_INCLUDE_DIR .......... : ${READLINE_INCLUDE_DIR}")
+    message (STATUS "  - READLINE_LIBRARY .............. : ${READLINE_LIBRARY}")
   endif (READLINE_FOUND)
 endmacro (display_readline)

@@ -1943,9 +2006,9 @@
   if (MYSQL_FOUND)
     message (STATUS)
     message (STATUS "* MySQL:")
-    message (STATUS "  - MYSQL_VERSION .............. : ${MYSQL_VERSION}")
-    message (STATUS "  - MYSQL_INCLUDE_DIR .......... : ${MYSQL_INCLUDE_DIR}")
-    message (STATUS "  - MYSQL_LIBRARIES ............ : ${MYSQL_LIBRARIES}")
+    message (STATUS "  - MYSQL_VERSION ................. : ${MYSQL_VERSION}")
+    message (STATUS "  - MYSQL_INCLUDE_DIR ............. : ${MYSQL_INCLUDE_DIR}")
+    message (STATUS "  - MYSQL_LIBRARIES ............... : ${MYSQL_LIBRARIES}")
   endif (MYSQL_FOUND)
 endmacro (display_mysql)

@@ -1954,13 +2017,13 @@
   if (SOCI_FOUND)
     message (STATUS)
     message (STATUS "* SOCI:")
-    message (STATUS "  - SOCI_VERSION ............... : ${SOCI_VERSION}")
-    message (STATUS "  - SOCI_LIB_VERSION ........... : ${SOCI_LIB_VERSION}")
-    message (STATUS "  - SOCI_HUMAN_VERSION ......... : ${SOCI_HUMAN_VERSION}")
-    message (STATUS "  - SOCI_INCLUDE_DIR ........... : ${SOCI_INCLUDE_DIR}")
-    message (STATUS "  - SOCIMYSQL_INCLUDE_DIR ...... : ${SOCIMYSQL_INCLUDE_DIR}")
-    message (STATUS "  - SOCI_LIBRARIES ............. : ${SOCI_LIBRARIES}")
-    message (STATUS "  - SOCIMYSQL_LIBRARIES ........ : ${SOCIMYSQL_LIBRARIES}")
+    message (STATUS "  - SOCI_VERSION .................. : ${SOCI_VERSION}")
+    message (STATUS "  - SOCI_LIB_VERSION .............. : ${SOCI_LIB_VERSION}")
+    message (STATUS "  - SOCI_HUMAN_VERSION ............ : ${SOCI_HUMAN_VERSION}")
+    message (STATUS "  - SOCI_INCLUDE_DIR .............. : ${SOCI_INCLUDE_DIR}")
+    message (STATUS "  - SOCIMYSQL_INCLUDE_DIR ......... : ${SOCIMYSQL_INCLUDE_DIR}")
+    message (STATUS "  - SOCI_LIBRARIES ................ : ${SOCI_LIBRARIES}")
+    message (STATUS "  - SOCIMYSQL_LIBRARIES ........... : ${SOCIMYSQL_LIBRARIES}")
   endif (SOCI_FOUND)
 endmacro (display_soci)

@@ -1969,13 +2032,13 @@
   if (StdAir_FOUND)
     message (STATUS)
     message (STATUS "* StdAir:")
-    message (STATUS "  - STDAIR_VERSION ............. : ${STDAIR_VERSION}")
-    message (STATUS "  - STDAIR_BINARY_DIRS ......... : ${STDAIR_BINARY_DIRS}")
-    message (STATUS "  - STDAIR_EXECUTABLES ......... : ${STDAIR_EXECUTABLES}")
-    message (STATUS "  - STDAIR_LIBRARY_DIRS ........ : ${STDAIR_LIBRARY_DIRS}")
-    message (STATUS "  - STDAIR_LIBRARIES ........... : ${STDAIR_LIBRARIES}")
-    message (STATUS "  - STDAIR_INCLUDE_DIRS ........ : ${STDAIR_INCLUDE_DIRS}")
-    message (STATUS "  - STDAIR_SAMPLE_DIR .......... : ${STDAIR_SAMPLE_DIR}")
+    message (STATUS "  - STDAIR_VERSION ................ : ${STDAIR_VERSION}")
+    message (STATUS "  - STDAIR_BINARY_DIRS ............ : ${STDAIR_BINARY_DIRS}")
+    message (STATUS "  - STDAIR_EXECUTABLES ............ : ${STDAIR_EXECUTABLES}")
+    message (STATUS "  - STDAIR_LIBRARY_DIRS ........... : ${STDAIR_LIBRARY_DIRS}")
+    message (STATUS "  - STDAIR_LIBRARIES .............. : ${STDAIR_LIBRARIES}")
+    message (STATUS "  - STDAIR_INCLUDE_DIRS ........... : ${STDAIR_INCLUDE_DIRS}")
+    message (STATUS "  - STDAIR_SAMPLE_DIR ............. : ${STDAIR_SAMPLE_DIR}")
   endif (StdAir_FOUND)
 endmacro (display_stdair)

@@ -1984,12 +2047,12 @@
   if (SEvMgr_FOUND)
     message (STATUS)
     message (STATUS "* SEvMgr:")
-    message (STATUS "  - SEVMGR_VERSION ............. : ${SEVMGR_VERSION}")
-    message (STATUS "  - SEVMGR_BINARY_DIRS ......... : ${SEVMGR_BINARY_DIRS}")
-    message (STATUS "  - SEVMGR_EXECUTABLES ......... : ${SEVMGR_EXECUTABLES}")
-    message (STATUS "  - SEVMGR_LIBRARY_DIRS ........ : ${SEVMGR_LIBRARY_DIRS}")
-    message (STATUS "  - SEVMGR_LIBRARIES ........... : ${SEVMGR_LIBRARIES}")
-    message (STATUS "  - SEVMGR_INCLUDE_DIRS ........ : ${SEVMGR_INCLUDE_DIRS}")
+    message (STATUS "  - SEVMGR_VERSION ................ : ${SEVMGR_VERSION}")
+    message (STATUS "  - SEVMGR_BINARY_DIRS ............ : ${SEVMGR_BINARY_DIRS}")
+    message (STATUS "  - SEVMGR_EXECUTABLES ............ : ${SEVMGR_EXECUTABLES}")
+    message (STATUS "  - SEVMGR_LIBRARY_DIRS ........... : ${SEVMGR_LIBRARY_DIRS}")
+    message (STATUS "  - SEVMGR_LIBRARIES .............. : ${SEVMGR_LIBRARIES}")
+    message (STATUS "  - SEVMGR_INCLUDE_DIRS ........... : ${SEVMGR_INCLUDE_DIRS}")
   endif (SEvMgr_FOUND)
 endmacro (display_sevmgr)

@@ -1998,12 +2061,12 @@
   if (TraDemGen_FOUND)
     message (STATUS)
     message (STATUS "* TraDemGen:")
-    message (STATUS "  - TRADEMGEN_VERSION .......... : ${TRADEMGEN_VERSION}")
-    message (STATUS "  - TRADEMGEN_BINARY_DIRS ...... : ${TRADEMGEN_BINARY_DIRS}")
-    message (STATUS "  - TRADEMGEN_EXECUTABLES ...... : ${TRADEMGEN_EXECUTABLES}")
-    message (STATUS "  - TRADEMGEN_LIBRARY_DIRS ..... : ${TRADEMGEN_LIBRARY_DIRS}")
-    message (STATUS "  - TRADEMGEN_LIBRARIES ........ : ${TRADEMGEN_LIBRARIES}")
-    message (STATUS "  - TRADEMGEN_INCLUDE_DIRS ..... : ${TRADEMGEN_INCLUDE_DIRS}")
+    message (STATUS "  - TRADEMGEN_VERSION ............. : ${TRADEMGEN_VERSION}")
+    message (STATUS "  - TRADEMGEN_BINARY_DIRS ......... : ${TRADEMGEN_BINARY_DIRS}")
+    message (STATUS "  - TRADEMGEN_EXECUTABLES ......... : ${TRADEMGEN_EXECUTABLES}")
+    message (STATUS "  - TRADEMGEN_LIBRARY_DIRS ........ : ${TRADEMGEN_LIBRARY_DIRS}")
+    message (STATUS "  - TRADEMGEN_LIBRARIES ........... : ${TRADEMGEN_LIBRARIES}")
+    message (STATUS "  - TRADEMGEN_INCLUDE_DIRS ........ : ${TRADEMGEN_INCLUDE_DIRS}")
   endif (TraDemGen_FOUND)
 endmacro (display_trademgen)

@@ -2012,12 +2075,12 @@
   if (TravelCCM_FOUND)
     message (STATUS)
     message (STATUS "* TravelCCM:")
-    message (STATUS "  - TRAVELCCM_VERSION .......... : ${TRAVELCCM_VERSION}")
-    message (STATUS "  - TRAVELCCM_BINARY_DIRS ...... : ${TRAVELCCM_BINARY_DIRS}")
-    message (STATUS "  - TRAVELCCM_EXECUTABLES ...... : ${TRAVELCCM_EXECUTABLES}")
-    message (STATUS "  - TRAVELCCM_LIBRARY_DIRS ..... : ${TRAVELCCM_LIBRARY_DIRS}")
-    message (STATUS "  - TRAVELCCM_LIBRARIES ........ : ${TRAVELCCM_LIBRARIES}")
-    message (STATUS "  - TRAVELCCM_INCLUDE_DIRS ..... : ${TRAVELCCM_INCLUDE_DIRS}")
+    message (STATUS "  - TRAVELCCM_VERSION ............. : ${TRAVELCCM_VERSION}")
+    message (STATUS "  - TRAVELCCM_BINARY_DIRS ......... : ${TRAVELCCM_BINARY_DIRS}")
+    message (STATUS "  - TRAVELCCM_EXECUTABLES ......... : ${TRAVELCCM_EXECUTABLES}")
+    message (STATUS "  - TRAVELCCM_LIBRARY_DIRS ........ : ${TRAVELCCM_LIBRARY_DIRS}")
+    message (STATUS "  - TRAVELCCM_LIBRARIES ........... : ${TRAVELCCM_LIBRARIES}")
+    message (STATUS "  - TRAVELCCM_INCLUDE_DIRS ........ : ${TRAVELCCM_INCLUDE_DIRS}")
   endif (TravelCCM_FOUND)
 endmacro (display_travelccm)

@@ -2026,12 +2089,12 @@
   if (AirSched_FOUND)
     message (STATUS)
     message (STATUS "* AirSched:")
-    message (STATUS "  - AIRSCHED_VERSION ........... : ${AIRSCHED_VERSION}")
-    message (STATUS "  - AIRSCHED_BINARY_DIRS ....... : ${AIRSCHED_BINARY_DIRS}")
-    message (STATUS "  - AIRSCHED_EXECUTABLES ....... : ${AIRSCHED_EXECUTABLES}")
-    message (STATUS "  - AIRSCHED_LIBRARY_DIRS ...... : ${AIRSCHED_LIBRARY_DIRS}")
-    message (STATUS "  - AIRSCHED_LIBRARIES ......... : ${AIRSCHED_LIBRARIES}")
-    message (STATUS "  - AIRSCHED_INCLUDE_DIRS ...... : ${AIRSCHED_INCLUDE_DIRS}")
+    message (STATUS "  - AIRSCHED_VERSION .............. : ${AIRSCHED_VERSION}")
+    message (STATUS "  - AIRSCHED_BINARY_DIRS .......... : ${AIRSCHED_BINARY_DIRS}")
+    message (STATUS "  - AIRSCHED_EXECUTABLES .......... : ${AIRSCHED_EXECUTABLES}")
+    message (STATUS "  - AIRSCHED_LIBRARY_DIRS ......... : ${AIRSCHED_LIBRARY_DIRS}")
+    message (STATUS "  - AIRSCHED_LIBRARIES ............ : ${AIRSCHED_LIBRARIES}")
+    message (STATUS "  - AIRSCHED_INCLUDE_DIRS ......... : ${AIRSCHED_INCLUDE_DIRS}")
   endif (AirSched_FOUND)
 endmacro (display_airsched)

@@ -2040,12 +2103,12 @@
   if (AirRAC_FOUND)
     message (STATUS)
     message (STATUS "* AirRAC:")
-    message (STATUS "  - AIRRAC_VERSION ............. : ${AIRRAC_VERSION}")
-    message (STATUS "  - AIRRAC_BINARY_DIRS ......... : ${AIRRAC_BINARY_DIRS}")
-    message (STATUS "  - AIRRAC_EXECUTABLES ......... : ${AIRRAC_EXECUTABLES}")
-    message (STATUS "  - AIRRAC_LIBRARY_DIRS ........ : ${AIRRAC_LIBRARY_DIRS}")
-    message (STATUS "  - AIRRAC_LIBRARIES ........... : ${AIRRAC_LIBRARIES}")
-    message (STATUS "  - AIRRAC_INCLUDE_DIRS ........ : ${AIRRAC_INCLUDE_DIRS}")
+    message (STATUS "  - AIRRAC_VERSION ................ : ${AIRRAC_VERSION}")
+    message (STATUS "  - AIRRAC_BINARY_DIRS ............ : ${AIRRAC_BINARY_DIRS}")
+    message (STATUS "  - AIRRAC_EXECUTABLES ............ : ${AIRRAC_EXECUTABLES}")
+    message (STATUS "  - AIRRAC_LIBRARY_DIRS ........... : ${AIRRAC_LIBRARY_DIRS}")
+    message (STATUS "  - AIRRAC_LIBRARIES .............. : ${AIRRAC_LIBRARIES}")
+    message (STATUS "  - AIRRAC_INCLUDE_DIRS ........... : ${AIRRAC_INCLUDE_DIRS}")
   endif (AirRAC_FOUND)
 endmacro (display_airrac)

@@ -2054,12 +2117,12 @@
   if (RMOL_FOUND)
     message (STATUS)
     message (STATUS "* RMOL:")
-    message (STATUS "  - RMOL_VERSION ............... : ${RMOL_VERSION}")
-    message (STATUS "  - RMOL_BINARY_DIRS ........... : ${RMOL_BINARY_DIRS}")
-    message (STATUS "  - RMOL_EXECUTABLES ........... : ${RMOL_EXECUTABLES}")
-    message (STATUS "  - RMOL_LIBRARY_DIRS .......... : ${RMOL_LIBRARY_DIRS}")
-    message (STATUS "  - RMOL_LIBRARIES ............. : ${RMOL_LIBRARIES}")
-    message (STATUS "  - RMOL_INCLUDE_DIRS .......... : ${RMOL_INCLUDE_DIRS}")
+    message (STATUS "  - RMOL_VERSION .................. : ${RMOL_VERSION}")
+    message (STATUS "  - RMOL_BINARY_DIRS .............. : ${RMOL_BINARY_DIRS}")
+    message (STATUS "  - RMOL_EXECUTABLES .............. : ${RMOL_EXECUTABLES}")
+    message (STATUS "  - RMOL_LIBRARY_DIRS ............. : ${RMOL_LIBRARY_DIRS}")
+    message (STATUS "  - RMOL_LIBRARIES ................ : ${RMOL_LIBRARIES}")
+    message (STATUS "  - RMOL_INCLUDE_DIRS ............. : ${RMOL_INCLUDE_DIRS}")
   endif (RMOL_FOUND)
 endmacro (display_rmol)

@@ -2068,12 +2131,12 @@
   if (AirInv_FOUND)
     message (STATUS)
     message (STATUS "* AirInv:")
-    message (STATUS "  - AIRINV_VERSION ............. : ${AIRINV_VERSION}")
-    message (STATUS "  - AIRINV_BINARY_DIRS ......... : ${AIRINV_BINARY_DIRS}")
-    message (STATUS "  - AIRINV_EXECUTABLES ......... : ${AIRINV_EXECUTABLES}")
-    message (STATUS "  - AIRINV_LIBRARY_DIRS ........ : ${AIRINV_LIBRARY_DIRS}")
-    message (STATUS "  - AIRINV_LIBRARIES ........... : ${AIRINV_LIBRARIES}")
-    message (STATUS "  - AIRINV_INCLUDE_DIRS ........ : ${AIRINV_INCLUDE_DIRS}")
+    message (STATUS "  - AIRINV_VERSION ................ : ${AIRINV_VERSION}")
+    message (STATUS "  - AIRINV_BINARY_DIRS ............ : ${AIRINV_BINARY_DIRS}")
+    message (STATUS "  - AIRINV_EXECUTABLES ............ : ${AIRINV_EXECUTABLES}")
+    message (STATUS "  - AIRINV_LIBRARY_DIRS ........... : ${AIRINV_LIBRARY_DIRS}")
+    message (STATUS "  - AIRINV_LIBRARIES .............. : ${AIRINV_LIBRARIES}")
+    message (STATUS "  - AIRINV_INCLUDE_DIRS ........... : ${AIRINV_INCLUDE_DIRS}")
   endif (AirInv_FOUND)
 endmacro (display_airinv)

@@ -2082,12 +2145,12 @@
   if (AvlCal_FOUND)
     message (STATUS)
     message (STATUS "* AvlCal:")
-    message (STATUS "  - AVLCAL_VERSION ............. : ${AVLCAL_VERSION}")
-    message (STATUS "  - AVLCAL_BINARY_DIRS ......... : ${AVLCAL_BINARY_DIRS}")
-    message (STATUS "  - AVLCAL_EXECUTABLES ......... : ${AVLCAL_EXECUTABLES}")
-    message (STATUS "  - AVLCAL_LIBRARY_DIRS ........ : ${AVLCAL_LIBRARY_DIRS}")
-    message (STATUS "  - AVLCAL_LIBRARIES ........... : ${AVLCAL_LIBRARIES}")
-    message (STATUS "  - AVLCAL_INCLUDE_DIRS ........ : ${AVLCAL_INCLUDE_DIRS}")
+    message (STATUS "  - AVLCAL_VERSION ................ : ${AVLCAL_VERSION}")
+    message (STATUS "  - AVLCAL_BINARY_DIRS ............ : ${AVLCAL_BINARY_DIRS}")
+    message (STATUS "  - AVLCAL_EXECUTABLES ............ : ${AVLCAL_EXECUTABLES}")
+    message (STATUS "  - AVLCAL_LIBRARY_DIRS ........... : ${AVLCAL_LIBRARY_DIRS}")
+    message (STATUS "  - AVLCAL_LIBRARIES .............. : ${AVLCAL_LIBRARIES}")
+    message (STATUS "  - AVLCAL_INCLUDE_DIRS ........... : ${AVLCAL_INCLUDE_DIRS}")
   endif (AvlCal_FOUND)
 endmacro (display_avlcal)

@@ -2096,12 +2159,12 @@
   if (SimFQT_FOUND)
     message (STATUS)
     message (STATUS "* SimFQT:")
-    message (STATUS "  - SIMFQT_VERSION ............. : ${SIMFQT_VERSION}")
-    message (STATUS "  - SIMFQT_BINARY_DIRS ......... : ${SIMFQT_BINARY_DIRS}")
-    message (STATUS "  - SIMFQT_EXECUTABLES ......... : ${SIMFQT_EXECUTABLES}")
-    message (STATUS "  - SIMFQT_LIBRARY_DIRS ........ : ${SIMFQT_LIBRARY_DIRS}")
-    message (STATUS "  - SIMFQT_LIBRARIES ........... : ${SIMFQT_LIBRARIES}")
-    message (STATUS "  - SIMFQT_INCLUDE_DIRS ........ : ${SIMFQT_INCLUDE_DIRS}")
+    message (STATUS "  - SIMFQT_VERSION ................ : ${SIMFQT_VERSION}")
+    message (STATUS "  - SIMFQT_BINARY_DIRS ............ : ${SIMFQT_BINARY_DIRS}")
+    message (STATUS "  - SIMFQT_EXECUTABLES ............ : ${SIMFQT_EXECUTABLES}")
+    message (STATUS "  - SIMFQT_LIBRARY_DIRS ........... : ${SIMFQT_LIBRARY_DIRS}")
+    message (STATUS "  - SIMFQT_LIBRARIES .............. : ${SIMFQT_LIBRARIES}")
+    message (STATUS "  - SIMFQT_INCLUDE_DIRS ........... : ${SIMFQT_INCLUDE_DIRS}")
   endif (SimFQT_FOUND)
 endmacro (display_simfqt)

@@ -2110,12 +2173,12 @@
   if (SimLFS_FOUND)
     message (STATUS)
     message (STATUS "* SimLFS:")
-    message (STATUS "  - SIMLFS_VERSION ............. : ${SIMLFS_VERSION}")
-    message (STATUS "  - SIMLFS_BINARY_DIRS ......... : ${SIMLFS_BINARY_DIRS}")
-    message (STATUS "  - SIMLFS_EXECUTABLES ......... : ${SIMLFS_EXECUTABLES}")
-    message (STATUS "  - SIMLFS_LIBRARY_DIRS ........ : ${SIMLFS_LIBRARY_DIRS}")
-    message (STATUS "  - SIMLFS_LIBRARIES ........... : ${SIMLFS_LIBRARIES}")
-    message (STATUS "  - SIMLFS_INCLUDE_DIRS ........ : ${SIMLFS_INCLUDE_DIRS}")
+    message (STATUS "  - SIMLFS_VERSION ................ : ${SIMLFS_VERSION}")
+    message (STATUS "  - SIMLFS_BINARY_DIRS ............ : ${SIMLFS_BINARY_DIRS}")
+    message (STATUS "  - SIMLFS_EXECUTABLES ............ : ${SIMLFS_EXECUTABLES}")
+    message (STATUS "  - SIMLFS_LIBRARY_DIRS ........... : ${SIMLFS_LIBRARY_DIRS}")
+    message (STATUS "  - SIMLFS_LIBRARIES .............. : ${SIMLFS_LIBRARIES}")
+    message (STATUS "  - SIMLFS_INCLUDE_DIRS ........... : ${SIMLFS_INCLUDE_DIRS}")
   endif (SimLFS_FOUND)
 endmacro (display_simlfs)

@@ -2124,25 +2187,39 @@
   if (SimCRS_FOUND)
     message (STATUS)
     message (STATUS "* SimCRS:")
-    message (STATUS "  - SIMCRS_VERSION ............. : ${SIMCRS_VERSION}")
-    message (STATUS "  - SIMCRS_BINARY_DIRS ......... : ${SIMCRS_BINARY_DIRS}")
-    message (STATUS "  - SIMCRS_EXECUTABLES ......... : ${SIMCRS_EXECUTABLES}")
-    message (STATUS "  - SIMCRS_LIBRARY_DIRS ........ : ${SIMCRS_LIBRARY_DIRS}")
-    message (STATUS "  - SIMCRS_LIBRARIES ........... : ${SIMCRS_LIBRARIES}")
-    message (STATUS "  - SIMCRS_INCLUDE_DIRS ........ : ${SIMCRS_INCLUDE_DIRS}")
+    message (STATUS "  - SIMCRS_VERSION ................ : ${SIMCRS_VERSION}")
+    message (STATUS "  - SIMCRS_BINARY_DIRS ............ : ${SIMCRS_BINARY_DIRS}")
+    message (STATUS "  - SIMCRS_EXECUTABLES ............ : ${SIMCRS_EXECUTABLES}")
+    message (STATUS "  - SIMCRS_LIBRARY_DIRS ........... : ${SIMCRS_LIBRARY_DIRS}")
+    message (STATUS "  - SIMCRS_LIBRARIES .............. : ${SIMCRS_LIBRARIES}")
+    message (STATUS "  - SIMCRS_INCLUDE_DIRS ........... : ${SIMCRS_INCLUDE_DIRS}")
   endif (SimCRS_FOUND)
 endmacro (display_simcrs)
+
+# DSim
+macro (display_dsim)
+  if (DSim_FOUND)
+    message (STATUS)
+    message (STATUS "* DSim:")
+    message (STATUS "  - DSIM_VERSION .................. : ${DSIM_VERSION}")
+    message (STATUS "  - DSIM_BINARY_DIRS .............. : ${DSIM_BINARY_DIRS}")
+    message (STATUS "  - DSIM_EXECUTABLES .............. : ${DSIM_EXECUTABLES}")
+    message (STATUS "  - DSIM_LIBRARY_DIRS ............. : ${DSIM_LIBRARY_DIRS}")
+    message (STATUS "  - DSIM_LIBRARIES ................ : ${DSIM_LIBRARIES}")
+    message (STATUS "  - DSIM_INCLUDE_DIRS ............. : ${DSIM_INCLUDE_DIRS}")
+  endif (DSim_FOUND)
+endmacro (display_dsim)

 ##
 macro (display_status_all_modules)
   message (STATUS)
   foreach (_module_name ${PROJ_ALL_MOD_FOR_BLD})
-    message (STATUS "* Module ....................... : ${_module_name}")
-    message (STATUS "  + Layers to build ............ : ${${_module_name}_ALL_LAYERS}")
-    message (STATUS "  + Dependencies on other layers : ${${_module_name}_INTER_TARGETS}")
-    message (STATUS "  + Libraries to build/install . : ${${_module_name}_ALL_LIBS}")
-    message (STATUS "  + Executables to build/install : ${${_module_name}_ALL_EXECS}")
-    message (STATUS "  + Tests to perform ........... : ${${_module_name}_ALL_TESTS}")
+    message (STATUS "* Module .......................... : ${_module_name}")
+    message (STATUS "  + Layers to build ............... : ${${_module_name}_ALL_LAYERS}")
+    message (STATUS "  + Dependencies on other layers .. : ${${_module_name}_INTER_TARGETS}")
+    message (STATUS "  + Libraries to build/install .... : ${${_module_name}_ALL_LIBS}")
+    message (STATUS "  + Executables to build/install .. : ${${_module_name}_ALL_EXECS}")
+    message (STATUS "  + Tests to perform .............. : ${${_module_name}_ALL_TESTS}")
   endforeach (_module_name)
 endmacro (display_status_all_modules)

@@ -2150,65 +2227,67 @@
 macro (display_status)
   message (STATUS)
   message (STATUS "=============================================================")
-  message (STATUS "----------------------------------")
-  message (STATUS "---     Project Information    ---")
-  message (STATUS "----------------------------------")
-  message (STATUS "PROJECT_NAME ................... : ${PROJECT_NAME}")
-  message (STATUS "PACKAGE_PRETTY_NAME ............ : ${PACKAGE_PRETTY_NAME}")
-  message (STATUS "PACKAGE ........................ : ${PACKAGE}")
-  message (STATUS "PACKAGE_NAME ................... : ${PACKAGE_NAME}")
-  message (STATUS "PACKAGE_BRIEF .................. : ${PACKAGE_BRIEF}")
-  message (STATUS "PACKAGE_VERSION ................ : ${PACKAGE_VERSION}")
-  message (STATUS "GENERIC_LIB_VERSION ............ : ${GENERIC_LIB_VERSION}")
-  message (STATUS "GENERIC_LIB_SOVERSION .......... : ${GENERIC_LIB_SOVERSION}")
+  message (STATUS "-------------------------------------")
+  message (STATUS "---      Project Information      ---")
+  message (STATUS "-------------------------------------")
+  message (STATUS "PROJECT_NAME ...................... : ${PROJECT_NAME}")
+  message (STATUS "PACKAGE_PRETTY_NAME ............... : ${PACKAGE_PRETTY_NAME}")
+  message (STATUS "PACKAGE ........................... : ${PACKAGE}")
+  message (STATUS "PACKAGE_NAME ...................... : ${PACKAGE_NAME}")
+  message (STATUS "PACKAGE_BRIEF ..................... : ${PACKAGE_BRIEF}")
+  message (STATUS "PACKAGE_VERSION ................... : ${PACKAGE_VERSION}")
+  message (STATUS "GENERIC_LIB_VERSION ............... : ${GENERIC_LIB_VERSION}")
+  message (STATUS "GENERIC_LIB_SOVERSION ............. : ${GENERIC_LIB_SOVERSION}")
   message (STATUS)
-  message (STATUS "----------------------------------")
-  message (STATUS "---     Build Configuration    ---")
-  message (STATUS "----------------------------------")
-  message (STATUS "Modules to build ............... : ${PROJ_ALL_MOD_FOR_BLD}")
-  message (STATUS "Libraries to build/install ..... : ${PROJ_ALL_LIB_TARGETS}")
-  message (STATUS "Binaries to build/install ...... : ${PROJ_ALL_BIN_TARGETS}")
-  message (STATUS "Modules to test ................ : ${PROJ_ALL_MOD_FOR_TST}")
-  message (STATUS "Binaries to test ............... : ${PROJ_ALL_TST_TARGETS}")
+  message (STATUS "-------------------------------------")
+  message (STATUS "---       Build Configuration     ---")
+  message (STATUS "-------------------------------------")
+  message (STATUS "Modules to build .................. : ${PROJ_ALL_MOD_FOR_BLD}")
+  message (STATUS "Libraries to build/install ........ : ${PROJ_ALL_LIB_TARGETS}")
+  message (STATUS "Binaries to build/install ......... : ${PROJ_ALL_BIN_TARGETS}")
+  message (STATUS "Modules to test ................... : ${PROJ_ALL_MOD_FOR_TST}")
+  message (STATUS "Binaries to test .................. : ${PROJ_ALL_TST_TARGETS}")
   display_status_all_modules ()
   message (STATUS)
-  message (STATUS "BUILD_SHARED_LIBS .............. : ${BUILD_SHARED_LIBS}")
-  message (STATUS "CMAKE_BUILD_TYPE ............... : ${CMAKE_BUILD_TYPE}")
-  message (STATUS " * CMAKE_C_FLAGS ............... : ${CMAKE_C_FLAGS}")
-  message (STATUS " * CMAKE_CXX_FLAGS ............. : ${CMAKE_CXX_FLAGS}")
-  message (STATUS " * BUILD_FLAGS ................. : ${BUILD_FLAGS}")
-  message (STATUS " * COMPILE_FLAGS ............... : ${COMPILE_FLAGS}")
-  message (STATUS "CMAKE_MODULE_PATH .............. : ${CMAKE_MODULE_PATH}")
-  message (STATUS "CMAKE_INSTALL_PREFIX ........... : ${CMAKE_INSTALL_PREFIX}")
+  message (STATUS "BUILD_SHARED_LIBS ................. : ${BUILD_SHARED_LIBS}")
+  message (STATUS "CMAKE_BUILD_TYPE .................. : ${CMAKE_BUILD_TYPE}")
+  message (STATUS " * CMAKE_C_FLAGS .................. : ${CMAKE_C_FLAGS}")
+  message (STATUS " * CMAKE_CXX_FLAGS ................ : ${CMAKE_CXX_FLAGS}")
+  message (STATUS " * BUILD_FLAGS .................... : ${BUILD_FLAGS}")
+  message (STATUS " * COMPILE_FLAGS .................. : ${COMPILE_FLAGS}")
+  message (STATUS "CMAKE_MODULE_PATH ................. : ${CMAKE_MODULE_PATH}")
+  message (STATUS "CMAKE_INSTALL_PREFIX .............. : ${CMAKE_INSTALL_PREFIX}")
   display_doxygen ()
   message (STATUS)
-  message (STATUS "----------------------------------")
-  message (STATUS "--- Installation Configuration ---")
-  message (STATUS "----------------------------------")
-  message (STATUS "INSTALL_LIB_DIR ................ : ${INSTALL_LIB_DIR}")
-  message (STATUS "INSTALL_BIN_DIR ................ : ${INSTALL_BIN_DIR}")
-  message (STATUS "INSTALL_INCLUDE_DIR ............ : ${INSTALL_INCLUDE_DIR}")
-  message (STATUS "INSTALL_DATA_DIR ............... : ${INSTALL_DATA_DIR}")
-  message (STATUS "INSTALL_SAMPLE_DIR ............. : ${INSTALL_SAMPLE_DIR}")
-  message (STATUS "INSTALL_DOC .................... : ${INSTALL_DOC}" )
+  message (STATUS "-------------------------------------")
+  message (STATUS "---  Installation Configuration   ---")
+  message (STATUS "-------------------------------------")
+  message (STATUS "INSTALL_LIB_DIR ................... : ${INSTALL_LIB_DIR}")
+  message (STATUS "INSTALL_BIN_DIR ................... : ${INSTALL_BIN_DIR}")
+  message (STATUS "CMAKE_INSTALL_RPATH ............... : ${CMAKE_INSTALL_RPATH}")
+  message (STATUS "CMAKE_INSTALL_RPATH_USE_LINK_PATH . : ${CMAKE_INSTALL_RPATH_USE_LINK_PATH}")
+  message (STATUS "INSTALL_INCLUDE_DIR ............... : ${INSTALL_INCLUDE_DIR}")
+  message (STATUS "INSTALL_DATA_DIR .................. : ${INSTALL_DATA_DIR}")
+  message (STATUS "INSTALL_SAMPLE_DIR ................ : ${INSTALL_SAMPLE_DIR}")
+  message (STATUS "INSTALL_DOC ....................... : ${INSTALL_DOC}" )
   message (STATUS)
-  message (STATUS "----------------------------------")
-  message (STATUS "---   Packaging Configuration  ---")
-  message (STATUS "----------------------------------")
-  message (STATUS "CPACK_PACKAGE_CONTACT .......... : ${CPACK_PACKAGE_CONTACT}")
-  message (STATUS "CPACK_PACKAGE_VENDOR ........... : ${CPACK_PACKAGE_VENDOR}")
-  message (STATUS "CPACK_PACKAGE_VERSION .......... : ${CPACK_PACKAGE_VERSION}")
-  message (STATUS "CPACK_PACKAGE_DESCRIPTION_FILE . : ${CPACK_PACKAGE_DESCRIPTION_FILE}")
-  message (STATUS "CPACK_RESOURCE_FILE_LICENSE .... : ${CPACK_RESOURCE_FILE_LICENSE}")
-  message (STATUS "CPACK_GENERATOR ................ : ${CPACK_GENERATOR}")
-  message (STATUS "CPACK_DEBIAN_PACKAGE_DEPENDS ... : ${CPACK_DEBIAN_PACKAGE_DEPENDS}")
-  message (STATUS "CPACK_SOURCE_GENERATOR ......... : ${CPACK_SOURCE_GENERATOR}")
-  message (STATUS "CPACK_SOURCE_PACKAGE_FILE_NAME . : ${CPACK_SOURCE_PACKAGE_FILE_NAME}")
+  message (STATUS "-------------------------------------")
+  message (STATUS "---    Packaging Configuration    ---")
+  message (STATUS "-------------------------------------")
+  message (STATUS "CPACK_PACKAGE_CONTACT ............. : ${CPACK_PACKAGE_CONTACT}")
+  message (STATUS "CPACK_PACKAGE_VENDOR .............. : ${CPACK_PACKAGE_VENDOR}")
+  message (STATUS "CPACK_PACKAGE_VERSION ............. : ${CPACK_PACKAGE_VERSION}")
+  message (STATUS "CPACK_PACKAGE_DESCRIPTION_FILE .... : ${CPACK_PACKAGE_DESCRIPTION_FILE}")
+  message (STATUS "CPACK_RESOURCE_FILE_LICENSE ....... : ${CPACK_RESOURCE_FILE_LICENSE}")
+  message (STATUS "CPACK_GENERATOR ................... : ${CPACK_GENERATOR}")
+  message (STATUS "CPACK_DEBIAN_PACKAGE_DEPENDS ...... : ${CPACK_DEBIAN_PACKAGE_DEPENDS}")
+  message (STATUS "CPACK_SOURCE_GENERATOR ............ : ${CPACK_SOURCE_GENERATOR}")
+  message (STATUS "CPACK_SOURCE_PACKAGE_FILE_NAME .... : ${CPACK_SOURCE_PACKAGE_FILE_NAME}")
   #
   message (STATUS)
-  message (STATUS "---------------------------------")
-  message (STATUS "---     External libraries    ---")
-  message (STATUS "---------------------------------")
+  message (STATUS "------------------------------------")
+  message (STATUS "---      External libraries      ---")
+  message (STATUS "------------------------------------")
   #
   display_python ()
   display_zeromq ()
@@ -2229,6 +2308,7 @@
   display_simfqt ()
   display_simlfs ()
   display_simcrs ()
+  display_dsim ()
   #
   message (STATUS)
   message (STATUS "Change a value with: cmake -D<Variable>=<Value>" )


Minor patch so that sister projects may export things in config.cmake.

--- kitchen/kitchen.cmake
+++ kitchen/kitchen.cmake
@@ -44,8 +44,9 @@

   add_subdirectory(ecto/kitchen/doc ${ecto_kitchen_BINARY_DIR}/doc)

-  #this sets ecto_DIR so that subsequent projects may find ecto-config.cmake
-  set(ecto_DIR ${CMAKE_CURRENT_BINARY_DIR})
+  #this sets PREFIX_PATH so that kitchen projects may find *-config.cmake
+  #that are generated by sister projects
+  list(APPEND CMAKE_PREFIX_PATH  ${CMAKE_CURRENT_BINARY_DIR})

   foreach(proj ${KITCHEN_PROJECTS})
     message(STATUS "-~v/^\\v~- ${proj}")


kata:rust: Point the rust version to KATA_RUST_VERSION

So we don't need to maintain the version at two places.

Change-Id: Ibbbb9b7744bdd4e209404bf744e2f57e0022db7a
GitOrigin-RevId: 7583eaba9d5364e6c47ede3e5fed4505c73ae790

--- apps/system/rust.cmake
+++ apps/system/rust.cmake
@@ -51,7 +51,7 @@
         WORKING_DIRECTORY ${RUST_SOURCE_DIR}
         COMMAND
             ${CMAKE_COMMAND} -E env RUSTFLAGS=${RUSTFLAGS}
-            cargo +nightly-2021-08-05 build
+            cargo "+$ENV{KATA_RUST_VERSION}" build
             --target ${RUST_TARGET}
             ${CARGO_OPTIONS} ${CARGO_RELEASE}
             --target-dir ${RUST_BUILD_DIR}


fix Superbuild on Linux when not using system Qt

There was a bug in the combination of superbuild + Qt 4.8.x
That is why if you did not install any Qt related lib in your
Linux distribution, the superbuild would not build Qt.
(see comment in code).

--- Superbuild/Projects/qt.cmake
+++ Superbuild/Projects/qt.cmake
@@ -84,3 +84,16 @@
     DEPENDEES patch
     DEPENDERS configure)
 endif()
+
+# fix https://bugreports.qt.io/browse/QTBUG-5774 see also the links available there.
+# this fix is required when building Qt4 from the Superbuild without having Qt4
+# packages installed in you distribution
+# this fix does the same things as:
+# https://gitlab.kitware.com/paraview/common-superbuild/blob/master/projects/qt4.common.cmake#L5
+# this fix requires bash and a CMAKE_MAKE_PROGRAM to be "make"
+if (UNIX AND (NOT APPLE))
+  add_external_project_step(qt-fix-lucene-link
+    COMMAND bash -c "cd <SOURCE_DIR>/../qt-build && make -j4 install"
+    DEPENDEES configure
+    DEPENDERS build)
+endif()


Add definitions of ORTP_FOUND, ORTP_INCLUDE_DIRS and ORTP_LIBRARIES in ORTPConfig.cmake.

--- ORTPConfig.cmake
+++ ORTPConfig.cmake
@@ -19,5 +19,17 @@
 # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #
 ############################################################################
+#
+# Config file for the oRTP package.
+# It defines the following variables:
+#
+#  ORTP_FOUND - system has oRTP
+#  ORTP_INCLUDE_DIRS - the oRTP include directory
+#  ORTP_LIBRARIES - The libraries needed to use oRTP

 include("${CMAKE_CURRENT_LIST_DIR}/ORTPTargets.cmake")
+
+get_filename_component(ORTP_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
+set(ORTP_INCLUDE_DIRS "${ORTP_CMAKE_DIR}/../../../include")
+set(ORTP_LIBRARIES BelledonneCommunications::ortp)
+set(ORTP_FOUND 1)


Replace the X-Ray version entry with the Alpha Particle one

--- core/cmake/FindGluonCore.cmake
+++ core/cmake/FindGluonCore.cmake
@@ -19,11 +19,11 @@
     set(_gluonCoreReq "REQUIRED")
 endif (GluonCore_FIND_REQUIRED)

-set(GLUON_VERSION_MAJOR     0       CACHE STRING "Gluon Major Version")
-set(GLUON_VERSION_MINOR     70      CACHE STRING "Gluon Minor Version")
-set(GLUON_VERSION_PATCH     0       CACHE STRING "Gluon Patch Version")
+set(GLUON_VERSION_MAJOR     0                CACHE STRING "Gluon Major Version")
+set(GLUON_VERSION_MINOR     72               CACHE STRING "Gluon Minor Version")
+set(GLUON_VERSION_PATCH     0                CACHE STRING "Gluon Patch Version")
 set(GLUON_VERSION_STRING    "${GLUON_VERSION_MAJOR}.${GLUON_VERSION_MINOR}.${GLUON_VERSION_PATCH}" CACHE STRING "Gluon Version String")
-set(GLUON_VERSION_NAME      "X-Ray" CACHE STRING "Gluon Version Name")
+set(GLUON_VERSION_NAME      "Alpha Particle" CACHE STRING "Gluon Version Name")

 find_path(GLUON_INSTALL_PREFIX
     NAMES


use xz for unix packages

use xz for unix packages

--- util/cmake/SeqAnBuildSystem.cmake
+++ util/cmake/SeqAnBuildSystem.cmake
@@ -331,7 +331,7 @@
   if (CMAKE_SYSTEM_NAME MATCHES "Windows")
     set (CPACK_GENERATOR "ZIP")
   else ()
-    set (CPACK_GENERATOR "ZIP;TBZ2")
+    set (CPACK_GENERATOR "ZIP;TXZ")
   endif ()

   # Set defaults for CPACK_PACKAGE_DESCRIPTION_FILE and CPACK_RESOURCE_FILE_LICENSE


COMP: SuperBuild.cmake - Change macro ctk_set_superbuild_boolean_arg into a function

--- SuperBuild.cmake
+++ SuperBuild.cmake
@@ -150,14 +150,14 @@
 ENDFOREACH()

 #-----------------------------------------------------------------------------
-# Convenient macro allowing to define superbuild arg
-#
-MACRO(ctk_set_superbuild_boolean_arg ctk_cmake_var)
-  SET(superbuild_${ctk_cmake_var} ON)
-  IF(DEFINED ${ctk_cmake_var} AND NOT ${ctk_cmake_var})
-    SET(superbuild_${ctk_cmake_var} OFF)
+# Convenient function allowing to define superbuild arg
+#
+FUNCTION(ctk_set_superbuild_boolean_arg ctk_cmake_var)
+  SET(superbuild_${ctk_cmake_var} OFF)
+  IF(DEFINED ${ctk_cmake_var})
+    SET(superbuild_${ctk_cmake_var} ${${ctk_cmake_var}} PARENT_SCOPE)
   ENDIF()
-ENDMACRO()
+ENDFUNCTION()

 #-----------------------------------------------------------------------------
 # Set superbuild boolean args


ENH: Cleaning CMakeLists files

ENH: Cleaning CMakeLists files

Removed options to allow building external tools that are not used as part of DTIPrep. These tools can easily be built altogether using the NAMICExternalProjects project.

--- SuperBuild.cmake
+++ SuperBuild.cmake
@@ -349,24 +349,4 @@
     ALWAYS 1
   )

-option(USE_DTIReg "Build DTIReg" OFF)
-if(USE_DTIReg)
-  include(${CMAKE_CURRENT_LIST_DIR}/SuperBuild/External_BatchMake.cmake)
-  include(${CMAKE_CURRENT_LIST_DIR}/SuperBuild/External_DTIReg.cmake)
-endif()
-
-
-option(USE_DTI_Tract_Stat "Build DTI_Tract_Stat" OFF)
-option(USE_FVLight "Build FVLight" OFF)
-if(USE_DTI_Tract_Stat OR USE_FVLight )
-  include(${CMAKE_CURRENT_LIST_DIR}/SuperBuild/External_QWT.cmake)
-endif()
-
-if(USE_DTI_Tract_Stat)
-  include(${CMAKE_CURRENT_LIST_DIR}/SuperBuild/External_DTI_Tract_Stat.cmake)
-endif()
-
-if(USE_FVLight)
-  include(${CMAKE_CURRENT_LIST_DIR}/SuperBuild/External_FVLight.cmake)
-endif()
-
+


Fix for avrdude info command

Fix for avrdude info command

--- avr.cmake
+++ avr.cmake
@@ -48,7 +48,7 @@
                 -c ${PROG_ID}
                 -p ${PROG_PART}
                 #-P ${PROGR_PORT} -e
-                -U -U hfuse:r:high.txt:r -U lfuse:r:low.txt:r
+                -U hfuse:r:high.txt:r -U lfuse:r:low.txt:r
         VERBATIM)

 add_custom_command(


Make standard module tests use MITK_DATA_DIR path

--- CMake/mitkMacroCreateModuleTests.cmake
+++ CMake/mitkMacroCreateModuleTests.cmake
@@ -61,7 +61,7 @@
       ELSE(EXISTS ${image})
         # todo: maybe search other paths as well
         # yes, please in mitk/Testing/Data, too
-        SET(IMAGE_FULL_PATH ${MITK_SOURCE_DIR}/Core/Code/Testing/Data/${image})
+        SET(IMAGE_FULL_PATH ${MITK_DATA_DIR}/${image})
       ENDIF(EXISTS ${image})

       IF(EXISTS ${IMAGE_FULL_PATH})
@@ -71,7 +71,7 @@
           ADD_TEST(${TName}_${ImageName} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TESTDRIVER} ${TName} ${IMAGE_FULL_PATH})
           # Add labels for CDash subproject support
           IF(MODULE_SUBPROJECTS)
-            SET_PROPERTY(TEST ${TName} PROPERTY LABELS ${MODULE_SUBPROJECTS} MITK)
+            SET_PROPERTY(TEST ${TName}_${ImageName} PROPERTY LABELS ${MODULE_SUBPROJECTS} MITK)
           ENDIF()
         ENDFOREACH( test )
       ELSE(EXISTS ${IMAGE_FULL_PATH})


修复find错误的BUG

修复find错误的BUG

--- build/cmake/dxm_find/dxm_find_module.cmake
+++ build/cmake/dxm_find/dxm_find_module.cmake
@@ -218,6 +218,9 @@
 		COMPONENTS
 		HEADERS
 		)
+	SET(DXM_FIND_ARG_PACKAGE)
+	SET(DXM_FIND_ARG_COMPONENTS)
+	SET(DXM_FIND_ARG_HEADERS)

 	foreach(_ARG ${_VAL_ARGS})
 		set(${_ARG})


Leftover check from moving from sopt

Leftover check from moving from sopt

--- scripts/AddCatchTest.cmake
+++ scripts/AddCatchTest.cmake
@@ -1,7 +1,3 @@
-if(NOT tests)
-    return()
-endif()
-
 # First finds or downloads catch
 find_package(Catch)
 if(NOT CATCH_FOUND)


Enable AddonManager on Tizen Common profile as well

Change-Id: If8c3ac58f88451c5de20bc61de64b68b47c025ce

--- build/tizen/profiles/common-profile.cmake
+++ build/tizen/profiles/common-profile.cmake
@@ -41,7 +41,7 @@
     ${adaptor_trace_common_src_files}
     ${adaptor_thread_common_src_files}
     ${adaptor_addons_common_src_files}
-    ${adaptor_addons_dummy_src_files}
+    ${adaptor_addons_tizen_src_files}
     ${devel_api_text_abstraction_src_files}
     ${static_libraries_glyphy_src_files}
     ${static_libraries_libunibreak_src_files}