ENH: Update VTK version. Version 5 support is deprecated

DTIPrep no longer supports vtk version 5

--- SuperBuild/External_VTK.cmake
+++ SuperBuild/External_VTK.cmake
@@ -24,33 +24,7 @@
 set(extProjName VTK) #The find_package known name
 set(proj        VTK) #This local name

-
-#Setting VTK_VERSION_MAJOR to its default value if it has not been set before
-set(VTK_VERSION_MAJOR 5 CACHE STRING "Choose the expected VTK major version to build Slicer (5 or 6).")
-# Set the possible values of VTK major version for cmake-gui
-set_property(CACHE VTK_VERSION_MAJOR PROPERTY STRINGS "5" "6")
-if(NOT "${VTK_VERSION_MAJOR}" STREQUAL "5" AND NOT "${VTK_VERSION_MAJOR}" STREQUAL "6")
-  set(VTK_VERSION_MAJOR 5 CACHE STRING "Choose the expected VTK major version to build Slicer (5 or 6)." FORCE)
-  message(WARNING "Setting VTK_VERSION_MAJOR to '5' as an valid value was specified.")
-endif()
-
-set(USE_VTKv5 ON)
-set(USE_VTKv6 OFF)
-if(${VTK_VERSION_MAJOR} STREQUAL "6")
-  set(USE_VTKv5 OFF)
-  set(USE_VTKv6 ON)
-endif()
-
-if(USE_VTKv6)
-  set(${extProjName}_REQUIRED_VERSION "6.1")  #If a required version is necessary, then set this, else leave blank
-else()
-  set(${extProjName}_REQUIRED_VERSION "5.10")  #If a required version is necessary, then set this, else leave blank
-endif()
-
-# Sanity checks
-#if(DEFINED ${extProjName}_DIR AND NOT EXISTS ${${extProjName}_DIR})
-#  message(FATAL_ERROR "${extProjName}_DIR variable is defined but corresponds to non-existing directory (${${extProjName}_DIR})")
-#endif()
+set(${extProjName}_REQUIRED_VERSION "6.1")  #If a required version is necessary, then set this, else leave blank

 # Set dependency list
 set(${proj}_DEPENDENCIES "")
@@ -96,13 +70,9 @@

   set(VTK_QT_ARGS)
   if(${PRIMARY_PROJECT_NAME}_USE_QT)
-    if(USE_VTKv6)
-      set(VTK_QT_ARGS
-        -DModule_vtkGUISupportQt:BOOL=ON
-        )
-    else()
-      set(VTK_QT_ARGS)
-    endif()
+    set(VTK_QT_ARGS
+      -DModule_vtkGUISupportQt:BOOL=ON
+    )
     if(NOT APPLE)
       list(APPEND VTK_QT_ARGS
         #-DDESIRED_QT_VERSION:STRING=4 # Unused
@@ -190,13 +160,10 @@
       ${VTK_MAC_ARGS}
     )
   ### --- End Project specific additions
-if(USE_VTKv6)
+
   set(${proj}_GIT_TAG "v6.1.0")
   set(${proj}_REPOSITORY ${git_protocol}://vtk.org/VTK.git)
-else()
-  set(${proj}_REPOSITORY ${git_protocol}://github.com/BRAINSia/VTK.git)
-  set(${proj}_GIT_TAG "FixClangFailure_VTK5.10_release")
-endif()
+
   ExternalProject_Add(${proj}
     GIT_REPOSITORY ${${proj}_REPOSITORY}
     GIT_TAG ${${proj}_GIT_TAG}
@@ -226,15 +193,11 @@
     DEPENDERS configure
     COMMAND ${CMAKE_COMMAND}
     -DVTKSource=<SOURCE_DIR>
-    -DUSE_VTKv6=${USE_VTKv6}
+    -DUSE_VTKv6=ON
     -P ${VTKPatchScript}
     )

-if(USE_VTKv6)
-  set(${extProjName}_DIR ${CMAKE_BINARY_DIR}/${proj}-install/lib/cmake/vtk-6.1)
-else()
-  set(${extProjName}_DIR ${CMAKE_BINARY_DIR}/${proj}-install/lib/vtk-5.10)
-endif()
+set(${extProjName}_DIR ${CMAKE_BINARY_DIR}/${proj}-install/lib/cmake/vtk-6.1)

 else()
   if(${USE_SYSTEM_${extProjName}})


BUG: Turn off ITK modules when superbuild options are disabled.

If the superbuild options are turn on, ITK is built with the modules enabled,
then the superbuild option is turned off, but the module is not disabled.
This can result in a linking error.

Change-Id: I03fea5d893ce32d19ea31457411bc004752c4a81

--- Superbuild/External-ITK.cmake
+++ Superbuild/External-ITK.cmake
@@ -13,6 +13,11 @@
     -DModule_ITKLevelSetsv4Visualization:BOOL=ON
     )
   set( _vtk_depends VTK )
+else()
+  set( _vtk_args
+    -DModule_ITKVtkGlue:BOOL=OFF
+    -DModule_ITKLevelSetsv4Visualization:BOOL=OFF
+    )
 endif()

 set( _opencv_args )
@@ -22,6 +27,10 @@
     -DModule_ITKVideoBridgeOpenCV:BOOL=ON
     )
   set( _opencv_depends OpenCV )
+else()
+  set( _opencv_args
+    -DModule_ITKVideoBridgeOpenCV:BOOL=OFF
+    )
 endif()

 set(use_shared_libs OFF)
@@ -29,6 +38,8 @@
 if( ITKExamples_USE_WRAP_PYTHON )
   set(use_shared_libs ON)
   set( _wrap_python_args -DITK_WRAP_PYTHON:BOOL=ON)
+else()
+  set( _wrap_python_args -DITK_WRAP_PYTHON:BOOL=OFF)
 endif()

 ExternalProject_Add( ITK


ENH: Bump TubeTK to v1.3.3

ENH: Bump TubeTK to v1.3.3

Major improvement is support for Python 3.10

--- Modules/Remote/TubeTK.remote.cmake
+++ Modules/Remote/TubeTK.remote.cmake
@@ -48,5 +48,5 @@
   "http://www.tubetk.org"
   MODULE_COMPLIANCE_LEVEL 3
   GIT_REPOSITORY ${git_protocol}://github.com/InsightSoftwareConsortium/ITKTubeTK.git
-  GIT_TAG 88fe752151e3160d0708b50e4f730dd3b8e03113
+  GIT_TAG 1.3.3
   )


Add -Wall to Linux compilations

Add -Wall to Linux compilations

--- cmake/ExternalProjectConfig.cmake
+++ cmake/ExternalProjectConfig.cmake
@@ -1,7 +1,7 @@
 set(ep_common_c_flags "${CMAKE_C_FLAGS_INIT} ${ADDITIONAL_C_FLAGS}")

 if (NOT APPLE AND NOT WIN32)
-    set(ep_common_cxx_flags "${CMAKE_CXX_FLAGS_INIT} ${ADDITIONAL_CXX_FLAGS} -fpermissive")
+    set(ep_common_cxx_flags "${CMAKE_CXX_FLAGS_INIT} ${ADDITIONAL_CXX_FLAGS} -Wall -fpermissive")
 else()
     set(ep_common_cxx_flags "${CMAKE_CXX_FLAGS_INIT} ${ADDITIONAL_CXX_FLAGS}")
 endif()


create missing directories in atomic_configure_file (#566)

--- cmake/atomic_configure_file.cmake
+++ cmake/atomic_configure_file.cmake
@@ -1,5 +1,9 @@
 function(atomic_configure_file input output)
   set(atomic_file "${CMAKE_BINARY_DIR}/atomic_configure_file")
   configure_file("${input}" "${atomic_file}" ${ARGN})
+  get_filename_component(output_path ${output} PATH)
+  if(NOT EXISTS ${output_path})
+    file(MAKE_DIRECTORY ${output_path})
+  endif()
   file(RENAME "${atomic_file}" "${output}")
 endfunction()


fixed nasty toolchain include bug

fixed nasty toolchain include bug

--- cmake/avr-arduino-toolchain.cmake
+++ cmake/avr-arduino-toolchain.cmake
@@ -90,7 +90,7 @@
         get_filename_component(subdir ${cmakedir} PATH)
         if(IS_DIRECTORY ${subdir})
             get_filename_component(target ${subdir} NAME)
-            message(STATUS "Adding ubirch avr library: ${target} (${subdir})")
+            message(STATUS "Adding ubirch avr library: ${target}")
             add_subdirectory(${subdir})
         endif()
     endforeach()
@@ -208,8 +208,14 @@
             endif()

             # now add a library target
-            file(GLOB_RECURSE sources ${MYLIBS}/${NAME}/*.S ${MYLIBS}/${NAME}/*.c ${MYLIBS}/${NAME}/*.cpp )
-            string(REGEX REPLACE "examples/.*" "" sources "${sources}")
+            file(GLOB_RECURSE libsources FOLLOW_SYMLINKS ${MYLIBS}/${NAME}/*.S ${MYLIBS}/${NAME}/*.c ${MYLIBS}/${NAME}/*.cpp)
+            # go through list of sources and remove the examples
+            foreach(file ${libsources})
+               STRING(REGEX MATCH "/examples/" example ${file})
+               if(NOT example)
+                 list(APPEND sources ${file})
+               endif()
+            endforeach()
             if(sources)
                 message(STATUS "Adding external library: ${NAME}")
                 add_library(${NAME} ${sources})
@@ -218,8 +224,10 @@
                 set(SKETCH_LIBS ${SKETCH_LIBS} CACHE INTERNAL "arduino sketch libraries")
                 foreach(src ${sources})
                     get_filename_component(dir ${src} PATH)
-                    target_include_directories(${NAME} PUBLIC ${dir})
+                    list(APPEND includes ${dir})
                 endforeach()
+                list(REMOVE_DUPLICATES includes)
+                target_include_directories(${NAME} PUBLIC ${includes})
             else()
                 message(FATAL_ERROR "Could not find sources in library ${NAME}!")
             endif()


Update sqlpp11 to new release and removed patch command

--- cmake/modules/Build-sqlpp11.cmake
+++ cmake/modules/Build-sqlpp11.cmake
@@ -1,26 +1,13 @@
 set(SQLPP11_INSTALL_DIR ${CMAKE_THIRD_PARTY_DIR})

-if(HAVE_SQLPP11_TEMPLATE_SUPPORT_PATCHED)
-  ExternalProject_Add(
-    sqlpp11
-    GIT_REPOSITORY https://github.com/rbock/sqlpp11
-    GIT_TAG c729387ab66b19acdff02f047660bdda8f75b343
-    CMAKE_ARGS -G ${CMAKE_GENERATOR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DHinnantDate_INCLUDE_DIR=${DATE_INCLUDE_DIR} -DCMAKE_INSTALL_PREFIX=${SQLPP11_INSTALL_DIR} -DENABLE_TESTS=OFF
-    PATCH_COMMAND ${PATCH_SCRIPT_PATH} ${CMAKE_PATCH_DIR}/sqlpp11_template.patch
-    INSTALL_DIR ${SQLPP11_INSTALL_DIR}
-    DEPENDS DATE::DATE
-  )
-else()
-  ExternalProject_Add(
-    sqlpp11
-    GIT_REPOSITORY https://github.com/rbock/sqlpp11
-    GIT_TAG c729387ab66b19acdff02f047660bdda8f75b343
-    CMAKE_ARGS -G ${CMAKE_GENERATOR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DHinnantDate_INCLUDE_DIR=${DATE_INCLUDE_DIR} -DCMAKE_INSTALL_PREFIX=${SQLPP11_INSTALL_DIR} -DENABLE_TESTS=OFF
-    PATCH_COMMAND ${PATCH_SCRIPT_PATH} ${CMAKE_PATCH_DIR}/sqlpp11_ddl2cpp_mediumint_unsigned.patch
-    INSTALL_DIR ${SQLPP11_INSTALL_DIR}
-    DEPENDS DATE::DATE
-  )
-endif()
+ExternalProject_Add(
+  sqlpp11
+  GIT_REPOSITORY https://github.com/rbock/sqlpp11
+  GIT_TAG 0.58
+  CMAKE_ARGS -G ${CMAKE_GENERATOR} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DHinnantDate_INCLUDE_DIR=${DATE_INCLUDE_DIR} -DCMAKE_INSTALL_PREFIX=${SQLPP11_INSTALL_DIR} -DENABLE_TESTS=OFF
+  INSTALL_DIR ${SQLPP11_INSTALL_DIR}
+  DEPENDS DATE::DATE
+)

 ExternalProject_Get_Property(
   sqlpp11


Add function to replace compiler options

--- cmake/modules/DeskvoxConfig.cmake
+++ cmake/modules/DeskvoxConfig.cmake
@@ -12,6 +12,33 @@
 #if(DESKVOX_COMPILER_IS_GCC_COMPATIBLE)
 #    add_definitions(-std=c++0x)
 #endif()
+
+
+#---------------------------------------------------------------------------------------------------
+# deskvox_replace_compiler_option(var, old, new)
+#
+# Replaces a compiler option or switch <old> in <var> by <new>
+# If <old> is not in <var>, appends <new> to <var>
+# Example:
+#
+#	deskvox_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O2")
+#
+
+
+function(deskvox_replace_compiler_option var old new)
+  # If the option already is on the variable, don't add it:
+  if("${${var}}" MATCHES "(^| )${new}($| )")
+    set(n "")
+  else()
+    set(n "${new}")
+  endif()
+  if("${${var}}" MATCHES "(^| )${old}($| )")
+    string(REGEX REPLACE "(^| )${old}($| )" " ${n} " ${var} "${${var}}")
+  else()
+    set(${var} "${${var}} ${n}")
+  endif()
+  set(${var} "${${var}}" PARENT_SCOPE)
+endfunction()

 #---------------------------------------------------------------------------------------------------


[cmake] Determine MSVC host triple correctly when cross-compiling

CMAKE_CL_64 will never be set when cross-compiling with clang-cl, since
CMake relies on an actual VS environment in order to determine it.
Instead, use the size of a void pointer to determine the bit width of
the host compiler (and therefore the host triple), which works for both
native and cross compilation.

Note that, with the impending advent of Windows on AArch64, assuming
that a 64-bit host == x86_64 isn't correct either, but that's something
to be addressed in a follow-up.

Differential Revision: https://reviews.llvm.org/D41155

git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@320615 91177308-0d34-0410-b5e6-96231b3b80d8

--- cmake/modules/GetHostTriple.cmake
+++ cmake/modules/GetHostTriple.cmake
@@ -3,7 +3,7 @@

 function( get_host_triple var )
   if( MSVC )
-    if( CMAKE_CL_64 )
+    if( CMAKE_SIZEOF_VOID_P EQUAL 8 )
       set( value "x86_64-pc-win32" )
     else()
       set( value "i686-pc-win32" )


SUBVERSION_INSTALL_DIR -> SUBVERSION_INSTALL_PATH

as in cmake-build-instructions described.

--- cmakemodules/FindSubversion.cmake
+++ cmakemodules/FindSubversion.cmake
@@ -5,13 +5,13 @@
 IF (UNIX)

   MACRO(FIND_SUB_LIB targetvar libname)
-    IF (SUBVERSION_INSTALL_DIR)
+    IF (SUBVERSION_INSTALL_PATH)
         FIND_LIBRARY(${targetvar} ${libname}
             PATHS
-            ${SUBVERSION_INSTALL_DIR}/lib
+            ${SUBVERSION_INSTALL_PATH}/lib
             NO_DEFAULT_PATH
         )
-    ENDIF(SUBVERSION_INSTALL_DIR)
+    ENDIF(SUBVERSION_INSTALL_PATH)
     FIND_LIBRARY(${targetvar} ${libname}
         PATHS
         /usr/lib
@@ -19,13 +19,13 @@
         )
   ENDMACRO(FIND_SUB_LIB)

-  IF (SUBVERSION_INSTALL_DIR)
+  IF (SUBVERSION_INSTALL_PATH)
     FIND_PATH(SUBVERSION_INCLUDE_DIR svn_client.h
         PATHS
-        ${SUBVERSION_INSTALL_DIR}/include/subversion-1
+        ${SUBVERSION_INSTALL_PATH}/include/subversion-1
         NO_DEFAULT_PATH
     )
-  ENDIF (SUBVERSION_INSTALL_DIR)
+  ENDIF (SUBVERSION_INSTALL_PATH)
   FIND_PATH(SUBVERSION_INCLUDE_DIR svn_client.h
         /usr/include/subversion-1
         /usr/local/include/subversion-1)


Fix path to eigen during superbuild

Fix path to eigen during superbuild

--- Superbuild/Projects/veloview.cmake
+++ Superbuild/Projects/veloview.cmake
@@ -4,6 +4,6 @@
   CMAKE_ARGS
     -DBUILD_SHARED_LIBS:BOOL=ON
     -DParaView_DIR:PATH=${SuperBuild_BINARY_DIR}/paraview/src/paraview-build
-    -DEIGEN_INCLUDE_DIR:PATH=<INSTALL_DIR>/eigen
+    -DEIGEN_INCLUDE_DIR:PATH=<INSTALL_DIR>/include/eigen3
     -DPYTHONQT_DIR:PATH=<INSTALL_DIR>
 )


minor changes to cmake module "FindMMTCommons"

--- src/suffixarray-phrasetable/native/cmake_modules/FindMMTCommons.cmake
+++ src/suffixarray-phrasetable/native/cmake_modules/FindMMTCommons.cmake
@@ -3,13 +3,12 @@
 #  MMTCommons_INCLUDE_DIR, directory containing headers
 #  MMTCommons_FOUND, whether MMT common-interface has been found

-set(MMTCommons_SEARCH_HEADER_PATHS ${CMAKE_SOURCE_DIR}/../../common-interfaces/native/)
+set(MMTCommons_SEARCH_HEADER_PATHS ${CMAKE_SOURCE_DIR}/../../common-interfaces/native/include)

-find_path(MMTCommons_INCLUDE_DIR include/mmt/sentence.h PATHS ${MMTCommons_SEARCH_HEADER_PATHS})
+find_path(MMTCommons_INCLUDE_DIR mmt/sentence.h PATHS ${MMTCommons_SEARCH_HEADER_PATHS})

 if (MMTCommons_INCLUDE_DIR)
     set(MMTCommons_FOUND TRUE)
-    set(MMTCommons_INCLUDE_DIR ${MMTCommons_INCLUDE_DIR}/include)
 else ()
     set(MMTCommons_FOUND FALSE)
 endif ()
@@ -31,4 +30,4 @@

 mark_as_advanced(
         MMTCommons_INCLUDE_DIR
-)+)


doxygen changes to remove include and collaboration graphs (#397)

This fixes #321 and #322.  We do not want to include the collaboration or include graphs
in the user-facing documentation because they are only of interest to the maintainers
of the library.

--- cmake/GoogleCloudCppCommon.cmake
+++ cmake/GoogleCloudCppCommon.cmake
@@ -68,6 +68,10 @@
         set(DOXYGEN_GENERATE_LATEX NO)
         set(DOXYGEN_GRAPHICAL_HIERARCHY NO)
         set(DOXYGEN_DIRECTORY_GRAPH NO)
+        set(DOXYGEN_CLASS_GRAPH NO)
+        set(DOXYGEN_COLLABORATION_GRAPH NO)
+        set(DOXYGEN_INCLUDE_GRAPH NO)
+        set(DOXYGEN_INCLUDED_BY_GRAPH NO)
         set(DOXYGEN_DOT_TRANSPARENT YES)
         set(DOXYGEN_MACRO_EXPANSION YES)
         set(DOXYGEN_EXPAND_ONLY_PREDEF YES)


use create_symlink

use create_symlink

--- cmake/Modules/LibAddMacros.cmake
+++ cmake/Modules/LibAddMacros.cmake
@@ -27,15 +27,15 @@

 	install(CODE "
 		message (STATUS \"Installing symlink: \$ENV{DESTDIR}${LIB_INSTALL_DIR}/${dest} -> ${src}\")
-#		execute_process (COMMAND \"${CMAKE_COMMAND}\" -E create_symlink
-#			\"${src}\"
-#			\"${dest}\"
-#			WORKING_DIRECTORY \"\$ENV{DESTDIR}${LIB_INSTALL_DIR}\"
+		execute_process (COMMAND \"${CMAKE_COMMAND}\" -E create_symlink
+			\"${src}\"
+			\"${dest}\"
+			WORKING_DIRECTORY \"\$ENV{DESTDIR}${LIB_INSTALL_DIR}\"
+			RESULT_VARIABLE RET
+			)
+#		execute_process (COMMAND ln -s \"${src}\" \"\$ENV{DESTDIR}${LIB_INSTALL_DIR}/${dest}\"
 #			RESULT_VARIABLE RET
 #			)
-		execute_process (COMMAND ln -s \"${src}\" \"\$ENV{DESTDIR}${LIB_INSTALL_DIR}/${dest}\"
-			RESULT_VARIABLE RET
-			)
 		if (RET)
 			message (WARNING \"Could not install symlink\")
 		endif ()


CMake: fix in-code doc of set_additional_compile_definitions

--- cmake/Modules/LibAddPlugin.cmake
+++ cmake/Modules/LibAddPlugin.cmake
@@ -5,7 +5,7 @@
 # Provides additional compiler definitions:
 #
 # - ELEKTRA_PLUGIN_NAME containing the short plugin name as string
-# - ELEKTRA_PLUGIN_NAME_C contai the short plugin name which can be used in function names
+# - ELEKTRA_PLUGIN_NAME_C containing the short plugin name which can be used in function names
 #
 # shortname:
 #   pass the PLUGIN_SHORT_NAME as this argument
@@ -17,7 +17,6 @@
 # ~~~
 function (set_additional_compile_definitions shortname)
 	# provide the plugin name as string to the compiler/preprocessor
-
 	if (NOT "${ARG_COMPILE_DEFINITIONS}" MATCHES "ELEKTRA_PLUGIN_NAME")
 		set (ADDITIONAL_COMPILE_DEFINITIONS_PART1 "ELEKTRA_PLUGIN_NAME=\"${shortname}\"")
 	endif ()


Added upcoming llvm 5.0.1 version to FindLibClang.cmake

--- cmake_modules/FindLibClang.cmake
+++ cmake_modules/FindLibClang.cmake
@@ -14,7 +14,7 @@
 #               Known LLVM release numbers.

 # most recent versions come first
-set(LIBCLANG_KNOWN_LLVM_VERSIONS 5.0.0 5.0
+set(LIBCLANG_KNOWN_LLVM_VERSIONS 5.0.1 5.0.0 5.0
   4.0.1
   4.0.0_1 4.0.0 4.0
   3.9.1


SVN_SILENT made messages (.desktop file)

--- gstreamer/gstreamer.desktop.cmake
+++ gstreamer/gstreamer.desktop.cmake
@@ -77,7 +77,7 @@
 Comment[en_GB]=Phonon GStreamer backend
 Comment[es]=Motor GStreamer para Phonon
 Comment[et]=Phononi GStreameri taustaprogramm
-Comment[eu]=Phonon GStreamer backend
+Comment[eu]=Phonon-en GStreamer bizkarraldekoa
 Comment[fi]=Phonon GStreamer -taustaohjelma
 Comment[fr]=Moteur GStreamer pour Phonon
 Comment[ga]=Inneall GStreamer le haghaidh Phonon


--- gstreamer/gstreamer.desktop.cmake
+++ gstreamer/gstreamer.desktop.cmake
@@ -63,6 +63,7 @@

 Comment=Phonon GStreamer backend
 Comment[bg]=Phonon GStreamer
+Comment[bs]=Gstreamer kao pozadina Phonona
 Comment[ca]=Dorsal GStreamer del Phonon
 Comment[ca@valencia]=Dorsal GStreamer del Phonon
 Comment[cs]=Podpůrná vrstva GStreamer pro Phonon


Add EXEC argument in add_samp_plugin_test()

--- cmake/Modules/SampPluginTest.cmake
+++ cmake/Modules/SampPluginTest.cmake
@@ -16,7 +16,7 @@
 function(add_samp_plugin_test)
 	set(name "${ARGV0}")

-	set(options "TARGET" "OUT_FILE" "SCRIPT" "TIMEOUT")
+	set(options "TARGET" "OUT_FILE" "SCRIPT" "TIMEOUT" "EXEC")
 	cmake_parse_arguments(ARG "" "${options}" ${ARGN})

 	if(NOT ARG_TARGET)
@@ -31,6 +31,9 @@
 	if(NOT ARG_TIMEOUT)
 		set(ARG_TIMEOUT "0.5")
 	endif()
+	if(NOT ARG_EXEC)
+		set(ARG_EXEC "${CMAKE_CURRENT_SOURCE_DIR}/${name}.cfg")
+	endif()

 	get_target_property(PLUGIN_PATH ${ARG_TARGET} LOCATION)

@@ -41,9 +44,8 @@
 		"--gamemode" "${ARG_SCRIPT}"
 	)

-	set(config "${CMAKE_CURRENT_SOURCE_DIR}/${name}.cfg")
-	if(EXISTS ${config})
-		list(APPEND arguments "--exec" "${config}")
+	if(EXISTS "${ARG_EXEC}")
+		list(APPEND arguments "--exec" "${ARG_EXEC}")
 	endif()

 	file(READ "${ARG_OUT_FILE}" out)


Replace VERSION_GREATER_EQUAL with GREATER for compatibility with CMake < 3.7

--- cmake/Modules/cvmfs_compiler.cmake
+++ cmake/Modules/cvmfs_compiler.cmake
@@ -55,9 +55,9 @@
 message (STATUS "using compiler opt flag ${CVMFS_OPT_FLAGS}")
 set (CVMFS_BASE_C_FLAGS "${CVMFS_OPT_FLAGS} -g -fno-strict-aliasing -fasynchronous-unwind-tables -fno-omit-frame-pointer -fvisibility=hidden -Wall")
 if (APPLE)
-  if (${CMAKE_SYSTEM_VERSION} VERSION_GREATER_EQUAL 15.0.0)
+  if (${CMAKE_SYSTEM_VERSION} GREATER 14.5.0)
     set(CVMFS_BASE_C_FLAGS "${CVMFS_BASE_C_FLAGS} -mmacosx-version-min=10.11")
-  endif(${CMAKE_SYSTEM_VERSION} VERSION_GREATER_EQUAL 15.0.0)
+  endif(${CMAKE_SYSTEM_VERSION} GREATER 14.5.0)
 endif(APPLE)
 set (CVMFS_BASE_CXX_FLAGS "${CVMFS_BASE_C_FLAGS} -fno-exceptions")
 if (NOT USING_CLANG)


Add back support for Ubuntu 16.04

Add back support for Ubuntu 16.04

Future releases of BioDynaMo will not include support for Ubuntu
16.04. We recommend upgrading to 18.04 or 20.04.


Use slightly simpler elseif syntax.

Use slightly simpler elseif syntax.

svn path=/trunk/; revision=7434

--- cmake/modules/drivers-finish.cmake
+++ cmake/modules/drivers-finish.cmake
@@ -44,18 +44,16 @@
 	${CMAKE_SOURCE_DIR}/drivers/${DRIVER}.cpp
 	${${DRIVER}_SOURCE}
 	)
+      elseif(DRIVER STREQUAL "psttf")
+        set(${DRIVER}_SOURCE
+	${CMAKE_SOURCE_DIR}/drivers/${DRIVER}.cc
+	${${DRIVER}_SOURCE}
+	)
       else(DRIVER STREQUAL "wxwidgets")
-        if(DRIVER STREQUAL "psttf")
-          set(${DRIVER}_SOURCE
-	  ${CMAKE_SOURCE_DIR}/drivers/${DRIVER}.cc
-	  ${${DRIVER}_SOURCE}
-	  )
-        else(DRIVER STREQUAL "psttf")
-          set(${DRIVER}_SOURCE
-	  ${CMAKE_SOURCE_DIR}/drivers/${DRIVER}.c
-	  ${${DRIVER}_SOURCE}
-	  )
-        endif(DRIVER STREQUAL "psttf")
+        set(${DRIVER}_SOURCE
+	${CMAKE_SOURCE_DIR}/drivers/${DRIVER}.c
+	${${DRIVER}_SOURCE}
+	)
       endif(DRIVER STREQUAL "wxwidgets")
     endif(APPEND_DRIVER)
   endif(PLD_${DEVICE})


Fixed a typo.

Fixed a typo.

--- cmake/oskar_compiler_options.cmake
+++ cmake/oskar_compiler_options.cmake
@@ -183,7 +183,7 @@

 if (VERBOSE)
     message(STATUS "")
-    message(STATUS "Compliler:")
+    message(STATUS "Compiler:")
     message(STATUS "  Build Type: ${CMAKE_BUILD_TYPE}")
     message(STATUS "")
     message(STATUS "  C++ flags:")


FindSuiteSparse.cmake: Replace by our new custom version from https://code.google.com/p/suitesparse-metis-for-windows/

--- cmakemodules/FindSuiteSparse.cmake
+++ cmakemodules/FindSuiteSparse.cmake
@@ -1,131 +1,372 @@
-FIND_PATH(CHOLMOD_INCLUDE_DIR NAMES cholmod.h amd.h camd.h
-    PATHS
-    /usr/include/suitesparse
-    /usr/include/ufsparse
-    /opt/local/include/ufsparse
-    /usr/local/include/ufsparse
-    /sw/include/ufsparse
-    NO_DEFAULT_PATH
-  )
-
-FIND_LIBRARY(CHOLMOD_LIBRARY NAMES cholmod
-     PATHS
-     /usr/lib
-     /usr/local/lib
-     /opt/local/lib
-     /sw/lib
-     NO_DEFAULT_PATH
-   )
-
-FIND_LIBRARY(AMD_LIBRARY NAMES SHARED NAMES amd
-  PATHS
-  /usr/lib
-  /usr/local/lib
-  /opt/local/lib
-  /sw/lib
-  NO_DEFAULT_PATH
-  )
-
-FIND_LIBRARY(CAMD_LIBRARY NAMES camd
-  PATHS
-  /usr/lib
-  /usr/local/lib
-  /opt/local/lib
-  /sw/lib
-  NO_DEFAULT_PATH
-  )
-
-# Different platforms seemingly require linking against different sets of libraries
-IF(CYGWIN)
-  FIND_PACKAGE(PkgConfig)
-  FIND_LIBRARY(COLAMD_LIBRARY NAMES colamd
-    PATHS
-    /usr/lib
-    /usr/local/lib
-    /opt/local/lib
-    /sw/lib
-    NO_DEFAULT_PATH
-    )
-  PKG_CHECK_MODULES(LAPACK lapack REQUIRED)
-
-  SET(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARY} ${AMD_LIBRARY} ${CAMD_LIBRARY} ${COLAMD_LIBRARY} ${CCOLAMD_LIBRARY} ${LAPACK_LIBRARIES})
-
-# MacPorts build of the SparseSuite requires linking against extra libraries
-
-ELSEIF(APPLE)
-
-  FIND_LIBRARY(COLAMD_LIBRARY NAMES colamd
-    PATHS
-    /usr/lib
-    /usr/local/lib
-    /opt/local/lib
-    /sw/lib
-    NO_DEFAULT_PATH
-    )
-
-  FIND_LIBRARY(CCOLAMD_LIBRARY NAMES ccolamd
-    PATHS
-    /usr/lib
-    /usr/local/lib
-    /opt/local/lib
-    /sw/lib
-    NO_DEFAULT_PATH
-    )
-
-  FIND_LIBRARY(METIS_LIBRARY NAMES metis
-    PATHS
-    /usr/lib
-    /usr/local/lib
-    /opt/local/lib
-    /sw/lib
-    NO_DEFAULT_PATH
-    )
-
-  SET(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARY} ${AMD_LIBRARY} ${CAMD_LIBRARY} ${COLAMD_LIBRARY} ${CCOLAMD_LIBRARY} ${METIS_LIBRARY} "-framework Accelerate")
-ELSE(APPLE)
-  SET(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARY} ${AMD_LIBRARY})
-ENDIF(CYGWIN)
-
-IF(CHOLMOD_INCLUDE_DIR AND CHOLMOD_LIBRARIES)
-  SET(CHOLMOD_FOUND TRUE)
-ELSE(CHOLMOD_INCLUDE_DIR AND CHOLMOD_LIBRARIES)
-  SET(CHOLMOD_FOUND FALSE)
-ENDIF(CHOLMOD_INCLUDE_DIR AND CHOLMOD_LIBRARIES)
-
-# Look for csparse; note the difference in the directory specifications!
-FIND_PATH(CSPARSE_INCLUDE_DIR NAMES cs.h
-  PATHS
-  /usr/include/suitesparse
-  /usr/include
-  /opt/local/include
-  /usr/local/include
-  /sw/include
-  /usr/include/ufsparse
-  /opt/local/include/ufsparse
-  /usr/local/include/ufsparse
-  /sw/include/ufsparse
-  )
-
-FIND_LIBRARY(CSPARSE_LIBRARY NAMES csparse
-  PATHS
-  /usr/lib
-  /usr/local/lib
-  /opt/local/lib
-  /sw/lib
-  NO_DEFAULT_PATH
-  )
-
-IF(CSPARSE_INCLUDE_DIR AND CSPARSE_LIBRARY)
-  SET(CSPARSE_FOUND TRUE)
-ELSE(CSPARSE_INCLUDE_DIR AND CSPARSE_LIBRARY)
-  SET(CSPARSE_FOUND FALSE)
-ENDIF(CSPARSE_INCLUDE_DIR AND CSPARSE_LIBRARY)
-
-# Modified for MRPT: Mark as advanced
-MARK_AS_ADVANCED(AMD_LIBRARY)
-MARK_AS_ADVANCED(CAMD_LIBRARY)
-MARK_AS_ADVANCED(CHOLMOD_INCLUDE_DIR)
-MARK_AS_ADVANCED(CHOLMOD_LIBRARY)
-MARK_AS_ADVANCED(CSPARSE_INCLUDE_DIR)
-MARK_AS_ADVANCED(CSPARSE_LIBRARY)
-
+## CMake file to locate SuiteSparse and its useful composite projects
+## The first developpement of this file was made fro Windows users who
+## use the http://code.google.com/p/suitesparse-metis-for-windows/
+## downloaded here :
+## svn checkout http://suitesparse-metis-for-windows.googlecode.com/svn/trunk/ suitesparse-metis-for-windows
+## Anyway, it chould be work also on linux (tested on fedora 17 when you installed suitesparse from yum)
+##
+##
+## Inputs variables this file can process (variable must be given before find_package(SUITESPARES ...) command) :
+##   * SuiteSparse_VERBOSE			Default to OFF
+##   * SuiteSparse_USE_LAPACK_BLAS	Default to OFF. If ON append to SuiteSparse_LIBRARIES the blas and lapack library
+##   Note: SuiteSparse lib usually requires linking to a blas and lapack library.
+##
+##
+## Help variables this file handle internaly :
+##   * SuiteSparse_SEARCH_LIB_POSTFIX		Is set in cache (as advanced) to look into the right lib/lib64 dir for libraries (user can change)
+##
+##
+## Variables this file provide :
+##   * SuiteSparse_FOUND         			True if SuiteSparse given COMPONENTS include and libraries were found
+##   * SuiteSparse_INCLUDE_DIRS  			Paths containing SuiteSparse needed headers (depend on which COMPONENTS you gave)
+##   * SuiteSparse_LIBRARIES     			Absolute paths of SuiteSparse libs found (depend on which COMPONENTS you gave)
+##   If SuiteSparse_USE_LAPACK_BLAS is set to ON :
+##   	* SuiteSparse_LAPACK_BLAS_LIBRARIES 	Which contain the libblas and liblapack libraries
+##   	On windows:
+##   		* SuiteSparse_LAPACK_BLAS_DLL		Which contain all requiered binaries for use libblas and liblapack
+##
+##
+## Detailed variables this file provide :
+##   * SuiteSparse_<UPPPER_CASE_COMPONENT>_FOUND		True if the given component to look for is found (INCLUDE DIR and LIBRARY)
+##   * SuiteSparse_<UPPPER_CASE_COMPONENT>_INCLUDE_DIR	The path directory where we can found all compenent header files
+##   * SuiteSparse_<UPPPER_CASE_COMPONENT>_LIBRARY		The file path to the component library
+##   Note: If a component is not found, a SuiteSparse_<UPPPER_CASE_COMPONENT>_DIR cache variable is set to allow user set the search directory.
+##
+##
+## Possible componnents to find are (maybe some others can be available):
+##   * AMD
+##   * CAMD
+##   * COLAMD
+##   * CCOLAMD
+##   * CHOLMOD	: this lib need all previous one. According to how it was build (a single static lib or a full dynamic one), you should looking for its dependencies.
+##   * metis (opt): may not be found (depend if suitesparse was build with metis or not) => required by CHOLMOD (optional)
+##
+##
+## How to use this file :
+##   (opt) set(SuiteSparse_VERBOSE ON)
+##   (opt) set(SuiteSparse_USE_LAPACK_BLAS ON)
+##   ( 1 ) find_package(SuiteSparse) ## metis is not search by default because it's not a part of suitesparse (suitesparse can be built without metis)
+##   ( 2 ) find_package(SuiteSparse COMPONENTS metis CHOLMOD) 		## be careful, components are case sensitive
+##   ( 3 ) find_package(SuiteSparse COMPONENTS metis suitesparse)	## valid on windows (linux have no suitesparse library)
+##   ( 4 ) find_package(SuiteSparse COMPONENTS suitesparse)
+##
+##    if(SuiteSparse_FOUND)
+##       include_directories(${SuiteSparse_INCLUDE_DIRS})
+##		 target_link_library(<myProject> ${SuiteSparse_LIBRARIES})
+##	  endif()
+##
+## Created by jesnault (jerome.esnault@inria.fr) 2014-01-15
+## Updated by jesnault (jerome.esnault@inria.fr) 2014-01-21
+
+
+## check if global root SuiteSparse folder is set or not and cache it in order to let user fill it
+if(NOT SuiteSparse_DIR)
+    set(SuiteSparse_DIR "$ENV{SuiteSparse_DIR}" CACHE PATH "SuiteSparse root directory")
+endif()
+if(SuiteSparse_DIR)
+	file(TO_CMAKE_PATH ${SuiteSparse_DIR} SuiteSparse_DIR)
+endif()
+
+## set default verbosity
+if(NOT SuiteSparse_VERBOSE)
+	set(SuiteSparse_VERBOSE OFF)
+else()
+	message(STATUS "Start to FindSuiteSparse.cmake :")
+endif()
+
+
+## set the LIB POSTFIX to find in a right directory according to what kind of compiler we use (32/64bits)
+if(CMAKE_SIZEOF_VOID_P EQUAL 8)  # Size in bytes!
+	set(SuiteSparse_SEARCH_LIB_POSTFIX "64" CACHE STRING "suffix for 32/64 dir placement")
+else()  # Size in bytes!
+	set(SuiteSparse_SEARCH_LIB_POSTFIX "" CACHE STRING "suffix for 32/64 dir placement")
+endif()
+if(SuiteSparse_SEARCH_LIB_POSTFIX)
+	mark_as_advanced(SuiteSparse_SEARCH_LIB_POSTFIX)
+	if(SuiteSparse_VERBOSE)
+		message(STATUS "   find_library will search inside lib${SuiteSparse_SEARCH_LIB_POSTFIX} directory (can be changed with SuiteSparse_SEARCH_LIB_POSTFIX)")
+	endif()
+endif()
+
+
+## This utility macro is used to find all suitesparse projects by giving its name
+## Since the name structure is the same for lib name and include dir name,
+## we can use a generic way to find all of these with simple cmake lines of code
+macro(SuiteSparse_FIND_COMPONENTS )
+
+	## On windows : we absolutly need SuiteSparse_config.h every time for all projects
+	if(WIN32)
+		list(FIND SuiteSparse_FIND_COMPONENTS "SuiteSparse_config" SS_config_index)
+		if(${SS_config_index} MATCHES "-1")
+			list(APPEND SuiteSparse_FIND_COMPONENTS SuiteSparse_config)
+			if(SuiteSparse_VERBOSE)
+				message(STATUS "   On windows, we absolutly need SuiteSparse_config.h every time for all projects : add SuiteSparse_config component to look for")
+			endif()
+		endif()
+	endif()
+
+	## special check for suitesparse component (allow to find on windows but not on linux because doesn't exist)
+	list(FIND SuiteSparse_FIND_COMPONENTS "suitesparse" ss_index)
+	if(${ss_index} MATCHES "-1")
+		## do nothing, the user didn't provide the suisparse componnent
+	else()
+		if(WIN32)
+			## do nothing, the user provide the suisparse componnent we will try to find
+		else()
+			list(REMOVE_AT SuiteSparse_FIND_COMPONENTS ${ss_index})
+			if(SuiteSparse_VERBOSE)
+				message(STATUS "   On this plateform : suitesparse lib doesn't exist (only on windows), so skip this component")
+			endif()
+		endif()
+	endif()
+
+	## Look for each component the same way :
+	##  * For include dir the reference file is the <component>.h
+	##	* for library fileName the reference is the <component> itself (cmake will prepend/append necessary prefix/suffix according to the plateform)
+	foreach(suitesparseComp ${SuiteSparse_FIND_COMPONENTS})
+
+		## used to construct specific cmake variables (in upper case) according to the component, but also used for find_*()
+		string(TOUPPER ${suitesparseComp} suitesparseCompUC)
+		string(TOLOWER ${suitesparseComp} suitesparseCompLC)
+
+		## try to find include dir (looking for very important header file)
+		find_path(SuiteSparse_${suitesparseCompUC}_INCLUDE_DIR
+			NAMES 			${suitesparseComp}.h ${suitesparseCompLC}.h ${suitesparseCompUC}.h
+						${suitesparseComp}.hpp ${suitesparseCompLC}.hpp ${suitesparseCompUC}.hpp
+			PATHS			/opt/local/include
+						/usr/include
+						/usr/local/include
+						/usr/include/suitesparse
+						/usr/local/include/suitesparse
+						/usr/include/${suitesparseComp}
+						/usr/local/include/${suitesparseComp}
+						${SuiteSparse_DIR}/include
+						${SuiteSparse_DIR}/include/suitesparse
+						${SuiteSparse_DIR}/suitesparse/include
+						${SuiteSparse_DIR}/include/${suitesparseComp}
+						${SuiteSparse_DIR}/${suitesparseComp}/include
+						${${suitesparseCompUC}_DIR}/include
+						${${suitesparseCompUC}_DIR}/${suitesparseComp}/include
+						${${suitesparseCompUC}_DIR}
+		)
+		## check if found
+		if(NOT SuiteSparse_${suitesparseCompUC}_INCLUDE_DIR)
+			message(WARNING "   Failed to find ${suitesparseComp} :\nSuiteSparse_${suitesparseCompUC}_INCLUDE_DIR not found.\nCheck you write correctly the component name (case sensitive),\nor set the SuiteSparse_${suitesparseCompUC}_DIR to look inside")
+		else()
+			list(APPEND SuiteSparse_INCLUDE_DIRS	${SuiteSparse_${suitesparseCompUC}_INCLUDE_DIR})
+		endif()
+
+		## try to find filepath lib name (looking for very important lib file)
+		find_library(SuiteSparse_${suitesparseCompUC}_LIBRARY
+			NAMES 			${suitesparseComp} ${suitesparseCompLC} ${suitesparseCompUC}
+			PATHS 			/opt/local/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+							/usr/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+							/usr/local/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+							${SuiteSparse_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+							${${suitesparseCompUC}_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+							${${suitesparseCompUC}_DIR}
+			PATH_SUFFIXES	Release Debug
+		)
+		## check if found
+		if(NOT SuiteSparse_${suitesparseCompUC}_LIBRARY)
+			message(WARNING "   Failed to find ${suitesparseComp} :\nSuiteSparse_${suitesparseCompUC}_LIBRARY not found.\nCheck you write correctly the component name (case sensitive),\nor set the SuiteSparse_${suitesparseCompUC}_DIR to look inside")
+		else()
+			list(APPEND SuiteSparse_LIBRARIES	${SuiteSparse_${suitesparseCompUC}_LIBRARY})
+		endif()
+
+		## here we allow to find at least the include OR the lib dir and just warn if one of both missing
+		if(NOT SuiteSparse_${suitesparseCompUC}_INCLUDE_DIR AND NOT SuiteSparse_${suitesparseCompUC}_LIBRARY)
+			set(SuiteSparse_${suitesparseCompUC}_FOUND OFF)
+		else()
+			set(SuiteSparse_${suitesparseCompUC}_FOUND ON)
+		endif()
+
+		## if one of both (include dir or filepath lib), then we provide a new cmake cache variable for the search. Otherwise we don't need anymore to expose all intermediates variables
+		if(NOT SuiteSparse_${suitesparseCompUC}_FOUND)
+			set(SuiteSparse_${suitesparseCompUC}_DIR "$ENV{SuiteSparse_${suitesparseCompUC}_DIR}" CACHE PATH "${suitesparseComp} root directory")
+		else()
+			mark_as_advanced(SuiteSparse_${suitesparseCompUC}_INCLUDE_DIR)
+			mark_as_advanced(SuiteSparse_${suitesparseCompUC}_LIBRARY)
+			if(DEFINED SuiteSparse_${suitesparseCompUC}_DIR)
+				mark_as_advanced(SuiteSparse_${suitesparseCompUC}_DIR)
+			endif()
+		endif()
+
+		if(SuiteSparse_VERBOSE)
+			message(STATUS "   SuiteSparse_${suitesparseCompUC}_FOUND = ${SuiteSparse_${suitesparseCompUC}_FOUND} : ")
+			message(STATUS "      * SuiteSparse_${suitesparseCompUC}_INCLUDE_DIR = ${SuiteSparse_${suitesparseCompUC}_INCLUDE_DIR}")
+			message(STATUS "      * SuiteSparse_${suitesparseCompUC}_LIBRARY = ${SuiteSparse_${suitesparseCompUC}_LIBRARY}")
+		endif()
+
+		list(APPEND SuiteSparse_FOUND_LIST SuiteSparse_${suitesparseCompUC}_FOUND)
+
+		## special definition needed for metis
+		if(${suitesparseComp} MATCHES "metis")
+			set(SuiteSparse_${suitesparseCompUC}_DEFINITIONS "-DNPARTITION")
+			add_definitions(${SuiteSparse_${suitesparseCompUC}_DEFINITIONS})
+			if(SuiteSparse_VERBOSE)
+				message(STATUS "      * SuiteSparse_${suitesparseCompUC}_DEFINITIONS = ${SuiteSparse_${suitesparseCompUC}_DEFINITIONS}")
+			endif()
+		endif()
+
+	endforeach()
+
+
+	## set the final SuiteSparse_FOUND based on all previous components found (status)
+	foreach(componentToCheck ${SuiteSparse_FOUND_LIST})
+		set(SuiteSparse_FOUND ON)
+		if(NOT ${componentToCheck})
+			set(SuiteSparse_FOUND OFF)
+			break() ## one component not found is enought to failed
+		endif()
+	endforeach()
+endmacro()
+
+## Default behavior if user don't use the COMPONENTS flag in find_package(SuiteSparse ...) command
+if(NOT SuiteSparse_FIND_COMPONENTS)
+	list(APPEND SuiteSparse_FIND_COMPONENTS AMD CAMD CCOLAMD COLAMD CHOLMOD SPQR LDL)  ## suitesparse and metis are not searched by default (special case)
+endif()
+
+SuiteSparse_FIND_COMPONENTS()
+
+## check if we have to find also blas and lapack lib for SuiteSparse
+if(SuiteSparse_USE_LAPACK_BLAS)
+
+	## set additional search dirs
+	set(ADDITIONAL_SEARCH_DIRS
+		${SuiteSparse_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+		${SuiteSparse_DIR}/lapack_windows/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+		${SuiteSparse_DIR}/lapack_windows/x${SuiteSparse_SEARCH_LIB_POSTFIX}
+		${SuiteSparse_DIR}/blas_windows/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+		${SuiteSparse_DIR}/blas_windows/x${SuiteSparse_SEARCH_LIB_POSTFIX}
+		${SuiteSparse_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}/lapack_windows
+		${SuiteSparse_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}/blas_windows
+		${SuiteSparse_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}/lapack_blas_windows
+		${SuiteSparse_DIR}/lapack_blas_windows
+		${SuiteSparse_DIR}/lapack_blas_windows/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+	)
+
+	## try to find blas lib
+	find_library(SuiteSparse_BLAS_LIBRARY
+		NAMES 			blas cblas libblas
+		PATHS 			/opt/local/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+						/usr/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+						/usr/local/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+						${SuiteSparse_BLAS_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+						${SuiteSparse_BLAS_DIR}
+						${ADDITIONAL_SEARCH_DIRS}
+		PATH_SUFFIXES	Release Debug
+	)
+	if(NOT SuiteSparse_BLAS_LIBRARY)
+		message(SEND_ERROR "   Failed to find SuiteSparse_BLAS_LIBRARY.Set it manually or set the SuiteSparse_BLAS_DIR to looking for it inside.")
+		set(SuiteSparse_BLAS_DIR "$ENV{SuiteSparse_BLAS_DIR}" CACHE PATH "blas root directory")
+	else()
+		if(DEFINED SuiteSparse_BLAS_DIR)
+			mark_as_advanced(SuiteSparse_BLAS_DIR)
+		endif()
+		list(APPEND SuiteSparse_LAPACK_BLAS_LIBRARIES ${SuiteSparse_BLAS_LIBRARY})
+	endif()
+
+	## try to find lapack lib
+	find_library(SuiteSparse_LAPACK_LIBRARY
+		NAMES 			lapack liblapack
+		PATHS 			/opt/local/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+						/usr/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+						/usr/local/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+						${SuiteSparse_LAPACK_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+						${SuiteSparse_LAPACK_DIR}
+						${ADDITIONAL_SEARCH_DIRS}
+		PATH_SUFFIXES	Release Debug
+	)
+	if(NOT SuiteSparse_LAPACK_LIBRARY)
+		message(SEND_ERROR "   Failed to find SuiteSparse_LAPACK_LIBRARY.Set it manually or set the SuiteSparse_LAPACK_DIR to looking for it inside.")
+		set(SuiteSparse_LAPACK_DIR "$ENV{SuiteSparse_LAPACK_DIR}" CACHE PATH "lapack root directory")
+	else()
+		if(DEFINED SuiteSparse_LAPACK_DIR)
+			mark_as_advanced(SuiteSparse_LAPACK_DIR)
+		endif()
+		list(APPEND SuiteSparse_LAPACK_BLAS_LIBRARIES ${SuiteSparse_LAPACK_LIBRARY})
+	endif()
+
+	## well, now append to the SuiteSparse_LIBRARIES and print infos if VERBOSE
+	if(SuiteSparse_LAPACK_BLAS_LIBRARIES)
+		list(APPEND SuiteSparse_LIBRARIES	${SuiteSparse_LAPACK_BLAS_LIBRARIES})
+		if(SuiteSparse_VERBOSE)
+			message(STATUS "   SuiteSparse_USE_LAPACK_BLAS = ${SuiteSparse_USE_LAPACK_BLAS} : ")
+			message(STATUS "      * SuiteSparse_LAPACK_BLAS_LIBRARIES : ")
+			foreach(lib ${SuiteSparse_LAPACK_BLAS_LIBRARIES})
+				message(STATUS "         ${lib}")
+			endforeach()
+		endif()
+	endif()
+
+	## Now looking for *.dll => note that this is not a safe way to get it...
+	if(WIN32)
+		if(${SuiteSparse_SEARCH_LIB_POSTFIX} MATCHES "64")
+			set(SuiteSparse_SEARCH_BIN_POSTFIX_1 "x64")
+			set(SuiteSparse_SEARCH_BIN_POSTFIX_2 "Win64")
+		else()
+			set(SuiteSparse_SEARCH_BIN_POSTFIX_1 "x86")
+			set(SuiteSparse_SEARCH_BIN_POSTFIX_2 "Win32")
+		endif()
+
+		set(SuiteSparse_DLL_SEARCH_DIRS
+			${SuiteSparse_LAPACK_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+			${SuiteSparse_LAPACK_DIR}
+			${SuiteSparse_LAPACK_DIR}/bin
+			${SuiteSparse_LAPACK_DIR}/bin/${SuiteSparse_SEARCH_BIN_POSTFIX_1}
+			${SuiteSparse_LAPACK_DIR}/bin/${SuiteSparse_SEARCH_BIN_POSTFIX_2}
+			${SuiteSparse_LAPACK_DIR}/bin/Release/${SuiteSparse_SEARCH_BIN_POSTFIX_1}
+			${SuiteSparse_LAPACK_DIR}/bin/Debug/${SuiteSparse_SEARCH_BIN_POSTFIX_2}
+			${SuiteSparse_LAPACK_DIR}/lib${SuiteSparse_SEARCH_LIB_POSTFIX}
+			${SuiteSparse_BLAS_DIR}
+			${SuiteSparse_BLAS_DIR}/bin
+			${SuiteSparse_BLAS_DIR}/bin/${SuiteSparse_SEARCH_BIN_POSTFIX_1}
+			${SuiteSparse_BLAS_DIR}/bin/${SuiteSparse_SEARCH_BIN_POSTFIX_2}
+			${SuiteSparse_BLAS_DIR}/bin/Release/${SuiteSparse_SEARCH_BIN_POSTFIX_1}
+			${SuiteSparse_BLAS_DIR}/bin/Debug/${SuiteSparse_SEARCH_BIN_POSTFIX_2}
+			${ADDITIONAL_SEARCH_DIRS}
+			"$ENV{Path}"
+		)
+		set(dllPatternFileList "libblas" "liblapack" "libgcc_s_" "libgfortran" "libquadmath")
+		foreach(dllPattern ${dllPatternFileList})
+			string(TOUPPER ${dllPattern} dllPatternUC)
+			foreach(searchDir ${SuiteSparse_DLL_SEARCH_DIRS})
+				file(GLOB SuiteSparse_DLL_${dllPatternUC} "${searchDir}/${dllPattern}*.dll") ## append the *.dll
+				list(LENGTH SuiteSparse_DLL_${dllPatternUC} resultCount)
+				if(${resultCount} GREATER "0" )
+					list(APPEND SuiteSparse_LAPACK_BLAS_DLL ${SuiteSparse_DLL_${dllPatternUC}})
+					break()
+				endif()
+			endforeach()
+		endforeach()
+
+		if(SuiteSparse_VERBOSE)
+			message(STATUS "      * SuiteSparse_LAPACK_BLAS_DLL : ")
+			foreach(dll ${SuiteSparse_LAPACK_BLAS_DLL})
+				message(STATUS "         ${dll}")
+			endforeach()
+		endif()
+
+	endif()
+
+endif()
+
+if(SuiteSparse_INCLUDE_DIRS)
+	list(REMOVE_DUPLICATES SuiteSparse_INCLUDE_DIRS)
+endif()
+if(SuiteSparse_LIBRARIES)
+	list(REMOVE_DUPLICATES SuiteSparse_LIBRARIES)
+endif()
+
+if(SuiteSparse_LAPACK_BLAS_LIBRARIES)
+	list(REMOVE_DUPLICATES SuiteSparse_LAPACK_BLAS_LIBRARIES)
+endif()
+
+if(SuiteSparse_LAPACK_BLAS_DLL)
+	list(REMOVE_DUPLICATES SuiteSparse_LAPACK_BLAS_DLL)
+endif()
+
+if(SuiteSparse_VERBOSE)
+	message(STATUS "Finish to FindSuiteSparse.cmake => SuiteSparse_FOUND=${SuiteSparse_FOUND}")
+endif()


revert wrong convert

revert wrong convert

--- project/cmake/CompilerOption.cmake
+++ project/cmake/CompilerOption.cmake
@@ -122,37 +122,17 @@
     list(APPEND CMAKE_CXX_FLAGS_MINSIZEREL /Ox /${CMAKE_MSVC_RUNTIME} /D NDEBUG)
 endif()

-# convert list to parameters
-if (CMAKE_CXX_FLAGS_DEBUG)
-    string(REPLACE ";" " " CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
-endif()
-if (CMAKE_CXX_FLAGS_RELEASE)
-    string(REPLACE ";" " " CMAKE_CXX_FLAGS_RELEASE ${CMAKE_CXX_FLAGS_RELEASE})
-endif()
-if (CMAKE_CXX_FLAGS_RELWITHDEBINFO)
-    string(REPLACE ";" " " CMAKE_CXX_FLAGS_RELWITHDEBINFO ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
-endif()
-if (CMAKE_CXX_FLAGS_MINSIZEREL)
-    string(REPLACE ";" " " CMAKE_CXX_FLAGS_MINSIZEREL ${CMAKE_CXX_FLAGS_MINSIZEREL})
-endif()
-if (CMAKE_CXX_FLAGS)
-    string(REPLACE ";" " " CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
-endif()
-if (CMAKE_C_FLAGS_DEBUG)
-    string(REPLACE ";" " " CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG})
-endif()
-if (CMAKE_C_FLAGS_RELEASE)
-    string(REPLACE ";" " " CMAKE_C_FLAGS_RELEASE ${CMAKE_C_FLAGS_RELEASE})
-endif()
-if (CMAKE_C_FLAGS_RELWITHDEBINFO)
-    string(REPLACE ";" " " CMAKE_C_FLAGS_RELWITHDEBINFO ${CMAKE_C_FLAGS_RELWITHDEBINFO})
-endif()
-if (CMAKE_C_FLAGS_MINSIZEREL)
-    string(REPLACE ";" " " CMAKE_C_FLAGS_MINSIZEREL ${CMAKE_C_FLAGS_MINSIZEREL})
-endif()
-if (CMAKE_C_FLAGS)
-    string(REPLACE ";" " " CMAKE_C_FLAGS ${CMAKE_C_FLAGS})
-endif()
+# list => string
+string(REPLACE ";" " " CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG}")
+string(REPLACE ";" " " CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
+string(REPLACE ";" " " CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}")
+string(REPLACE ";" " " CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL}")
+string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
+string(REPLACE ";" " " CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG}")
+string(REPLACE ";" " " CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE}")
+string(REPLACE ";" " " CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO}")
+string(REPLACE ";" " " CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL}")
+string(REPLACE ";" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")

 # 库文件的附加参数 -fPIC, 多线程附加参数 -pthread -D_POSIX_MT_


Remove a debug output

Remove a debug output

git-svn-id: fbbf69ba8011aca0e74e1c67904b11cccbdbe66b@26758 0785d39b-7218-0410-832d-ea1e28bc413d

--- deal.II/cmake/setup_deal_ii.cmake
+++ deal.II/cmake/setup_deal_ii.cmake
@@ -142,5 +142,4 @@
   FILE(REMOVE
     ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/deal_ii_objects_${build_lowercase}
     )
-  MESSAGE("${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/deal_ii_objects_${build_lowercase}")
 ENDFOREACH()


short cmake line

short cmake line

--- rmw/rmw-extras.cmake
+++ rmw/rmw-extras.cmake
@@ -33,7 +33,7 @@
   # to build libraries and executables for more than one rmw implementation at a time.
   if(${_len} GREATER 1)
     message(FATAL_ERROR
-      "Only one rmw implementation per workspace is supported on Windows, but ${_len} were found."
+      "Only one rmw implementation per workspace is supported on Windows"
     )
   endif()
   # Use get_default_rmw_implementation to export the default middleware as a transitive dependency.


tcmalloc on by default

tcmalloc on by default

--- indra/cmake/GooglePerfTools.cmake
+++ indra/cmake/GooglePerfTools.cmake
@@ -3,7 +3,7 @@

 # If you want to enable or disable TCMALLOC in viewer builds, this is the place.
 # set ON or OFF as desired.
-set (USE_TCMALLOC OFF)
+set (USE_TCMALLOC ON)

 if (STANDALONE)
   include(FindGooglePerfTools)


Remove c++ warning re: checking for "this" is null

We actually subvert the type system from time to time, and call non-static
methods with a null this.  Alas.

--- build/cmake/CondorConfigure.cmake
+++ build/cmake/CondorConfigure.cmake
@@ -1100,6 +1100,11 @@
 	endif(c_Wdeprecated_declarations)
 	endif()

+	check_c_compiler_flag(-Wnonnull-compare c_Wnonnull_compare)
+	if (c_Wnonnull_compare)
+		set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-nonnull-compare -Wno-error=nonnull-compare")
+	endif(c_Wnonnull_compare)
+
 	# gcc on our AIX machines recognizes -fstack-protector, but lacks
 	# the requisite library.
 	if (NOT AIX)


Win32LIBTools.cmake WINTOOLS_LIB_MACHINE printing fix

--- cmake/Modules/Win32LIBTools.cmake
+++ cmake/Modules/Win32LIBTools.cmake
@@ -17,7 +17,7 @@
 set(WINTOOLS_DIR ${CMAKE_BINARY_DIR}/WINTOOLS)
 set(WINTOOLS_DL_ROOT "http://softmotions.com/windev")

-if (NOT EXISTS ${WINTOOLS_DIR})
+if (NOT EXISTS ${WINTOOLS_DIR})
 	file(MAKE_DIRECTORY ${WINTOOLS_DIR})
 endif()

@@ -31,16 +31,16 @@
 	endif()
 endforeach(WINTOOLS_EXEC)

-add_custom_target(wintools_init
+add_custom_target(wintools_init
 				  DEPENDS ${WINTOOLS_EXECS})
-
+
 if (CMAKE_SIZEOF_VOID_P MATCHES 8)
 	set(WINTOOLS_LIB_MACHINE "X64")
 else()
 	set(WINTOOLS_LIB_MACHINE "X86")
-endif()
-message("${PROJECT_NAME} WINTOOLS_LIB_MACHINE: ${WINTOOLS_LIB_MACHINE}")
-
+endif()
+message("-- WINTOOLS_LIB_MACHINE: ${WINTOOLS_LIB_MACHINE}")
+
 macro(add_w32_importlib tgt libname wdir)
 	add_custom_command(
 		TARGET ${tgt}


Allow headers in ${CMAKE_CURRENT_SOURCE_DIR} for dictionaries

--- cmake/modules/RootNewMacros.cmake
+++ cmake/modules/RootNewMacros.cmake
@@ -230,6 +230,8 @@
   get_directory_property(incdirs INCLUDE_DIRECTORIES)
   if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/inc)
     set(localinclude ${CMAKE_CURRENT_SOURCE_DIR}/inc)
+  else()
+    set(localinclude ${CMAKE_CURRENT_SOURCE_DIR})
   endif()
   #---Get the list of header files-------------------------
   set(headerfiles)
@@ -252,9 +254,11 @@
       list(APPEND _list_of_header_dependencies ${fp})
     else()
       find_file(headerFile ${fp} HINTS ${localinclude} ${incdirs})
-      list(APPEND headerfiles ${fp})
       if(headerFile)
+        list(APPEND headerfiles ${headerFile})
         list(APPEND _list_of_header_dependencies ${headerFile})
+      else()
+        list(APPEND headerfiles ${fp})
       endif()
       unset(headerFile CACHE)
     endif()


Avoid CMake generator expressions on macro defines for rootcling

--- cmake/modules/RootNewMacros.cmake
+++ cmake/modules/RootNewMacros.cmake
@@ -255,7 +255,7 @@
   #---Get the list of definitions---------------------------
   get_directory_property(defs COMPILE_DEFINITIONS)
   foreach( d ${defs})
-   if(NOT d MATCHES "=")
+   if((NOT d MATCHES "=") AND (NOT d MATCHES "^[$]<.*>$")) # avoid generator expressions
      set(definitions ${definitions} -D${d})
    endif()
   endforeach()


cmake: compat: still work in progress

cmake: compat: still work in progress

--- cmake/qibuild/compat/compat.cmake
+++ cmake/qibuild/compat/compat.cmake
@@ -265,9 +265,6 @@
   qi_add_subdirectory(${ARGN})
 endfunction()

-function(add_python_test _name _pythonFile)
-  qi_deprecated("unimplemented")
-endfunction()

 function(gen_trampoline _binary_name _trampo_name)
   qi_deprecated("unimplemented")
@@ -318,3 +315,14 @@
   endif()
 endfunction()

+# Old undocumented functions. (Used for aldebaran's
+# automatic testing only)
+function(find)
+endfunction()
+
+function(gen_python_script)
+endfunction()
+
+function(add_python_test _name _pythonFile)
+ add_test(${_name}  ${PYTHON_EXCUTABLE} ${_pythonFile} ${ARGN})
+endfunction()


- build win32 against subversion 1.4.0 and bdb 4.4

--- cmakemodules/FindSubversion.cmake
+++ cmakemodules/FindSubversion.cmake
@@ -108,7 +108,7 @@
     "$ENV{ProgramFiles}/Subversion/lib/neon"
   )

-  FIND_LIBRARY(DB43_LIB libdb43
+  FIND_LIBRARY(DB43_LIB libdb44
     "$ENV{ProgramFiles}/Subversion/lib"
   )


Add lots of GCC warnings based upon the 9.2.0 manual

--- cmake/CompilerSetup.cmake
+++ cmake/CompilerSetup.cmake
@@ -40,31 +40,55 @@
     target_compile_options(${target} PRIVATE -Wextra)
     target_compile_options(${target} PRIVATE -Wpedantic)
     # Individual warnings
-
-    target_compile_options(${target} PRIVATE -Wunused)
-    target_compile_options(${target} PRIVATE -Wformat=2)
-    target_compile_options(${target} PRIVATE -Wswitch-enum)
-    target_compile_options(${target} PRIVATE -Wsuggest-attribute=pure)
-    target_compile_options(${target} PRIVATE -Wsuggest-attribute=const)
-    target_compile_options(${target} PRIVATE -Wsuggest-attribute=noreturn)
+    target_compile_options(${target} PRIVATE -Walloc-zero)
     target_compile_options(${target} PRIVATE -Wcast-align)
     target_compile_options(${target} PRIVATE -Wcast-qual)
+    target_compile_options(${target} PRIVATE -Wconditionally-supported)
     target_compile_options(${target} PRIVATE -Wconversion)
-    target_compile_options(${target} PRIVATE -Wsign-conversion)
-    target_compile_options(${target} PRIVATE -Wzero-as-null-pointer-constant)
+    target_compile_options(${target} PRIVATE -Wctor-dtor-privacy)
+    target_compile_options(${target} PRIVATE -Wdate-time)
+    target_compile_options(${target} PRIVATE -Wdeprecated-copy-dtor)
+    target_compile_options(${target} PRIVATE -Wdouble-promotion)
+    target_compile_options(${target} PRIVATE -Wduplicated-branches)
+    target_compile_options(${target} PRIVATE -Wduplicated-cond)
+    target_compile_options(${target} PRIVATE -Wextra-semi)
+    target_compile_options(${target} PRIVATE -Wfloat-equal)
+    target_compile_options(${target} PRIVATE -Wformat=2)
     target_compile_options(${target} PRIVATE -Wlogical-op)
     target_compile_options(${target} PRIVATE -Wmissing-declarations)
-    target_compile_options(${target} PRIVATE -Wctor-dtor-privacy)
+    target_compile_options(${target} PRIVATE -Wmissing-profile)
+    target_compile_options(${target} PRIVATE -Wno-long-long)
+    target_compile_options(${target} PRIVATE -Wno-pmf-conversions)
     target_compile_options(${target} PRIVATE -Wnoexcept)
     target_compile_options(${target} PRIVATE -Wnon-virtual-dtor)
-    target_compile_options(${target} PRIVATE -Wstrict-null-sentinel)
+    target_compile_options(${target} PRIVATE -Wnormalized)
+    target_compile_options(${target} PRIVATE -Wnull-dereference)
     target_compile_options(${target} PRIVATE -Wold-style-cast)
     target_compile_options(${target} PRIVATE -Woverloaded-virtual)
-    target_compile_options(${target} PRIVATE -Wfloat-equal)
+    target_compile_options(${target} PRIVATE -Wpacked)
+    target_compile_options(${target} PRIVATE -Wparentheses)
     target_compile_options(${target} PRIVATE -Wredundant-decls)
     target_compile_options(${target} PRIVATE -Wshadow)
+    target_compile_options(${target} PRIVATE -Wsign-conversion)
+    target_compile_options(${target} PRIVATE -Wsign-promo)
+    target_compile_options(${target} PRIVATE -Wstrict-null-sentinel)
+    target_compile_options(${target} PRIVATE -Wsuggest-attribute=const)
+    target_compile_options(${target} PRIVATE -Wsuggest-attribute=malloc)
+    target_compile_options(${target} PRIVATE -Wsuggest-attribute=noreturn)
+    target_compile_options(${target} PRIVATE -Wsuggest-attribute=pure)
+    target_compile_options(${target} PRIVATE -Wsuggest-final-methods)
+    target_compile_options(${target} PRIVATE -Wsuggest-final-types)
+    target_compile_options(${target} PRIVATE -Wsuggest-override)
+    target_compile_options(${target} PRIVATE -Wswitch-enum)
+    target_compile_options(${target} PRIVATE -Wuninitialized)
+    target_compile_options(${target} PRIVATE -Wundef)
+    target_compile_options(${target} PRIVATE -Wunsafe-loop-optimizations)
+    target_compile_options(${target} PRIVATE -Wunused)
+    target_compile_options(${target} PRIVATE -Wunused-macros)
+    target_compile_options(${target} PRIVATE -Wuseless-cast)
+    target_compile_options(${target} PRIVATE -Wvla)
     target_compile_options(${target} PRIVATE -Wwrite-strings)
-    target_compile_options(${target} PRIVATE -Wno-long-long)
+    target_compile_options(${target} PRIVATE -Wzero-as-null-pointer-constant)

   elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
     target_compile_options(${target} PRIVATE /W4)


Run git from the source directory (#589) (#590)

Git was being executed in the current directory, so could not get the
latest tag if cmake was run from a build directory. Force git to be
run from with the source directory.

--- cmake/GetGitVersion.cmake
+++ cmake/GetGitVersion.cmake
@@ -21,6 +21,7 @@
 function(get_git_version var)
   if(GIT_EXECUTABLE)
       execute_process(COMMAND ${GIT_EXECUTABLE} describe --match "v[0-9]*.[0-9]*.[0-9]*" --abbrev=8
+          WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
           RESULT_VARIABLE status
           OUTPUT_VARIABLE GIT_VERSION
           ERROR_QUIET)
@@ -33,9 +34,11 @@

       # Work out if the repository is dirty
       execute_process(COMMAND ${GIT_EXECUTABLE} update-index -q --refresh
+          WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
           OUTPUT_QUIET
           ERROR_QUIET)
       execute_process(COMMAND ${GIT_EXECUTABLE} diff-index --name-only HEAD --
+          WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
           OUTPUT_VARIABLE GIT_DIFF_INDEX
           ERROR_QUIET)
       string(COMPARE NOTEQUAL "${GIT_DIFF_INDEX}" "" GIT_DIRTY)


Make HalleyProject build with C++17 support, fixing GCC errors on 'std::byte'.

--- cmake/HalleyProject.cmake
+++ cmake/HalleyProject.cmake
@@ -32,8 +32,8 @@
 endif()

-# C++14 support
-set(CMAKE_CXX_STANDARD 14)
+# C++17 support
+set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -stdlib=libc++") # Apparently Clang on Mac needs this...


Updated XLink to fix SIGPIPE regression

Updated XLink to fix SIGPIPE regression

--- cmake/Hunter/config.cmake
+++ cmake/Hunter/config.cmake
@@ -8,8 +8,8 @@
 hunter_config(
     XLink
     VERSION "luxonis-2021.4-master"
-    URL "https://github.com/luxonis/XLink/archive/9e2c90d0f68f2c32434b4f5d450d837b884cef1d.tar.gz"
-    SHA1 "eb18f8a5726d205e7b6e7972155e43c1fd173712"
+    URL "https://github.com/luxonis/XLink/archive/18a192fcf620163c9281ed55f28092d95b98ba72.tar.gz"
+    SHA1 "3d66ddf7b1913fd2fddbeda708396c3c43f95460"
 )

 hunter_config(


Changing use of OpenCMISS(Zinc) to OpenCMISS-Zinc.  https://tracker.physiomeproject.org/show_bug.cgi?id=3535

--- cmake/ZincPackaging.cmake
+++ cmake/ZincPackaging.cmake
@@ -49,7 +49,7 @@

 	SET( ZINC_ARCHITECTURE "universal" )
 	SET( CPACK_GENERATOR  "TGZ" "PackageMaker" )
-	#SET( CPACK_BUNDLE_NAME "OpenCMISS(Zinc" )
+	#SET( CPACK_BUNDLE_NAME "OpenCMISS-Zinc" )
 ELSEIF( UNIX )
 	SET( CPACK_GENERATOR "TGZ" )
 	STRING( FIND ${ZINC_SYSTEM} "Ubuntu" INDEX )


Remove iOS.toolchain.cmake

Remove iOS.toolchain.cmake

--- cmake/iOS.toolchain.cmake
+++ cmake/iOS.toolchain.cmake
@@ -1,193 +0,0 @@
-# This file is based off of the Platform/Darwin.cmake and Platform/UnixPaths.cmake
-# files which are included with CMake 2.8.4
-# It has been altered for iOS development
-
-# Options:
-#
-# IOS_PLATFORM = OS (default) or SIMULATOR
-#   This decides if SDKS will be selected from the iPhoneOS.platform or iPhoneSimulator.platform folders
-#   OS - the default, used to build for iPhone and iPad physical devices, which have an arm arch.
-#   SIMULATOR - used to build for the Simulator platforms, which have an x86 arch.
-#
-# CMAKE_IOS_DEVELOPER_ROOT = automatic(default) or /path/to/platform/Developer folder
-#   By default this location is automatcially chosen based on the IOS_PLATFORM value above.
-#   If set manually, it will override the default location and force the user of a particular Developer Platform
-#
-# CMAKE_IOS_SDK_ROOT = automatic(default) or /path/to/platform/Developer/SDKs/SDK folder
-#   By default this location is automatcially chosen based on the CMAKE_IOS_DEVELOPER_ROOT value.
-#   In this case it will always be the most up-to-date SDK found in the CMAKE_IOS_DEVELOPER_ROOT path.
-#   If set manually, this will force the use of a specific SDK version
-
-# Macros:
-#
-# set_xcode_property (TARGET XCODE_PROPERTY XCODE_VALUE)
-#  A convenience macro for setting xcode specific properties on targets
-#  example: set_xcode_property (myioslib IPHONEOS_DEPLOYMENT_TARGET "3.1")
-#
-# find_host_package (PROGRAM ARGS)
-#  A macro used to find executable programs on the host system, not within the iOS environment.
-#  Thanks to the android-cmake project for providing the command
-
-# Standard settings
-cmake_minimum_required(VERSION 3.0)
-set (CMAKE_SYSTEM_NAME Darwin)
-set (CMAKE_SYSTEM_VERSION 1)
-set (UNIX True)
-set (APPLE True)
-set (IOS True)
-
-# Required as of cmake 2.8.10
-set (CMAKE_OSX_DEPLOYMENT_TARGET "" CACHE STRING "Force unset of the deployment target for iOS" FORCE)
-
-# Determine the cmake host system version so we know where to find the iOS SDKs
-find_program (CMAKE_UNAME uname /bin /usr/bin /usr/local/bin)
-if (CMAKE_UNAME)
-	exec_program(uname ARGS -r OUTPUT_VARIABLE CMAKE_HOST_SYSTEM_VERSION)
-	string (REGEX REPLACE "^([0-9]+)\\.([0-9]+).*$" "\\1" DARWIN_MAJOR_VERSION "${CMAKE_HOST_SYSTEM_VERSION}")
-endif (CMAKE_UNAME)
-
-# Force the compilers to gcc for iOS
-include (CMakeForceCompiler)
-set(CMAKE_AR ar CACHE FILEPATH "" FORCE)
-
-# Skip the platform compiler checks for cross compiling
-set (CMAKE_CXX_COMPILER_WORKS TRUE)
-set (CMAKE_C_COMPILER_WORKS TRUE)
-
-# All iOS/Darwin specific settings - some may be redundant
-set (CMAKE_SHARED_LIBRARY_PREFIX "lib")
-set (CMAKE_SHARED_LIBRARY_SUFFIX ".dylib")
-set (CMAKE_SHARED_MODULE_PREFIX "lib")
-set (CMAKE_SHARED_MODULE_SUFFIX ".so")
-set (CMAKE_MODULE_EXISTS 1)
-set (CMAKE_DL_LIBS "")
-
-set (CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG "-compatibility_version ")
-set (CMAKE_C_OSX_CURRENT_VERSION_FLAG "-current_version ")
-set (CMAKE_CXX_OSX_COMPATIBILITY_VERSION_FLAG "${CMAKE_C_OSX_COMPATIBILITY_VERSION_FLAG}")
-set (CMAKE_CXX_OSX_CURRENT_VERSION_FLAG "${CMAKE_C_OSX_CURRENT_VERSION_FLAG}")
-
-# Hidden visibilty is required for cxx on iOS
-set (CMAKE_C_FLAGS_INIT "")
-
-if (NOT BUILD_IOS_FRAMEWORK)
-    set (CMAKE_CXX_FLAGS_INIT "-fvisibility=hidden -fvisibility-inlines-hidden -isysroot ${CMAKE_OSX_SYSROOT}")
-endif ()
-
-set (CMAKE_C_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_C_LINK_FLAGS}")
-set (CMAKE_CXX_LINK_FLAGS "-Wl,-search_paths_first ${CMAKE_CXX_LINK_FLAGS}")
-
-set (CMAKE_PLATFORM_HAS_INSTALLNAME 1)
-set (CMAKE_SHARED_LIBRARY_CREATE_C_FLAGS "-dynamiclib -headerpad_max_install_names")
-set (CMAKE_SHARED_MODULE_CREATE_C_FLAGS "-bundle -headerpad_max_install_names")
-set (CMAKE_SHARED_MODULE_LOADER_C_FLAG "-Wl,-bundle_loader,")
-set (CMAKE_SHARED_MODULE_LOADER_CXX_FLAG "-Wl,-bundle_loader,")
-set (CMAKE_FIND_LIBRARY_SUFFIXES ".dylib" ".so" ".a")
-
-# hack: if a new cmake (which uses CMAKE_INSTALL_NAME_TOOL) runs on an old build tree
-# (where install_name_tool was hardcoded) and where CMAKE_INSTALL_NAME_TOOL isn't in the cache
-# and still cmake didn't fail in CMakeFindBinUtils.cmake (because it isn't rerun)
-# hardcode CMAKE_INSTALL_NAME_TOOL here to install_name_tool, so it behaves as it did before, Alex
-if (NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
-	find_program(CMAKE_INSTALL_NAME_TOOL install_name_tool)
-endif (NOT DEFINED CMAKE_INSTALL_NAME_TOOL)
-
-# Setup iOS platform unless specified manually with IOS_PLATFORM
-if (NOT DEFINED IOS_PLATFORM)
-	set (IOS_PLATFORM "OS")
-endif (NOT DEFINED IOS_PLATFORM)
-set (IOS_PLATFORM ${IOS_PLATFORM} CACHE STRING "Type of iOS Platform")
-
-# Check the platform selection and setup for developer root
-if (${IOS_PLATFORM} STREQUAL "OS")
-	set (IOS_PLATFORM_LOCATION "iPhoneOS.platform")
-
-	# This causes the installers to properly locate the output libraries
-	set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphoneos")
-elseif (${IOS_PLATFORM} STREQUAL "SIMULATOR")
-	set (IOS_PLATFORM_LOCATION "iPhoneSimulator.platform")
-
-	# This causes the installers to properly locate the output libraries
-	set (CMAKE_XCODE_EFFECTIVE_PLATFORMS "-iphonesimulator")
-else (${IOS_PLATFORM} STREQUAL "OS")
-	message (FATAL_ERROR "Unsupported IOS_PLATFORM value selected. Please choose OS or SIMULATOR")
-endif (${IOS_PLATFORM} STREQUAL "OS")
-
-# Setup iOS developer location unless specified manually with CMAKE_IOS_DEVELOPER_ROOT
-if (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
-    if (${IOS_PLATFORM} STREQUAL "SIMULATOR")
-        execute_process(COMMAND xcrun --sdk iphonesimulator --show-sdk-platform-path OUTPUT_VARIABLE XCRUN_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE)
-    else()
-        execute_process(COMMAND xcrun --sdk iphoneos --show-sdk-platform-path OUTPUT_VARIABLE XCRUN_OUTPUT OUTPUT_STRIP_TRAILING_WHITESPACE)
-    endif()
-	if (DEFINED XCRUN_OUTPUT)
-		set (CMAKE_IOS_DEVELOPER_ROOT "${XCRUN_OUTPUT}/Developer")
-	endif (DEFINED XCRUN_OUTPUT)
-endif (NOT DEFINED CMAKE_IOS_DEVELOPER_ROOT)
-set (CMAKE_IOS_DEVELOPER_ROOT ${CMAKE_IOS_DEVELOPER_ROOT} CACHE PATH "Location of iOS Platform")
-
-# Find and use the most recent iOS sdk unless specified manually with CMAKE_IOS_SDK_ROOT
-if (NOT DEFINED CMAKE_IOS_SDK_ROOT)
-	file (GLOB _CMAKE_IOS_SDKS "${CMAKE_IOS_DEVELOPER_ROOT}/SDKs/*")
-	if (_CMAKE_IOS_SDKS)
-		list (SORT _CMAKE_IOS_SDKS)
-		list (REVERSE _CMAKE_IOS_SDKS)
-		list (GET _CMAKE_IOS_SDKS 0 CMAKE_IOS_SDK_ROOT)
-	else (_CMAKE_IOS_SDKS)
-		message (FATAL_ERROR "No iOS SDK's found in default search path ${CMAKE_IOS_DEVELOPER_ROOT}. Manually set CMAKE_IOS_SDK_ROOT or install the iOS SDK.")
-	endif (_CMAKE_IOS_SDKS)
-	message (STATUS "Toolchain using default iOS SDK: ${CMAKE_IOS_SDK_ROOT}")
-endif (NOT DEFINED CMAKE_IOS_SDK_ROOT)
-set (CMAKE_IOS_SDK_ROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Location of the selected iOS SDK")
-
-# Set the sysroot default to the most recent SDK
-set (CMAKE_OSX_SYSROOT ${CMAKE_IOS_SDK_ROOT} CACHE PATH "Sysroot used for iOS support")
-
-# set the architecture for iOS
-# NOTE: Currently both ARCHS_STANDARD_32_BIT and ARCHS_UNIVERSAL_IPHONE_OS set armv7 only, so set both manually
-if (${IOS_PLATFORM} STREQUAL "OS")
-    set (IOS_ARCH ${IOS_DEVICE_ARCHS})
-else (${IOS_PLATFORM} STREQUAL "OS")
-    set (IOS_ARCH ${IOS_SIMULATOR_ARCHS})
-endif (${IOS_PLATFORM} STREQUAL "OS")
-
-set (CMAKE_OSX_ARCHITECTURES ${IOS_ARCH} CACHE string  "Build architecture for iOS")
-
-# Set the find root to the iOS developer roots and to user defined paths
-set (CMAKE_FIND_ROOT_PATH ${CMAKE_IOS_DEVELOPER_ROOT} ${CMAKE_IOS_SDK_ROOT} ${CMAKE_PREFIX_PATH} CACHE string  "iOS find search path root")
-
-# default to searching for frameworks first
-set (CMAKE_FIND_FRAMEWORK FIRST)
-
-# set up the default search directories for frameworks
-set (CMAKE_SYSTEM_FRAMEWORK_PATH
-	${CMAKE_IOS_SDK_ROOT}/System/Library/Frameworks
-	${CMAKE_IOS_SDK_ROOT}/System/Library/PrivateFrameworks
-	${CMAKE_IOS_SDK_ROOT}/Developer/Library/Frameworks
-)
-
-# only search the iOS sdks, not the remainder of the host filesystem
-set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
-set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-
-# This little macro lets you set any XCode specific property
-macro (set_xcode_property TARGET XCODE_PROPERTY XCODE_VALUE)
-	set_property (TARGET ${TARGET} PROPERTY XCODE_ATTRIBUTE_${XCODE_PROPERTY} ${XCODE_VALUE})
-endmacro (set_xcode_property)
-
-
-# This macro lets you find executable programs on the host system
-macro (find_host_package)
-	set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
-	set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
-	set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
-	set (IOS FALSE)
-
-	find_package(${ARGN})
-
-	set (IOS TRUE)
-	set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
-	set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
-	set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
-endmacro (find_host_package)


Fix testing on mac

Fix testing on mac

--- cmake/qibuild/tests.cmake
+++ cmake/qibuild/tests.cmake
@@ -41,6 +41,13 @@
   set_tests_properties(${test_name} PROPERTIES
     TIMEOUT ${ARG_TIMEOUT}
   )
+
+  # HACK for apple until the .dylib problems are fixed...
+  if(APPLE)
+    set_tests_properties(${test_name} PROPERTIES
+      ENVIRONMENT "DYLD_LIBRARY_PATH=${QI_SDK_DIR}/${QI_SDK_LIB}"
+    )
+  endif()
 endfunction()


Investigating bug on cluster

Investigating bug on cluster

Former-commit-id: 2dc61668869d15e793d424e60c4e86387ed24771

--- cmake-modules/Fetch_OpenBLAS.cmake
+++ cmake-modules/Fetch_OpenBLAS.cmake
@@ -146,7 +146,10 @@
 #            BUILD_COMMAND export LD_LIBRARY_PATH=${GFORTRAN_PATH}:$LD_LIBRARY_PATH &&
 #            export LDFLAGS="-L${GFORTRAN_PATH} $LDFLAGS" &&
             BUILD_IN_SOURCE 1
-            BUILD_COMMAND $(MAKE) TARGET=SANDYBRIDGE
+            BUILD_COMMAND
+                        export LD_LIBRARY_PATH=${GFORTRAN_PATH}:$LD_LIBRARY_PATH &&
+                        export LDFLAGS="-l${GFORTRAN_LIB} $LDFLAGS" &&
+                        $(MAKE) TARGET=SANDYBRIDGE
                         DYNAMIC_ARCH=1
                         USE_THREAD=${OpenBLAS_MULTITHREADED}
                         USE_OPENMP=${OpenBLAS_USE_OPENMP}
@@ -158,7 +161,7 @@
                         FFLAGS=-frecursive
                         BINARY64=64
                         GEMM_MULTITHREAD_THRESHOLD=16
-                        LDFLAGS=-L${GFORTRAN_PATH}
+                        LDFLAGS=-l${GFORTRAN_LIB} -l${QUADMATH_LIB}
                         FFLAGS=-O3 -Wno-maybe-uninitialized -Wno-conversion -Wno-unused-but-set-variable -Wno-unused-variable
             INSTALL_COMMAND $(MAKE) PREFIX=<INSTALL_DIR> install
             DEPENDS gfortran


Little change in cmake scripts

Little change in cmake scripts

--- cmake/dev/eprosima_libraries.cmake
+++ cmake/dev/eprosima_libraries.cmake
@@ -1,9 +1,9 @@
 macro(find_eprosima_package package)
     if(THIRDPARTY)
-        set(USE_BOOST "")
+        set(_USE_BOOST "")
         foreach(arg ${ARGN})
             if("${arg}" STREQUAL "USE_BOOST")
-                set(USE_BOOST "-DEPROSIMA_BOOST=${EPROSIMA_BOOST}\n")
+                set(_USE_BOOST "-DEPROSIMA_BOOST=${EPROSIMA_BOOST}\n")
             endif()
         endforeach()

@@ -14,14 +14,14 @@

         file(MAKE_DIRECTORY ${${package}ExternalDir})
         file(WRITE ${${package}ExternalDir}/CMakeLists.txt
-            "cmake_minimum_required(VERSION 2.8.7)\n"
+            "cmake_minimum_required(VERSION 2.8.11)\n"
             "include(ExternalProject)\n"
             "ExternalProject_Add(${package}\n"
              "CONFIGURE_COMMAND \"${CMAKE_COMMAND}\"\n"
              "${PROJECT_SOURCE_DIR}/thirdparty/${package}\n"
              "-G \"${CMAKE_GENERATOR}\"\n"
              ${BUILD_OPTION}
-             ${USE_BOOST}
+             ${_USE_BOOST}
              "-DCMAKE_INSTALL_PREFIX=${${package}ExternalDir}/install\n"
              "-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}\n"
              "UPDATE_COMMAND git submodule update --recursive --init ${PROJECT_SOURCE_DIR}/thirdparty/${package}\n"


Convert the error stream before comparing with reference

--- cmake/modules/RootTestDriver.cmake
+++ cmake/modules/RootTestDriver.cmake
@@ -151,28 +151,28 @@
     endif()

     if(CNVCMD)
-      set(_outvar, "")
       string(REPLACE "^" ";" _outcnvcmd "${CNVCMD}^${OUT}")
       execute_process(COMMAND ${_outcnvcmd} ${_chkout} ${_chkerr} RESULT_VARIABLE _rc)
       file(WRITE ${OUT} "${_outvar}")
-
-      if(DEFINED RC AND (NOT _rc EQUAL RC))
-        message(FATAL_ERROR "error code: ${_rc}")
-      elseif(NOT DEFINED RC AND _rc)
-        message(FATAL_ERROR "error code: ${_rc}")
+      if(_rc)
+        message(FATAL_ERROR "out conversion error code: ${_rc}")
       endif()
     endif()

     if(CNV)
-      set(_outvar, "")
       string(REPLACE "^" ";" _outcnv "sh;${CNV}")
       execute_process(COMMAND ${_outcnv} INPUT_FILE "${OUT}" OUTPUT_VARIABLE _outvar RESULT_VARIABLE _rc)
       file(WRITE ${OUT} "${_outvar}")
-
-      if(DEFINED RC AND (NOT _rc EQUAL RC))
-        message(FATAL_ERROR "error code: ${_rc}")
-      elseif(NOT DEFINED RC AND _rc)
-        message(FATAL_ERROR "error code: ${_rc}")
+      if(_rc)
+        message(FATAL_ERROR "out conversion error code: ${_rc}")
+      endif()
+
+      if(ERR)
+        execute_process(COMMAND ${_outcnv} INPUT_FILE "${ERR}" OUTPUT_VARIABLE _errvar RESULT_VARIABLE _rc)
+        file(WRITE ${ERR} "${_errvar}")
+        if(_rc)
+          message(FATAL_ERROR "err conversion error code: ${_rc}")
+        endif()
       endif()
     endif()
   else()


Convert Cmake list to command string

Convert Cmake list to command string

--- cmake/modules/RootTestDriver.cmake
+++ cmake/modules/RootTestDriver.cmake
@@ -192,10 +192,11 @@

     if(_rc STREQUAL "Segmentation fault" OR _rc EQUAL 11)
        message(STATUS "Got ${_rc}, retrying again once more... with coredump enabled")
+       string (REPLACE ";" " " _cmd_str "${_cmd}")
        file(WRITE run_with_coredump.sh "
 pwd
 ulimit -c unlimited
-${_cmd}
+${_cmd_str}
 ")
        execute_process(COMMAND bash run_with_coredump.sh ${_out} ${_err} ${_cwd} RESULT_VARIABLE _rc)
     endif()


cmake: llvm: llvm has no newlib

cmake: llvm: llvm has no newlib

llvm does not have newlib integrated for all architectures.

Signed-off-by: Anas Nashif <0d9952ec84ac43c159f6b7e7ed99a9080c00dd6e@intel.com>

--- cmake/toolchain/llvm/generic.cmake
+++ cmake/toolchain/llvm/generic.cmake
@@ -27,8 +27,6 @@
 set(CMAKE_ASM_COMPILER_TARGET ${triple})
 set(CMAKE_CXX_COMPILER_TARGET ${triple})

-if("${ARCH}" STREQUAL "posix")
-  set(TOOLCHAIN_HAS_NEWLIB OFF CACHE BOOL "True if toolchain supports newlib")
-endif()
+set(TOOLCHAIN_HAS_NEWLIB OFF CACHE BOOL "True if toolchain supports newlib")

 message(STATUS "Found toolchain: host (clang/ld)")


#244 silently skip jemalloc if it does not exist in the third_party directory

--- cmake_modules/TokuThirdParty.cmake
+++ cmake_modules/TokuThirdParty.cmake
@@ -3,9 +3,7 @@
 if (NOT DEFINED LIBJEMALLOC)
     ## add jemalloc with an external project
     set(JEMALLOC_SOURCE_DIR "${TokuDB_SOURCE_DIR}/third_party/jemalloc" CACHE FILEPATH "Where to find jemalloc sources.")
-    if (NOT EXISTS "${JEMALLOC_SOURCE_DIR}/configure")
-        message(FATAL_ERROR "Can't find jemalloc sources.  Please check them out to ${JEMALLOC_SOURCE_DIR} or modify JEMALLOC_SOURCE_DIR.")
-    endif ()
+    if (EXISTS "${JEMALLOC_SOURCE_DIR}/configure")
     set(jemalloc_configure_opts "CC=${CMAKE_C_COMPILER}" "--with-jemalloc-prefix=" "--with-private-namespace=tokudb_jemalloc_internal_" "--enable-cc-silence")
     option(JEMALLOC_DEBUG "Build jemalloc with --enable-debug." OFF)
     if (JEMALLOC_DEBUG)
@@ -32,6 +30,7 @@
     if (NOT DEFINED MYSQL_PROJECT_NAME_DOCSTRING)
         install(DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/jemalloc/lib" DESTINATION .
           COMPONENT tokukv_libs_extra)
+    endif ()
     endif ()
 endif ()


Use proper lib prefix for libfyaml (Fixes #1097)

--- cmakemodules/script_libfyaml.cmake
+++ cmakemodules/script_libfyaml.cmake
@@ -22,9 +22,9 @@
 	set(LIBFYAML_BIN ${MRPT_BINARY_DIR}/3rdparty/libfyaml)
 	set(LIBFYAML_INSTALL_DIR ${LIBFYAML_BIN}/install)
 	set(LIBFYAML_INCLUDES ${LIBFYAML_DIR}/include)
-
-	set(LIBFYAML_LIB ${LIBFYAML_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}fyaml${CMAKE_STATIC_LIBRARY_SUFFIX})
-
+
+	set(LIBFYAML_LIB ${LIBFYAML_INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}fyaml${CMAKE_STATIC_LIBRARY_SUFFIX})
+
 	ExternalProject_Add(
 		mrpt_liblibfyaml
 		PREFIX ${LIBFYAML_BIN}
@@ -36,7 +36,7 @@
 		  -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
 		BUILD_BYPRODUCTS ${LIBFYAML_LIB}
 	)
-
+
 	add_library(mrpt_libfyaml STATIC IMPORTED GLOBAL)

 	add_dependencies(mrpt_libfyaml mrpt_liblibfyaml)


correction for debian OS

correction for debian OS

--- source/cmake_modules/CompilationFlags.cmake
+++ source/cmake_modules/CompilationFlags.cmake
@@ -86,12 +86,10 @@
 file(STRINGS ${PROJ_FILE_NAME} _PROJ_LIB_VERSION REGEX "^#define PJ_VERSION ([0-9]+)([0-9]+)([0-9]+)")
 STRING (REGEX REPLACE "^#define PJ_VERSION " "" _PROJ_LIB_VERSION "${_PROJ_LIB_VERSION}")
 message("-- Found Proj Library : ${_PROJ_LIB_VERSION}")
-if("${_PROJ_LIB_VERSION}" LESS 500)
+IF("${_PROJ_LIB_VERSION}" LESS 500)
     add_definitions("-DPROJ_API_VERSION_MAJOR_4")
-endif()
-if("${_PROJ_LIB_VERSION}" GREATER_EQUAL 600)
+ELSEIF("${_PROJ_LIB_VERSION}" GREATER_EQUAL 600)
     add_definitions("-DPROJ_API_VERSION_MAJOR_6")
-endif()
-if("${_PROJ_LIB_VERSION}" GREATER_EQUAL 500 AND ${_PROJ_LIB_VERSION} LESS 600)
+ELSE()
     message(FATAL_ERROR "-- Proj Library '${_PROJ_LIB_VERSION}' not supported ...")
-endif()
+ENDIF()


Backport DartConfiguration.tcl tricks to make ctest -D Experimental works on recent cmake versions

--HG--
branch : 3.2

--- cmake/EigenConfigureTesting.cmake
+++ cmake/EigenConfigureTesting.cmake
@@ -26,29 +26,18 @@

 set(EIGEN_TEST_BUILD_FLAGS " " CACHE STRING "Options passed to the build command of unit tests")

-# overwrite default DartConfiguration.tcl
-# The worarounds are different for each version of the MSVC IDE
-if(MSVC_IDE)
-  if(CMAKE_MAKE_PROGRAM_SAVE MATCHES "devenv") # devenv
-    set(EIGEN_MAKECOMMAND_PLACEHOLDER "${CMAKE_MAKE_PROGRAM_SAVE} Eigen.sln /build \"Release\" /project buildtests ${EIGEN_TEST_BUILD_FLAGS} \n# ")
-  else() # msbuild
-    set(EIGEN_MAKECOMMAND_PLACEHOLDER "${CMAKE_MAKE_PROGRAM_SAVE} buildtests.vcxproj /p:Configuration=\${CTEST_CONFIGURATION_TYPE}  ${EIGEN_TEST_BUILD_FLAGS}\n# ")
-  endif()
-else()
-  # for make and nmake
-  set(EIGEN_MAKECOMMAND_PLACEHOLDER "${CMAKE_MAKE_PROGRAM_SAVE} buildtests ${EIGEN_TEST_BUILD_FLAGS}")
+# Overwrite default DartConfiguration.tcl such that ctest can build our unit tests.
+# Recall that our unit tests are not in the "all" target, so we have to explicitely ask ctest to build our custom 'buildtests' target.
+# At this stage, we can also add custom flags to the build tool through the user defined EIGEN_TEST_BUILD_FLAGS variable.
+file(READ  "${CMAKE_CURRENT_BINARY_DIR}/DartConfiguration.tcl" EIGEN_DART_CONFIG_FILE)
+# try to grab the default flags
+string(REGEX MATCH "MakeCommand:.*-- (.*)\nDefaultCTestConfigurationType" EIGEN_DUMMY ${EIGEN_DART_CONFIG_FILE})
+if(NOT CMAKE_MATCH_1)
+string(REGEX MATCH "MakeCommand:.*[^c]make (.*)\nDefaultCTestConfigurationType" EIGEN_DUMMY ${EIGEN_DART_CONFIG_FILE})
 endif()
-
-# copy ctest properties, which currently
-# o raise the warning levels
-configure_file(${CMAKE_CURRENT_BINARY_DIR}/DartConfiguration.tcl ${CMAKE_BINARY_DIR}/DartConfiguration.tcl)
-
-# restore default CMAKE_MAKE_PROGRAM
-set(CMAKE_MAKE_PROGRAM ${CMAKE_MAKE_PROGRAM_SAVE})
-# un-set temporary variables so that it is like they never existed.
-# CMake 2.6.3 introduces the more logical unset() syntax for this.
-set(CMAKE_MAKE_PROGRAM_SAVE)
-set(EIGEN_MAKECOMMAND_PLACEHOLDER)
+string(REGEX REPLACE "MakeCommand:.*DefaultCTestConfigurationType" "MakeCommand: ${CMAKE_COMMAND} --build . --target buildtests --config \"\${CTEST_CONFIGURATION_TYPE}\" -- ${CMAKE_MATCH_1} ${EIGEN_TEST_BUILD_FLAGS}\nDefaultCTestConfigurationType"
+       EIGEN_DART_CONFIG_FILE2 ${EIGEN_DART_CONFIG_FILE})
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/DartConfiguration.tcl" ${EIGEN_DART_CONFIG_FILE2})

 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CTestCustom.cmake.in ${CMAKE_BINARY_DIR}/CTestCustom.cmake)


Fix non-atomic atomic_configure_file (#1150)

* Fix non-atomic atomic_configure_file
* Update atomic_configure_file.cmake

--- cmake/atomic_configure_file.cmake
+++ cmake/atomic_configure_file.cmake
@@ -1,11 +1,10 @@
 function(atomic_configure_file input output)
+  string(RANDOM random_id)
+  get_filename_component(output_file_name ${output} NAME)
   get_filename_component(atomic_file ${output} NAME)
-  set(atomic_file "${CMAKE_BINARY_DIR}/atomic_configure/${atomic_file}")
+  set(atomic_file "${CMAKE_BINARY_DIR}/atomic_configure/${atomic_file}.${random_id}")
   configure_file("${input}" "${atomic_file}" ${ARGN})
   get_filename_component(output_path ${output} PATH)
-  # sync multiple catkin cmake processes writing to that location
-  if (NOT CMAKE_VERSION VERSION_LESS 3.2)
-    file(LOCK "${output_path}" DIRECTORY GUARD FUNCTION)
-  endif()
   file(COPY "${atomic_file}" DESTINATION "${output_path}")
+  file(RENAME "${output_path}/${output_file_name}.${random_id}" "${output_path}/${output_file_name}")
 endfunction()


Update cmake-conan to version 0.18.0 [skip ci]

--- cmake/conan.cmake
+++ cmake/conan.cmake
@@ -33,7 +33,7 @@
 # but it is only necessary on the end-user side. It is not necessary to create conan
 # packages, in fact it shouldn't be use for that. Check the project documentation.

-# version: 0.17.0
+# version: 0.18.0

 include(CMakeParseArguments)

@@ -170,7 +170,10 @@
             conan_cmake_detect_unix_libcxx(_LIBCXX)
             set(_CONAN_SETTING_COMPILER_LIBCXX ${_LIBCXX})
         endif ()
-    elseif (${CMAKE_${LANGUAGE}_COMPILER_ID} STREQUAL Clang)
+    elseif (${CMAKE_${LANGUAGE}_COMPILER_ID} STREQUAL Clang
+                AND NOT "${CMAKE_${LANGUAGE}_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC"
+                AND NOT "${CMAKE_${LANGUAGE}_SIMULATE_ID}" STREQUAL "MSVC")
+
         string(REPLACE "." ";" VERSION_LIST ${CMAKE_${LANGUAGE}_COMPILER_VERSION})
         list(GET VERSION_LIST 0 MAJOR)
         list(GET VERSION_LIST 1 MINOR)
@@ -190,7 +193,11 @@
             conan_cmake_detect_unix_libcxx(_LIBCXX)
             set(_CONAN_SETTING_COMPILER_LIBCXX ${_LIBCXX})
         endif ()
-    elseif(${CMAKE_${LANGUAGE}_COMPILER_ID} STREQUAL MSVC)
+    elseif(${CMAKE_${LANGUAGE}_COMPILER_ID} STREQUAL MSVC
+                OR (${CMAKE_${LANGUAGE}_COMPILER_ID} STREQUAL Clang
+                    AND "${CMAKE_${LANGUAGE}_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC"
+                    AND "${CMAKE_${LANGUAGE}_SIMULATE_ID}" STREQUAL "MSVC"))
+
         set(_VISUAL "Visual Studio")
         _get_msvc_ide_version(_VISUAL_VERSION)
         if("${_VISUAL_VERSION}" STREQUAL "")
@@ -444,7 +451,7 @@

 macro(conan_parse_arguments)
   set(options BASIC_SETUP CMAKE_TARGETS UPDATE KEEP_RPATHS NO_LOAD NO_OUTPUT_DIRS OUTPUT_QUIET NO_IMPORTS SKIP_STD)
-  set(oneValueArgs CONANFILE  ARCH BUILD_TYPE INSTALL_FOLDER CONAN_COMMAND)
+  set(oneValueArgs CONANFILE  ARCH BUILD_TYPE INSTALL_FOLDER OUTPUT_FOLDER CONAN_COMMAND)
   set(multiValueArgs DEBUG_PROFILE RELEASE_PROFILE RELWITHDEBINFO_PROFILE MINSIZEREL_PROFILE
                      PROFILE REQUIRES OPTIONS IMPORTS SETTINGS BUILD ENV GENERATORS PROFILE_AUTO
                      INSTALL_ARGS CONFIGURATION_TYPES PROFILE_BUILD BUILD_REQUIRES)
@@ -502,6 +509,10 @@
     if(ARGUMENTS_INSTALL_FOLDER)
       set(CONAN_INSTALL_FOLDER -if=${ARGUMENTS_INSTALL_FOLDER})
     endif()
+    set(CONAN_OUTPUT_FOLDER "")
+    if(ARGUMENTS_OUTPUT_FOLDER)
+      set(CONAN_OUTPUT_FOLDER -of=${ARGUMENTS_OUTPUT_FOLDER})
+    endif()
     foreach(ARG ${ARGUMENTS_GENERATORS})
         set(CONAN_GENERATORS ${CONAN_GENERATORS} -g=${ARG})
     endforeach()
@@ -539,7 +550,7 @@
     endif()

     set(installOptions UPDATE NO_IMPORTS OUTPUT_QUIET ERROR_QUIET)
-    set(installOneValueArgs PATH_OR_REFERENCE REFERENCE REMOTE LOCKFILE LOCKFILE_OUT LOCKFILE_NODE_ID INSTALL_FOLDER)
+    set(installOneValueArgs PATH_OR_REFERENCE REFERENCE REMOTE LOCKFILE LOCKFILE_OUT LOCKFILE_NODE_ID INSTALL_FOLDER OUTPUT_FOLDER)
     set(installMultiValueArgs GENERATOR BUILD ENV ENV_HOST ENV_BUILD OPTIONS_HOST OPTIONS OPTIONS_BUILD PROFILE
                               PROFILE_HOST PROFILE_BUILD SETTINGS SETTINGS_HOST SETTINGS_BUILD)
     cmake_parse_arguments(ARGS "${installOptions}" "${installOneValueArgs}" "${installMultiValueArgs}" ${ARGN})
@@ -560,6 +571,8 @@
                 set(flag "--lockfile-node-id")
             elseif("${arg}" STREQUAL "INSTALL_FOLDER")
                 set(flag "--install-folder")
+            elseif("${arg}" STREQUAL "OUTPUT_FOLDER")
+                set(flag "--output-folder")
             endif()
             set(${arg} ${${arg}} ${flag} ${ARGS_${arg}})
         endif()
@@ -611,7 +624,7 @@
     if(DEFINED NO_IMPORTS)
         set(NO_IMPORTS --no-imports)
     endif()
-    set(install_args install ${PATH_OR_REFERENCE} ${REFERENCE} ${UPDATE} ${NO_IMPORTS} ${REMOTE} ${LOCKFILE} ${LOCKFILE_OUT} ${LOCKFILE_NODE_ID} ${INSTALL_FOLDER}
+    set(install_args install ${PATH_OR_REFERENCE} ${REFERENCE} ${UPDATE} ${NO_IMPORTS} ${REMOTE} ${LOCKFILE} ${LOCKFILE_OUT} ${LOCKFILE_NODE_ID} ${INSTALL_FOLDER} ${OUTPUT_FOLDER}
                                 ${GENERATOR} ${BUILD} ${ENV} ${ENV_HOST} ${ENV_BUILD} ${OPTIONS} ${OPTIONS_HOST} ${OPTIONS_BUILD}
                                 ${PROFILE} ${PROFILE_HOST} ${PROFILE_BUILD} ${SETTINGS} ${SETTINGS_HOST} ${SETTINGS_BUILD})

@@ -639,6 +652,109 @@
         endif()
     endif()

+endfunction()
+
+function(conan_cmake_lock_create)
+    if(DEFINED CONAN_COMMAND)
+        set(CONAN_CMD ${CONAN_COMMAND})
+    else()
+        conan_check(REQUIRED)
+    endif()
+
+    set(lockCreateOptions UPDATE BASE OUTPUT_QUIET ERROR_QUIET)
+    set(lockCreateOneValueArgs PATH REFERENCE REMOTE LOCKFILE LOCKFILE_OUT)
+    set(lockCreateMultiValueArgs BUILD ENV ENV_HOST ENV_BUILD OPTIONS_HOST OPTIONS OPTIONS_BUILD PROFILE
+                              PROFILE_HOST PROFILE_BUILD SETTINGS SETTINGS_HOST SETTINGS_BUILD)
+    cmake_parse_arguments(ARGS "${lockCreateOptions}" "${lockCreateOneValueArgs}" "${lockCreateMultiValueArgs}" ${ARGN})
+    foreach(arg ${lockCreateOptions})
+        if(ARGS_${arg})
+            set(${arg} ${${arg}} ${ARGS_${arg}})
+        endif()
+    endforeach()
+    foreach(arg ${lockCreateOneValueArgs})
+        if(DEFINED ARGS_${arg})
+            if("${arg}" STREQUAL "REMOTE")
+                set(flag "--remote")
+            elseif("${arg}" STREQUAL "LOCKFILE")
+                set(flag "--lockfile")
+            elseif("${arg}" STREQUAL "LOCKFILE_OUT")
+                set(flag "--lockfile-out")
+            endif()
+            set(${arg} ${${arg}} ${flag} ${ARGS_${arg}})
+        endif()
+    endforeach()
+    foreach(arg ${lockCreateMultiValueArgs})
+        if(DEFINED ARGS_${arg})
+            if("${arg}" STREQUAL "BUILD")
+                set(flag "--build")
+            elseif("${arg}" STREQUAL "ENV")
+                set(flag "--env")
+            elseif("${arg}" STREQUAL "ENV_HOST")
+                set(flag "--env:host")
+            elseif("${arg}" STREQUAL "ENV_BUILD")
+                set(flag "--env:build")
+            elseif("${arg}" STREQUAL "OPTIONS")
+                set(flag "--options")
+            elseif("${arg}" STREQUAL "OPTIONS_HOST")
+                set(flag "--options:host")
+            elseif("${arg}" STREQUAL "OPTIONS_BUILD")
+                set(flag "--options:build")
+            elseif("${arg}" STREQUAL "PROFILE")
+                set(flag "--profile")
+            elseif("${arg}" STREQUAL "PROFILE_HOST")
+                set(flag "--profile:host")
+            elseif("${arg}" STREQUAL "PROFILE_BUILD")
+                set(flag "--profile:build")
+            elseif("${arg}" STREQUAL "SETTINGS")
+                set(flag "--settings")
+            elseif("${arg}" STREQUAL "SETTINGS_HOST")
+                set(flag "--settings:host")
+            elseif("${arg}" STREQUAL "SETTINGS_BUILD")
+                set(flag "--settings:build")
+            endif()
+            list(LENGTH ARGS_${arg} numargs)
+            foreach(item ${ARGS_${arg}})
+                if(${item} STREQUAL "all" AND ${arg} STREQUAL "BUILD")
+                    set(${arg} "--build")
+                    break()
+                endif()
+                set(${arg} ${${arg}} ${flag} ${item})
+            endforeach()
+        endif()
+    endforeach()
+    if(DEFINED UPDATE)
+        set(UPDATE --update)
+    endif()
+    if(DEFINED BASE)
+        set(BASE --base)
+    endif()
+    set(lock_create_Args lock create ${PATH} ${REFERENCE} ${UPDATE} ${BASE} ${REMOTE} ${LOCKFILE} ${LOCKFILE_OUT} ${LOCKFILE_NODE_ID} ${INSTALL_FOLDER}
+                                ${GENERATOR} ${BUILD} ${ENV} ${ENV_HOST} ${ENV_BUILD} ${OPTIONS} ${OPTIONS_HOST} ${OPTIONS_BUILD}
+                                ${PROFILE} ${PROFILE_HOST} ${PROFILE_BUILD} ${SETTINGS} ${SETTINGS_HOST} ${SETTINGS_BUILD})
+
+    string(REPLACE ";" " " _lock_create_Args "${lock_create_Args}")
+    message(STATUS "Conan executing: ${CONAN_CMD} ${_lock_create_Args}")
+
+    if(ARGS_OUTPUT_QUIET)
+      set(OUTPUT_OPT OUTPUT_QUIET)
+    endif()
+    if(ARGS_ERROR_QUIET)
+      set(ERROR_OPT ERROR_QUIET)
+    endif()
+
+    execute_process(COMMAND ${CONAN_CMD} ${lock_create_Args}
+                    RESULT_VARIABLE return_code
+                    ${OUTPUT_OPT}
+                    ${ERROR_OPT}
+                    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+
+    if(NOT "${return_code}" STREQUAL "0")
+        if (ARGS_ERROR_QUIET)
+            message(WARNING "Conan lock create failed='${return_code}'")
+        else()
+            message(FATAL_ERROR "Conan lock create failed='${return_code}'")
+        endif()
+    endif()
 endfunction()

 function(conan_cmake_setup_conanfile)
@@ -869,9 +985,10 @@
     set(multiValueArgs ARGS)
     cmake_parse_arguments(CONAN "" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})

-    find_program(CONAN_CMD conan)
-    if(NOT CONAN_CMD AND CONAN_REQUIRED)
-        message(FATAL_ERROR "Conan executable not found!")
+    if(DEFINED CONAN_COMMAND)
+        set(CONAN_CMD ${CONAN_COMMAND})
+    else()
+        conan_check(REQUIRED)
     endif()

     if(DEFINED CONAN_VERIFY_SSL)


c++14 (#5)

c++14 (#5)

--- rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake
+++ rosidl_typesupport_cpp/cmake/rosidl_typesupport_cpp_generate_interfaces.cmake
@@ -91,7 +91,7 @@
 endif()
 if(NOT WIN32)
   set_target_properties(${rosidl_generate_interfaces_TARGET}${_target_suffix}
-    PROPERTIES COMPILE_FLAGS "-std=c++11 -Wall -Wextra")
+    PROPERTIES COMPILE_FLAGS "-std=c++14 -Wall -Wextra")
 endif()
 target_include_directories(${rosidl_generate_interfaces_TARGET}${_target_suffix}
   PUBLIC


SVN_SILENT made messages (.desktop file) - always resolve ours

In case of conflict in i18n, keep the version of the branch "ours"
To resolve a particular conflict, "git checkout --ours path/to/file.desktop"

--- plugins/haze/ktpaccountskcm_plugin_haze.desktop.cmake
+++ plugins/haze/ktpaccountskcm_plugin_haze.desktop.cmake
@@ -47,7 +47,7 @@
 Icon=blockdevice
 Name=Haze Account Configuration User Interface
 Name[bs]=Korisnički interfejs za konfiguraciju korisničkih naloga Haze
-Name[ca]=Interfície d'usuari de configuració del compte de Haze
+Name[ca]=Interfície d'usuari de configuració del compte d'Haze
 Name[ca@valencia]=Interfície d'usuari de configuració del compte de Haze
 Name[cs]=Uživatelské rozhraní nastavení účtu Haze
 Name[da]=Brugerflade til Haze kontokonfiguration


GC HAVE_STRDUP.

GC HAVE_STRDUP.

git-svn-id: 0ff597fd157e6f4fc38580e8d64ab130330d2411@282793 91177308-0d34-0410-b5e6-96231b3b80d8

--- include/llvm/Config/config.h.cmake
+++ include/llvm/Config/config.h.cmake
@@ -220,9 +220,6 @@

 /* Define to 1 if you have the <stdint.h> header file. */
 #cmakedefine HAVE_STDINT_H ${HAVE_STDINT_H}
-
-/* Define to 1 if you have the `strdup' function. */
-#cmakedefine HAVE_STRDUP ${HAVE_STRDUP}

 /* Define to 1 if you have the `strerror' function. */
 #cmakedefine HAVE_STRERROR ${HAVE_STRERROR}


Adated CTestConfig.cmake to new dashboard system CDash.
Byebye Dart2...

http://opensync.org/testing/

git-svn-id: e31799a7ad59d6ea355ca047c69e0aee8a59fcd3@3199 53f5c7ee-bee3-0310-bbc5-ea0e15fffd5e

--- CTestConfig.cmake
+++ CTestConfig.cmake
@@ -1,6 +1,6 @@
-SET (CTEST_PROJECT_NAME "OpenSync" )
-SET (CTEST_DROP_METHOD "xmlrpc" )
-SET (CTEST_DROP_SITE "http://opensync.org/")
-SET (CTEST_DROP_LOCATION "OpenSync")
-SET (COMPRESS_SUBMISSON ON)
-#SET (CTEST_TRIGGER_SITE "http://${CTEST_DROP_SITE}/cgi-bin/Submit-OpenSync-TestingResults.pl")
+set(CTEST_PROJECT_NAME "OpenSync")
+
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "opensync.org")
+set(CTEST_DROP_LOCATION "/testing/submit.php?project=OpenSync")
+set(CTEST_DROP_SITE_CDASH TRUE)


Minor mods

Minor mods

--- CTestCustom.cmake
+++ CTestCustom.cmake
@@ -1,7 +1,6 @@
 IF(WIN32)
     SET(CTEST_CUSTOM_POST_TEST
       "C:\Windows\System32\cmd /C type Testing\Temporary\LastTest.log")
-#    SET(CTEST_CUSTOM_POST_TEST "type Testing\Temporary\LastTest.log")
 ELSE(WIN32)
     SET(CTEST_CUSTOM_POST_TEST "cat Testing/Temporary/LastTest.log")
 ENDIF(WIN32)


update vtk git hash

update vtk git hash

--- superbuild/versions.cmake
+++ superbuild/versions.cmake
@@ -85,7 +85,9 @@

 add_revision(vtk
   GIT_REPOSITORY http://vtk.org/VTK.git
-  GIT_TAG f25c14491ac9e0e09f6b136bfc52215ab41d506e )
+  GIT_TAG 3bec6b534ef2684e1f8951cb191fc334ff1eb0e2
+#GIT_TAG 758c71bae1b4b244e72279d032c7b57081bf30e8
+)

 if (UNIX)
   add_revision(mpi


PR feedback

PR feedback

--- CMake/RealmCore.cmake
+++ CMake/RealmCore.cmake
@@ -237,41 +237,35 @@

 macro(build_realm_core)
     set(core_prefix_directory "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/realm-core")
-    if(REALM_PLATFORM STREQUAL "Android")
-      ExternalProject_Add(realm-core
-            PREFIX ${core_prefix_directory}
-            BUILD_IN_SOURCE 1
-            BUILD_COMMAND sh build.sh build-android
-            INSTALL_COMMAND ""
-            CONFIGURE_COMMAND REALM_ENABLE_ENCRYPTION=YES REALM_ENABLE_ASSERTIONS= sh build.sh config
-            ${USES_TERMINAL_BUILD}
-            ${ARGV}
-            )
-    else()
-        ExternalProject_Add(realm-core
-            PREFIX ${core_prefix_directory}
-            BUILD_IN_SOURCE 1
-            BUILD_COMMAND make -C src/realm librealm.a librealm-dbg.a ${MAKE_FLAGS}
-            INSTALL_COMMAND ""
-            CONFIGURE_COMMAND ""
-            ${USES_TERMINAL_BUILD}
-            ${ARGV}
-            )
-    endif()
-
+
+    if(REALM_PLATFORM STREQUAL "Android")
+        set(build_cmd sh build.sh build-android)
+    else()
+        set(build_cmd make -C src/realm librealm.a librealm-dbg.a ${MAKE_FLAGS})
+    endif()
+
+    ExternalProject_Add(realm-core
+        PREFIX ${core_prefix_directory}
+        BUILD_IN_SOURCE 1
+        BUILD_COMMAND ${build_cmd}
+        INSTALL_COMMAND ""
+        CONFIGURE_COMMAND ""
+        ${USES_TERMINAL_BUILD}
+        ${ARGV}
+        )
     ExternalProject_Get_Property(realm-core SOURCE_DIR)
     define_realm_core_target(NO ${SOURCE_DIR})
 endmacro()

 function(clone_and_build_realm_core branch)
     if(REALM_PLATFORM STREQUAL "Android")
-        set(CONFIG_CMD REALM_ENABLE_ENCRYPTION=YES REALM_ENABLE_ASSERTIONS= sh build.sh config)
-    else()
-        set(CONFIG_CMD REALM_ENABLE_ENCRYPTION=YES REALM_ENABLE_ASSERTIONS=YES sh build.sh config)
+        set(config_cmd REALM_ENABLE_ENCRYPTION=YES REALM_ENABLE_ASSERTIONS= sh build.sh config)
+    else()
+        set(config_cmd REALM_ENABLE_ENCRYPTION=YES REALM_ENABLE_ASSERTIONS=YES sh build.sh config)
     endif()
     build_realm_core(GIT_REPOSITORY "https://github.com/realm/realm-core.git"
                      GIT_TAG ${branch}
-                     CONFIGURE_COMMAND test -f src/config.mk || CONFIG_CMD
+                     CONFIGURE_COMMAND test -f src/config.mk || ${config_cmd}
                      )
 endfunction()

@@ -288,28 +282,21 @@
 macro(build_realm_sync)
     set(cmake_files ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
     if(REALM_PLATFORM STREQUAL "Android")
-        ExternalProject_Add(realm-sync-lib
-            DEPENDS realm-core
-            PREFIX ${cmake_files}/realm-sync
-            BUILD_IN_SOURCE 1
-            BUILD_COMMAND sh build.sh build-android
-            CONFIGURE_COMMAND rm -f src/config.mk && REALM_FORCE_OPENSSL=YES REALM_ENABLE_ENCRYPTION=YES REALM_ENABLE_ASSERTIONS= sh build.sh config && echo "ENABLE_ENCRYPTION    = yes" >> src/config.mk
-            INSTALL_COMMAND ""
-            ${USES_TERMINAL_BUILD}
-            ${ARGV}
-            )
-    else()
-        ExternalProject_Add(realm-sync-lib
-            DEPENDS realm-core
-            PREFIX ${cmake_files}/realm-sync
-            BUILD_IN_SOURCE 1
-            BUILD_COMMAND make -C src/realm librealm-sync.a librealm-sync-dbg.a librealm-server.a librealm-server-dbg.a ${MAKE_FLAGS}
-            CONFIGURE_COMMAND ""
-            INSTALL_COMMAND ""
-            ${USES_TERMINAL_BUILD}
-            ${ARGV}
-            )
-    endif()
+        set(build_cmd sh build.sh build-android)
+    else()
+        set(build_cmd make -C src/realm librealm-sync.a librealm-sync-dbg.a librealm-server.a librealm-server-dbg.a ${MAKE_FLAGS})
+    endif()
+
+    ExternalProject_Add(realm-sync-lib
+        DEPENDS realm-core
+        PREFIX ${cmake_files}/realm-sync
+        BUILD_IN_SOURCE 1
+        BUILD_COMMAND ${build_cmd}
+        CONFIGURE_COMMAND ""
+        INSTALL_COMMAND ""
+        ${USES_TERMINAL_BUILD}
+        ${ARGV}
+        )

     if(APPLE)
         set(platform "")
@@ -392,14 +379,14 @@
 function(clone_and_build_realm_sync branch)
     set(cmake_files ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY})
     if(REALM_PLATFORM STREQUAL "Android")
-        set(CONFIG_CMD, rm -f src/config.mk && REALM_CORE_PREFIX=${cmake_files}/realm-core/src/realm-core REALM_FORCE_OPENSSL=YES REALM_ENABLE_ENCRYPTION=YES REALM_ENABLE_ASSERTIONS= sh build.sh config && echo "ENABLE_ENCRYPTION    = yes" >> src/config.mk)
-    else()
-        set(CONFIG_CMD, test -f src/config.mk || REALM_CORE_PREFIX=${cmake_files}/realm-core/src/realm-core sh build.sh config)
+        set(config_cmd test -f src/config.mk || REALM_CORE_PREFIX=${cmake_files}/realm-core/src/realm-core REALM_FORCE_OPENSSL=YES REALM_ENABLE_ENCRYPTION=YES REALM_ENABLE_ASSERTIONS= sh build.sh config && echo "ENABLE_ENCRYPTION    = yes" >> src/config.mk)
+    else()
+        set(config_cmd test -f src/config.mk || REALM_CORE_PREFIX=${cmake_files}/realm-core/src/realm-core sh build.sh config)
     endif()

     build_realm_sync(GIT_REPOSITORY "git@github.com:realm/realm-sync.git"
                      GIT_TAG ${branch}
-                     CONFIGURE_COMMAND CONFIG_CMD
+                     CONFIGURE_COMMAND ${config_cmd}
                      )

 endfunction()


added empty classes

added empty classes

--- Core/Code/files.cmake
+++ Core/Code/files.cmake
@@ -55,6 +55,9 @@
   Algorithms/mitkClippedSurfaceBoundsCalculator.h
   Algorithms/mitkExtractSliceFilter.h
   Algorithms/mitkVtkImageOverwrite.h
+  Algorithms/DiffSliceOperation.h
+  Algorithms/DiffSliceOperationApplier.h
+

   IO/mitkPixelTypeTraits.h

@@ -113,6 +116,8 @@
   Algorithms/mitkClippedSurfaceBoundsCalculator.cpp
   Algorithms/mitkExtractSliceFilter.cpp
   Algorithms/mitkVtkImageOverwrite.cpp
+  Algorithms/DiffSliceOperation.cpp
+  Algorithms/DiffSliceOperationApplier.cpp
   Controllers/mitkBaseController.cpp
   Controllers/mitkCallbackFromGUIThread.cpp
   Controllers/mitkCameraController.cpp


Fix: Dev: Fixed finding catch2. !minor

Fix: Dev: Fixed finding catch2. !minor

--- cmake/modules/FindCatch.cmake
+++ cmake/modules/FindCatch.cmake
@@ -4,7 +4,7 @@
 find_package(PkgConfig)
 pkg_check_modules(${MODULE_NAME} QUIET ${MODULE_NAME})

-find_path(${MODULE_NAME}_INCLUDE_DIR NAMES ${MODULE_INCLUDES} PATH_SUFFIXES catch)
+find_path(${MODULE_NAME}_INCLUDE_DIR NAMES ${MODULE_INCLUDES} PATH_SUFFIXES catch2)

 include(FindPackageHandleStandardArgs)
 find_package_handle_standard_args(${MODULE_NAME}  DEFAULT_MSG