Add address sanitizer options

Add address sanitizer options

These flags are new in GCC 4.8.0 and are used for catching
use-after-free bugs using cheaper intrumentation than valgrind.

--- cmake/snippets/flags-gnu.cmake
+++ cmake/snippets/flags-gnu.cmake
@@ -98,6 +98,12 @@
   sprokit_check_compiler_flag(sprokit_warnings -fcatch-undefined-behavior)
 endif ()

+option(SPROKIT_ENABLE_ASAN "Enable address sanitization" OFF)
+if (SPROKIT_ENABLE_ASAN)
+  sprokit_check_compiler_flag(sprokit_warnings -fsanitize=address)
+  sprokit_check_compiler_flag(sprokit_warnings -fno-omit-frame-pointer)
+endif ()
+
 option(SPROKIT_ENABLE_COVERAGE "Build with coverage testing" OFF)
 if (SPROKIT_ENABLE_COVERAGE)
   set(sprokit_coverage


Tweak dox index page

Tweak dox index page

--- Doxygit.cmake
+++ Doxygit.cmake
@@ -61,7 +61,7 @@
   endif()
   file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/index.html"
     "
\n"
-    "
${PROJECT}	")
+    "
${PROJECT}	")
   foreach(VERSION ${VERSIONS})
     set(ENTRY "${PROJECT}-${VERSION}")
     list(FIND ENTRIES "${ENTRY}" HAS_ENTRY)


grl added optional CAMODOCAL dependency

grl added optional CAMODOCAL dependency

--- BasisProject.cmake
+++ BasisProject.cmake
@@ -117,6 +117,7 @@
     CisstNetlib # https://github.com/jhu-cisst/cisstNetlib  used for inverse kinematics plugin
     cisst{cisstNumerical,cisstOSAbstraction,cisstVector,cisstCommon} # used for inverse kinematics plugin
     sawConstraintController #  used for inverse kinematics plugin
+    CAMODOCAL # used for hand eye calibration plugin
   TEST_DEPENDS
     #<test-dependency>
   OPTIONAL_TEST_DEPENDS


Template Depth: C++11 Default (1024)

Template Depth: C++11 Default (1024)

Technically, we only have to set this for GCC<4.8 and Clang<4.0
(AppleClang <9.0), where this value was pretty low, e.g. 256.

Either way, we should not necessarily set it smaller than the
minimum value required for compilers in C++11, which is 1024.

Refs:

- https://pybind11.readthedocs.io/en/stable/faq.html#recursive-template-instantiation-exceeded-maximum-depth-of-256
- https://bugs.llvm.org/show_bug.cgi?id=18417
- https://github.com/llvm/llvm-project/commit/e55b4737c026ea2e0b44829e4115d208577a67b2

--- alpakaConfig.cmake
+++ alpakaConfig.cmake
@@ -883,12 +883,14 @@
         LIST(APPEND _ALPAKA_LINK_LIBRARIES_PUBLIC "general;rt")
     ENDIF()

-    # GNU
-    IF(CMAKE_COMPILER_IS_GNUCXX)
-        LIST(APPEND _ALPAKA_COMPILE_OPTIONS_PUBLIC "-ftemplate-depth-512")
-    # Clang or AppleClang
-    ELSEIF(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
-        LIST(APPEND _ALPAKA_COMPILE_OPTIONS_PUBLIC "-ftemplate-depth=512")
+    # Clang<4.0 or AppleClang<9.0
+    #   https://bugs.llvm.org/show_bug.cgi?id=18417
+    #   https://github.com/llvm/llvm-project/commit/e55b4737c026ea2e0b44829e4115d208577a67b2
+    IF(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang" AND
+        CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.1) OR
+       ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND
+        CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.0))
+        LIST(APPEND _ALPAKA_COMPILE_OPTIONS_PUBLIC "-ftemplate-depth=1024")
     ENDIF()
 ENDIF()


activate policies

activate policies

--- CMake/cotire.cmake
+++ CMake/cotire.cmake
@@ -47,6 +47,16 @@
 set (COTIRE_CMAKE_MODULE_VERSION "1.7.5")

 # activate select policies
+if (POLICY CMP0025)
+	# Compiler id for Apple Clang is now AppleClang
+	cmake_policy(SET CMP0025 NEW)
+endif()
+
+if (POLICY CMP0026)
+	# disallow use of the LOCATION target property
+	cmake_policy(SET CMP0026 NEW)
+endif()
+
 if (POLICY CMP0038)
 	# targets may not link directly to themselves
 	cmake_policy(SET CMP0038 NEW)


Revert "Version 0.4.0"

Revert "Version 0.4.0"

This reverts commit 3a8ed4a6708f664c2b0fd44961145b2d2e6fd828.

--- Project.cmake
+++ Project.cmake
@@ -5,7 +5,7 @@
 # Run by CMakeLists.txt
 #

-project("OpenBoardView" LANGUAGES CXX VERSION "0.4.0")
+project("OpenBoardView" LANGUAGES CXX VERSION "0.3.0")
 set(PRETTY_NAME "Open Board View")

 set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Software for viewing .brd files, intended as a drop-in replacement for the


GC HAVE_DLD.

GC HAVE_DLD.

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

--- include/llvm/Config/config.h.cmake
+++ include/llvm/Config/config.h.cmake
@@ -47,9 +47,6 @@
 /* Define to 1 if you have the <dirent.h> header file, and it defines `DIR'.
    */
 #cmakedefine HAVE_DIRENT_H ${HAVE_DIRENT_H}
-
-/* Define if you have the GNU dld library. */
-#undef HAVE_DLD

 /* Define to 1 if you have the <dlfcn.h> header file. */
 #cmakedefine HAVE_DLFCN_H ${HAVE_DLFCN_H}


ENG-13715: Change the library names to be .jnilib on Linux and mac both (#5214)

--- tools/VoltDBCompilation.cmake
+++ tools/VoltDBCompilation.cmake
@@ -33,6 +33,12 @@
     PROPERTIES
     COMPILE_FLAGS "${VOLTDB_COMPILE_OPTIONS}"
       )
+   # Make shared libraries be .jnilib on the mac.
+   IF ((${KIND} STREQUAL "SHARED") AND (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" ))
+       SET_TARGET_PROPERTIES(${NAME}
+                             PROPERTIES
+                             SUFFIX ".jnilib")
+   ENDIF()
 ENDFUNCTION()

 FUNCTION (VOLTDB_ADD_EXECUTABLE NAME)


Fix LLVM commit hashes to work around recent version bump incompatible with our hard-coded "5.0.1" paths (#781)

--- cmake/external_llvm.cmake
+++ cmake/external_llvm.cmake
@@ -20,11 +20,9 @@
     set(CMAKE_DISABLE_SOURCE_CHANGES ON)
     set(CMAKE_DISABLE_IN_SOURCE_BUILD ON)

-    set(RELEASE_TAG release_50)
-
     ExternalProject_Add(ext_clang
         GIT_REPOSITORY https://github.com/llvm-mirror/clang.git
-        GIT_TAG ${RELEASE_TAG}
+        GIT_TAG 26cac19a0d622afc91cd52a002921074bccc6a27
         CONFIGURE_COMMAND ""
         BUILD_COMMAND ""
         INSTALL_COMMAND ""
@@ -42,7 +40,7 @@

     ExternalProject_Add(ext_openmp
         GIT_REPOSITORY https://github.com/llvm-mirror/openmp.git
-        GIT_TAG ${RELEASE_TAG}
+        GIT_TAG 29b515e1e6d26b5b0d32d47d28dcdb4b8a11470d
         CONFIGURE_COMMAND ""
         BUILD_COMMAND ""
         INSTALL_COMMAND ""
@@ -67,7 +65,7 @@
     ExternalProject_Add(ext_llvm
         DEPENDS ext_clang ext_openmp
         GIT_REPOSITORY https://github.com/llvm-mirror/llvm.git
-        GIT_TAG ${RELEASE_TAG}
+        GIT_TAG 5ae73c34f7eca6c43e71038b06704a8f7abc7f26
         CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
                    -DCMAKE_ASM_COMPILER=${LLVM_CMAKE_ASM_COMPILER}
                    -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}


New version: 0.4.17

New version: 0.4.17

--- VERSION.cmake
+++ VERSION.cmake
@@ -1,3 +1,3 @@
 SET(HAWKEY_MAJOR "0")
 SET(HAWKEY_MINOR "4")
-SET(HAWKEY_PATCH "16")
+SET(HAWKEY_PATCH "17")


New version: 0.4.11

New version: 0.4.11

--- VERSION.cmake
+++ VERSION.cmake
@@ -1,3 +1,3 @@
 SET(HAWKEY_MAJOR "0")
 SET(HAWKEY_MINOR "4")
-SET(HAWKEY_PATCH "10")
+SET(HAWKEY_PATCH "11")


*** empty log message ***

*** empty log message ***

git-svn-id: b7791fb0f5d07d96612766859ad70a13be88ea96@334 305cdda6-5ce1-45b3-a98d-dfc68c8b3305

--- library/FindBoost.cmake
+++ library/FindBoost.cmake
@@ -14,7 +14,7 @@
 ENDIF( ${CMAKE_GENERATOR} STREQUAL "Visual Studio 8 2005" )

 FIND_PATH(BOOST_BASE_DIR boost/weak_ptr.hpp ${BOOST_INCLUDE_SEARCH_PATH} )
-SET(BOOST_INCLUDE_DIR ${BOOST_BASE_DIR}/boost})
+SET(BOOST_INCLUDE_DIR ${BOOST_BASE_DIR})

 SET(BoostFileSystemName "")
 SET(BoostFileSystemDebugName "")


+ Remove reference to REZ_RELEASE_PACKAGES_PATH environment variable as this is not provided by the CMake build system.

--- src/rezplugins/build_system/cmake_files/RezBuild.cmake
+++ src/rezplugins/build_system/cmake_files/RezBuild.cmake
@@ -28,10 +28,6 @@
 # setup rez-build system variables
 #############################################################################

-if(NOT DEFINED ENV{REZ_RELEASE_PACKAGES_PATH})
-	message(FATAL_ERROR "REZ_RELEASE_PACKAGES_PATH was not defined in the environment.")
-endif(NOT DEFINED ENV{REZ_RELEASE_PACKAGES_PATH})
-
 if(NOT DEFINED ENV{REZ_BUILD_PROJECT_VERSION})
 	message(FATAL_ERROR "REZ_BUILD_PROJECT_VERSION was not defined in the environment.")
 endif(NOT DEFINED ENV{REZ_BUILD_PROJECT_VERSION})
@@ -40,7 +36,6 @@
 	message(FATAL_ERROR "REZ_BUILD_PROJECT_NAME was not defined in the environment.")
 endif(NOT DEFINED ENV{REZ_BUILD_PROJECT_NAME})

-set(REZ_RELEASE_PACKAGES_PATH $ENV{REZ_RELEASE_PACKAGES_PATH})
 set(REZ_BUILD_PROJECT_VERSION $ENV{REZ_BUILD_PROJECT_VERSION})
 set(REZ_BUILD_PROJECT_NAME $ENV{REZ_BUILD_PROJECT_NAME})


COMP: Bump JsonCpp to r276.

COMP: Bump JsonCpp to r276.

Add missing istream header for missing getline on Mac Clang build.

--- CMake/Superbuild/ExternalProjectsConfig.cmake
+++ CMake/Superbuild/ExternalProjectsConfig.cmake
@@ -43,10 +43,10 @@
 set( ITK_URL ${github_protocol}://itk.org/ITK.git )
 set( ITK_HASH_OR_TAG 754278cb7ab50ae3e64dc0a413aef4b9ff0ff1f0 )

-# JsonCpp snapshot 2014-01-01 r287
+# JsonCpp snapshot 2014-04-15 r276
 # ${svn_protocol}://svn.code.sf.net/p/jsoncpp/code/trunk/jsoncpp )
-set( JsonCpp_URL http://midas3.kitware.com/midas/download/bitstream/337068/JsonCpp_r275.tar.gz )
-set( JsonCpp_HASH_OR_TAG 43301ad1118004fbdc69b6f7b14a4cd5 )
+set( JsonCpp_URL http://midas3.kitware.com/midas/download/bitstream/366544/JsonCpp_r276.tar.gz )
+set( JsonCpp_HASH_OR_TAG 192f0cf2b00798d4f4fb29c99a3aa83c )

 # KWStyle snapshot 2012-04-19 04:05:19
 set( KWStyle_URL


BUG: Update IsotropicWavelets module for Doxygen build

To address the Doxygen CMake configuration error on the location of the
Python tests.

Changes:

   Matt McCormick (3):
     COMP: Wrap GaussianImageSource for StructureTensor
     BUG: Move Python tests to wrapping/test/CMakeLists.txt
     ENH: Build against ITK 5.0.1 and bump Python package version

--- Modules/Remote/IsotropicWavelets.remote.cmake
+++ Modules/Remote/IsotropicWavelets.remote.cmake
@@ -9,5 +9,5 @@
 "
   # Upstream repository was transfered from phcerdan to InsightSoftwareConsortium
   GIT_REPOSITORY ${git_protocol}://github.com/InsightSoftwareConsortium/ITKIsotropicWavelets.git
-  GIT_TAG e76bc678cbcbdb70e479008772ac6451c2cf038b
+  GIT_TAG 8f79edab90e4f80b883f6abbaeb120cdbc01da5a
 )


more descriptive warning

more descriptive warning

--- modules/math_libs.cmake
+++ modules/math_libs.cmake
@@ -50,7 +50,7 @@
 #     - "'-DMATH_LIB_SEARCH_ORDER=\"MKL;ESSL;OPENBLAS;ATLAS;ACML;SYSTEM_NATIVE\"'"
 #     - "'-DBLAS_LANG=Fortran'"
 #     - "'-DLAPACK_LANG=Fortran'"
-#   warning: "This module is deprecated and will be removed in future versions"
+#   warning: "the math_libs.cmake module is deprecated and will be removed in future versions"

 #-------------------------------------------------------------------------------
 # ENABLE_STATIC_LINKING


add -mkl flag to CMAKE_EXE_LINKER_FLAGS

add -mkl flag to CMAKE_EXE_LINKER_FLAGS

--- modules/math_libs.cmake
+++ modules/math_libs.cmake
@@ -23,6 +23,10 @@
 #   MATH_LIBS
 #   BLAS_FOUND
 #   LAPACK_FOUND
+#
+# Variables modified::
+#
+#   CMAKE_EXE_LINKER_FLAGS
 #
 # Environment variables used::
 #
@@ -447,6 +451,7 @@

 if(NOT MKL_FLAG STREQUAL "off")
     set(EXTERNAL_LIBS ${EXTERNAL_LIBS} -mkl=${MKL_FLAG})
+    set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -mkl=${MKL_FLAG}")
     message(STATUS "User set explicit MKL flag which is passed to the compiler and linker: -mkl=${MKL_FLAG}")
     message(STATUS "This disables math detection and builtin math libraries")
     message(STATUS "Setting -DHAVE_MKL_BLAS and -DHAVE_MKL_LAPACK")


hunter_find_helper: Update list of packages to test

[skip ci]

--- cmake/modules/hunter_find_helper.cmake
+++ cmake/modules/hunter_find_helper.cmake
@@ -11,7 +11,10 @@
 # * android
 # * android_log
 # * egl
+# * glapi
 # * gles2
+# * gles3
+# * osmesa
 function(hunter_find_helper)
   set(optional "")
   set(one LIBRARY HEADER)


[Config][CMake] Migrated to new FindPython3 (from deprecated FindPythonLibs)

--- config/project_config_embeddable.cmake
+++ config/project_config_embeddable.cmake
@@ -479,48 +479,36 @@
   unset (_required_version)
   if (${ARGC} GREATER 0)
     set (_required_version ${ARGV0})
-    message (STATUS "Requires PythonLibs-${_required_version}")
+    message (STATUS "Requires Python with version ${_required_version}; however just Python3 is considered here")
   else (${ARGC} GREATER 0)
-    message (STATUS "Requires PythonLibs without specifying any version")
+    message (STATUS "Requires Python3; any version will do")
   endif (${ARGC} GREATER 0)

   # The first check searches for the libraries and include paths.
   # However, on some older versions (e.g., on RedHat/CentOS 5.x),
   # only the static library is searched.
-  find_package (PythonLibs ${_required_version} REQUIRED)
+  find_package (Python3 COMPONENTS Interpreter Development REQUIRED)

   # The second check is to get the dynamic library for sure.
-  find_package (PythonLibsWrapper ${_required_version} REQUIRED)
-
-  if (PYTHONLIBS_FOUND)
-	# Derive the version of Python (for whatever reason, FindPythonLibs
-	# does not seem to provide that version variable.
-	get_filename_component (PYTHONLIBS_LIB_FILENAME ${PYTHON_LIBRARIES} NAME)
-	string (REGEX REPLACE "^libpython([0-9]+.[0-9]+).*$" "\\1"
-	  PYTHONLIBS_VERSION "${PYTHONLIBS_LIB_FILENAME}")
-
-	if (${PYTHONLIBS_VERSION_STRING} MATCHES "([0-9]).([0-9]).([0-9])")
-	  set (PY_MAJOR_VERSION "${CMAKE_MATCH_1}")
-	  set (PY_MINOR_VERSION "${CMAKE_MATCH_2}")
-	  set (PY_PATCH_VERSION "${CMAKE_MATCH_3}")
-	endif (${PYTHONLIBS_VERSION_STRING} MATCHES "([0-9]).([0-9]).([0-9])")
-
-	message (STATUS "Found PythonLibs ${PYTHONLIBS_VERSION} (${PYTHONLIBS_VERSION_STRING} / ${PY_MAJOR_VERSION}.${PY_MINOR_VERSION}.${PY_PATCH_VERSION})")
-
-	# Set the Python installation directory
-	set (INSTALL_PY_LIB_DIR
-	  ${INSTALL_LIB_DIR}/python${PYTHONLIBS_VERSION}/site-packages/py${PROJECT_NAME}
-	  CACHE PATH "Installation directory for Python libraries")
-
-	# Update the list of include directories for the project
-    include_directories (${PYTHON_INCLUDE_DIRS})
+  #find_package (PythonLibsWrapper ${_required_version} REQUIRED)
+
+  if (Python3_FOUND)
+    message (STATUS "Found Python3 ${Python3_VERSION} (${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}.${Python3_VERSION_PATCH})")
+
+    # Set the Python installation directory
+    set (INSTALL_PY_LIB_DIR
+      ${INSTALL_LIB_DIR}/python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR}/site-packages/py${PROJECT_NAME}
+      CACHE PATH "Installation directory for Python libraries")
+
+    # Update the list of include directories for the project
+    include_directories (${Python3_INCLUDE_DIRS})

     # Update the list of dependencies for the project
-    list (APPEND PROJ_DEP_LIBS_FOR_LIB ${PYTHON_LIBRARIES})
-
-  else (PYTHONLIBS_FOUND)
+    list (APPEND PROJ_DEP_LIBS_FOR_LIB ${Python3_LIBRARIES})
+
+  else (Python3_FOUND)
 	message (FATAL_ERROR "Python libraries are missing. Please install them (e.g., 'python-devel' for the Fedora/RedHat package)")
-  endif (PYTHONLIBS_FOUND)
+  endif (Python3_FOUND)

 endmacro (get_python)

@@ -618,8 +606,8 @@
   #         On some platform/Boost version combinations, the Python version
   #         may be just the major version (2 or 3 as of 2019) or the major
   #         and minor versions (e.g., 27, 28, 34, 36, 37 as of 2019)
-  set (python_cpt_name1 "python${PY_MAJOR_VERSION}")
-  set (python_cpt_name2 "python${PY_MAJOR_VERSION}${PY_MINOR_VERSION}")
+  set (python_cpt_name1 "python${Python3_VERSION_MAJOR}")
+  set (python_cpt_name2 "python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR}")
   set (Boost_USE_STATIC_LIBS OFF)
   set (Boost_USE_MULTITHREADED ON)
   set (Boost_USE_STATIC_RUNTIME OFF)
@@ -1473,7 +1461,7 @@
   set (exec_prefix   ${prefix})
   set (bindir        ${exec_prefix}/bin)
   set (libdir        ${exec_prefix}/${LIBDIR})
-  set (pylibdir	     ${libdir}/python${PYTHONLIBS_VERSION}/site-packages/py${PACKAGE})
+  set (pylibdir	     ${libdir}/python${Python3_VERSION_MAJOR}${Python3_VERSION_MINOR}/site-packages/py${PACKAGE})
   set (libexecdir    ${exec_prefix}/libexec)
   set (sbindir       ${exec_prefix}/sbin)
   set (sysconfdir    ${prefix}/etc)
@@ -2555,27 +2543,26 @@

 # Python
 macro (display_python)
-  if (PYTHONLIBS_FOUND)
+  if (Python3_FOUND)
     message (STATUS)
-	message (STATUS "* Python:")
-	message (STATUS "  - PYTHONLIBS_VERSION ............ : ${PYTHONLIBS_VERSION}")
-	message (STATUS "  - PY_{MAJOR,MINOR,PATCH}_VERSION  : ${PY_MAJOR_VERSION}.${PY_MINOR_VERSION}.${PY_PATCH_VERSION}")
-	message (STATUS "  - PYTHON_LIBRARIES .............. : ${PYTHON_LIBRARIES}")
-	message (STATUS "  - PYTHON_INCLUDE_PATH ........... : ${PYTHON_INCLUDE_PATH}")
-	message (STATUS "  - PYTHON_INCLUDE_DIRS ........... : ${PYTHON_INCLUDE_DIRS}")
-	message (STATUS "  - PYTHON_DEBUG_LIBRARIES ........ : ${PYTHON_DEBUG_LIBRARIES}")
-	message (STATUS "  - Python_ADDITIONAL_VERSIONS .... : ${Python_ADDITIONAL_VERSIONS}")
-  endif (PYTHONLIBS_FOUND)
+    message (STATUS "* Python:")
+    message (STATUS "  - Python3_VERSION ............... : ${Python3_VERSION}")
+    message (STATUS "  - Python3_VERSION_{MJR,MNR,PTCH}  : ${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}.${Python3_VERSION_PATCH}")
+    message (STATUS "  - Python3_INCLUDE_DIRS .......... : ${Python3_INCLUDE_DIRS}")
+    message (STATUS "  - Python3_LIBRARIES ............. : ${Python3_LIBRARIES}")
+    message (STATUS "  - Python3_LIBRARY_DIRS .......... : ${Python3_LIBRARY_DIRS}")
+    message (STATUS "  - Python3_RUNTIME_LIBRARY_DIRS .. : ${Python3_RUNTIME_LIBRARY_DIRS}")
+  endif (Python3_FOUND)
 endmacro (display_python)

 # ICU
 macro (display_icu)
   if (ICU_FOUND)
     message (STATUS)
-	message (STATUS "* ICU:")
-	message (STATUS "  - ICU_VERSION ................... : ${ICU_VERSION}")
-	message (STATUS "  - ICU_LIBRARIES ................. : ${ICU_LIBRARIES}")
-	message (STATUS "  - ICU_INCLUDE_DIRS .............. : ${ICU_INCLUDE_DIR}")
+    message (STATUS "* ICU:")
+    message (STATUS "  - ICU_VERSION ................... : ${ICU_VERSION}")
+    message (STATUS "  - ICU_LIBRARIES ................. : ${ICU_LIBRARIES}")
+    message (STATUS "  - ICU_INCLUDE_DIRS .............. : ${ICU_INCLUDE_DIR}")
   endif (ICU_FOUND)
 endmacro (display_icu)


[Config] (hopefully) better detection of Boost.Python across platforms

--- config/project_config_embeddable.cmake
+++ config/project_config_embeddable.cmake
@@ -504,7 +504,7 @@
 	  set (PY_MINOR_VERSION "${CMAKE_MATCH_2}")
 	  set (PY_PATCH_VERSION "${CMAKE_MATCH_3}")
 	endif (${PYTHONLIBS_VERSION_STRING} MATCHES "([0-9]).([0-9]).([0-9])")
-
+
 	message (STATUS "Found PythonLibs ${PYTHONLIBS_VERSION} (${PYTHONLIBS_VERSION_STRING} / ${PY_MAJOR_VERSION}.${PY_MINOR_VERSION}.${PY_PATCH_VERSION})")

 	# Set the Python installation directory
@@ -585,15 +585,15 @@
 macro (register_boost_lib _boost_lib_list_name _boost_lib_list)
   # Update the list of library dependencies for the project
   foreach (_lib_cpt ${_boost_lib_list})
-	string (TOUPPER ${_lib_cpt} _lib_cpt_up)
-
-	if (Boost_${_lib_cpt_up}_LIBRARY)
-	  # Update the list of dependencies for the project
-	  list (APPEND ${_boost_lib_list_name} ${Boost_${_lib_cpt_up}_LIBRARY})
-
-	  # Update the list of libraries to be displayed
-	  list (APPEND BOOST_REQUIRED_LIBS ${Boost_${_lib_cpt_up}_LIBRARY})
-	endif (Boost_${_lib_cpt_up}_LIBRARY)
+    string (TOUPPER ${_lib_cpt} _lib_cpt_up)
+
+    if (Boost_${_lib_cpt_up}_LIBRARY)
+      # Update the list of dependencies for the project
+      list (APPEND ${_boost_lib_list_name} ${Boost_${_lib_cpt_up}_LIBRARY})
+
+      # Update the list of libraries to be displayed
+      list (APPEND BOOST_REQUIRED_LIBS ${Boost_${_lib_cpt_up}_LIBRARY})
+    endif (Boost_${_lib_cpt_up}_LIBRARY)
   endforeach (_lib_cpt ${_boost_lib_list})
 endmacro (register_boost_lib _boost_lib_list_name _boost_lib_list)

@@ -606,18 +606,26 @@
   else (${ARGC} GREATER 0)
     message (STATUS "Requires Boost without specifying any version")
   endif (${ARGC} GREATER 0)
-
+
   #
-  # Note: ${Boost_DATE_TIME_LIBRARY} and ${Boost_PROGRAM_OPTIONS_LIBRARY}
-  # are already set by ${SOCIMYSQL_LIBRARIES} and/or ${SOCI_LIBRARIES}.
-  #
-  set (python_component_name "python${PY_MAJOR_VERSION}${PY_MINOR_VERSION}")
+  # Note 1: ${Boost_DATE_TIME_LIBRARY} and ${Boost_PROGRAM_OPTIONS_LIBRARY}
+  #         are already set by ${SOCIMYSQL_LIBRARIES} and/or ${SOCI_LIBRARIES}.
+  # Note 2: Boost libraries are not installed in a consistent way across the
+  #         the different platforms and versions of Boost.
+  #         For a while, the Boost.Python library component was just called
+  #         'python'. It is now suffixed with the version of Python, and
+  #         on some Linux distributions, there is even a '-py' suffix.
+  #         On some platform/Boost version combinations, the Python version
+  #         may be just the major version (2 or 3 as of 2019) or the major
+  #         and minor versions (e.g., 27, 28, 34, 36, 37 as of 2019)
+  set (python_cpt_name1 "python${PY_MAJOR_VERSION}")
+  set (python_cpt_name2 "python${PY_MAJOR_VERSION}${PY_MINOR_VERSION}")
   set (Boost_USE_STATIC_LIBS OFF)
   set (Boost_USE_MULTITHREADED ON)
   set (Boost_USE_STATIC_RUNTIME OFF)
   set (BOOST_REQUIRED_COMPONENTS_FOR_LIB
     date_time random iostreams serialization filesystem system
-	locale ${python_component_name} regex)
+    locale ${python_cpt_name1} ${python_cpt_name2} regex)
   set (BOOST_REQUIRED_COMPONENTS_FOR_BIN program_options)
   set (BOOST_REQUIRED_COMPONENTS_FOR_TST unit_test_framework)
   set (BOOST_REQUIRED_COMPONENTS ${BOOST_REQUIRED_COMPONENTS_FOR_LIB}
@@ -637,23 +645,28 @@
   find_package (BoostWrapper ${_required_version} REQUIRED)

   if (Boost_FOUND)
+    # Boost.Python library
+    message (STATUS "  + Boost_PYTHON_LIBRARY: ${Boost_PYTHON_LIBRARY}")
+    message (STATUS "  + Boost_PYTHON3_LIBRARY: ${Boost_PYTHON3_LIBRARY}")
+    message (STATUS "  + Boost_PYTHON37_LIBRARY: ${Boost_PYTHON37_LIBRARY}")
+
     # Update the list of include directories for the project
     include_directories (${Boost_INCLUDE_DIRS})

-	# For display purposes
+    # For display purposes
     set (BOOST_REQUIRED_LIBS "")

     # Update the list of library dependencies for the project
-	register_boost_lib ("PROJ_DEP_LIBS_FOR_LIB"
-	  "${BOOST_REQUIRED_COMPONENTS_FOR_LIB}")
+    register_boost_lib ("PROJ_DEP_LIBS_FOR_LIB"
+      "${BOOST_REQUIRED_COMPONENTS_FOR_LIB}")

     # Update the list of binary dependencies for the project
-	register_boost_lib ("PROJ_DEP_LIBS_FOR_BIN"
-	  "${BOOST_REQUIRED_COMPONENTS_FOR_BIN}")
+    register_boost_lib ("PROJ_DEP_LIBS_FOR_BIN"
+      "${BOOST_REQUIRED_COMPONENTS_FOR_BIN}")

     # Update the list of test dependencies for the project
-	register_boost_lib ("PROJ_DEP_LIBS_FOR_TST"
-	  "${BOOST_REQUIRED_COMPONENTS_FOR_TST}")
+    register_boost_lib ("PROJ_DEP_LIBS_FOR_TST"
+      "${BOOST_REQUIRED_COMPONENTS_FOR_TST}")

   endif (Boost_FOUND)


Fixed review remarks.

Fixed review remarks.

--- CMake/mitkFunctionCreateModule.cmake
+++ CMake/mitkFunctionCreateModule.cmake
@@ -235,7 +235,7 @@
       set(MODULE_IS_ENABLED 0)
     else()
       foreach(dep ${MODULE_DEPENDS})
-          if(NOT dep STREQUAL "PUBLIC" AND NOT dep STREQUAL "PRIVATE" AND NOT dep STREQUAL "INTERFACE")
+          if(TARGET ${dep})
             get_target_property(AUTLOAD_DEP ${dep} MITK_AUTOLOAD_DIRECTORY)
             if (AUTLOAD_DEP)
               message(SEND_ERROR "Module \"${MODULE_NAME}\" has an invalid dependency on autoload module \"${dep}\". Check MITK_CREATE_MODULE usage for \"${MODULE_NAME}\".")


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Modules/ThirdParty/KWSys/src/KWSys/kwsysDateStamp.cmake
+++ Modules/ThirdParty/KWSys/src/KWSys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 05)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   27)
+SET(KWSYS_DATE_STAMP_DAY   28)


Remove libunwind-specific defines from global config

We have libunwind_config.h for that purpose.

--- src/util/config.h.cmake
+++ src/util/config.h.cmake
@@ -20,12 +20,6 @@
 #ifndef HEAPTRACK_CONFIG_H
 #define HEAPTRACK_CONFIG_H

-#cmakedefine01 LIBUNWIND_HAS_UNW_SET_CACHE_SIZE
-
-#cmakedefine01 LIBUNWIND_HAS_UNW_BACKTRACE
-
-#cmakedefine01 LIBUNWIND_HAS_UNW_BACKTRACE_SKIP
-
 #define HEAPTRACK_VERSION_STRING "@HEAPTRACK_VERSION_MAJOR@.@HEAPTRACK_VERSION_MINOR@.@HEAPTRACK_VERSION_PATCH@"
 #define HEAPTRACK_VERSION_MAJOR @HEAPTRACK_VERSION_MAJOR@
 #define HEAPTRACK_VERSION_MINOR @HEAPTRACK_VERSION_MINOR@


CMake 2.8.3 is required

CMake 2.8.3 is required

--- cmake/VcMacros.cmake
+++ cmake/VcMacros.cmake
@@ -14,6 +14,8 @@
 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 # See the License for more information.
 #=============================================================================
+
+cmake_minimum_required(VERSION 2.8.3)

 get_filename_component(_currentDir "${CMAKE_CURRENT_LIST_FILE}" PATH)
 include ("${_currentDir}/UserWarning.cmake")


boost date_time lib

boost date_time lib

--- cmake/examples.cmake
+++ cmake/examples.cmake
@@ -1,5 +1,5 @@
 find_package(JsonCPP REQUIRED)
-find_package(Boost COMPONENTS system thread REQUIRED)
+find_package(Boost COMPONENTS system thread date_time REQUIRED)

 set(CMAKE_THREAD_PREFER_PTHREAD ON)
 find_package(Threads REQUIRED)
@@ -10,6 +10,8 @@
     "examples/*.cpp"
 )

+include_directories(${Boost_INCLUDE_DIRS})
+
 foreach(EXAMPLE ${EXAMPLES})
     get_filename_component(EXAMPLE_NAME ${EXAMPLE} NAME_WE)
     add_executable(${EXAMPLE_NAME} ${EXAMPLE})
@@ -18,6 +20,7 @@
         ${Boost_SYSTEM_LIBRARY}
         ${JSONCPP_LIBRARY}
         ${Boost_THREAD_LIBRARY}
+        ${Boost_DATE_TIME_LIBRARY}
         ${CMAKE_THREAD_LIBS_INIT}
     )
     if(WIN32)


fix dsn.cmake install problem

fix dsn.cmake install problem

--- bin/dsn.cmake
+++ bin/dsn.cmake
@@ -497,7 +497,7 @@

     message (STATUS "Installation directory: CMAKE_INSTALL_PREFIX = " ${CMAKE_INSTALL_PREFIX})
     set(DSN_ROOT2 "$ENV{DSN_ROOT}")
-    if((EXISTS "${DSN_ROOT2}/"))
+    if((NOT (DSN_ROOT2 STREQUAL "")) AND (EXISTS "${DSN_ROOT2}/"))
         set(CMAKE_INSTALL_PREFIX ${DSN_ROOT2} CACHE STRING "" FORCE)
         message (STATUS "Installation directory redefined w/ ENV{DSN_ROOT}: " ${CMAKE_INSTALL_PREFIX})
     endif()


cmake jlink add path hints for macos

cmake jlink add path hints for macos

--- platforms/nuttx/cmake/jlink.cmake
+++ platforms/nuttx/cmake/jlink.cmake
@@ -32,7 +32,9 @@
 ############################################################################

 # jlink_upload (flash binary)
-find_program(JLinkGDBServerCLExe_PATH JLinkGDBServerCLExe)
+find_program(JLinkGDBServerCLExe_PATH JLinkGDBServerCLExe
+	HINTS /Applications/SEGGER/JLink
+)
 if(JLinkGDBServerCLExe_PATH)
 	configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Debug/jlink_gdb_start.sh.in ${PX4_BINARY_DIR}/jlink_gdb_start.sh @ONLY)
 	add_custom_target(jlink_upload
@@ -48,7 +50,9 @@
 endif()

 # jlink_debug_gdb (flash binary and run with gdb attached)
-find_program(JLinkGDBServerExe_PATH JLinkGDBServerExe)
+find_program(JLinkGDBServerExe_PATH JLinkGDBServerExe
+	HINTS /Applications/SEGGER/JLink
+)
 if(JLinkGDBServerExe_PATH AND CMAKE_GDB)
 	configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Debug/jlink_debug_gdb.sh.in ${PX4_BINARY_DIR}/jlink_debug_gdb.sh @ONLY)
 	add_custom_target(jlink_debug_gdb
@@ -63,7 +67,9 @@
 endif()

 # jlink_debug_ozone (run Segger Ozone debugger with current target configuration)
-find_program(Ozone_PATH Ozone)
+find_program(Ozone_PATH Ozone
+	HINTS /Applications/Ozone.app/Contents/MacOS/
+)
 if(Ozone_PATH)
 	configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Debug/jlink_debug_ozone.sh.in ${PX4_BINARY_DIR}/jlink_debug_ozone.sh @ONLY)
 	add_custom_target(jlink_debug_ozone


Added ZORBA_BIG/LITTLE_ENDIAN.

Added ZORBA_BIG/LITTLE_ENDIAN.

--- include/zorba/config.h.cmake
+++ include/zorba/config.h.cmake
@@ -33,6 +33,8 @@
 #ifdef CYGWIN
 # undef WIN32
 #endif /* CYGWIN */
+#cmakedefine ZORBA_BIG_ENDIAN @ZORBA_BIG_ENDIAN@
+#cmakedefine ZORBA_LITTLE_ENDIAN @ZORBA_LITTLE_ENDIAN@

 #ifdef WIN32
 # pragma warning( disable: 4251 )


Temporary fix to only to include dbus libs for x86 builds.

--- targets/target-kubos-gcc/CMake/Platform/KubOS-GNU-C.cmake
+++ targets/target-kubos-gcc/CMake/Platform/KubOS-GNU-C.cmake
@@ -12,9 +12,12 @@
 # But it is more optimal than including a custom .cmake in every project that needs d-bus
 # One day we will have a better method for including external libs....
 if(TARGET_LIKE_KUBOS_LINUX)
-    # Two dbus includes
-    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include")
-    set(GLOBALLY_LINKED_TARGET_LIBS "${GLOBALLY_LINKED_TARGET_LIBS} -ldbus-1")
+    # For now only include these in x86 linux targets
+    # Because we haven't included d-bus in the other target toolchains yet
+    if(TARGET_LIKE_X86)
+        set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -I/usr/include/dbus-1.0 -I/usr/lib/x86_64-linux-gnu/dbus-1.0/include")
+        set(GLOBALLY_LINKED_TARGET_LIBS "${GLOBALLY_LINKED_TARGET_LIBS} -ldbus-1")
+    endif()
 endif()

 # Override the link rules:
@@ -43,4 +46,3 @@
 if(YOTTA_CFG_DEBUG_OPTIONS_COVERAGE)
     set(CMAKE_C_LINK_EXECUTABLE         "${CMAKE_C_LINK_EXECUTABLE} -fprofile-arcs -lgcov")
 endif()
-


Exclude vcruntime*.dll from win32 python install

If vcruntime*.dll is included in the python install, then two
copies of it get installed to the same location: one from the
python install, and one from just installing the required standard
libraries.

Remove it from the python install list so it is not included. This
fixes an error with WIX.

Signed-off-by: Patrick Avery <743342299f279e7a8c3ff5eb40671fce3e95f13a@kitware.com>

--- projects/win32/python.install.cmake
+++ projects/win32/python.install.cmake
@@ -1,3 +1,8 @@
 file(GLOB files "*")
+
+# Get rid of vcruntime*.dll, or we will install multiple copies of it
+# This fix prevents an error with WIX
+list(FILTER files EXCLUDE REGEX ".*vcruntime[0-9]+\\.dll")
+
 file(INSTALL ${files}
   DESTINATION "${install_dir}/bin/")


paraview: update name of plugin to disable

ParaView changed the name of the plugin CoProcessingScriptGenerator to
CatalystScriptGenerator.  Update our CMake variable to turn off the
plugin under its new name.

--- projects/paraview.cmake
+++ projects/paraview.cmake
@@ -39,7 +39,7 @@
     -DPARAVIEW_BUILD_PLUGIN_AdiosReader:BOOL=FALSE
     -DPARAVIEW_BUILD_PLUGIN_AnalyzeNIfTIIO:BOOL=FALSE
     -DPARAVIEW_BUILD_PLUGIN_ArrowGlyph:BOOL=FALSE
-    -DPARAVIEW_BUILD_PLUGIN_CoProcessingScriptGenerator:BOOL=FALSE
+    -DPARAVIEW_BUILD_PLUGIN_CatalystScriptGenerator:BOOL=FALSE
     -DPARAVIEW_BUILD_PLUGIN_EyeDomeLighting:BOOL=FALSE
     -DPARAVIEW_BUILD_PLUGIN_ForceTime:BOOL=FALSE
     -DPARAVIEW_BUILD_PLUGIN_GMVReader:BOOL=FALSE


Move module builds to root build dir

Move module builds to root build dir

--- prosoft/core/core.cmake
+++ prosoft/core/core.cmake
@@ -63,7 +63,7 @@
     ps_core_use_u8string(${TARGET_NAME})
     ps_core_use_system_identity(${TARGET_NAME})
     if(NOT TARGET filesystem)
-        add_subdirectory(${PSCORE}/modules/filesystem ${CMAKE_CURRENT_BINARY_DIR}/filesystem)
+        add_subdirectory(${PSCORE}/modules/filesystem ${CMAKE_BINARY_DIR}/psfilesystem)
     endif()
     target_link_libraries(${TARGET_NAME} PUBLIC filesystem)
 endmacro()
@@ -85,7 +85,7 @@
 macro(ps_core_use_system_identity TARGET_NAME)
     ps_core_use_u8string(${TARGET_NAME})
     if(NOT TARGET system_identity)
-        add_subdirectory(${PSCORE}/modules/system_identity ${CMAKE_CURRENT_BINARY_DIR}/pssystem_identity)
+        add_subdirectory(${PSCORE}/modules/system_identity ${CMAKE_BINARY_DIR}/pssystem_identity)
     endif()
     target_link_libraries(${TARGET_NAME} PUBLIC system_identity)
 endmacro()


Revert

Revert

--- modules/asio.cmake
+++ modules/asio.cmake
@@ -3,7 +3,7 @@
   # Module library
   file(GLOB SOURCE_FILES "asio/asio/src/*.cpp")
   if(NOT MSVC)
-    set_source_files_properties(${SOURCE_FILES} PROPERTIES COMPILE_FLAGS "")
+    set_source_files_properties(${SOURCE_FILES} PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS}")
   else()
     # C4127: conditional expression is constant
     # C4702: unreachable code


corrected capitalization in path for boost prefix

--- superbuild/External-Boost.cmake
+++ superbuild/External-Boost.cmake
@@ -28,7 +28,7 @@
   CONFIGURE_COMMAND ""
   BUILD_COMMAND ""
   INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory
-    ${CMAKE_BINARY_DIR}/boost-prefix/src/boost/boost
+    ${CMAKE_BINARY_DIR}/Boost-prefix/src/Boost/boost
     ${INSTALL_DEPECENCIES_DIR}/include/boost
 )


Removing installation rules for HDF5. ParaView should be doing this for us

--- Resources/MXACMake/ParaViewPluginIncludeMXADataModel.cmake
+++ Resources/MXACMake/ParaViewPluginIncludeMXADataModel.cmake
@@ -64,5 +64,5 @@
 INCLUDE_DIRECTORIES (${ParaView_BINARY_DIR}/MXADataModel)

 #-- Include a CMake file with some Macros that will be needed.
-include (${MXADataModel_SOURCE_DIR}/Resources/cmp/cmpCMakeMacros.cmake)
-CMP_LIBRARIES_INSTALL_RULES ("hdf5" "bin")
+#include (${MXADataModel_SOURCE_DIR}/Resources/cmp/cmpCMakeMacros.cmake)
+#CMP_LIBRARIES_INSTALL_RULES ("hdf5" "bin")


ENH: Restore rejection of -frename-registers and -ffloat-store

These flags were rejected as of commit 0df420fa (Check that error
inducing compiler flag is not present, 2005-09-14) and commit 65a5c2f6
(The gcc compiler -ffloat-store option causes runtime errors for gcc
3.2.3, 2005-10-05) but the check was removed during modularization.

--- CMake/ITKPlatformSpecificChecks.cmake
+++ CMake/ITKPlatformSpecificChecks.cmake
@@ -120,6 +120,23 @@
   endif(SUN_COMPILER_HAS_STL_PORT_4)
 endif(SUN_COMPILER)

+#-----------------------------------------------------------------------------
+# The frename-registers option does not work due to a bug in the gnu compiler.
+# It must be removed or data errors will be produced and incorrect results
+# will be produced.  This is first documented in the gcc4 man page.
+if(CMAKE_COMPILER_IS_GNUCXX)
+  set(ALL_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_CXX_FLAGS} ${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_MODULE_LINKER_FLAGS}" )
+  separate_arguments(ALL_FLAGS)
+  foreach(COMP_OPTION ${ALL_FLAGS})
+    if("${COMP_OPTION}" STREQUAL "-frename-registers")
+      message(FATAL_ERROR "-frename-registers causes runtime bugs.  It must be removed from your compilation options.")
+    endif("${COMP_OPTION}" STREQUAL "-frename-registers")
+    if("${COMP_OPTION}" STREQUAL "-ffloat-store")
+      message(FATAL_ERROR "-ffloat-store causes runtime bugs on gcc 3.2.3 (appearently not on gcc 3.4.3, but the exact criteria is not known).  It must be removed from your compilation options.")
+    endif("${COMP_OPTION}" STREQUAL "-ffloat-store")
+  endforeach(COMP_OPTION)
+endif(CMAKE_COMPILER_IS_GNUCXX)
+
 #---------------------------------------------------------------
 # run try compiles and tests for ITK
 include(CMake/itkTestFriendTemplatedFunction.cmake)


command line is better place for this definition

git-svn-id: dea4c50957f75874cf9791776be29d2e34106c50@327 ef0d8562-5c19-0410-972e-841db63a069c

--- CMakeModules/CompilerVisibility.cmake
+++ CMakeModules/CompilerVisibility.cmake
@@ -12,7 +12,7 @@

   IF(HAVE_VISIBILITY)
     SET(ADD_CFLAGS "${ADD_CFLAGS} -fvisibility=hidden")
-    ADD_DEFINE(HAVE_GCC_VISIBILITY)
+    ADD_DEFINITIONS(-DHAVE_GCC_VISIBILITY)
   ENDIF(HAVE_VISIBILITY)
 ENDIF(NOT WIN32 AND NOT CMAKE_COMPILER_IS_ICC)
 ENDMACRO(TEST_COMPILER_VISIBILITY)


vtkhdf5: don't expect timezone with VS2015

It went away?

--- ThirdParty/hdf5/vtkhdf5/config/cmake/ConfigureChecks.cmake
+++ ThirdParty/hdf5/vtkhdf5/config/cmake/ConfigureChecks.cmake
@@ -183,7 +183,9 @@
   endif (NOT UNIX AND NOT CYGWIN AND NOT MINGW)
   set (H5_HAVE_FUNCTION 1)
   set (H5_GETTIMEOFDAY_GIVES_TZ 1)
-  set (H5_HAVE_TIMEZONE 1)
+  if (NOT MSVC14)
+    set (H5_HAVE_TIMEZONE 1)
+  endif ()
   set (H5_HAVE_GETTIMEOFDAY 1)
   set (H5_LONE_COLON 0)
   if (MINGW)


Make python_include and python_lib work in Windows with the right slashes.

--- modules/FindCoherentPython.cmake
+++ modules/FindCoherentPython.cmake
@@ -55,6 +55,7 @@
             "print(get_python_inc())"
         )
         if(DEFINED python_include AND EXISTS "${python_include}")
+            FILE(TO_CMAKE_PATH ${python_include} python_include)
             set(PYTHON_INCLUDE_DIR "${python_include}")
         endif()
         # And tries adding sysconfig.get_python_lib output
@@ -64,6 +65,7 @@
             "print(get_python_lib())"
         )
         if(DEFINED python_lib)
+            FILE(TO_CMAKE_PATH ${python_lib} python_lib)
             if(EXISTS "${python_lib}")
                 list(INSERT CMAKE_LIBRARY_PATH 0 "${python_lib}")
             endif()


SuperBuild: ensure FFTW is installed in lib, not lib64

--- SuperBuild/CMake/External_fftw.cmake
+++ SuperBuild/CMake/External_fftw.cmake
@@ -36,6 +36,7 @@
   DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
   CMAKE_CACHE_ARGS
   ${SB_CMAKE_CACHE_ARGS}
+    -DCMAKE_INSTALL_LIBDIR:PATH=lib
     -DBUILD_TESTS:BOOL=OFF
     -DDISABLE_FORTRAN:BOOL=ON
     -DENABLE_THREADS:BOOL=ON
@@ -61,6 +62,7 @@
   DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
   CMAKE_CACHE_ARGS
   ${SB_CMAKE_CACHE_ARGS}
+    -DCMAKE_INSTALL_LIBDIR:PATH=lib
     -DBUILD_TESTS:BOOL=OFF
     -DDISABLE_FORTRAN:BOOL=ON
     -DENABLE_THREADS:BOOL=ON


SuperBuild: package also the mvd translation file

--- SuperBuild/CMake/Package_Macro.cmake
+++ SuperBuild/CMake/Package_Macro.cmake
@@ -219,6 +219,12 @@
           PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ GROUP_EXECUTE GROUP_READ)
       endforeach()
     endif()
+
+    ################ install Qt translation files ################
+    if(WITH_MVD)
+      file(GLOB MVD_QM_FILES ${PACKAGE_INSTALLDIR}/share/otb/i18n/*.qm)
+      install(FILES ${MVD_QM_FILES} DESTINATION ${DATA_DIR}/otb/i18n)
+    endif()
   endif()


DOC: Fix module description

DOC: Fix module description

--- Modules/Core/Functor/otb-module.cmake
+++ Modules/Core/Functor/otb-module.cmake
@@ -18,9 +18,10 @@
 # limitations under the License.
 #

-set(DOCUMENTATION "This module contains a set of classes that allow parsing
-metadata files from different types of sensor (both optical and radar sensor types
-are supported. for instance: Pleiades, SPOT6, TerraSar, and so on).")
+set(DOCUMENTATION "This module contains a generic functor filter
+implementation, that can deal with functor, std::function or lambdas
+with any number of parameters including VariableLengthVector,
+FixedArray, RGBPixel, and Neighborhood of those.")

 otb_module(OTBFunctor
   DEPENDS


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 06)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   16)
+SET(KWSYS_DATE_STAMP_DAY   17)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 08)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   13)
+SET(KWSYS_DATE_STAMP_DAY   14)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 12)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   19)
+SET(KWSYS_DATE_STAMP_DAY   20)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 10)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   08)
+SET(KWSYS_DATE_STAMP_DAY   09)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 05)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   30)
+SET(KWSYS_DATE_STAMP_DAY   31)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 07)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   02)
+SET(KWSYS_DATE_STAMP_DAY   03)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 11)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   01)
+SET(KWSYS_DATE_STAMP_DAY   02)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 02)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   21)
+SET(KWSYS_DATE_STAMP_DAY   22)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 06)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   17)
+SET(KWSYS_DATE_STAMP_DAY   18)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 05)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   29)
+SET(KWSYS_DATE_STAMP_DAY   30)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 01)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   11)
+SET(KWSYS_DATE_STAMP_DAY   12)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 02)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   08)
+SET(KWSYS_DATE_STAMP_DAY   09)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 04)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   08)
+SET(KWSYS_DATE_STAMP_DAY   09)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 08)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   19)
+SET(KWSYS_DATE_STAMP_DAY   20)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 03)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   05)
+SET(KWSYS_DATE_STAMP_DAY   06)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 11)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   01)
+SET(KWSYS_DATE_STAMP_DAY   02)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 02)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   05)
+SET(KWSYS_DATE_STAMP_DAY   06)


Improved wrapper_generator.cmake

Improved wrapper_generator.cmake

--- src/commonapi/wrapper_generator.cmake
+++ src/commonapi/wrapper_generator.cmake
@@ -13,7 +13,7 @@
         string(REPLACE ".fidl" "" FIDL_NAME ${FIDL_NAME_WITH_EXTENTION})
         message(STATUS "FIDL_NAME is ${FIDL_NAME}")
         execute_process(COMMAND python3 ${ICC_SOURCE_DIR}/src/commonapi/interface_hierarchical_path.py
-                                ${FIDL}
+                                        ${FIDL}
                         OUTPUT_VARIABLE HIERARCHIC_PATHS)
         string(REGEX MATCHALL "([^;]*);"
                INTERFACE_HIERARCHIC_PATHS "${HIERARCHIC_PATHS}")
@@ -28,45 +28,74 @@
             if(${SERVICE_OR_CLIENT} STREQUAL "Service")
                 set(COMMONAPI_GENERATED_FILES
                     ${COMMONAPI_GENERATED_FILES}
-                    "${CMAKE_BINARY_DIR}/${INTERFACE_HIERARCHIC_PATH}DBusStubAdapter.cpp"
-                    "${CMAKE_BINARY_DIR}/${INTERFACE_HIERARCHIC_PATH}StubDefault.cpp"
-                    "${CMAKE_BINARY_DIR}/${INTERFACE_HIERARCHIC_PATH}DBusDeployment.cpp")
+                    "${GEN_DIR}/${INTERFACE_HIERARCHIC_PATH}DBusStubAdapter.cpp"
+                    "${GEN_DIR}/${INTERFACE_HIERARCHIC_PATH}StubDefault.cpp"
+                    "${GEN_DIR}/${INTERFACE_HIERARCHIC_PATH}DBusDeployment.cpp")
             else(${SERVICE_OR_CLIENT} STREQUAL "Service")
                 set(COMMONAPI_GENERATED_FILES
                     ${COMMONAPI_GENERATED_FILES}
-                    "${CMAKE_BINARY_DIR}/${INTERFACE_HIERARCHIC_PATH}DBusProxy.cpp"
-                    "${CMAKE_BINARY_DIR}/${INTERFACE_HIERARCHIC_PATH}DBusDeployment.cpp")
+                    "${GEN_DIR}/${INTERFACE_HIERARCHIC_PATH}DBusProxy.cpp"
+                    "${GEN_DIR}/${INTERFACE_HIERARCHIC_PATH}DBusDeployment.cpp")
             endif(${SERVICE_OR_CLIENT} STREQUAL "Service")
-            set(COMMONAPI_WRAPPER_GENERATED_FILES
-                ${COMMONAPI_WRAPPER_GENERATED_FILES}
-                ${GENERATOR_PATH}/${INTERFACE_NAME}Client.hpp
-                ${GENERATOR_PATH}/${INTERFACE_NAME}Service.hpp)
+
             if (${IS_LOGGED})
                 message(STATUS "Logged wrappers was choosed")
-                add_custom_command(
-                        OUTPUT ${GENERATOR_PATH}/${INTERFACE_NAME}Client.hpp
+                if(${SERVICE_OR_CLIENT} STREQUAL "Service")
+                    set(COMMONAPI_WRAPPER_GENERATED_FILES
+                        ${COMMONAPI_WRAPPER_GENERATED_FILES}
+                        ${GENERATOR_PATH}/${INTERFACE_NAME}Service.hpp)
+                    add_custom_command(
                         OUTPUT ${GENERATOR_PATH}/${INTERFACE_NAME}Service.hpp
                         DEPENDS ${FIDL}
                         COMMAND touch ${INTERFACE_NAME}CommonAPIWrappers
                         COMMAND python3 ${ICC_SOURCE_DIR}/libs/commonapi_tools/wrapper_generator.py
                         ${FIDL}
                         ${GENERATOR_PATH}
-                        --capi_client ${ICC_SOURCE_DIR}/src/commonapi/templates/CommonAPIClientLogged.hpp.jinja2
                         --capi_service ${ICC_SOURCE_DIR}/src/commonapi/templates/CommonAPIServiceLogged.hpp.jinja2
-                )
+                    )
+                else(${SERVICE_OR_CLIENT} STREQUAL "Service")
+                    set(COMMONAPI_WRAPPER_GENERATED_FILES
+                        ${COMMONAPI_WRAPPER_GENERATED_FILES}
+                        ${GENERATOR_PATH}/${INTERFACE_NAME}Client.hpp)
+                    add_custom_command(
+                            OUTPUT ${GENERATOR_PATH}/${INTERFACE_NAME}Client.hpp
+                            DEPENDS ${FIDL}
+                            COMMAND touch ${INTERFACE_NAME}CommonAPIWrappers
+                            COMMAND python3 ${ICC_SOURCE_DIR}/libs/commonapi_tools/wrapper_generator.py
+                            ${FIDL}
+                            ${GENERATOR_PATH}
+                            --capi_client ${ICC_SOURCE_DIR}/src/commonapi/templates/CommonAPIClientLogged.hpp.jinja2
+                    )
+                endif ()
             else()
                 message(STATUS "Simple wrappers was choosed")
-                add_custom_command(
-                        OUTPUT ${GENERATOR_PATH}/${INTERFACE_NAME}Client.hpp
+                if(${SERVICE_OR_CLIENT} STREQUAL "Service")
+                    set(COMMONAPI_WRAPPER_GENERATED_FILES
+                        ${COMMONAPI_WRAPPER_GENERATED_FILES}
+                        ${GENERATOR_PATH}/${INTERFACE_NAME}Service.hpp)
+                    add_custom_command(
                         OUTPUT ${GENERATOR_PATH}/${INTERFACE_NAME}Service.hpp
                         DEPENDS ${FIDL}
                         COMMAND touch ${INTERFACE_NAME}CommonAPIWrappers
                         COMMAND python3 ${ICC_SOURCE_DIR}/libs/commonapi_tools/wrapper_generator.py
                         ${FIDL}
                         ${GENERATOR_PATH}
+                        --capi_service ${ICC_SOURCE_DIR}/src/commonapi/templates/CommonAPIService.hpp.jinja2
+                    )
+                else(${SERVICE_OR_CLIENT} STREQUAL "Service")
+                    set(COMMONAPI_WRAPPER_GENERATED_FILES
+                        ${COMMONAPI_WRAPPER_GENERATED_FILES}
+                        ${GENERATOR_PATH}/${INTERFACE_NAME}Client.hpp)
+                    add_custom_command(
+                        OUTPUT ${GENERATOR_PATH}/${INTERFACE_NAME}Client.hpp
+                        DEPENDS ${FIDL}
+                        COMMAND touch ${INTERFACE_NAME}CommonAPIWrappers
+                        COMMAND python3 ${ICC_SOURCE_DIR}/libs/commonapi_tools/wrapper_generator.py
+                        ${FIDL}
+                        ${GENERATOR_PATH}
                         --capi_client ${ICC_SOURCE_DIR}/src/commonapi/templates/CommonAPIClient.hpp.jinja2
-                        --capi_service ${ICC_SOURCE_DIR}/src/commonapi/templates/CommonAPIService.hpp.jinja2
-                )
+                    )
+                endif ()
             endif ()

         endforeach()
@@ -80,16 +109,16 @@
     foreach(COMMONAPI_GENERATED_FILE ${COMMONAPI_GENERATED_FILES})
         if(NOT TARGET ${COMMONAPI_GENERATED_FILE})
             set(FILTERED_COMMONAPI_GENERATED_FILES
-                    ${FILTERED_COMMONAPI_GENERATED_FILES}
-                    ${COMMONAPI_GENERATED_FILE})
+                ${FILTERED_COMMONAPI_GENERATED_FILES}
+                ${COMMONAPI_GENERATED_FILE})
         endif()
     endforeach()
     if(FILTERED_COMMONAPI_GENERATED_FILES)
         add_custom_command(
-                OUTPUT ${FILTERED_COMMONAPI_GENERATED_FILES}
-                DEPENDS ${FIDL_FILES}
-                COMMAND ${COMMONAPI_GENERATOR} --dest ${GENERATOR_PATH} -sk ${FIDL_FILES}
-                COMMAND ${COMMONAPI_DBUS_GENERATOR} --dest ${GENERATOR_PATH} ${FIDL_FILES}
+            OUTPUT ${FILTERED_COMMONAPI_GENERATED_FILES}
+            DEPENDS ${FIDL_FILES}
+            COMMAND ${COMMONAPI_GENERATOR} --dest ${GEN_DIR} -sk ${FIDL_FILES}
+            COMMAND ${COMMONAPI_DBUS_GENERATOR} --dest ${GEN_DIR} ${FIDL_FILES}
         )
     endif()
     set_source_files_properties(${FILTERED_COMMONAPI_GENERATED_FILES} PROPERTIES GENERATED TRUE)


Windows: silenced MSVC 'secure CRT' warnings.

--- toolchains/msvc.toolchain.cmake
+++ toolchains/msvc.toolchain.cmake
@@ -21,6 +21,7 @@

 add_compile_options( /MP /Oi /W4 /Zc:threadSafeInit- )
 add_definitions(
+    -D_CRT_SECURE_NO_WARNINGS
     -D_SBCS
     -D_WIN32_WINNT=0x0601 # Win7
 )


Write custom options too to generate CMakeLists.txt file

--- KRAL/builder.cmake
+++ KRAL/builder.cmake
@@ -118,6 +118,7 @@
         file (APPEND ${CMLFILE} "set (CMAKE_BUILD_TYPE ${BUILD_TYPE_${T}} CACHE INTERNAL BUILD_TYPE FORCE)\n")
         file (APPEND ${CMLFILE} "set (PACKAGES ${PACKAGE_DIRS} CACHE INTERNAL PACKAGE_DIRS FORCE)\n")
         file (APPEND ${CMLFILE} "set (NEW_CMAKE True)\n")
+        file (APPEND ${CMLFILE} "${NEWSTR}\n")
         file (APPEND ${CMLFILE} "add_subdirectory (${PROJECT_DIR_${T}})")
     endif ()
 elseif (UPDATE OR U)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 02)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   02)
+SET(KWSYS_DATE_STAMP_DAY   03)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 01)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   09)
+SET(KWSYS_DATE_STAMP_DAY   10)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 08)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   27)
+SET(KWSYS_DATE_STAMP_DAY   28)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 08)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   27)
+SET(KWSYS_DATE_STAMP_DAY   28)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 09)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   01)
+SET(KWSYS_DATE_STAMP_DAY   02)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -15,7 +15,7 @@
 SET(KWSYS_DATE_STAMP_YEAR  2011)

 # KWSys version date month component.  Format is MM.
-SET(KWSYS_DATE_STAMP_MONTH 03)
+SET(KWSYS_DATE_STAMP_MONTH 04)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   31)
+SET(KWSYS_DATE_STAMP_DAY   01)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 09)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   27)
+SET(KWSYS_DATE_STAMP_DAY   28)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 01)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   10)
+SET(KWSYS_DATE_STAMP_DAY   11)


STYLE: Nightly Date Stamp

STYLE: Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -7,4 +7,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 07)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   19)
+SET(KWSYS_DATE_STAMP_DAY   20)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 10)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   12)
+SET(KWSYS_DATE_STAMP_DAY   13)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 08)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   19)
+SET(KWSYS_DATE_STAMP_DAY   20)


KWSys Nightly Date Stamp

KWSys Nightly Date Stamp

--- Utilities/kwsys/kwsysDateStamp.cmake
+++ Utilities/kwsys/kwsysDateStamp.cmake
@@ -18,4 +18,4 @@
 SET(KWSYS_DATE_STAMP_MONTH 10)

 # KWSys version date day component.  Format is DD.
-SET(KWSYS_DATE_STAMP_DAY   02)
+SET(KWSYS_DATE_STAMP_DAY   03)


Done with supporting building OpenCOR with Ninja (closes #364).

I thought our combined use of ADD_CUSTOM_COMMAND() and
ADD_CUSTOM_TARGET() to add a plugin binary would work on all three
platforms, but it only works on OS X! So, going for EXECUTE_PROCESS()
instead. In the end, it’s an acceptable solution since this kind of
files doesn’t have dependencies.

--- cmake/common.cmake
+++ cmake/common.cmake
@@ -697,15 +697,13 @@

     SET(PLUGIN_FILENAME ${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})

-    ADD_CUSTOM_COMMAND(OUTPUT ${DEST_PLUGINS_DIR}/${PLUGIN_FILENAME}
-                       COMMAND ${CMAKE_COMMAND} -E copy ${PLUGIN_BINARY_DIR}/${PLUGIN_FILENAME}
-                                                        ${DEST_PLUGINS_DIR}/${PLUGIN_FILENAME})
+    EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy ${PLUGIN_BINARY_DIR}/${PLUGIN_FILENAME}
+                                                     ${DEST_PLUGINS_DIR}/${PLUGIN_FILENAME})

     # Make a copy of the plugin to our main build directory

-    ADD_CUSTOM_COMMAND(OUTPUT ${PROJECT_BUILD_DIR}/${PLUGIN_FILENAME}
-                       COMMAND ${CMAKE_COMMAND} -E copy ${PLUGIN_BINARY_DIR}/${PLUGIN_FILENAME}
-                                                        ${PROJECT_BUILD_DIR}/${PLUGIN_FILENAME})
+    EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E copy ${PLUGIN_BINARY_DIR}/${PLUGIN_FILENAME}
+                                                     ${PROJECT_BUILD_DIR}/${PLUGIN_FILENAME})

     # A few OS X specific things

@@ -717,11 +715,9 @@

         IF(NOT "$ENV{PACKAGE_OPENCOR}" STREQUAL "True")
             FOREACH(QT_LIBRARY ${QT_LIBRARIES})
-                ADD_CUSTOM_TARGET(${PLUGIN_NAME}_${QT_LIBRARY}_UPDATE_OS_X_QT_REFERENCE_IN_BUNDLE ALL
-                                  DEPENDS ${DEST_PLUGINS_DIR}/${PLUGIN_FILENAME}
-                                  COMMAND install_name_tool -change @executable_path/../Frameworks/${QT_LIBRARY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_LIBRARY}
-                                                                    ${QT_LIBRARY_DIR}/${QT_LIBRARY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_LIBRARY}
-                                                                    ${DEST_PLUGINS_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+                EXECUTE_PROCESS(COMMAND install_name_tool -change @executable_path/../Frameworks/${QT_LIBRARY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_LIBRARY}
+                                                                  ${QT_LIBRARY_DIR}/${QT_LIBRARY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_LIBRARY}
+                                                                  ${DEST_PLUGINS_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
             ENDFOREACH()
         ENDIF()

@@ -732,11 +728,9 @@
         #       to the system version of the Qt libraries, so...

         FOREACH(QT_LIBRARY ${QT_LIBRARIES})
-            ADD_CUSTOM_TARGET(${PLUGIN_NAME}_${QT_LIBRARY}_UPDATE_OS_X_QT_REFERENCE_IN_BUILD_DIRECTORY ALL
-                              DEPENDS ${PROJECT_BUILD_DIR}/${PLUGIN_FILENAME}
-                              COMMAND install_name_tool -change @executable_path/../Frameworks/${QT_LIBRARY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_LIBRARY}
-                                                                ${QT_LIBRARY_DIR}/${QT_LIBRARY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_LIBRARY}
-                                                                ${PROJECT_BUILD_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
+            EXECUTE_PROCESS(COMMAND install_name_tool -change @executable_path/../Frameworks/${QT_LIBRARY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_LIBRARY}
+                                                              ${QT_LIBRARY_DIR}/${QT_LIBRARY}.framework/Versions/${QT_VERSION_MAJOR}/${QT_LIBRARY}
+                                                              ${PROJECT_BUILD_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}${PLUGIN_NAME}${CMAKE_SHARED_LIBRARY_SUFFIX})
         ENDFOREACH()
     ENDIF()


This macro file is a disease, it needs a radical cleanup

--- cmake/common.cmake
+++ cmake/common.cmake
@@ -13,6 +13,8 @@
 # limitations under the License.

+# REDO THIS WHOLE THING AS FUNCTIONS
+# https://github.com/buildaworldnet/IrrlichtBAW/issues/311 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1

 # Macro creating project for an executable
 # Project and target get its name from directory when this macro gets executed (truncating number in the beginning of the name and making all lower case)
@@ -32,19 +34,34 @@
 		PUBLIC ../../include
 		PRIVATE ${_EXTRA_INCLUDES}
 	)
-	target_link_libraries(${EXECUTABLE_NAME} Irrlicht ${_EXTRA_LIBS})
+	target_link_libraries(${EXECUTABLE_NAME} Irrlicht ${_EXTRA_LIBS}) # see, this is how you should code to resolve github issue 311
+	if (IRR_COMPILE_WITH_OPENGL)
+		find_package(OpenGL REQUIRED)
+		target_link_libraries(${EXECUTABLE_NAME} ${OPENGL_LIBRARIES})
+	endif()
 	add_compile_options(${_EXTRA_OPTIONS})

 	if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+		# add_compile_options("-msse4.2 -mfpmath=sse") ????
 		add_compile_options(
 			"$<$<CONFIG:DEBUG>:-fstack-protector-all>"
 		)

 		set(COMMON_LINKER_OPTIONS "-msse4.2 -mfpmath=sse -fuse-ld=gold")
 		set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${COMMON_LINKER_OPTIONS}")
-		set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${COMMON_LINKER_OPTIONS} -fstack-protector-strong -fsanitize=address")
+		set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${COMMON_LINKER_OPTIONS} -fstack-protector-strong")
+		if (IRR_GCC_SANITIZE_ADDRESS)
+			set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fsanitize=address")
+		endif()
+		if (IRR_GCC_SANITIZE_THREAD)
+			set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${CMAKE_EXE_LINKER_FLAGS_DEBUG} -fsanitize=thread")
+		endif()
+		if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 6.1)
+			add_compile_options(-Wno-error=ignored-attributes)
+		endif()
 	endif()

+	# https://github.com/buildaworldnet/IrrlichtBAW/issues/298 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
 	irr_adjust_flags() # macro defined in root CMakeLists
 	irr_adjust_definitions() # macro defined in root CMakeLists

@@ -92,6 +109,7 @@
 		set(CMAKE_EXE_LINKER_FLAGS_DEBUG "${COMMON_LINKER_OPTIONS} -fstack-protector-strong -fsanitize=address")
 	endif()

+	# https://github.com/buildaworldnet/IrrlichtBAW/issues/298 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
 	irr_adjust_flags() # macro defined in root CMakeLists
 	irr_adjust_definitions() # macro defined in root CMakeLists


Some minor cleaning up.

Some minor cleaning up.

--- cmake/common.cmake
+++ cmake/common.cmake
@@ -103,152 +103,43 @@
   endif()

   if(CLANG_TIDY_EXE)
-    if("${_TARGET}" STREQUAL "cellml")
-      set(_CPPCOREGUIDELINES_PRO_TYPE_VARARG cppcoreguidelines-pro-type-vararg)
-      set(_CPPCOREGUIDELINES_SPECIAL_MEMBER_FUNCTIONS cppcoreguidelines-special-member-functions)
-      set(_HICPP_SPECIAL_MEMBER_FUNCTIONS hicpp-special-member-functions)
-      set(_HICPP_VARARG hicpp-vararg)
+    if(NOT "${_TARGET}" STREQUAL "cellml")
+        set(_NO_CPPCOREGUIDELINES_PRO_TYPE_VARARG -cppcoreguidelines-pro-type-vararg)
+        set(_NO_CPPCOREGUIDELINES_SPECIAL_MEMBER_FUNCTIONS -cppcoreguidelines-special-member-functions)
+        set(_NO_HICPP_SPECIAL_MEMBER_FUNCTIONS -hicpp-special-member-functions)
+        set(_NO_HICPP_VARARG -hicpp-vararg)
     endif()

     # The full list of Clang-Tidy checks can be found at
     # https://clang.llvm.org/extra/clang-tidy/checks/list.html
     set(_CLANG_TIDY_WARNINGS
       -*
-#      abseil-*
-#      android-*
-#      boost-*
       bugprone-*
-#      cert-*
-      cppcoreguidelines-avoid-c-arrays
-      cppcoreguidelines-avoid-goto
-#      cppcoreguidelines-avoid-magic-numbers
-      cppcoreguidelines-c-copy-assignment-signature
-      cppcoreguidelines-explicit-virtual-functions
-      cppcoreguidelines-interfaces-global-init
-      cppcoreguidelines-macro-usage
-      cppcoreguidelines-narrowing-conversions
-      cppcoreguidelines-no-malloc
-      cppcoreguidelines-non-private-member-variables-in-classes
-#      cppcoreguidelines-owning-memory
-      cppcoreguidelines-pro-bounds-array-to-pointer-decay
-      cppcoreguidelines-pro-bounds-constant-array-index
-      cppcoreguidelines-pro-bounds-pointer-arithmetic
-      cppcoreguidelines-pro-type-const-cast
-      cppcoreguidelines-pro-type-cstyle-cast
-      cppcoreguidelines-pro-type-member-init
-#      cppcoreguidelines-pro-type-reinterpret-cast
-      cppcoreguidelines-pro-type-static-cast-downcast
-      cppcoreguidelines-pro-type-union-access
-      ${_CPPCOREGUIDELINES_PRO_TYPE_VARARG}
-#      cppcoreguidelines-slicing
-      ${_CPPCOREGUIDELINES_SPECIAL_MEMBER_FUNCTIONS}
-#      fuchsia-default-arguments
-      fuchsia-header-anon-namespaces
-      fuchsia-multiple-inheritance
-      fuchsia-overloaded-operator
-      fuchsia-restrict-system-includes
-#      fuchsia-statically-constructed-objects
-      fuchsia-trailing-return
-      fuchsia-virtual-inheritance
-      google-build-explicit-make-pair
-      google-build-namespaces
-      google-build-using-namespace
-      google-default-arguments
-      google-explicit-constructor
-      google-global-names-in-headers
-      google-objc-avoid-throwing-exception
-      google-objc-function-naming
-      google-objc-global-variable-declaration
-      google-readability-avoid-underscore-in-googletest-name
-      google-readability-braces-around-statements
-      google-readability-casting
-      google-readability-function-size
-      google-readability-namespace-comments
-#      google-readability-todo
-      google-runtime-int
-      google-runtime-operator
-#      google-runtime-references
-      hicpp-avoid-c-arrays
-      hicpp-avoid-goto
-      hicpp-braces-around-statements
-      hicpp-deprecated-headers
-      hicpp-exception-baseclass
-      hicpp-explicit-conversions
-      hicpp-function-size
-      hicpp-invalid-access-moved
-      hicpp-member-init
-      hicpp-move-const-arg
-      hicpp-multiway-paths-covered
-      hicpp-named-parameter
-      hicpp-new-delete-operators
-      hicpp-no-array-decay
-      hicpp-no-assembler
-      hicpp-no-malloc
-      hicpp-noexcept-move
-      hicpp-signed-bitwise
-      ${_HICPP_SPECIAL_MEMBER_FUNCTIONS}
-      hicpp-static-assert
-      hicpp-undelegated-constructor
-      hicpp-uppercase-literal-suffix
-      hicpp-use-auto
-      hicpp-use-emplace
-      hicpp-use-equals-default
-      hicpp-use-equals-delete
-      hicpp-use-noexcept
-      hicpp-use-nullptr
-      hicpp-use-override
-      ${_HICPP_VARARG}
+      cert-*
+      -cert-err58-cpp
+      cppcoreguidelines-*
+      -cppcoreguidelines-avoid-magic-numbers
+      -cppcoreguidelines-owning-memory
+      -cppcoreguidelines-pro-type-reinterpret-cast
+      ${_NO_CPPCOREGUIDELINES_PRO_TYPE_VARARG}
+      -cppcoreguidelines-slicing
+      ${_NO_CPPCOREGUIDELINES_SPECIAL_MEMBER_FUNCTIONS}
+      fuchsia-*
+      -fuchsia-default-arguments
+      -fuchsia-statically-constructed-objects
+      google-*
+      -google-readability-todo
+      -google-runtime-references
+      hicpp-*
+      ${_NO_HICPP_SPECIAL_MEMBER_FUNCTIONS}
+      ${_NO_HICPP_VARARG}
       llvm-*
-      misc-definitions-in-headers
-      misc-misplaced-const
-      misc-new-delete-overloads
-      misc-non-copyable-objects
-#      misc-non-private-member-variables-in-classes
-      misc-redundant-expression
-      misc-static-assert
-      misc-throw-by-value-catch-by-reference
-      misc-unconventional-assign-operator
-      misc-uniqueptr-reset-release
-      misc-unused-alias-decls
-      misc-unused-parameters
-      misc-unused-using-decls
+      misc-*
+      -misc-non-private-member-variables-in-classes
       modernize-*
-#      mpi-*
-#      objc-*
       performance-*
-      readability-avoid-const-params-in-decls
-      readability-braces-around-statements
-      readability-const-return-type
-      readability-container-size-empty
-      readability-delete-null-pointer
-      readability-deleted-default
-      readability-else-after-return
-      readability-function-size
-      readability-identifier-naming
-      readability-implicit-bool-conversion
-      readability-inconsistent-declaration-parameter-name
-      readability-isolate-declaration
-#      readability-magic-numbers
-      readability-misleading-indentation
-      readability-misplaced-array-index
-      readability-named-parameter
-      readability-non-const-parameter
-      readability-redundant-control-flow
-      readability-redundant-declaration
-      readability-redundant-function-ptr-dereference
-      readability-redundant-member-init
-      readability-redundant-preprocessor
-      readability-redundant-smartptr-get
-      readability-redundant-string-cstr
-      readability-redundant-string-init
-      readability-simplify-boolean-expr
-      readability-simplify-subscript-expr
-      readability-static-accessed-through-instance
-      readability-static-definition-in-anonymous-namespace
-      readability-string-compare
-      readability-uniqueptr-delete-release
-      readability-uppercase-literal-suffix
-#      zircon-*
+      readability-*
+      -readability-magic-numbers
     )
     string(REPLACE ";" ","
            _CLANG_TIDY_WARNINGS "${_CLANG_TIDY_WARNINGS}")


Fix building aws_key_management on Linux

in MYSQL_ADD_PLUGIN, do not add TARGET_LINK_LIBRARIES twice for the LINK_LIBRARIES parameter
It is usually harmless to add libraries twice.

However, aws_key_management uses -Wl,-whole-archive to workaround linker issues on Linux
If libraries are added twice with whole-archive, linking will fail complaining about duplicate symbols

--- cmake/plugin.cmake
+++ cmake/plugin.cmake
@@ -210,9 +210,6 @@
       ENDIF()
     ENDIF()

-    IF(ARG_LINK_LIBRARIES)
-      TARGET_LINK_LIBRARIES (${target} ${ARG_LINK_LIBRARIES})
-    ENDIF()
     ADD_DEPENDENCIES(${target} GenError ${ARG_DEPENDENCIES})

     SET_TARGET_PROPERTIES(${target} PROPERTIES


bugfix: disabling partitioning in already built tree

that didn't quite work, WITH_PARTITION_STORAGE_ENGINE
was not undefined

--- cmake/plugin.cmake
+++ cmake/plugin.cmake
@@ -104,6 +104,7 @@
   ELSE()
     SET(with_var "WITH_${plugin}")
   ENDIF()
+  UNSET(${with_var} CACHE)

   IF(NOT ARG_DEPENDENCIES)
     SET(ARG_DEPENDENCIES)
@@ -218,8 +219,6 @@
     ENDIF()
     ADD_DEPENDENCIES(${target} GenError ${ARG_DEPENDENCIES})

-    UNSET(${with_var} CACHE)
-
     SET_TARGET_PROPERTIES(${target} PROPERTIES
       OUTPUT_NAME "${ARG_MODULE_OUTPUT_NAME}")
     # Install dynamic library


Remove old/unused options from define_source_files() macro.

--- CMake/Modules/UrhoCommon.cmake
+++ CMake/Modules/UrhoCommon.cmake
@@ -894,12 +894,10 @@
 #  EXTRA_CPP_FILES <list> - Include the provided list of files into CPP_FILES result
 #  EXTRA_H_FILES <list> - Include the provided list of files into H_FILES result
 #  PCH <list> - Enable precompiled header support on the defined source files using the specified header file, the list is "<path/to/header> [C++|C]"
-#  PARENT_SCOPE - Glob source files in current directory but set the result in parent-scope's variable ${DIR}_CPP_FILES and ${DIR}_H_FILES instead
 #  RECURSE - Option to glob recursively
-#  GROUP - Option to group source files based on its relative path to the corresponding parent directory (only works when PARENT_SCOPE option is not in use)
 macro (define_source_files)
     # Source files are defined by globbing source files in current source directory and also by including the extra source files if provided
-    cmake_parse_arguments (ARG "PARENT_SCOPE;RECURSE;GROUP" "" "PCH;EXTRA_CPP_FILES;EXTRA_H_FILES;GLOB_CPP_PATTERNS;GLOB_H_PATTERNS;EXCLUDE_PATTERNS" ${ARGN})
+    cmake_parse_arguments (ARG "RECURSE" "" "PCH;EXTRA_CPP_FILES;EXTRA_H_FILES;GLOB_CPP_PATTERNS;GLOB_H_PATTERNS;EXCLUDE_PATTERNS" ${ARGN})
     if (NOT ARG_GLOB_CPP_PATTERNS)
         set (ARG_GLOB_CPP_PATTERNS *.cpp)    # Default glob pattern
     endif ()
@@ -928,33 +926,24 @@
     list (APPEND CPP_FILES ${ARG_EXTRA_CPP_FILES})
     list (APPEND H_FILES ${ARG_EXTRA_H_FILES})
     set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
-
+    # Group the source files accordingly on IDE that supports it
+    foreach (CPP_FILE ${CPP_FILES})
+        get_filename_component (PATH ${CPP_FILE} PATH)
+        if (PATH)
+            string (REPLACE / \\ PATH ${PATH})
+            source_group ("Source Files\\${PATH}" FILES ${CPP_FILE})
+        endif ()
+    endforeach ()
+    foreach (H_FILE ${H_FILES})
+        get_filename_component (PATH ${H_FILE} PATH)
+        if (PATH)
+            string (REPLACE / \\ PATH ${PATH})
+            source_group ("Header Files\\${PATH}" FILES ${H_FILE})
+        endif ()
+    endforeach ()
     # Optionally enable PCH
     if (ARG_PCH)
         enable_pch (${ARG_PCH})
-    endif ()
-
-    # Optionally accumulate source files at parent scope
-    if (ARG_PARENT_SCOPE)
-        get_filename_component (NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME)
-        set (${NAME}_CPP_FILES ${CPP_FILES} PARENT_SCOPE)
-        set (${NAME}_H_FILES ${H_FILES} PARENT_SCOPE)
-    # Optionally put source files into further sub-group (only works when PARENT_SCOPE option is not in use)
-    elseif (ARG_GROUP)
-        foreach (CPP_FILE ${CPP_FILES})
-            get_filename_component (PATH ${CPP_FILE} PATH)
-            if (PATH)
-                string (REPLACE / \\ PATH ${PATH})
-                source_group ("Source Files\\${PATH}" FILES ${CPP_FILE})
-            endif ()
-        endforeach ()
-        foreach (H_FILE ${H_FILES})
-            get_filename_component (PATH ${H_FILE} PATH)
-            if (PATH)
-                string (REPLACE / \\ PATH ${PATH})
-                source_group ("Header Files\\${PATH}" FILES ${H_FILE})
-            endif ()
-        endforeach ()
     endif ()
 endmacro ()


remove debug print message

remove debug print message

--- CMakeExternals/SimpleITK.cmake
+++ CMakeExternals/SimpleITK.cmake
@@ -74,7 +74,6 @@
       )

     set(SimpleITK_DIR ${ep_prefix})
-    MESSAGE("EP: " ${ep_prefix})

     if( MITK_USE_Python )
       set(_sitk_build_dir ${ep_prefix}/src/SimpleITK-build)


Trying to make vs2017 deploy/install to work

--- CMakeScripts/Windeployqt.cmake
+++ CMakeScripts/Windeployqt.cmake
@@ -52,7 +52,7 @@

     # install(CODE ...) doesn't support generator expressions, but
     # file(GENERATE ...) does - store the path in a file
-    file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${target}_path"
+    file(GENERATE OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/${target}_path_$<CONFIGURATION>"
         CONTENT "$<TARGET_FILE:${target}>"
     )

@@ -60,7 +60,7 @@
     # runtime files to the appropriate directory for installation
     install(CODE
         "
-        file(READ \"${CMAKE_CURRENT_BINARY_DIR}/${target}_path\" _file)
+        file(READ \"${CMAKE_CURRENT_BINARY_DIR}/${target}_path_\${CMAKE_INSTALL_CONFIG_NAME}\" _file)
         execute_process(
             COMMAND \"${CMAKE_COMMAND}\" -E
                 env PATH=\"${_qt_bin_dir}\" \"${WINDEPLOYQT_EXECUTABLE}\"


build: fix vpp compilation failure on ThunderX2 and Amp

fix compile issue that caused by enabling "-mtune=thunderx2t99"
flag during compilation, such as
"/opt/vpp-agent/dev/vpp/src/vnet/interface_stats.c:164:1:
internal compiler error: Segmentation fault"

Type: fix

Change-Id: Iaf9f80a6c203a7e5b6a40523f14a62bb37091c92
Signed-off-by: Jianlin Lv <752eae91a476c3d35f9a7fd15fcd40979a048de4@arm.com>

--- src/cmake/cpu.cmake
+++ src/cmake/cpu.cmake
@@ -76,7 +76,7 @@
   endif()
   check_c_compiler_flag("-march=armv8.1-a+crc+crypto -mtune=thunderx2t99" compiler_flag_march_thunderx2t99)
   if(compiler_flag_march_thunderx2t99)
-    if (CMAKE_C_COMPILER_VERSION VERSION_GREATER 7.3)
+    if (CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 8.3)
       list(APPEND MARCH_VARIANTS "thunderx2t99\;-march=armv8.1-a+crc+crypto -mtune=thunderx2t99 -DCLIB_N_PREFETCHES=8")
     else()
       list(APPEND MARCH_VARIANTS "thunderx2t99\;-march=armv8.1-a+crc+crypto -DCLIB_N_PREFETCHES=8")


update FFmpeg Windows wrapper

update FFmpeg Windows wrapper

ffmpeg 3.2.1 -> 3.3
libvpx 1.6.0 -> 1.6.1

--- 3rdparty/ffmpeg/ffmpeg.cmake
+++ 3rdparty/ffmpeg/ffmpeg.cmake
@@ -1,3 +1,10 @@
+# Binary branch name: ffmpeg/master_20170418
+# Binaries were created for OpenCV: b993b9b7c7f6f5f37d10acacb2962812228410ba
+set(FFMPEG_BINARIES_COMMIT "86c4a841055f2612774e85b4292bb20e5fe8a783")
+set(FFMPEG_FILE_HASH_BIN32 "3dea5f7f009b44601fe95728328e0f9e")
+set(FFMPEG_FILE_HASH_BIN64 "9debe701975ef074bd6661981f3f0716")
+set(FFMPEG_FILE_HASH_CMAKE "208c00f03d2f6f39fa6262649e0bfc8d")
+
 function(download_win_ffmpeg script_var)
   set(${script_var} "" PARENT_SCOPE)

@@ -6,14 +13,6 @@
   set(name_BIN64 "opencv_ffmpeg_64.dll")
   set(name_CMAKE "ffmpeg_version.cmake")

-  # Binary branch name: ffmpeg/master_20161202
-  # Binaries were created for OpenCV: 594c136d1fcbb5816c57516e50f9cbeffbd90835
-  set(FFMPEG_BINARIES_COMMIT "2a19d0006415955c79431116e4634f04d5eb5a74")
-  set(FFMPEG_FILE_HASH_BIN32 "f081abd9d6ca7e425d340ce586f9c090")
-  set(FFMPEG_FILE_HASH_BIN64 "a423363a6eb76d362ca6c406c96c8db6")
-  set(FFMPEG_FILE_HASH_CMAKE "5346ae1854fc7aa569a722e85af480ec")
-
-  set(FFMPEG_BINARIES_COMMIT "2a19d0006415955c79431116e4634f04d5eb5a74")
   set(FFMPEG_DOWNLOAD_DIR "${OpenCV_BINARY_DIR}/3rdparty/ffmpeg")

   set(status TRUE)


Force libcurl lib name

Force libcurl lib name

--- CMake/external_libcurl.cmake
+++ CMake/external_libcurl.cmake
@@ -2,7 +2,10 @@
     include(ExternalProject)
     message(STATUS "Building libcurl enabled")

-    set(CURL_FLAGS -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_WIN32_LDAP=OFF  -DCURL_STATIC_CRT=ON -DHTTP_ONLY=ON -DCURL_ZLIB=OFF -DCURL_DISABLE_CRYPTO_AUTH=ON -DCMAKE_USE_OPENSSL=OFF -DCMAKE_USE_LIBSSH2=OFF)
+    set(CURL_FLAGS -DBUILD_CURL_EXE=OFF -DBUILD_SHARED_LIBS=OFF -DUSE_WIN32_LDAP=OFF -DHTTP_ONLY=ON -DCURL_ZLIB=OFF -DCURL_DISABLE_CRYPTO_AUTH=ON -DCMAKE_USE_OPENSSL=OFF -DCMAKE_USE_LIBSSH2=OFF -DCMAKE_DEBUG_POSTFIX=-all )
+    if (WIN32)
+        set(CURL_FLAGS ${CURL_FLAGS} -DCURL_STATIC_CRT=ON )
+    endif()

     ExternalProject_Add(
         libcurl
@@ -17,14 +20,9 @@
                     -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
                     -DANDROID_ABI=${ANDROID_ABI}
                     -DANDROID_STL=${ANDROID_STL} ${CURL_FLAGS}
-
     )
-    if (WIN32)    # This names only covers STATIC LIB build for now
-        set(CURL_TARGET_NAME "libcurl-d")
-    else()
-        set(CURL_TARGET_NAME "libcurl")
-    endif()

+    set(CURL_TARGET_NAME "libcurl-all")
     add_library(curl INTERFACE)
     target_include_directories(curl INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/libcurl/libcurl_install/include>)
     target_link_libraries(curl INTERFACE ${CMAKE_CURRENT_BINARY_DIR}/libcurl/libcurl_install/lib/${CURL_TARGET_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX})


Set up additional library directory for the 64-bit linuxes that use it (OpenSuSE for example).

--- CMake/itkExternal_FFTW.cmake
+++ CMake/itkExternal_FFTW.cmake
@@ -134,6 +134,11 @@
     endif()
     set(FFTW_INCLUDE_PATH ${ITK_BINARY_DIR}/fftw/include)
     set(FFTW_LIBDIR ${ITK_BINARY_DIR}/fftw/lib)
+    if(UNIX AND NOT APPLE)
+      if(CMAKE_SIZEOF_VOID_P MATCHES 8)
+        list(APPEND FFTW_LIBDIR ${ITK_BINARY_DIR}/fftw/lib64)
+      endif()
+    endif()
     link_directories(${FFTW_LIBDIR})
     include_directories(${FFTW_INCLUDE_PATH})
     #


Revert back External_boost.cmake

Revert back External_boost.cmake

--- SuperBuild/CMake/External_boost.cmake
+++ SuperBuild/CMake/External_boost.cmake
@@ -2,68 +2,30 @@

 SETUP_SUPERBUILD(BOOST)

-set(_SB_Boost_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include)
-set(_SB_Boost_LIBRARY_DIR ${SB_INSTALL_PREFIX}/lib)
+#all we loose is one single test from not building boost unit-testing-framework.
+#That is single test code. I don't see why we can't use something in-house
+#change test code to not use boost unit-testing-framework and all is well.

-set(BOOST_SB_CONFIG)
 if(MSVC)
-  if(OTB_MSVC_COMPILER_ARCH_IS_X64)
-    set(BOOST_SB_CONFIG architecture=x86 address-model=64)
-  else()
-    set(BOOST_SB_CONFIG architecture=x86)
-  endif()
+  set(BOOST_URL "http://download.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2")
+  set(BOOST_URL_MD5 "65a840e1a0b13a558ff19eeb2c4f0cbe")
+else()
+  set(BOOST_URL "http://download.sourceforge.net/project/boost/boost/1.50.0/boost_1_50_0.tar.bz2")
+  set(BOOST_URL_MD5 "52dd00be775e689f55a987baebccc462")
 endif()
-
-set(BOOST_SB_CONFIG
-  ${BOOST_SB_CONFIG}
-  variant=release
-  link=shared
-  threading=multi
-  runtime-link=shared
-  --prefix=${SB_INSTALL_PREFIX}
-  --includedir=${_SB_Boost_INCLUDE_DIR}
-  --libdir=${_SB_Boost_LIBRARY_DIR}
-  --layout=system
-  --with-system
-  --with-serialization
-  --with-filesystem
-  --with-test
-  --with-date_time
-  --with-program_options
-  --with-thread
-  -d0
-  )
-
-if(UNIX)
-  set(BOOST_BOOTSTRAP_FILE "./bootstrap.sh")
-  set(BOOST_B2_EXE "./b2")
-else()
-  set(BOOST_BOOTSTRAP_FILE "bootstrap.bat")
-  set(BOOST_B2_EXE "b2.exe")
-endif()
-
-set(BOOST_CONFIGURE_COMMAND ${CMAKE_COMMAND}
-  -E chdir ${BOOST_SB_SRC}
-  ${BOOST_BOOTSTRAP_FILE}
-  --prefix=${SB_INSTALL_PREFIX}
-  )
-
-set(BOOST_BUILD_COMMAND ${CMAKE_COMMAND}
-  -E chdir ${BOOST_SB_SRC}
-  ${BOOST_B2_EXE}
-  ${BOOST_SB_CONFIG}
-  install
-  )

 ExternalProject_Add(BOOST
   PREFIX BOOST
-  URL "http://download.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.bz2"
-  URL_MD5 65a840e1a0b13a558ff19eeb2c4f0cbe
+  URL "${BOOST_URL}"
+  URL_MD5 ${BOOST_URL_MD5}
   BINARY_DIR ${BOOST_SB_BUILD_DIR}
   INSTALL_DIR ${SB_INSTALL_PREFIX}
   DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
-  CONFIGURE_COMMAND ${BOOST_CONFIGURE_COMMAND}
-  BUILD_COMMAND ${BOOST_BUILD_COMMAND}
-  INSTALL_COMMAND ""
+  CMAKE_CACHE_ARGS ${SB_CMAKE_CACHE_ARGS}
+  PATCH_COMMAND ${CMAKE_COMMAND} -E copy
+  ${CMAKE_SOURCE_DIR}/patches/BOOST/CMakeLists.txt
+  ${BOOST_SB_SRC}
   )

+set(_SB_Boost_INCLUDE_DIR ${SB_INSTALL_PREFIX}/include)
+set(_SB_Boost_LIBRARY_DIR ${SB_INSTALL_PREFIX}/lib)


nucleo_f429zi: Add JLink support for flash, as per nucleo_f070rb

Signed-off-by: Dave Marples <dave@marples.net>

Added ability to use JLink in addition to OpenOCD for flashing.

--- boards/arm/nucleo_f429zi/board.cmake
+++ boards/arm/nucleo_f429zi/board.cmake
@@ -1 +1,8 @@
-include(${ZEPHYR_BASE}/boards/common/openocd.board.cmake)
+set_ifndef(STLINK_FW stlink)
+
+if(STLINK_FW STREQUAL jlink)
+  board_runner_args(jlink "--device=stm32f429zi" "--speed=4000")
+  include(${ZEPHYR_BASE}/boards/common/jlink.board.cmake)
+elseif(STLINK_FW STREQUAL stlink)
+  include($ENV{ZEPHYR_BASE}/boards/common/openocd.board.cmake)
+endif()


Always append package element.

Always append package element.

	Not found package was not append to the list, so they were not reported
	as missing required package.

	* build-aux/cmake/modules/Search.cmake: Here.

Signed-off-by: Nicolas Despres <abdeb541ca46f1651c9cc594d44e707056e73d5d@gostai.com>

--- build-aux/cmake/modules/Search.cmake
+++ build-aux/cmake/modules/Search.cmake
@@ -82,7 +82,6 @@
         else(ELEMENT_LIBRARY)
             list(APPEND ${PACKAGE_NAME}_INCLUDE_DIRS ${${ELEMENT_RESULT}})
         endif(ELEMENT_LIBRARY)
-        list(APPEND ${PACKAGE_NAME}_PARTS_LIST ${ELEMENT_RESULT})
     endif(ELEMENT_PACKAGE_MODE)

 ENDMACRO(_search_update_package_vars)
@@ -160,7 +159,7 @@

             # Update guidelines variables for package
             _search_update_package_vars()
-        else(EXISTS $${{ELEMENT_RESULT}})
+        else(EXISTS ${${ELEMENT_RESULT}})
             # Replace undefined parameters by generic ones
             # or by package info if PACKAGE option is defined
             if(NOT ELEMENT_FULLNAME)
@@ -193,6 +192,10 @@
         _search_update_package_vars()
     endif(NOT EXISTS ${${ELEMENT_RESULT}})

+    if(ELEMENT_PACKAGE_MODE)
+        list(APPEND ${PACKAGE_NAME}_PARTS_LIST ${ELEMENT_RESULT})
+    endif(ELEMENT_PACKAGE_MODE)
+
 ENDMACRO(search)

 endif(NOT MODULE_SEARCH_LOADED)


Fixed recursive header matcher

Fixed recursive header matcher

--- CMake/Cocotron.cmake
+++ CMake/Cocotron.cmake
@@ -2,7 +2,7 @@
 	# find all files with EXT in DIR matching specified PLATform and return
 	# the list in VAR

-	FILE(GLOB files "${dir}/*.${ext}" "${dir}/**/*.${ext}")
+	FILE(GLOB_RECURSE files "${dir}/*.${ext}")
 	FOREACH(f ${files})
 		# check each file
 		GET_FILENAME_COMPONENT(fn ${f} NAME)
@@ -31,7 +31,7 @@
 	SET(${var} ${fl} PARENT_SCOPE)
 ENDFUNCTION(FIND_STUFF)

-FUNCTION(HEADER_TARGET dir tn)
+FUNCTION(HEADER_RULE dir ovar)
 	FIND_STUFF("${CMAKE_SOURCE_DIR}/${dir}" "h" ${COCOTRON_PLATFORM} headers)
 	FOREACH(src ${headers})
 		GET_FILENAME_COMPONENT(file_base ${src} NAME)
@@ -44,9 +44,8 @@
 		)
 		SET(headers_out ${headers_out} ${dst})
 	ENDFOREACH(src)
-	ADD_CUSTOM_TARGET(${tn} DEPENDS ${headers_out})
-	#SET(${ovar} ${headers_out} PARENT_SCOPE)
-ENDFUNCTION(HEADER_TARGET)
+	SET(${ovar} ${headers_out} PARENT_SCOPE)
+ENDFUNCTION(HEADER_RULE)

 FUNCTION(ASM_RULE src ovar)
 	FOREACH(f ${src})


BUG: add libgddapi_krb5 to system library list for packaging on CentOS 6

--- Packaging/PackageGlobals.cmake
+++ Packaging/PackageGlobals.cmake
@@ -94,6 +94,7 @@
   libidn.so
   libgomp.so*
   ld-linux-x86-64.so*
+  libgssapi_krb5.so*
   libX11.so*
   libXi.so*  #GLUT
   libXcursor.so* #GLFW


[#63] Fixed package name in bootstrap script

--- bootstrap.cmake
+++ bootstrap.cmake
@@ -1,6 +1,9 @@
 if(NOT SIPLASPLAS_ROOT)
     if(SIPLASPLAS_PACKAGE_URL)
-        set(SIPLASPLAS_PACKAGE "${CMAKE_BINARY_DIR}/siplasplas_package")
+        get_filename_component(SIPLASPLAS_PACKAGE "${SIPLASPLAS_PACKAGE_URL}" NAME)
+        message(STATUS "Downloading siplasplas package (${SIPLASPLAS_PACKAGE}) from ${SIPLASPLAS_PACKAGE_URL} ...")
+        set(SIPLASPLAS_PACKAGE "${CMAKE_SOURCE_DIR}/${SIPLASPLAS_PACKAGE}")
+
         file(DOWNLOAD "${SIPLASPLAS_PACKAGE_URL}" "${SIPLASPLAS_PACKAGE}" SHOW_PROGRESS)
     endif()


Add VecCore options to RootBuildOptions.cmake

--- cmake/modules/RootBuildOptions.cmake
+++ cmake/modules/RootBuildOptions.cmake
@@ -83,6 +83,7 @@
 ROOT_BUILD_OPTION(builtin_xrootd OFF "Build the XROOTD internally (downloading tarfile from the Web)")
 ROOT_BUILD_OPTION(builtin_llvm ON "Build the LLVM internally")
 ROOT_BUILD_OPTION(builtin_tbb OFF "Build the TBB internally")
+ROOT_BUILD_OPTION(builtin_veccore OFF "Build VecCore internally")
 ROOT_BUILD_OPTION(builtin_vdt OFF "Build the VDT package internally")
 ROOT_BUILD_OPTION(builtin_vc OFF "Build the Vc package internally")
 ROOT_BUILD_OPTION(cxx11 ON "Build using C++11 compatible mode, requires gcc > 4.7.x or clang")
@@ -158,6 +159,7 @@
 ROOT_BUILD_OPTION(thread ON "Using thread library (cannot be disabled)")
 ROOT_BUILD_OPTION(tmva ON "Build TMVA multi variate analysis library")
 ROOT_BUILD_OPTION(unuran OFF "UNURAN - package for generating non-uniform random numbers")
+ROOT_BUILD_OPTION(veccore OFF "VecCore SIMD abstraction library")
 ROOT_BUILD_OPTION(vecgeom OFF "VecGeom is a vectorized geometry library enhancing the performance of geometry navigation.")
 ROOT_BUILD_OPTION(vc OFF "Vc adds a few new types for portable and intuitive SIMD programming")
 ROOT_BUILD_OPTION(vdt OFF "VDT adds a set of fast and vectorisable mathematical functions")
@@ -219,6 +221,7 @@
   set(builtin_xrootd_defvalue ON)
   set(builtin_llvm_defvalue ON)
   set(builtin_tbb_defvalue ON)
+  set(builtin_veccore_defvalue ON)
   set(builtin_vdt_defvalue ON)
   set(builtin_vc_defvalue ON)
 endif()


Add OpenNI2 to the All-in-one Installer

Add OpenNI2 to the All-in-one Installer

Add script to include the installer of OpenNI2 to the All-in-one
Installer when WITH_OPENNI2 is selected in CMake.

--- cmake/pcl_all_in_one_installer.cmake
+++ cmake/pcl_all_in_one_installer.cmake
@@ -81,4 +81,51 @@
         list(REMOVE_DUPLICATES PCL_3RDPARTY_COMPONENTS)
         set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\n  noinstall_openni_packages:\n")
     endif(WITH_OPENNI)
+
+    if(WITH_OPENNI2)
+        if(CMAKE_CL_64)
+            set(OPENNI2_PACKAGE "OpenNI-Windows-x64-2.2.msi")
+            set(OPENNI2_ZIP "OpenNI-Windows-x64-2.2.0.33.zip")
+            set(OPENNI2_URL "http://com.occipital.openni.s3.amazonaws.com/${OPENNI2_ZIP}")
+            set(OPENNI2_MD5 d187f1dd0b091e27cebd03216b1bfff5)
+        else(CMAKE_CL_64)
+            set(OPENNI2_PACKAGE "OpenNI-Windows-x86-2.2.msi")
+            set(OPENNI2_ZIP "OpenNI-Windows-x86-2.2.0.33.zip")
+            set(OPENNI2_URL "http://com.occipital.openni.s3.amazonaws.com/${OPENNI2_ZIP}")
+            set(OPENNI2_MD5 59b38e23d951d59917a35f7f89efaf22)
+        endif(CMAKE_CL_64)
+
+        set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "  IntCmp $OpenNI2_selected 0 noinstall_openni2_packages\n")
+
+        file(DOWNLOAD ${OPENNI2_URL} "${CMAKE_CURRENT_BINARY_DIR}/${OPENNI2_ZIP}"
+            STATUS _openni2_download_status LOG _openni2_download_log
+            EXPECTED_MD5 ${OPENNI2_MD5}
+           )
+        list(GET _openni2_download_status 0 _error_code)
+        list(GET _openni2_download_status 1 _error_message)
+        if(_error_code EQUAL 0)
+            execute_process(
+                COMMAND ${CMAKE_COMMAND} -E tar -xzf ${OPENNI2_ZIP}
+                WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}"
+                RESULT_VARIABLE _error_code
+                ERROR_VARIABLE _error_message
+            )
+            if(_error_code EQUAL 0)
+                install(
+                    FILES "${CMAKE_CURRENT_BINARY_DIR}/${OPENNI2_PACKAGE}"
+                    DESTINATION 3rdParty/OpenNI2
+                    COMPONENT OpenNI2
+                )
+                list(APPEND PCL_3RDPARTY_COMPONENTS OpenNI2)
+                set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS
+                    "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\n    ExecWait 'msiexec /i \\\"$INSTDIR\\\\3rdParty\\\\OpenNI2\\\\${OPENNI2_PACKAGE}\\\" '")
+            else(_error_code EQUAL 0)
+                message("WARNING : Could not unzip ${OPENNI2_ZIP}, error code : ${_error_code}, error message : ${_error_message}")
+            endif(_error_code EQUAL 0)
+        else(_error_code EQUAL 0)
+            message("WARNING : Could not download ${OPENNI2_ZIP_URL}, error code : ${_error_code}, error message : ${_error_message}")
+        endif(_error_code EQUAL 0)
+        list(REMOVE_DUPLICATES PCL_3RDPARTY_COMPONENTS)
+        set(CPACK_NSIS_EXTRA_INSTALL_COMMANDS "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS}\n  noinstall_openni2_packages:\n")
+    endif(WITH_OPENNI2)
 endif(BUILD_all_in_one_installer)


Update cmake/upstream/FindCUDAToolkit.cmake (#18528)

Previously MXNet includes a hotfix for a cross-compiling bug in upstream FindCUDAToolkit.cmake. Upstream has fixed the bug now in their master branch. Replace MXNet's fix by the upstream fix to avoid diverging from upstream.

See https://gitlab.kitware.com/cmake/cmake/-/issues/20572

--- cmake/upstream/FindCUDAToolkit.cmake
+++ cmake/upstream/FindCUDAToolkit.cmake
@@ -738,8 +738,15 @@
 # And find the CUDA Runtime Library libcudart
 find_library(CUDA_CUDART
   NAMES cudart
-  PATH_SUFFIXES lib64 lib64/stubs lib/x64
+  PATH_SUFFIXES lib64 lib/x64
 )
+if (NOT CUDA_CUDART)
+  find_library(CUDA_CUDART
+    NAMES cudart
+    PATH_SUFFIXES lib64/stubs lib/x64/stubs
+  )
+endif()
+
 if (NOT CUDA_CUDART AND NOT CUDAToolkit_FIND_QUIETLY)
   message(STATUS "Unable to find cudart library.")
 endif()
@@ -788,9 +795,20 @@
       NAMES ${search_names}
       HINTS ${CUDAToolkit_LIBRARY_DIR}
             ENV CUDA_PATH
-      PATH_SUFFIXES nvidia/current lib64 lib64/stubs lib/x64 lib lib/stubs stubs
+      PATH_SUFFIXES nvidia/current lib64 lib/x64 lib
                     ${arg_EXTRA_PATH_SUFFIXES}
     )
+    # Don't try any stub directories intil we have exhausted all other
+    # search locations.
+    if(NOT CUDA_${lib_name}_LIBRARY)
+      find_library(CUDA_${lib_name}_LIBRARY
+        NAMES ${search_names}
+        HINTS ${CUDAToolkit_LIBRARY_DIR}
+              ENV CUDA_PATH
+        PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs
+      )
+    endif()
+
     mark_as_advanced(CUDA_${lib_name}_LIBRARY)

     if (NOT TARGET CUDA::${lib_name} AND CUDA_${lib_name}_LIBRARY)


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"

--- plasma-runner-ktp-contact.desktop.cmake
+++ plasma-runner-ktp-contact.desktop.cmake
@@ -42,7 +42,6 @@
 Name[tr]=Anında Mesajlaşma
 Name[ug]=مۇڭداشقۇ
 Name[uk]=Миттєвий обмін повідомленнями
-Name[x-test]=xxInstant Messagingxx
 Name[zh_CN]=即时通讯
 Name[zh_TW]=即時訊息
 Comment=Start a chat with any of your IM contacts or change your IM status
@@ -86,7 +85,6 @@
 Comment[sv]=Börja chatta med någon direktmeddelandekontakt eller ändra din direktmeddelandestatus
 Comment[tr]=IM kişilerinizden biriyle sohbete başlayın veya IM durumunuzu değiştirin
 Comment[uk]=Почати спілкування з будь-яким з ваших контактів або змінити ваш запис стану у системах обміну повідомленнями
-Comment[x-test]=xxStart a chat with any of your IM contacts or change your IM statusxx
 Comment[zh_CN]=与任意您的即时通讯联系人开始聊天或修改您的状态
 Comment[zh_TW]=與您的即時訊息聯絡人開始聊天，或是變更您的即時訊息狀態
 Icon=user-online


Fixed errors due to stash/apply that went wrong

--- SuperBuild/External_SIRF.cmake
+++ SuperBuild/External_SIRF.cmake
@@ -54,15 +54,11 @@
         -DHDF5_ROOT=${HDF5_ROOT}
         -DHDF5_INCLUDE_DIRS=${HDF5_INCLUDE_DIRS}
         -DISMRMRD_DIR=${ISMRMRD_DIR}
-<<<<<<< Updated upstream
         -DSWIG_EXECUTABLE=${SWIG_EXECUTABLE}
-    INSTALL_DIR ${SIRF_Install_Dir}
-=======
-	-DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIR}
-	-DPYTHON_LIBRARY=${PYTHON_LIBRARY}
-	-DPYTHON_DEST=${PYTHON_DEST}
+        -DPYTHON_INCLUDE_DIR=${PYTHON_INCLUDE_DIR}
+        -DPYTHON_LIBRARY=${PYTHON_LIBRARY}
+        -DPYTHON_DEST=${PYTHON_DEST}
 	INSTALL_DIR ${SIRF_Install_Dir}
->>>>>>> Stashed changes
     DEPENDS
         ${${proj}_DEPENDENCIES}
   )


No wserialization library.

No wserialization library.

--- Superbuild/BoostExternal.cmake
+++ Superbuild/BoostExternal.cmake
@@ -53,7 +53,6 @@
   "serialization"
   "system"
   "thread"
-  "wserialization"
   CACHE INTERNAL "Boost library name.")

 IF(BUILD_WITH_PYTHON)


web-wasi: Update emulator path

web-wasi: Update emulator path

This was changed in the web-wasm/web-wasi common tooling additions and
refactoring.

--- web-wasi/Toolchain.cmake
+++ web-wasi/Toolchain.cmake
@@ -7,4 +7,4 @@
 set(CMAKE_C_COMPILER /usr/local/bin/clang-wasi-sysroot.sh)
 set(CMAKE_CXX_COMPILER /usr/local/bin/clang++-wasi-sysroot.sh)

-set(CMAKE_CROSSCOMPILING_EMULATOR /usr/local/bin/wasmtime-pwd.sh)
+set(CMAKE_CROSSCOMPILING_EMULATOR /wasi-runtimes/wasmtime/bin/wasmtime-pwd.sh)


Generic-arm-none-eabi-gcc-cortex-m7: use SP float depending on NuttX config

Not all m7 boards support double, as for example the STM32F745.

--- platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m7.cmake
+++ platforms/nuttx/cmake/Platform/Generic-arm-none-eabi-gcc-cortex-m7.cmake
@@ -1,5 +1,12 @@

-set(cpu_flags "-mcpu=cortex-m7 -mthumb -mfpu=fpv5-d16 -mfloat-abi=hard")
+if (CONFIG_ARCH_DPFPU)
+	message(STATUS "Enabling double FP precision hardware instructions")
+	set(mfpu_type "fpv5-d16")
+else()
+	set(mfpu_type "fpv5-sp-d16")
+endif()
+
+set(cpu_flags "-mcpu=cortex-m7 -mthumb -mfpu=${mfpu_type} -mfloat-abi=hard")

 set(CMAKE_C_FLAGS "${cpu_flags}" CACHE STRING "" FORCE)
 set(CMAKE_CXX_FLAGS "${cpu_flags}" CACHE STRING "" FORCE)


determine zlib, bzip2 CMAKE_RELEASE_POSTFIX rather than hard-coded

--- projects/boost.cmake
+++ projects/boost.cmake
@@ -272,7 +272,11 @@
   list(APPEND boost_BUILD -s ZLIB_INCLUDE=${STAGE_DIR}/include/zlib -s ZLIB_LIBPATH=${STAGE_DIR}/lib)
   list(APPEND boost_BUILD -s BZIP2_INCLUDE=${STAGE_DIR}/include/bzip2 -s BZIP2_LIBPATH=${STAGE_DIR}/lib)
   if(WIN32)
-    list(APPEND boost_BUILD -s ZLIB_BINARY=zlibstatic-s -s BZIP2_BINARY=bz2-s)
+    include(${STAGE_DIR}/share/cmake/xpopts.cmake)
+    xpSetPostfix()
+    # TRICKY: BINARY (zlibstatic, bz2) needs to match ${PRJ}_LIBRARIES in zlib, bzip2 use scripts
+    list(APPEND boost_BUILD -s ZLIB_BINARY=zlibstatic${CMAKE_RELEASE_POSTFIX})
+    list(APPEND boost_BUILD -s BZIP2_BINARY=bz2${CMAKE_RELEASE_POSTFIX})
   endif()
   if(${CMAKE_SYSTEM_NAME} STREQUAL SunOS)
     # Memory exhausted errors (/opt/csw/i386-pc-solaris2.10/bin/ranlib)


Remove debug flag, clean up CMake logic a bit.

svn path=/trunk/; revision=12605

--- cmake/build_projects/plplot/bp.cmake
+++ cmake/build_projects/plplot/bp.cmake
@@ -120,13 +120,11 @@
   endif(MSYS_PLATFORM)
   message(STATUS "modified BP_PATH for ${BP_PACKAGE}${tag} = ${BP_PATH}")

-  # Build PLplot (or PLplot-lite). The pdf device is turned on since the
-  # haru library is built with a fix to avoid segfaults for example 24.
   ExternalProject_Add(
     build_${BP_PACKAGE}${tag}
     DEPENDS "${${BP_PACKAGE}${tag}_dependencies_targets}"
     DOWNLOAD_COMMAND ${CMAKE_COMMAND} -E copy_directory ${PLPLOT_LOCAL_SOURCE_DIR} ${EP_BASE}/Source/build_${BP_PACKAGE}${tag}
-    CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} CFLAGS=-g ${BP_CMAKE_COMMAND} -DBUILD_TEST=ON -DPLD_pdf=ON ${${BP_PACKAGE}${tag}_cmake_args} ${EP_BASE}/Source/build_${BP_PACKAGE}${tag}
+    CONFIGURE_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_CMAKE_COMMAND} -DBUILD_TEST=ON ${${BP_PACKAGE}${tag}_cmake_args} ${EP_BASE}/Source/build_${BP_PACKAGE}${tag}
     BUILD_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND}
     INSTALL_COMMAND ${ENV_EXECUTABLE} PATH=${BP_PATH} ${BP_PARALLEL_BUILD_COMMAND} install
     TEST_BEFORE_INSTALL OFF


Require latest TelepathyQt4.

Require latest TelepathyQt4.

svn path=/trunk/playground/base/plasma/dataengines/presence/; revision=1000088

--- cmake/modules/FindTelepathyQt4.cmake
+++ cmake/modules/FindTelepathyQt4.cmake
@@ -1,7 +1,7 @@
-# Try to find the Qt binding of the Telepathy library
-# TELEPATHY_QT_FOUND - system has TelepathyQt4
-# TELEPATHY_QT_INCLUDE_DIR - the TelepathyQt4 include directory
-# TELEPATHY_QT_LIBRARIES - Link these to use TelepathyQt4
+# Try to find the Qt4 binding of the Telepathy library
+# TELEPATHY_QT4_FOUND - system has TelepathyQt4
+# TELEPATHY_QT4_INCLUDE_DIR - the TelepathyQt4 include directory
+# TELEPATHY_QT4_LIBRARIES - Link these to use TelepathyQt4

 # Copyright (c) 2008, Allen Winter <winter@kde.org>
 # Copyright (c) 2009, Andre Moreira Magalhaes <andrunko@gmail.com>
@@ -17,7 +17,7 @@

 find_package(PkgConfig)
 if(PKG_CONFIG_FOUND)
-    pkg_check_modules(PC_TELEPATHY_QT4 QUIET TelepathyQt4>=0.1.7)
+    pkg_check_modules(PC_TELEPATHY_QT4 QUIET TelepathyQt4>=0.1.8)
 endif(PKG_CONFIG_FOUND)

 find_path(TELEPATHY_QT4_INCLUDE_DIR


Disable rtcxxmodules if ROOT is already installed in the system

--- cmake/modules/RootBuildOptions.cmake
+++ cmake/modules/RootBuildOptions.cmake
@@ -308,6 +308,11 @@
   set(runtime_cxxmodules_defvalue OFF)
 endif()

+#---Modules do not play well with preinstalled ROOT in the system------------------------------
+find_file(PREINSTALLED_MODULEMAP module.modulemap)
+if(PREINSTALLED_MODULEMAP)
+  set(runtime_cxxmodules_defvalue OFF)
+endif()

 # Disable RDataFrame on 32-bit UNIX platforms due to ROOT-9236
 if(UNIX AND CMAKE_SIZEOF_VOID_P EQUAL 4)