This def file is a symlink to another. Dont install it.

--- install_java.cmake
+++ install_java.cmake
@@ -166,7 +166,6 @@
     document/src/vespa/document/config/documenttypes.def
     documentapi/src/main/resources/configdefinitions/documentrouteselectorpolicy.def
     fileacquirer/src/main/resources/configdefinitions/filedistributorrpc.def
-    fileacquirer/src/vespa/fileacquirer/filedistributorrpc.def
     filedistribution/src/vespa/filedistribution/distributor/filedistributor.def
     filedistribution/src/vespa/filedistribution/model/filereferences.def
     jdisc_http_service/src/main/resources/configdefinitions/jdisc.http.client.http-client.def


Use property for storing list of subproject paths

--- SubProject.cmake
+++ SubProject.cmake
@@ -205,8 +205,8 @@

   set(__subprojects) # appended on each git_subproject invocation
   include(.gitsubprojects)
-
   if(__subprojects)
+    get_property(__subproject_paths GLOBAL PROPERTY SUBPROJECT_PATHS)
     set(GIT_SUBPROJECTS_SCRIPT
       "${CMAKE_CURRENT_BINARY_DIR}/UpdateSubprojects.cmake")
     file(WRITE "${GIT_SUBPROJECTS_SCRIPT}"
@@ -229,12 +229,12 @@
         "else()\n"
         "  file(APPEND .gitsubprojects \"git_subproject(${__subproject})\n\")\n"
         "endif()\n")
-     set(SUBPROJECT_PATHS "${SUBPROJECT_PATHS} ${__subproject_dir}"
-       CACHE INTERNAL SUBPROJECT_PATHS)
+      set(__subproject_paths "${__subproject_paths} ${__subproject_dir}")
     endforeach()

-    separate_arguments(SUBPROJECT_PATHS)
-    list(REMOVE_DUPLICATES SUBPROJECT_PATHS)
+    separate_arguments(__subproject_paths)
+    list(REMOVE_DUPLICATES __subproject_paths)
+    set_property(GLOBAL PROPERTY SUBPROJECT_PATHS ${__subproject_paths})

     add_custom_target(update_git_subprojects_${PROJECT_NAME}
       COMMAND ${CMAKE_COMMAND} -P ${GIT_SUBPROJECTS_SCRIPT}


ENH: GIT_EXECUTABLE and Subversion_SVN_EXECUTABLE are passed from the superbuild level of DTIPrep to the inner build.

DTIPrep could not be built as a Slicer extension otherwise because it could not find these executables from the inner build.

--- SuperBuild.cmake
+++ SuperBuild.cmake
@@ -31,6 +31,7 @@
   if( APPLE )
     set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-rpath,@loader_path/../../../../../")
   endif()
+  find_package(Subversion REQUIRED )
 else()
   set( USE_ITK_Module_MGHIO ON )
   set( SUPERBUILD_NOT_EXTENSION TRUE )
@@ -220,6 +221,8 @@
   ANTs_LIBRARY_DIR:PATH
   BOOST_INCLUDE_DIR:PATH
   BOOST_ROOT:PATH
+  Subversion_SVN_EXECUTABLE:FILEPATH
+  GIT_EXECUTABLE:FILEPATH
   )

 if(${LOCAL_PROJECT_NAME}_USE_QT)


fixed: additional config lines use upper case project name

--- CMake/OSGExternalProjectHelper.cmake
+++ CMake/OSGExternalProjectHelper.cmake
@@ -672,7 +672,7 @@
                        "${CMAKE_SOURCE_DIR}/${CMAKE_PROJECT_NAME_SHORT}Configured.h.cmake"
                        "${CMAKE_BINARY_DIR}/Source/Base/Base/${CMAKE_PROJECT_NAME_SHORT}Configured.h.tmp.cmake")

-  FOREACH(_OSG_ADD_CONFIGURE_LINE ${OSG_ADDITIONAL_CONFIGURE_LINES})
+  FOREACH(_OSG_ADD_CONFIGURE_LINE ${${CMAKE_PROJECT_NAME_UP}_ADDITIONAL_CONFIGURE_LINES})
     FILE(APPEND "${CMAKE_BINARY_DIR}/Source/Base/Base/${CMAKE_PROJECT_NAME_SHORT}Configured.h.tmp.cmake" "\n${_OSG_ADD_CONFIGURE_LINE}\n")
   ENDFOREACH()


Add files to the clang-format list

Add files to the clang-format list

Signed-off-by: Larry Gritz <f0a1ce6f80112d72f7276457fd261d671b827567@larrygritz.com>

--- src/cmake/compiler.cmake
+++ src/cmake/compiler.cmake
@@ -479,7 +479,9 @@
                                 "src/include/*.h"
                                 "src/liboslcomp/*.cpp"
                                 "src/liboslcomp/*.h"
-                                "src/liboslexec/batched_rendservices.cpp"
+                                "src/liboslexec/batch*.cpp"
+                                "src/liboslexec/wide/*.cpp"
+                                "src/liboslexec/wide/*.h"
                                 "src/liboslexec/rs_fallback.cpp"
                                 "src/liboslquery/*.cpp"
                                 "src/liboslquery/*.h"
@@ -502,13 +504,12 @@
             # completed, to avoid nasty merge conflicts.
             "src/include/OSL/rendererservices.h"
             "src/include/OSL/*llvm*"
-            "src/liboslexec/*llvm*"
             "src/liboslexec/oslexec_pvt.h"
             # Files that are currently being modified with the OptiX work --
             # we'll reformat those only after that project work is completed, to
             # avoid nasty merge conflicts.
-            "src/include/OSL/device_string.h"
-            "src/include/OSL/oslexec.h"
+            # "src/include/OSL/device_string.h"
+            # "src/include/OSL/oslexec.h"
             "src/testrender/cuda/*"
             # Header files in testsuite are almost certainly osl headers, not C++
             "testsuite/*.h"


Nagios Monitoring 7.0.0 Beta 1

Nagios Monitoring 7.0.0 Beta 1

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

--- version.cmake
+++ version.cmake
@@ -2,9 +2,9 @@
 ## Version Information
 ###
 set ( HPCC_PROJECT "community" )
-set ( HPCC_MAJOR 6 )
-set ( HPCC_MINOR 5 )
+set ( HPCC_MAJOR 7 )
+set ( HPCC_MINOR 0 )
 set ( HPCC_POINT 0 )
-set ( HPCC_MATURITY "trunk" )
-set ( HPCC_SEQUENCE 0 )
+set ( HPCC_MATURITY "beta" )
+set ( HPCC_SEQUENCE 1 )
 ###


Graph Control 5.0.4-1 Gold

Graph Control 5.0.4-1 Gold

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

--- version.cmake
+++ version.cmake
@@ -5,7 +5,7 @@
 set ( HPCC_MAJOR 5 )
 set ( HPCC_MINOR 0 )
 set ( HPCC_POINT 4 )
-set ( HPCC_MATURITY "rc" )
+set ( HPCC_MATURITY "release" )
 set ( HPCC_SEQUENCE 1 )
 ###
 IF ( ${HPCC_POINT} GREATER 65 )


Graph Control 3.10.4 Release Candidate 1

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

--- version.cmake
+++ version.cmake
@@ -4,8 +4,8 @@
 set ( HPCC_PROJECT "community" )
 set ( HPCC_MAJOR 3 )
 set ( HPCC_MINOR 10 )
-set ( HPCC_POINT 3 )
-set ( HPCC_MATURITY "closedown" )
+set ( HPCC_POINT 4 )
+set ( HPCC_MATURITY "rc" )
 set ( HPCC_SEQUENCE 1 )
 ###
 IF ( ${HPCC_POINT} GREATER 65 )


Split off 8.2.28

Split off 8.2.28

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

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


Graph Control 5.0.0-rc8 Final Release Candidate 8

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

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


cmake: Replace uses of string(APPEND for cmake-3.3 compat

In order to support cmake 3.3, all uses of 'string(APPEND' (used only in
FindBoost.cmake which we imported from cmake 3.8?) are being replaced by
list(APPEND and then a final string(CONCAT. While not fully equivalent,
e.g. when ';' is in one of the list elements, this should not happen in
practice. It seems that the uses are actually restricted to error
messages and WIN32 anyway.

--- cmake/FindBoost.cmake
+++ cmake/FindBoost.cmake
@@ -1238,7 +1238,7 @@
   math(EXPR Boost_MINOR_VERSION "${Boost_VERSION} / 100 % 1000")
   math(EXPR Boost_SUBMINOR_VERSION "${Boost_VERSION} % 100")

-  string(APPEND Boost_ERROR_REASON
+  list(APPEND Boost_ERROR_REASON
     "Boost version: ${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}\nBoost include path: ${Boost_INCLUDE_DIR}")
   if(Boost_DEBUG)
     message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
@@ -1261,16 +1261,16 @@
     endif()
     if(NOT Boost_FOUND)
       # State that we found a version of Boost that is too new or too old.
-      string(APPEND Boost_ERROR_REASON
+      list(APPEND Boost_ERROR_REASON
         "\nDetected version of Boost is too ${_Boost_VERSION_AGE}. Requested version was ${Boost_FIND_VERSION_MAJOR}.${Boost_FIND_VERSION_MINOR}")
       if (Boost_FIND_VERSION_PATCH)
-        string(APPEND Boost_ERROR_REASON
+        list(APPEND Boost_ERROR_REASON
           ".${Boost_FIND_VERSION_PATCH}")
       endif ()
       if (NOT Boost_FIND_VERSION_EXACT)
-        string(APPEND Boost_ERROR_REASON " (or newer)")
+        list(APPEND Boost_ERROR_REASON " (or newer)")
       endif ()
-      string(APPEND Boost_ERROR_REASON ".")
+      list(APPEND Boost_ERROR_REASON ".")
     endif ()
   else()
     # Caller will accept any Boost version.
@@ -1278,7 +1278,7 @@
   endif()
 else()
   set(Boost_FOUND 0)
-  string(APPEND Boost_ERROR_REASON
+  list(APPEND Boost_ERROR_REASON
     "Unable to find the Boost header files. Please set BOOST_ROOT to the root directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers.")
 endif()

@@ -1359,26 +1359,29 @@
   if("x${CMAKE_CXX_COMPILER_ID}" STREQUAL "xMSVC"
           OR "${CMAKE_CXX_COMPILER}" MATCHES "icl"
           OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc")
-    string(APPEND _boost_DEBUG_ABI_TAG "g")
+    list(APPEND _boost_DEBUG_ABI_TAG "g")
   endif()
 endif()
 #  y        using special debug build of python
 if(Boost_USE_DEBUG_PYTHON)
-  string(APPEND _boost_DEBUG_ABI_TAG "y")
+  list(APPEND _boost_DEBUG_ABI_TAG "y")
 endif()
 #  d        using a debug version of your code
-string(APPEND _boost_DEBUG_ABI_TAG "d")
+list(APPEND _boost_DEBUG_ABI_TAG "d")
 #  p        using the STLport standard library rather than the
 #           default one supplied with your compiler
 if(Boost_USE_STLPORT)
-  string(APPEND _boost_RELEASE_ABI_TAG "p")
-  string(APPEND _boost_DEBUG_ABI_TAG "p")
+  list(APPEND _boost_RELEASE_ABI_TAG "p")
+  list(APPEND _boost_DEBUG_ABI_TAG "p")
 endif()
 #  n        using the STLport deprecated "native iostreams" feature
 if(Boost_USE_STLPORT_DEPRECATED_NATIVE_IOSTREAMS)
-  string(APPEND _boost_RELEASE_ABI_TAG "n")
-  string(APPEND _boost_DEBUG_ABI_TAG "n")
-endif()
+  list(APPEND _boost_RELEASE_ABI_TAG "n")
+  list(APPEND _boost_DEBUG_ABI_TAG "n")
+endif()
+
+string(CONCAT _boost_DEBUG_ABI_TAG ${_boost_DEBUG_ABI_TAG})
+string(CONCAT _boost_RELEASE_ABI_TAG ${_boost_RELEASE_ABI_TAG})

 if(Boost_DEBUG)
   message(STATUS "[ ${CMAKE_CURRENT_LIST_FILE}:${CMAKE_CURRENT_LIST_LINE} ] "
@@ -1720,25 +1723,25 @@
     set(Boost_FOUND 0)
     # We were unable to find some libraries, so generate a sensible
     # error message that lists the libraries we were unable to find.
-    string(APPEND Boost_ERROR_REASON
+    list(APPEND Boost_ERROR_REASON
       "\nCould not find the following")
     if(Boost_USE_STATIC_LIBS)
-      string(APPEND Boost_ERROR_REASON " static")
-    endif()
-    string(APPEND Boost_ERROR_REASON
+      list(APPEND Boost_ERROR_REASON " static")
+    endif()
+    list(APPEND Boost_ERROR_REASON
       " Boost libraries:\n")
     foreach(COMPONENT ${_Boost_MISSING_COMPONENTS})
-      string(APPEND Boost_ERROR_REASON
+      list(APPEND Boost_ERROR_REASON
         "        ${Boost_NAMESPACE}_${COMPONENT}\n")
     endforeach()

     list(LENGTH Boost_FIND_COMPONENTS Boost_NUM_COMPONENTS_WANTED)
     list(LENGTH _Boost_MISSING_COMPONENTS Boost_NUM_MISSING_COMPONENTS)
     if (${Boost_NUM_COMPONENTS_WANTED} EQUAL ${Boost_NUM_MISSING_COMPONENTS})
-      string(APPEND Boost_ERROR_REASON
+      list(APPEND Boost_ERROR_REASON
         "No Boost libraries were found. You may need to set BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.")
     else ()
-      string(APPEND Boost_ERROR_REASON
+      list(APPEND Boost_ERROR_REASON
         "Some (but not all) of the required Boost libraries were found. You may need to install these additional Boost libraries. Alternatively, set BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT to the location of Boost.")
     endif ()
   endif ()
@@ -1762,12 +1765,13 @@
     endif()

     if(EXISTS "${_boost_LIB_DIR}/lib")
-      string(APPEND _boost_LIB_DIR /lib)
+      list(APPEND _boost_LIB_DIR /lib)
     elseif(EXISTS "${_boost_LIB_DIR}/stage/lib")
-      string(APPEND _boost_LIB_DIR "/stage/lib")
+      list(APPEND _boost_LIB_DIR "/stage/lib")
     else()
       set(_boost_LIB_DIR "")
     endif()
+    string(CONCAT _boost_LIB_DIR ${_boost_LIB_DIR})

     if(_boost_LIB_DIR AND EXISTS "${_boost_LIB_DIR}")
       set(Boost_LIBRARY_DIRS ${_boost_LIB_DIR})
@@ -1872,6 +1876,7 @@
     endif()
   endforeach()
 else()
+  string(CONCAT Boost_ERROR_REASON ${Boost_ERROR_REASON})
   if(Boost_FIND_REQUIRED)
     message(SEND_ERROR "Unable to find the requested Boost libraries.\n${Boost_ERROR_REASON}")
   else()


Fixed bug finding pre-built GSMPI library.

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

--- cmake/FindGSMPI.cmake
+++ cmake/FindGSMPI.cmake
@@ -4,8 +4,8 @@
 	${CMAKE_SOURCE_DIR}/ThirdParty/gsmpi-1.0/build/
 	${CMAKE_SOURCE_DIR}/../ThirdParty/gsmpi-1.0/
 	${CMAKE_SOURCE_DIR}/../ThirdParty/gsmpi-1.0/build
-    ${CMAKE_SOURCE_DIR}/ThirdParty/build/dist/lib
-    ${CMAKE_SOURCE_DIR}/../ThirdParty/build/dist/lib)
+    ${CMAKE_SOURCE_DIR}/ThirdParty/dist/lib
+    ${CMAKE_SOURCE_DIR}/../ThirdParty/dist/lib)

 FIND_LIBRARY(GSMPI_LIBRARY NAMES gsmpi PATHS ${GSMPI_SEARCH_PATHS})


MDEV-13946 Server RPMs have dependency on "which"

SLES11 doesn't have a dedicated package for "which",
it's part of the "util-linux" package

--- cmake/cpack_rpm.cmake
+++ cmake/cpack_rpm.cmake
@@ -168,9 +168,14 @@
   "MariaDB-client")

 IF(WITH_WSREP)
-SETA(CPACK_RPM_server_PACKAGE_REQUIRES
-  "galera" "rsync" "lsof" "grep" "gawk" "iproute"
-  "coreutils" "findutils" "tar" "which")
+  SETA(CPACK_RPM_server_PACKAGE_REQUIRES
+    "galera" "rsync" "lsof" "grep" "gawk" "iproute"
+    "coreutils" "findutils" "tar")
+  IF (RPM MATCHES "sles11")
+    SETA(CPACK_RPM_server_PACKAGE_REQUIRES "util-linux")
+  ELSE()
+    SETA(CPACK_RPM_server_PACKAGE_REQUIRES "which")
+  ENDIF()
 ENDIF()

 SET(CPACK_RPM_server_PRE_INSTALL_SCRIPT_FILE ${CMAKE_SOURCE_DIR}/support-files/rpm/server-prein.sh)


emscripten fix for filedata dir

emscripten fix for filedata dir

git-svn-id: 6b1c4fe79111c0bc0cce83313250759594f8984b@6086 e128ff1e-fa79-4151-a8cb-522299a2c450

--- cmake/gsDataDir.cmake
+++ cmake/gsDataDir.cmake
@@ -7,4 +7,10 @@
 ######################################################################

 # Data directory
-set (GISMO_DATA_DIR   "${PROJECT_SOURCE_DIR}/filedata/")
+if (DEFINED EMSCRIPTEN)
+	set(GISMO_DATA_DIR "filedata/" )
+	message("GISMO_DATA_DIR set to relative path '${GISMO_DATA_DIR}'")
+	set(GISMO_ORIG_DATA_DIR "${PROJECT_SOURCE_DIR}/filedata/")
+else()
+	set (GISMO_DATA_DIR   "${PROJECT_SOURCE_DIR}/filedata/")
+endif()


Excluding module from being enabled by default

--- itk-module.cmake
+++ itk-module.cmake
@@ -3,6 +3,12 @@
 # re-used it for documentation here
 get_filename_component( MY_CURENT_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
 file( READ "${MY_CURENT_DIR}/README" DOCUMENTATION )
+
+# ITK version 4.5 changed it from EXCLUDE_FROM_ALL to EXCLUDE_FROM_DEFAULT
+set( _EXCLUDE "EXCLUDE_FROM_ALL" )
+if (NOT "${ITK_VERSION_MAJOR}.${ITK_VERSION_MINOR}.${ITK_VERSION_MINOR_PATCH}" VERSION_LESS "4.5")
+  set( _EXCLUDE "EXCLUDE_FROM_DEFAULT" )
+endif()

 # define the dependencies of the include module and the tests
 itk_module(ITKTextureAnalysis
@@ -17,4 +23,5 @@
     ITKPNG
   DESCRIPTION
     "${DOCUMENTATION}"
+  ${_EXCLUDE}
 )


COMP: MinimalPathExtraction must be linked against

--- itk-module.cmake
+++ itk-module.cmake
@@ -32,6 +32,7 @@
     ITKSmoothing
     ITKStatistics
     ITKSpatialObjects
+    MinimalPathExtraction
   COMPILE_DEPENDS
     ITKAnisotropicSmoothing
     ITKBinaryMathematicalMorphology
@@ -53,7 +54,6 @@
     ITKPDEDeformableRegistration
     ITKTransform
     ITKTestKernel
-    MinimalPathExtraction
   DESCRIPTION
     "${DOCUMENTATION}"
   EXCLUDE_FROM_DEFAULT


BUG: Fix module test missing ITKIOVTK dependency.

Fix module test missing `ITKIOVTK` library dependency.

--- itk-module.cmake
+++ itk-module.cmake
@@ -9,6 +9,7 @@
   TEST_DEPENDS
     ITKTestKernel
     ITKDisplacementField
+    ITKIOVTK
   EXCLUDE_FROM_DEFAULT
   DESCRIPTION
     "${DOCUMENTATION}"


Enable UART ESC driver in QuRT

Enable UART ESC driver in QuRT

--- cmake/configs/qurt_eagle_default.cmake
+++ cmake/configs/qurt_eagle_default.cmake
@@ -12,17 +12,6 @@

 set(CONFIG_SHMEM "1")

-# For Actual flight we need to link against the driver dynamic libraries
-#set(target_libraries
-#	-L${HEXAGON_DRIVERS_ROOT}/libs
-# The plan is to replace these with our drivers
-#	mpu9x50
-#	uart_esc
-#	csr_gps
-#	rc_receiver
-#	)
-
-
 set(CMAKE_TOOLCHAIN_FILE ${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/toolchain/Toolchain-qurt.cmake)
 include(${CMAKE_SOURCE_DIR}/cmake/cmake_hexagon/qurt_app.cmake)

@@ -32,11 +21,6 @@
 	#
 	drivers/device
 	modules/sensors
-# The plan is to replace these with our drivers
-#	$(EAGLE_DRIVERS_SRC)/mpu9x50
-#	$(EAGLE_DRIVERS_SRC)/uart_esc
-#	$(EAGLE_DRIVERS_SRC)/rc_receiver
-#	$(EAGLE_DRIVERS_SRC)/csr_gps
 	platforms/posix/drivers/df_mpu9250_wrapper
 	platforms/posix/drivers/df_bmp280_wrapper
 	platforms/posix/drivers/df_hmc5883_wrapper
@@ -73,8 +57,8 @@
 	#
 	# PX4 drivers
 	#
-	# TODO: make the GPS driver compile
 	drivers/gps
+	drivers/uart_esc

 	#
 	# Libraries


Update CheckCXXLinkerFlag

Update CheckCXXLinkerFlag

--- cmake/modules/CheckCXXLinkerFlag.cmake
+++ cmake/modules/CheckCXXLinkerFlag.cmake
@@ -79,15 +79,15 @@
     endif()
   else()
     _check_cxx_linker_flag(-Wl,--fatal-warnings
-      HRVO_LINKER_SUPPORTS__FATAL_WARNINGS)
+      CHECK_CXX_LINKER_FLAG_LINKER_SUPPORTS__FATAL_WARNINGS)

-    if(HRVO_LINKER_SUPPORTS__FATAL_WARNINGS)
+    if(CHECK_CXX_LINKER_FLAG_LINKER_SUPPORTS__FATAL_WARNINGS)
       set(_FATAL_WARNINGS_FLAG -Wl,--fatal-warnings)
     else()
       _check_cxx_linker_flag(-Wl,-fatal_warnings
-        HRVO_LINKER_SUPPORTS_FATAL_WARNINGS)
+        CHECK_CXX_LINKER_FLAG_LINKER_SUPPORTS_FATAL_WARNINGS)

-      if(HRVO_LINKER_SUPPORTS_FATAL_WARNINGS)
+      if(CHECK_CXX_LINKER_FLAG_LINKER_SUPPORTS_FATAL_WARNINGS)
         set(_FATAL_WARNINGS_FLAG -Wl,-fatal_warnings)
       else()
         set(_FATAL_WARNINGS_FLAG)


[CMake][Exp PyROOT] Define PYTHON_VERSION_MAJOR_Development_Main and PYTHON_VERSION_MINOR_Development_Main everywhere

--- cmake/modules/SearchRootCoreDeps.cmake
+++ cmake/modules/SearchRootCoreDeps.cmake
@@ -91,6 +91,8 @@
         set(Python${PYTHON_PREFER_VERSION}_Interpreter_Development_FOUND ON) # This means we have both Interpreter and Development, hence we can build PyROOT with Python3
         set(PYTHON_EXECUTABLE_Development_Main "${Python${PYTHON_PREFER_VERSION}_EXECUTABLE}")
         set(PYTHON_VERSION_STRING_Development_Main "${Python${PYTHON_PREFER_VERSION}_VERSION}")
+        set(PYTHON_VERSION_MAJOR_Development_Main "${Python${PYTHON_PREFER_VERSION}_VERSION_MAJOR}")
+        set(PYTHON_VERSION_MINOR_Development_Main "${Python${PYTHON_PREFER_VERSION}_VERSION_MINOR}")
         set(PYTHON_UNDER_VERSION_STRING_Development_Main "${Python${PYTHON_PREFER_VERSION}_VERSION_MAJOR}_${Python${PYTHON_PREFER_VERSION}_VERSION_MINOR}")
         set(PYTHON_INCLUDE_DIRS_Development_Main "${Python${PYTHON_PREFER_VERSION}_INCLUDE_DIRS}")
         set(PYTHON_LIBRARIES_Development_Main "${Python${PYTHON_PREFER_VERSION}_LIBRARIES}")
@@ -125,6 +127,8 @@
         set(Python3_Interpreter_Development_FOUND ON) # This means we have both Interpreter and Development, hence we can build PyROOT with Python3
         set(PYTHON_EXECUTABLE_Development_Main "${Python3_EXECUTABLE}")
         set(PYTHON_VERSION_STRING_Development_Main "${Python3_VERSION}")
+        set(PYTHON_VERSION_MAJOR_Development_Main "${Python3_VERSION_MAJOR}")
+        set(PYTHON_VERSION_MINOR_Development_Main "${Python3_VERSION_MINOR}")
         set(PYTHON_UNDER_VERSION_STRING_Development_Main "${Python3_VERSION_MAJOR}_${Python3_VERSION_MINOR}")
         set(PYTHON_INCLUDE_DIRS_Development_Main "${Python3_INCLUDE_DIRS}")
         set(PYTHON_LIBRARIES_Development_Main "${Python3_LIBRARIES}")
@@ -154,6 +158,8 @@
             set(Python2_Interpreter_Development_FOUND ON) # This means we have both Interpreter and Development, hence we can build PyROOT with Python2
             set(PYTHON_EXECUTABLE_Development_Main "${Python2_EXECUTABLE}")
             set(PYTHON_VERSION_STRING_Development_Main "${Python2_VERSION}")
+            set(PYTHON_VERSION_MAJOR_Development_Main "${Python2_VERSION_MAJOR}")
+            set(PYTHON_VERSION_MINOR_Development_Main "${Python2_VERSION_MINOR}")
             set(PYTHON_UNDER_VERSION_STRING_Development_Main "${Python2_VERSION_MAJOR}_${Python2_VERSION_MINOR}")
             set(PYTHON_INCLUDE_DIRS_Development_Main "${Python2_INCLUDE_DIRS}")
             set(PYTHON_LIBRARIES_Development_Main "${Python2_LIBRARIES}")
@@ -172,6 +178,8 @@
           if(Python3_Interpreter_Development_FOUND)
             set(PYTHON_EXECUTABLE_Development_Other "${Python2_EXECUTABLE}")
             set(PYTHON_VERSION_STRING_Development_Other "${Python2_VERSION}")
+            set(PYTHON_VERSION_MAJOR_Development_Other "${Python2_VERSION_MAJOR}")
+            set(PYTHON_VERSION_MINOR_Development_Other "${Python2_VERSION_MINOR}")
             set(PYTHON_UNDER_VERSION_STRING_Development_Other "${Python2_VERSION_MAJOR}_${Python2_VERSION_MINOR}")
             set(PYTHON_INCLUDE_DIRS_Development_Other "${Python2_INCLUDE_DIRS}")
             set(PYTHON_LIBRARIES_Development_Other "${Python2_LIBRARIES}")
@@ -185,6 +193,8 @@
             # Set PyROOT variables
             set(PYTHON_EXECUTABLE_Development_Main "${Python2_EXECUTABLE}")
             set(PYTHON_VERSION_STRING_Development_Main "${Python2_VERSION}")
+            set(PYTHON_VERSION_MAJOR_Development_Main "${Python2_VERSION_MAJOR}")
+            set(PYTHON_VERSION_MINOR_Development_Main "${Python2_VERSION_MINOR}")
             set(PYTHON_UNDER_VERSION_STRING_Development_Main "${Python2_VERSION_MAJOR}_${Python2_VERSION_MINOR}")
             set(PYTHON_INCLUDE_DIRS_Development_Main "${Python2_INCLUDE_DIRS}")
             set(PYTHON_LIBRARIES_Development_Main "${Python2_LIBRARIES}")
@@ -223,6 +233,8 @@

   set(PYTHON_EXECUTABLE_Development_Main "${PYTHON_EXECUTABLE}")
   set(PYTHON_VERSION_STRING_Development_Main "${PYTHON_VERSION_STRING}")
+  set(PYTHON_VERSION_MAJOR_Development_Main "${PYTHON_VERSION_MAJOR}")
+  set(PYTHON_VERSION_MINOR_Development_Main "${PYTHON_VERSION_MINOR}")
   set(PYTHON_UNDER_VERSION_STRING_Development_Main "${PYTHON_VERSION_MAJOR}_${PYTHON_VERSION_MINOR}")
   set(PYTHON_INCLUDE_DIRS_Development_Main "${PYTHON_INCLUDE_DIRS}")
   set(PYTHON_LIBRARIES_Development_Main "${PYTHON_LIBRARIES}")


Fix HostMacros.cmake

Fix HostMacros.cmake

Signed-off-by: Eddie Ringle <bacc1c505cb1756c59242c0a8ee25cd990a210e9@eringle.net>

--- scripts/cmake/modules/HostMacros.cmake
+++ scripts/cmake/modules/HostMacros.cmake
@@ -1,42 +1,62 @@
-# macro to find packages on the host OS
-macro( find_host_package )
- set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
- set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER )
- set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER )
- if( CMAKE_HOST_WIN32 )
-  SET( WIN32 1 )
-  SET( UNIX )
- elseif( CMAKE_HOST_APPLE )
-  SET( APPLE 1 )
-  SET( UNIX )
- endif()
- find_package( ${ARGN} )
- SET( WIN32 )
- SET( APPLE )
- SET( UNIX 1 )
- set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY )
- set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
- set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
+if(APPLE)
+    set(ORIGINAL_APPLE 1)
+elseif(UNIX)
+    set(ORIGINAL_UNIX 1)
+elseif(WIN32)
+    set(ORIGINAL_WIN32 1)
+endif()
+
+macro(mask_host_to_target)
+    if(CMAKE_HOST_WIN32)
+        set(WIN32 1)
+        unset(APPLE)
+        unset(UNIX)
+    elseif(CMAKE_HOST_APPLE)
+        set(APPLE 1)
+        unset(WIN32)
+        unset(UNIX)
+    elseif(CMAKE_HOST_UNIX)
+        set(UNIX 1)
+        unset(WIN32)
+        unset(APPLE)
+    endif()
 endmacro()

+macro(restore_target)
+    unset(APPLE)
+    unset(UNIX)
+    unset(WIN32)
+    if(ORIGINAL_APPLE)
+        set(APPLE 1)
+    elseif(ORIGINAL_UNIX)
+        set(UNIX 1)
+    elseif(ORIGINAL_WIN32)
+        set(WIN32 1)
+    endif()
+endmacro()
+
+# macro to find packages on the host OS
+macro(find_host_package)
+    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
+    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
+    mask_host_to_target()
+    find_package(${ARGN})
+    restore_target()
+    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
+    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
+endmacro()

 # macro to find programs on the host OS
-macro( find_host_program )
- set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER )
- set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER )
- set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER )
- if( CMAKE_HOST_WIN32 )
-  SET( WIN32 1 )
-  SET( UNIX )
- elseif( CMAKE_HOST_APPLE )
-  SET( APPLE 1 )
-  SET( UNIX )
- endif()
- find_program( ${ARGN} )
- SET( WIN32 )
- SET( APPLE )
- SET( UNIX 1 )
- set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY )
- set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
- set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
+macro(find_host_program)
+    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
+    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY NEVER)
+    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE NEVER)
+    mask_host_to_target()
+    find_program(${ARGN})
+    restore_target()
+    set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY)
+    set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
+    set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
 endmacro()


Parallelize the builds of dependencies

Parallelize the builds of dependencies

--- backend/cmake/helpers/build_target.cmake
+++ backend/cmake/helpers/build_target.cmake
@@ -1,3 +1,5 @@
+include(ProcessorCount)
+
 function(build_target SRC_DIR TARGET_DIR)
     file(MAKE_DIRECTORY ${TARGET_DIR}/build)

@@ -18,6 +20,9 @@
         WORKING_DIRECTORY "${TARGET_DIR}/build"
     )

+    ProcessorCount(NUM_PROCS)
+
+    set(ENV{MAKEFLAGS} -j${NUM_PROCS})
     execute_process(COMMAND ${CMAKE_COMMAND} --build .
         WORKING_DIRECTORY ${TARGET_DIR}/build
     )


RunStyleGuideLint: Fix missing error handler

--- RunStyleGuideLint.cmake
+++ RunStyleGuideLint.cmake
@@ -54,8 +54,9 @@
     message ("${ERROR}")
     if (NOT WARN_ONLY)
         set (MESSAGE
-             "${STYLE_GUIDE_LINT_EXECUTABLE} found issues with ${SOURCES} "
-             "exiting with {RESULT}")
+             "${STYLE_GUIDE_LINT_EXECUTABLE} found issues with ${SOURCES} ")
+        set (MESSAGE "${MESSAGE} exited with ${RESULT}")
+        message (FATAL_ERROR "${MESSAGE}")
     endif ()

 endif ()


Fix old cmake versions problem when using variable name as regex.

--- cmake/Modules/CppUTestWarningFlags.cmake
+++ cmake/Modules/CppUTestWarningFlags.cmake
@@ -16,10 +16,11 @@

     macro(check_and_append_cxx_warning_flags)
       foreach (flag ${ARGN})
-        check_cxx_compiler_flag("-${flag}" WARNING_CXX_FLAG_${flag})
-        if (WARNING_CXX_FLAG_${flag})
+        string(REPLACE "++" "xx" WARNING_CXX_FLAG_VAR "WARNING_CXX_FLAG_${flag}")
+        check_cxx_compiler_flag("-${flag}" ${WARNING_CXX_FLAG_VAR})
+        if (${WARNING_CXX_FLAG_VAR})
             set(CPPUTEST_CXX_WARNING_FLAGS "${CPPUTEST_CXX_WARNING_FLAGS} -${flag}")
-          endif (WARNING_CXX_FLAG_${flag})
+        endif (${WARNING_CXX_FLAG_VAR})
       endforeach (flag)
     endmacro(check_and_append_cxx_warning_flags)


adds missing modified PATH_SUFFIX

adds missing modified PATH_SUFFIX

--- src/CMake/Findcycluscore.cmake
+++ src/CMake/Findcycluscore.cmake
@@ -28,7 +28,7 @@
   "${CYCLUS_ROOT_DIR}/include"
   "${CYCLUS_ROOT_DIR}/include/cyclus"
   /usr/local/cyclus /opt/local/cyclus
-  PATH_SUFFIXES cyclus/include include)
+  PATH_SUFFIXES cyclus/include include include/cyclus)

 # Add the root dir to the hints
 SET(CYCLUS_ROOT_DIR "${CYCLUS_CORE_INCLUDE_DIR}/..")


- Fixes to the Android CMake toolchain, gnustl_static

--- cmake/Toolchains/all-android.toolchain.cmake
+++ cmake/Toolchains/all-android.toolchain.cmake
@@ -53,6 +53,7 @@
 retrieve_env(ANDROID_PLATFORM)
 retrieve_env(ANDROID_TOOLCHAIN)
 retrieve_env(ANDROID_STL)
+retrieve_env(ANDROID_ARM_NEON)
 retrieve_env(ANDROID_DISABLE_FORMAT_STRING_CHECKS)

 message("PROPS: ${ANDROID_NDK} ${ANDROID_STL} ${ANDROID_TOOLCHAIN} ${ANDROID_ABI} ${ANDROID_PLATFORM}")
@@ -646,4 +647,9 @@
         set(ANDROID_COMPILER_IS_CLANG TRUE)
 endif()

+if("${ANDROID_STL}" STREQUAL "gnustl_static")
+    set ( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
+endif()
+
 include_directories ( SYSTEM "${CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES}" )
+LINK_LIBRARIES( "${CMAKE_CXX_STANDARD_LIBRARIES_INIT};${CMAKE_C_STANDARD_LIBRARIES_INIT}" )


new wkgenconfig macro, to automate the generation of the config file for the project.

--- dist/WkBuild.cmake
+++ dist/WkBuild.cmake
@@ -66,6 +66,60 @@
    SET(${OUTPUT} ${BTEMP})
 ENDMACRO(MERGE ALIST BLIST OUTPUT)

+
+#
+# Generate a config file for the project.
+#
+# Automatically called after WkBuild
+#
+
+macro ( WkGenConfig )
+	#Exporting targets
+	export(TARGETS ${PROJECT_NAME} ${${PROJECT_NAME}_source_depends} FILE ${PROJECT_NAME}Export.cmake)
+
+	#Generating config file
+	file( WRITE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake "
+
+	get_filename_component(SELF_DIR \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
+	#all required target should be defined there... no need to specify ${PROJECT_NAME}_LIBRARIES, they will be linked automatically
+	include(${SELF_DIR}/${PROJECT_NAME}Export.cmake)
+	get_filename_component(${PROJECT_NAME}_INCLUDE_DIR "${SELF_DIR}/include/" ABSOLUTE)
+	set(${PROJECT_NAME}_INCLUDE_DIRS ${${PROJECT_NAME}_INCLUDE_DIR})
+	")
+
+	foreach( looparg ${${PROJECT_NAME}_source_depends} )
+		# TODO better : linked ot the include copy in the binary dir...
+		file( APPEND ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake "
+		get_filename_component(${looparg}_INCLUDE_DIR \"${SELF_DIR}/ext/${looparg}/include\" ABSOLUTE)
+		set(${PROJECT_NAME}_INCLUDE_DIRS ${${PROJECT_NAME}_INCLUDE_DIRS} ${looparg}_INCLUDE_DIR)
+		")
+	endforeach( looparg ${${PROJECT_NAME}_source_depends} )
+
+
+	get_target_property(${PROJECT_NAME}_LOCATION ${PROJECT_NAME} LOCATION)
+
+	file( APPEND ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake "
+
+	#however we still want to have ${PROJECT_NAME}_LIBRARIES to be able to move them around if needed
+	set(${PROJECT_NAME}_LIBRARY ${${PROJECT_NAME}_LOCATION})
+	set(${PROJECT_NAME}_LIBRARIES ${${PROJECT_NAME}_LIBRARY})
+
+	" )
+
+	foreach( looparg ${${PROJECT_NAME}_source_depends} )
+		get_target_property(${looparg}_LOCATION ${looparg} LOCATION)
+		file( APPEND ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake "
+
+		set(${looparg}_LIBRARY ${${looparg}_LOCATION})
+		set(${looparg}_LIBRARIES ${${looparg}_LIBRARIES} ${${looparg}_LIBRARY})
+
+		")
+
+	endforeach( looparg ${${PROJECT_NAME}_source_depends} )
+
+endmacro ( WkGenConfig )
+
+
 #
 # Configure and Build process based on well-known hierarchy
 # You need include and src in your hierarchy at least for this to work correctly
@@ -215,14 +269,15 @@
 													COMMENT "Copying ${PROJECT_SOURCE_DIR}/include to ${PROJECT_BINARY_DIR}" )
 	endif(${project_type} STREQUAL "LIBRARY")

-	#
-	#Exporting main targets (and source dependencies )
-	#
-
-	export(TARGETS ${PROJECT_NAME} ${${PROJECT_NAME}_source_depends} FILE Export.cmake)
-
-	#
-	# we must generate the findProject.cmake
+
+	#
+	# Generating configuration cmake file
+	#
+
+	WkGenConfig( )
+
+	#
+	# Generating the findProject.cmake in case external projects want to use it...
 	#

 	WkGenFind( )
@@ -235,54 +290,52 @@
 # Find a dependency built in an external WK hierarchy
 # Different than for a package because this dependency hasnt been installed yet.
 #
-# WkBinDepends( RELEASE | DEBUG  [ bin_depend [...] ] )
-
-macro (WkBinDepends build_type )
+# WkBinDepends( dependency_name [QUIET] [REQUIRED] )
+
+macro (WkDepends package_name)
 CMAKE_POLICY(PUSH)
 CMAKE_POLICY(VERSION 2.6)
-
-foreach ( looparg ${ARGN} )
-
-	if ( NOT ${looparg}_EXPORT_CMAKE )
-		set(${looparg}_EXPORT_CMAKE CACHE FILEPATH " Export.cmake filepath for ${looparg} dependency " )
-	endif ( NOT ${looparg}_EXPORT_CMAKE )
-
-	if ( EXISTS ${${looparg}_EXPORT_CMAKE})
-		include(${${looparg}_EXPORT_CMAKE})
-
-		#saving project_bin_depends for future use
-		set(${PROJECT_NAME}_bin_depends ${${PROJECT_NAME}_bin_depends} ${looparg})
-		if ( ${build_type} STREQUAL "RELEASE")
-			get_target_property(${looparg}_LOCATION ${looparg} IMPORTED_LOCATION_RELEASE)
-		else ( ${build_type} STREQUAL "RELEASE")
-			get_target_property(${looparg}_LOCATION ${looparg} IMPORTED_LOCATION_DEBUG)
-		endif ( ${build_type} STREQUAL "RELEASE")
-		set(${looparg}_BIN_LOCATION ${${looparg}_LOCATION} CACHE FILEPATH "Location of the binary dependency - .lib or .dll" )
-
-		if ( NOT EXISTS ${${looparg}_BIN_LOCATION} )
-			message (FATAL_ERROR "Binary dependency ${${looparg}_LOCATION} NOT FOUND. Please correct ${looparg}_LOCATION")
-		endif ( NOT EXISTS ${${looparg}_BIN_LOCATION} )
-
-		#include if present
-		get_filename_component(${looparg}_DEPEND_PATH ${${looparg}_EXPORT_CMAKE} PATH)
-		if (EXISTS ${${looparg}_DEPEND_PATH}/include)
-			include_directories( ${${looparg}_DEPEND_PATH}/include )
-		endif (EXISTS ${${looparg}_DEPEND_PATH}/include)
-		target_link_libraries( ${PROJECT_NAME} ${looparg})
-		#reminder : imported targets wont be built by curent project, so no need to specify dependencies building priorities.
-
-		#propagating exported target upwards...
-		export(TARGETS ${looparg} APPEND FILE Export.cmake)
-
-	else ( EXISTS ${${looparg}_EXPORT_CMAKE} )
-		message ( FATAL_ERROR "${looparg} build not detected ( looking for Export.cmake ). Please correct ${looparg}_EXPORT_CMAKE" )
-	endif ( EXISTS ${${looparg}_EXPORT_CMAKE} )
-
-
-
-endforeach ( looparg ${ARGN} )
+
+	#
+	# First check if the package is installed already , quietly
+	#
+
+	find_package( ${package_name} QUIET)
+
+	set(${package_name}_EXPORT_CMAKE CACHE FILEPATH " Export.cmake filepath for ${package_name} dependency " )
+
+	set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+
+
+	# if ( EXISTS ${${package_name}_EXPORT_CMAKE})
+		# include(${${package_name}_EXPORT_CMAKE})
+
+		# #saving project_bin_depends for future use
+		# set(${PROJECT_NAME}_bin_depends ${${PROJECT_NAME}_bin_depends} ${package_name})
+		# if ( ${build_type} STREQUAL "RELEASE")
+			# get_target_property(${package_name}_LOCATION ${package_name} IMPORTED_LOCATION_RELEASE)
+		# else ( ${build_type} STREQUAL "RELEASE")
+			# get_target_property(${package_name}_LOCATION ${package_name} IMPORTED_LOCATION_DEBUG)
+		# endif ( ${build_type} STREQUAL "RELEASE")
+		# set(${package_name}_BIN_LOCATION ${${package_name}_LOCATION} CACHE FILEPATH "Location of the binary dependency - .lib or .dll" )
+
+		# if ( NOT EXISTS ${${package_name}_BIN_LOCATION} )
+			# message (FATAL_ERROR "Binary dependency ${${package_name}_LOCATION} NOT FOUND. Please correct ${package_name}_LOCATION")
+		# endif ( NOT EXISTS ${${package_name}_BIN_LOCATION} )
+
+		# #include if present
+		# get_filename_component(${package_name}_DEPEND_PATH ${${package_name}_EXPORT_CMAKE} PATH)
+		# if (EXISTS ${${package_name}_DEPEND_PATH}/include)
+			# include_directories( ${${package_name}_DEPEND_PATH}/include )
+		# endif (EXISTS ${${package_name}_DEPEND_PATH}/include)
+		# target_link_libraries( ${PROJECT_NAME} ${package_name})
+		# #reminder : imported targets wont be built by curent project, so no need to specify dependencies building priorities.
+
+	# else ( EXISTS ${${package_name}_EXPORT_CMAKE} )
+		# message ( FATAL_ERROR "${package_name} build not detected ( looking for Export.cmake ). Please correct ${package_name}_EXPORT_CMAKE" )
+	# endif ( EXISTS ${${package_name}_EXPORT_CMAKE} )

 CMAKE_POLICY(POP)
-endmacro (WkBinDepends build_type )
-
-
+endmacro (WkDepends package_name)
+
+


fixed check for VS version on AutoBuildGLEW

--- cmake/AutoBuildGLEW.cmake
+++ cmake/AutoBuildGLEW.cmake
@@ -27,8 +27,10 @@

             message(STATUS "AutoBuild: Beginning download, build, install sequence.")
 			message(STATUS "CMAKE_GENERATOR ${CMAKE_GENERATOR}")
+			message(STATUS "MSVC_VERSION ${MSVC_VERSION}")

-            if(${CMAKE_GENERATOR} STREQUAL "Visual Studio 16 2019" )
+            if(WIN32 AND (${MSVC_VERSION} GREATER_EQUAL 1910) )
+			   message(STATUS "Getting GLEW support for VS 15.0")
 			   set(GLEW_URL https://sourceforge.net/projects/glew/files/glew/snapshots/glew-20190928.zip )
 			else()
 			   set(GLEW_URL https://sourceforge.net/projects/glew/files/glew/2.1.0/glew-2.1.0.zip )


update RPM metadata (vendor and contact)

--- cmake/mysql_version.cmake
+++ cmake/mysql_version.cmake
@@ -90,8 +90,8 @@
 IF(NOT CPACK_SOURCE_PACKAGE_FILE_NAME)
   SET(CPACK_SOURCE_PACKAGE_FILE_NAME "mariadb-${VERSION}")
 ENDIF()
-SET(CPACK_PACKAGE_CONTACT "MariaDB team <info@montyprogram.com>")
-SET(CPACK_PACKAGE_VENDOR "Monty Program AB")
+SET(CPACK_PACKAGE_CONTACT "MariaDB Developers <maria-developers@lists.launchpad.net>")
+SET(CPACK_PACKAGE_VENDOR "MariaDB Foundation")
 SET(CPACK_SOURCE_GENERATOR "TGZ")

 # Defintions for windows version resources


hook the client package copy target into the global copy target

--- cmake/packages/nsis.cmake
+++ cmake/packages/nsis.cmake
@@ -99,6 +99,8 @@
 add_custom_target(copy_client_nsis_package
   COMMAND ${CMAKE_COMMAND} -E copy ${ARANGODB_CLIENT_PACKAGE_FILE_NAME}.exe ${PACKAGE_TARGET_DIR})

+list(APPEND COPY_PACKAGES_LIST copy_client_nsis_package)
+
 add_custom_target(copy_nsis_packages
   COMMAND ${CMAKE_COMMAND} -E copy ${CPACK_PACKAGE_FILE_NAME}.exe ${PACKAGE_TARGET_DIR})


BUG: use SB_CONFIGURE_ARGS for common autoconf settings

--- SuperBuild/CMake/External_glut.cmake
+++ SuperBuild/CMake/External_glut.cmake
@@ -14,7 +14,7 @@
   ${GLUT_SB_SRC}
 )

-set(GLUT_CONFIGURE_COMMAND  "${SB_ENV_CONFIGURE_CMD};${GLUT_SB_SRC}/configure" )
+set(GLUT_CONFIGURE_COMMAND  "${SB_ENV_CONFIGURE_CMD};${GLUT_SB_SRC}/configure" ${SB_CONFIGURE_ARGS})

 else(MSVC)
   set(GLUT_PATCH_COMMAND)


STYLE: Remove comment

STYLE: Remove comment

--- SuperBuild/External_DTIProcess.cmake
+++ SuperBuild/External_DTIProcess.cmake
@@ -97,7 +97,6 @@
   set(${extProjName}_DIR ${EXTERNAL_BINARY_DIRECTORY}/${proj}-install/lib/CMake/${proj})
 else()
   if(${USE_SYSTEM_${extProjName}})
-    message(STATUS dddddfffff${${extProjName}_DIR})
     find_package(${extProjName} REQUIRED)
     message("USING the system ${extProjName}, set ${extProjName}_DIR=${${extProjName}_DIR}")
   endif()


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   06)
+SET(KWSYS_DATE_STAMP_DAY   07)


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 01)

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


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 01)

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


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   13)
+SET(KWSYS_DATE_STAMP_DAY   14)


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   04)
+SET(KWSYS_DATE_STAMP_DAY   05)


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   23)
+SET(KWSYS_DATE_STAMP_DAY   24)


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)


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   23)
+SET(KWSYS_DATE_STAMP_DAY   24)


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   21)
+SET(KWSYS_DATE_STAMP_DAY   22)


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 01)

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


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   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 06)

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


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   07)
+SET(KWSYS_DATE_STAMP_DAY   08)


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 03)

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


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   02)
+SET(KWSYS_DATE_STAMP_DAY   03)


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   25)
+SET(KWSYS_DATE_STAMP_DAY   26)


make the search fro trilinos less intrusive

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

--- deal.II/cmake/modules/FindTRILINOS.cmake
+++ deal.II/cmake/modules/FindTRILINOS.cmake
@@ -41,6 +41,7 @@
     lib${LIB_SUFFIX}/cmake/Trilinos
     lib64/cmake/Trilinos
     lib/cmake/Trilinos
+  NO_SYSTEM_ENVIRONMENT_PATH
   )

 #


file is generated

file is generated


refer to original info file as tmp and avoid removing cleaned info file, now .info

--- cmake/CodeCoverage.cmake
+++ cmake/CodeCoverage.cmake
@@ -141,10 +141,10 @@
 		COMMAND ${_testrunner} ${ARGV3}

 		# Capturing lcov counters and generating report
-		COMMAND ${LCOV_PATH} --directory . --capture --output-file ${_outputname}.info
-                COMMAND ${LCOV_PATH} --remove ${_outputname}.info 'tests/*' 'test/*' '/usr/*' '/opt/*' --output-file ${_outputname}.info.cleaned
-		COMMAND ${GENHTML_PATH} -o ${_outputname} ${_outputname}.info.cleaned
-		COMMAND ${CMAKE_COMMAND} -E remove ${_outputname}.info ${_outputname}.info.cleaned
+                COMMAND ${LCOV_PATH} --directory . --capture --output-file ${_outputname}.info.tmp
+                COMMAND ${LCOV_PATH} --remove ${_outputname}.info.tmp 'tests/*' 'test/*' '/usr/*' '/opt/*' --output-file ${_outputname}.info
+                COMMAND ${GENHTML_PATH} -o ${_outputname} ${_outputname}.info
+                COMMAND ${CMAKE_COMMAND} -E remove ${_outputname}.info.tmp

 		WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
 		COMMENT "Resetting code coverage counters to zero.\nProcessing code coverage counters and generating report."


update gtest download

update gtest download

--- cmake/EnableGtests.cmake
+++ cmake/EnableGtests.cmake
@@ -25,8 +25,8 @@
             set (gtest_root ${gtest_root1})
         else()
             message(STATUS "Trying to fetch gtest via subversion")
-            find_package(Subversion)
-            execute_process(COMMAND "${Subversion_SVN_EXECUTABLE}" "checkout" "http://googletest.googlecode.com/svn/trunk/" "gtest" WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
+            find_package(Git)
+            execute_process(COMMAND "${GIT_EXECUTABLE}" "clone" "--branch" "release-1.7.0" "https://github.com/google/googletest.git" "gtest" WORKING_DIRECTORY ${CMAKE_BINARY_DIR})
             set (gtest_root "${CMAKE_BINARY_DIR}/gtest")
         endif()
         unset (gtest_root1)
@@ -73,7 +73,7 @@

 # enable testing with gtest - fetch it if needed
 if (NOT tests_are_already_enabled AND Testing )
-    find_package(GTest QUIET)
+    find_package(GTest)

     if (NOT GTEST_FOUND)
         #include(UseGtest) # fetch gtest


Fix broken (crashing) command line client on Ubuntu Precise

libreadline already goes with libhistory compiled in,
no reason to add it to the dynamically linked library
list.
Apparently, explicitly listing libhistory leads to
the dl loader pre-loading it instead of the compiled-in
version, which, in turn, leads to a crash on the first
history search in the command line client.

The fix is to remove cmake dependency on libhistory
as well as on libncurses, which we don't need either
(always require libtermcap).

--- cmake/FindReadline.cmake
+++ cmake/FindReadline.cmake
@@ -5,26 +5,21 @@
 # READLINE_INCLUDE_DIR
 # READLINE_LIBRARIES
 #
-include(FindCurses)
 include(FindTermcap)

-FIND_LIBRARY(READLINE_HISTORY_LIBRARY NAMES history)
 FIND_LIBRARY(READLINE_READLINE_LIBRARY NAMES readline)
 FIND_PATH(READLINE_INCLUDE_DIR readline/readline.h)
 SET(READLINE_FOUND FALSE)

-IF (READLINE_HISTORY_LIBRARY AND READLINE_READLINE_LIBRARY AND READLINE_INCLUDE_DIR)
+IF (READLINE_READLINE_LIBRARY AND READLINE_INCLUDE_DIR)
 	SET (READLINE_FOUND TRUE)
 	SET (READLINE_INCLUDE_DIR ${READLINE_INCLUDE_DIR})
-	SET (READLINE_LIBRARIES ${READLINE_HISTORY_LIBRARY} ${READLINE_READLINE_LIBRARY})
-	MESSAGE(STATUS "Found GNU readline: ${READLINE_HISTORY_LIBRARY}, ${READLINE_READLINE_LIBRARY}")
-	IF (CURSES_FOUND)
-		SET (READLINE_LIBRARIES ${READLINE_LIBRARIES} ${CURSES_LIBRARY})
-	ENDIF(CURSES_FOUND)
+	SET (READLINE_LIBRARIES ${READLINE_READLINE_LIBRARY})
+	MESSAGE(STATUS "Found GNU readline: ${READLINE_READLINE_LIBRARY}")
 	IF (TERMCAP_FOUND)
 		SET (READLINE_LIBRARIES ${READLINE_LIBRARIES} ${TERMCAP_LIBRARY})
 	ENDIF (TERMCAP_FOUND)
-ENDIF (READLINE_HISTORY_LIBRARY AND READLINE_READLINE_LIBRARY AND READLINE_INCLUDE_DIR)
+ENDIF (READLINE_READLINE_LIBRARY AND READLINE_INCLUDE_DIR)

 MARK_AS_ADVANCED(
 	READLINE_FOUND


Find default build location for Compute Library binaries.

In common cases this reduces the cmake arguments needed
for Compute Library from:
"cmake -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMCOMPUTE_ROOT=../ComputeLibrary -DARMCOMPUTE_BUILD_DIR=ARMCOMPUTE_BUILD_DIR=../ComputeLibrary/build -DSHARED_BOOST=1 ../armnn/"
to:
"cmake -DARMCOMPUTENEON=1 -DARMCOMPUTECL=1 -DARMCOMPUTE_ROOT=../ComputeLibrary -DSHARED_BOOST=1 ../armnn/"

Signed-off-by: Matthew Bentham <286076deec2404ae356dd8bc92f2f71e81044bd4@arm.com>
Change-Id: I992f4ef428f10dc92ca9457fe8981ae3af93f538

--- cmake/GlobalConfig.cmake
+++ cmake/GlobalConfig.cmake
@@ -238,6 +238,11 @@
         # We link to the static variant so that customers don't need to find and build a compatible version of clframework.
         # First try the folders specified ARMCOMPUTE_BUILD_DIR (with PATH_SUFFIXES for
         # Windows builds)
+        if ((NOT DEFINED ARMCOMPUTE_BUILD_DIR) AND (DEFINED ARMCOMPUTE_ROOT))
+            # Default build directory for ComputeLibrary is under the root
+            set(ARMCOMPUTE_BUILD_DIR ${ARMCOMPUTE_ROOT}/build)
+        endif()
+
         find_library(ARMCOMPUTE_LIBRARY_DEBUG NAMES arm_compute-static
                      PATHS ${ARMCOMPUTE_BUILD_DIR}
                      PATH_SUFFIXES "Debug"


Need to cache result of AVX2 detection

Need to cache result of AVX2 detection

--- cmake/build_embree.cmake
+++ cmake/build_embree.cmake
@@ -19,6 +19,8 @@
 CONFIGURE_OSPRAY()

 # check whether gcc is new enough for AVX2
+SET(OSPRAY_COMPILER_SUPPORTS_AVX2 TRUE CACHE BOOL "")
+MARK_AS_ADVANCED(OSPRAY_COMPILER_SUPPORTS_AVX2)
 IF (OSPRAY_ISA_AVX2 AND OSPRAY_COMPILER STREQUAL "GCC")
   SET(GCC_VERSION_REQUIRED "4.7.0")

@@ -35,19 +37,14 @@

     IF (GCC_VERSION VERSION_LESS GCC_VERSION_REQUIRED)
       MESSAGE("Warning: Need at least version ${GCC_VERSION_REQUIRED} of gcc for AVX2. Disabling AVX2.\nTo compile for AVX2, please switch to either 'ICC'-compiler, or upgrade your gcc version.")
-      SET(COMPILER_SUPPORTS_AVX2 false)
-    ELSE()
-      SET(COMPILER_SUPPORTS_AVX2 true)
+      SET(OSPRAY_COMPILER_SUPPORTS_AVX2 FALSE CACHE BOOL "GCC too old for AVX2" FORCE)
     ENDIF()

     SET(GCC_VERSION ${GCC_VERSION} CACHE STRING "GCC Version")
     MARK_AS_ADVANCED(GCC_VERSION)
     MARK_AS_ADVANCED(GCC_EXECUTABLE)
   ENDIF()
-ELSE() # assume clang and icc support AVX2
-  SET(COMPILER_SUPPORTS_AVX2 true)
 ENDIF()
-

 # remove OSPRAY_ARCH_* flags from CMAKE_CXX_FLAGS; the Embree build will add these as appropriate for the various ISAs.
 #string(REPLACE "${OSPRAY_ARCH_${OSPRAY_XEON_TARGET}}" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
@@ -370,7 +367,7 @@
     bvh8/bvh8_intersector8_chunk.cpp
     bvh8/bvh8_intersector8_hybrid.cpp
     )
-  IF (OSPRAY_ISA_AVX2 AND COMPILER_SUPPORTS_AVX2)
+  IF (OSPRAY_ISA_AVX2 AND OSPRAY_COMPILER_SUPPORTS_AVX2)
     ADD_DEFINITIONS(-D__TARGET_AVX2__)
     SET(OSPRAY_EMBREE_AVX2_SOURCES "")
     FOREACH(src ${EMBREE_KERNELS_AVX2_SOURCES})


[cmake ]Fix misleading message in addExternalFolder

--- cmake/externalFunc.cmake
+++ cmake/externalFunc.cmake
@@ -92,7 +92,7 @@
         OPTION( RADIUM_SKIP_${NAME_UPPER}_EXTERNAL "[addExternalFolder] Skip updating ${NAME}::external (disable for rebuild)" ON)

     else()
-        message("[addExternalFolder] Skip ${NAME}::external update (use RADIUM_UPDATE_EXTERNAL_${NAME} to change behavior)")
+        message("[addExternalFolder] Skip ${NAME}::external update (use RADIUM_SKIP_${NAME_UPPER}_EXTERNAL to change behavior)")
     endif()

     #This dummy target add external/CMakeLists.txt to most IDEs


correct ordering in files.cmake

correct ordering in files.cmake

--- Modules/SurfaceInterpolation/files.cmake
+++ Modules/SurfaceInterpolation/files.cmake
@@ -1,7 +1,7 @@
 set(CPP_FILES
   mitkComputeContourSetNormalsFilter.cpp
   mitkCreateDistanceImageFromSurfaceFilter.cpp
+  mitkPointCloudScoringFilter.cpp
   mitkReduceContourSetFilter.cpp
   mitkSurfaceInterpolationController.cpp
-  mitkPointCloudScoringFilter.cpp
 )


Added hardcoded target type for windows.

MicrosoftCXXMangler does not support yet mangling extended vector types.

--- cmake/LLVM.cmake
+++ cmake/LLVM.cmake
@@ -106,6 +106,14 @@
 # more reasonable and reliable than llvm's own host flags
 string(REPLACE "arm-" "${CMAKE_HOST_SYSTEM_PROCESSOR}-" LLVM_HOST_TARGET "${LLVM_HOST_TARGET}")

+# In windows llvm-config reports --target=x86_64-pc-windows-msvc
+# however this causes clang to use MicrosoftCXXMangler, which does not
+# yet support mangling for extended vector types (with llvm 3.5)
+# so for now hardcode LLVM_HOST_TARGET to be x86_64-pc with windows
+if(WIN32)
+  set(LLVM_HOST_TARGET "x86_64-pc")
+endif(WIN32)
+
 # required for sources..
 if(LLVM_VERSION MATCHES "3[.]([0-9]+)")
   string(STRIP "${CMAKE_MATCH_1}" LLVM_MINOR)


Expose a new cmake variable FIPS_PROJECT_DEPLOY_DIR.

This points to the subdirectory of fips-deploy where the
build output executables are written to.

--- cmake/fips.cmake
+++ cmake/fips.cmake
@@ -136,6 +136,8 @@
         fips_choose_config()
     endif()
     message("FIPS_CONFIG: ${FIPS_CONFIG}")
+    get_filename_component(FIPS_PROJECT_DEPLOY_DIR "${FIPS_DEPLOY_DIR}/${CMAKE_PROJECT_NAME}/${FIPS_CONFIG}" ABSOLUTE)
+    message("FIPS_PROJECT_DEPLOY_DIR: ${FIPS_PROJECT_DEPLOY_DIR}")

     # Eclipse: Disable linked resources because Eclipse may get confused by these linked resources
     if (${CMAKE_GENERATOR} MATCHES "Eclipse CDT4")


Removed pods.cmake

Removed pods.cmake

--- cmake/pods.cmake
+++ cmake/pods.cmake
@@ -1,363 +0,0 @@
-# Macros to simplify compliance with the pods build policies.
-#
-# To enable the macros, add the following lines to CMakeLists.txt:
-#   set(POD_NAME <pod-name>)
-#   include(cmake/pods.cmake)
-#
-# If POD_NAME is not set, then the CMake source directory is used as POD_NAME
-#
-# Next, any of the following macros can be used.  See the individual macro
-# definitions in this file for individual documentation.
-#
-# C/C++
-#   pods_install_headers(...)
-#   pods_install_libraries(...)
-#   pods_install_executables(...)
-#   pods_install_pkg_config_file(...)
-#
-#   pods_use_pkg_config_packages(...)
-#
-# Python
-#   pods_install_python_packages(...)
-#   pods_install_python_script(...)
-#
-# Java
-#   None yet
-#
-# ----
-# File: pods.cmake
-# Distributed with pods version: 11.03.11
-
-# pods_install_headers(<header1.h> ... DESTINATION <subdir_name>)
-#
-# Install a (list) of header files.
-#
-# Header files will all be installed to include/<subdir_name>
-#
-# example:
-#   add_library(perception detector.h sensor.h)
-#   pods_install_headers(detector.h sensor.h DESTINATION perception)
-#
-function(pods_install_headers)
-    list(GET ARGV -2 checkword)
-    if(NOT checkword STREQUAL DESTINATION)
-        message(FATAL_ERROR "pods_install_headers missing DESTINATION parameter")
-    endif()
-
-    list(GET ARGV -1 dest_dir)
-    list(REMOVE_AT ARGV -1)
-    list(REMOVE_AT ARGV -1)
-    #copy the headers to the INCLUDE_OUTPUT_PATH (${CMAKE_BINARY_DIR}/include)
-    foreach(header ${ARGV})
-        get_filename_component(_header_name ${header} NAME)
-        configure_file(${header} ${INCLUDE_OUTPUT_PATH}/${dest_dir}/${_header_name} COPYONLY)
-	endforeach(header)
-	#mark them to be installed
-	install(FILES ${ARGV} DESTINATION include/${dest_dir})
-
-
-endfunction(pods_install_headers)
-
-# pods_install_executables(<executable1> ...)
-#
-# Install a (list) of executables to bin/
-function(pods_install_executables)
-    install(TARGETS ${ARGV} RUNTIME DESTINATION bin)
-endfunction(pods_install_executables)
-
-# pods_install_libraries(<library1> ...)
-#
-# Install a (list) of libraries to lib/
-function(pods_install_libraries)
-    install(TARGETS ${ARGV} LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
-endfunction(pods_install_libraries)
-
-
-# pods_install_pkg_config_file(<package-name>
-#                              [VERSION <version>]
-#                              [DESCRIPTION <description>]
-#                              [CFLAGS <cflag> ...]
-#                              [LIBS <lflag> ...]
-#                              [REQUIRES <required-package-name> ...])
-#
-# Create and install a pkg-config .pc file.
-#
-# example:
-#    add_library(mylib mylib.c)
-#    pods_install_pkg_config_file(mylib LIBS -lmylib REQUIRES glib-2.0)
-function(pods_install_pkg_config_file)
-    list(GET ARGV 0 pc_name)
-    # TODO error check
-
-    set(pc_version 0.0.1)
-    set(pc_description ${pc_name})
-    set(pc_requires "")
-    set(pc_libs "")
-    set(pc_cflags "")
-    set(pc_fname "${PKG_CONFIG_OUTPUT_PATH}/${pc_name}.pc")
-
-    set(modewords LIBS CFLAGS REQUIRES VERSION DESCRIPTION)
-    set(curmode "")
-
-    # parse function arguments and populate pkg-config parameters
-    list(REMOVE_AT ARGV 0)
-    foreach(word ${ARGV})
-        list(FIND modewords ${word} mode_index)
-        if(${mode_index} GREATER -1)
-            set(curmode ${word})
-        elseif(curmode STREQUAL LIBS)
-            set(pc_libs "${pc_libs} ${word}")
-        elseif(curmode STREQUAL CFLAGS)
-            set(pc_cflags "${pc_cflags} ${word}")
-        elseif(curmode STREQUAL REQUIRES)
-            set(pc_requires "${pc_requires} ${word}")
-        elseif(curmode STREQUAL VERSION)
-            set(pc_version ${word})
-            set(curmode "")
-        elseif(curmode STREQUAL DESCRIPTION)
-            set(pc_description "${word}")
-            set(curmode "")
-        else(${mode_index} GREATER -1)
-            message("WARNING incorrect use of pods_add_pkg_config (${word})")
-            break()
-        endif(${mode_index} GREATER -1)
-    endforeach(word)
-
-    # write the .pc file out
-    file(WRITE ${pc_fname}
-        "prefix=${CMAKE_INSTALL_PREFIX}\n"
-        "exec_prefix=\${prefix}\n"
-        "libdir=\${exec_prefix}/lib\n"
-        "includedir=\${prefix}/include\n"
-        "\n"
-        "Name: ${pc_name}\n"
-        "Description: ${pc_description}\n"
-        "Requires: ${pc_requires}\n"
-        "Version: ${pc_version}\n"
-        "Libs: -L\${libdir} ${pc_libs}\n"
-        "Cflags: -I\${includedir} ${pc_cflags}\n")
-
-    # mark the .pc file for installation to the lib/pkgconfig directory
-    install(FILES ${pc_fname} DESTINATION lib/pkgconfig)
-
-    # find targets that this pkg-config file depends on
-    if (pc_libs)
-        string(REPLACE " " ";" split_lib ${pc_libs})
-        foreach(lib ${split_lib})
-            string(REGEX REPLACE "^-l" "" libname ${lib})
-            get_target_property(IS_TARGET ${libname} LOCATION)
-            if (NOT IS_TARGET STREQUAL "IS_TARGET-NOTFOUND")
-                set_property(GLOBAL APPEND PROPERTY "PODS_PKG_CONFIG_TARGETS-${pc_name}" ${libname})
-            endif()
-        endforeach()
-    endif()
-
-endfunction(pods_install_pkg_config_file)
-
-
-# pods_install_python_script(<script_name> <python_module>)
-#
-# Create and install a script that invokes the python interpreter with a
-# specified module.
-#
-# A script will be installed to bin/<script_name>.  The script simply
-# adds <install-prefix>/lib/pythonX.Y/site-packages to the python path, and
-# then invokes `python -m <python_module>`.
-#
-# example:
-#    pods_install_python_script(run-pdb pdb)
-function(pods_install_python_script script_name py_module)
-    find_package(PythonInterp REQUIRED)
-
-    # which python version?
-    execute_process(COMMAND
-        ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write(sys.version[:3])"
-        OUTPUT_VARIABLE pyversion)
-
-    # where do we install .py files to?
-    set(python_install_dir
-        ${CMAKE_INSTALL_PREFIX}/lib/python${pyversion}/site-packages)
-
-    # write the script file
-    file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/${script_name} "#!/bin/sh\n"
-        "export PYTHONPATH=${python_install_dir}:\${PYTHONPATH}\n"
-        "exec ${PYTHON_EXECUTABLE} -m ${py_module} $*\n")
-
-    # install it...
-    install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/${script_name} DESTINATION bin)
-endfunction()
-
-# pods_install_python_packages(<src_dir>)
-#
-# Install python packages to lib/pythonX.Y/site-packages, where X.Y refers to
-# the current python version (e.g., 2.6)
-#
-# Recursively searches <src_dir> for .py files, byte-compiles them, and
-# installs them
-function(pods_install_python_packages py_src_dir)
-    find_package(PythonInterp REQUIRED)
-
-    # which python version?
-    execute_process(COMMAND
-        ${PYTHON_EXECUTABLE} -c "import sys; sys.stdout.write(sys.version[:3])"
-        OUTPUT_VARIABLE pyversion)
-
-    # where do we install .py files to?
-    set(python_install_dir
-        ${CMAKE_INSTALL_PREFIX}/lib/python${pyversion}/site-packages)
-
-    if(ARGC GREATER 1)
-        message(FATAL_ERROR "NYI")
-    else()
-        # get a list of all .py files
-        file(GLOB_RECURSE py_files RELATIVE ${py_src_dir} ${py_src_dir}/*.py)
-
-        # add rules for byte-compiling .py --> .pyc
-        foreach(py_file ${py_files})
-            get_filename_component(py_dirname ${py_file} PATH)
-            add_custom_command(OUTPUT "${py_src_dir}/${py_file}c"
-                COMMAND ${PYTHON_EXECUTABLE} -m py_compile ${py_src_dir}/${py_file}
-                DEPENDS ${py_src_dir}/${py_file})
-            list(APPEND pyc_files "${py_src_dir}/${py_file}c")
-
-            # install python file and byte-compiled file
-            install(FILES ${py_src_dir}/${py_file} ${py_src_dir}/${py_file}c
-                DESTINATION "${python_install_dir}/${py_dirname}")
-#            message("${py_src_dir}/${py_file} -> ${python_install_dir}/${py_dirname}")
-        endforeach()
-        string(REGEX REPLACE "[^a-zA-Z0-9]" "_" san_src_dir "${py_src_dir}")
-        add_custom_target("pyc_${san_src_dir}" ALL DEPENDS ${pyc_files})
-    endif()
-endfunction()
-
-
-# pods_use_pkg_config_packages(<target> <package-name> ...)
-#
-# Convenience macro to get compiler and linker flags from pkg-config and apply them
-# to the specified target.
-#
-# Invokes `pkg-config --cflags-only-I <package-name> ...` and adds the result to the
-# include directories.
-#
-# Additionally, invokes `pkg-config --libs <package-name> ...` and adds the result to
-# the target's link flags (via target_link_libraries)
-#
-# example:
-#   add_executable(myprogram main.c)
-#   pods_use_pkg_config_packages(myprogram glib-2.0 opencv)
-macro(pods_use_pkg_config_packages target)
-    if(${ARGC} LESS 2)
-        message(WARNING "Useless invocation of pods_use_pkg_config_packages")
-        return()
-    endif()
-    find_package(PkgConfig REQUIRED)
-    execute_process(COMMAND
-        ${PKG_CONFIG_EXECUTABLE} --cflags-only-I ${ARGN}
-        OUTPUT_VARIABLE _pods_pkg_include_flags)
-    string(STRIP ${_pods_pkg_include_flags} _pods_pkg_include_flags)
-    string(REPLACE "-I" "" _pods_pkg_include_flags "${_pods_pkg_include_flags}")
-	separate_arguments(_pods_pkg_include_flags)
-    #    message("include: ${_pods_pkg_include_flags}")
-    execute_process(COMMAND
-        ${PKG_CONFIG_EXECUTABLE} --libs ${ARGN}
-        OUTPUT_VARIABLE _pods_pkg_ldflags)
-    string(STRIP ${_pods_pkg_ldflags} _pods_pkg_ldflags)
-    #    message("ldflags: ${_pods_pkg_ldflags}")
-    include_directories(${_pods_pkg_include_flags})
-    target_link_libraries(${target} ${_pods_pkg_ldflags})
-
-    # make the target depend on libraries being installed by this source build
-    foreach(_pkg ${ARGN})
-        get_property(_has_dependencies GLOBAL PROPERTY "PODS_PKG_CONFIG_TARGETS-${_pkg}" SET)
-        if(_has_dependencies)
-            get_property(_dependencies GLOBAL PROPERTY "PODS_PKG_CONFIG_TARGETS-${_pkg}")
-            add_dependencies(${target} ${_dependencies})
-            #            message("Found dependencies for ${_pkg}: ${dependencies}")
-        endif()
-        unset(_has_dependencies)
-        unset(_dependencies)
-    endforeach()
-
-    unset(_pods_pkg_include_flags)
-    unset(_pods_pkg_ldflags)
-endmacro()
-
-
-# pods_config_search_paths()
-#
-# Setup include, linker, and pkg-config paths according to the pods core
-# policy.  This macro is automatically invoked, there is no need to do so
-# manually.
-macro(pods_config_search_paths)
-    if(NOT DEFINED __pods_setup)
-		#set where files should be output locally
-	    set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib)
-	    set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
-	    set(INCLUDE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/include)
-	    set(PKG_CONFIG_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib/pkgconfig)
-
-		#set where files should be installed to
-	    set(LIBRARY_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/lib)
-	    set(EXECUTABLE_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/bin)
-	    set(INCLUDE_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/include)
-	    set(PKG_CONFIG_INSTALL_PATH ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
-
-
-        # add build/lib/pkgconfig to the pkg-config search path
-        set(ENV{PKG_CONFIG_PATH} ${PKG_CONFIG_INSTALL_PATH}:$ENV{PKG_CONFIG_PATH})
-        set(ENV{PKG_CONFIG_PATH} ${PKG_CONFIG_OUTPUT_PATH}:$ENV{PKG_CONFIG_PATH})
-
-        # add build/include to the compiler include path
-        include_directories(BEFORE ${INCLUDE_OUTPUT_PATH})
-        include_directories(${INCLUDE_INSTALL_PATH})
-
-        # add build/lib to the link path
-        link_directories(${LIBRARY_OUTPUT_PATH})
-        link_directories(${LIBRARY_INSTALL_PATH})
-
-
-        # abuse RPATH
-        if(${CMAKE_INSTALL_RPATH})
-            set(CMAKE_INSTALL_RPATH ${LIBRARY_INSTALL_PATH}:${CMAKE_INSTALL_RPATH})
-        else(${CMAKE_INSTALL_RPATH})
-            set(CMAKE_INSTALL_RPATH ${LIBRARY_INSTALL_PATH})
-        endif(${CMAKE_INSTALL_RPATH})
-
-        # for osx, which uses "install name" path rather than rpath
-        #set(CMAKE_INSTALL_NAME_DIR ${LIBRARY_OUTPUT_PATH})
-        set(CMAKE_INSTALL_NAME_DIR ${CMAKE_INSTALL_RPATH})
-
-        # hack to force cmake always create install and clean targets
-        install(FILES DESTINATION)
-        add_custom_target(tmp)
-
-        set(__pods_setup true)
-    endif(NOT DEFINED __pods_setup)
-endmacro(pods_config_search_paths)
-
-macro(enforce_out_of_source)
-    if(CMAKE_BINARY_DIR STREQUAL PROJECT_SOURCE_DIR)
-      message(FATAL_ERROR
-      "\n
-      Do not run cmake directly in the pod directory.
-      use the supplied Makefile instead!  You now need to
-      remove CMakeCache.txt and the CMakeFiles directory.
-
-      Then to build, simply type:
-       $ make
-      ")
-    endif()
-endmacro(enforce_out_of_source)
-
-#set the variable POD_NAME to the directory path, and set the cmake PROJECT_NAME
-if(NOT POD_NAME)
-    get_filename_component(POD_NAME ${CMAKE_SOURCE_DIR} NAME)
-    message(STATUS "POD_NAME is not set... Defaulting to directory name: ${POD_NAME}")
-endif(NOT POD_NAME)
-project(${POD_NAME})
-
-#make sure we're running an out-of-source build
-enforce_out_of_source()
-
-#call the function to setup paths
-pods_config_search_paths()


Use multi-threaded dll for windows runtime library

Former use of static libraries was causing linking errors with VS 2017

--- cmake/CompileFlags.cmake
+++ cmake/CompileFlags.cmake
@@ -87,7 +87,7 @@

     set(CMAKE_CXX_FLAGS                "/arch:AVX2 /MP /wd4251 /EHsc /bigobj ${CMAKE_CXX_FLAGS}")
     set(CMAKE_CXX_FLAGS_DEBUG          "/D_DEBUG /DCORE_DEBUG /Od /Zi ${CMAKE_CXX_FLAGS_DEBUG} /MDd")
-    set(CMAKE_CXX_FLAGS_RELEASE        "/DNDEBUG /Ox /fp:fast ${CMAKE_CXX_FLAGS_RELEASE} /MT")
+    set(CMAKE_CXX_FLAGS_RELEASE        "/DNDEBUG /Ox /fp:fast ${CMAKE_CXX_FLAGS_RELEASE} /MD")
     set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Zi ${CMAKE_CXX_FLAGS_RELEASE}")
     set(CMAKE_SHARED_LINKER_FLAGS      "/LTCG ${CMAKE_SHARED_LINKER_FLAGS}")


add linker flag on windows

add linker flag on windows

--- cmake/CompileFlags.cmake
+++ cmake/CompileFlags.cmake
@@ -93,6 +93,7 @@
     set(CMAKE_CXX_FLAGS_DEBUG          "/D_DEBUG /DCORE_DEBUG /Od /Zi ${CMAKE_CXX_FLAGS_DEBUG} /MDd")
     set(CMAKE_CXX_FLAGS_RELEASE        "/DNDEBUG /Ox /fp:fast ${CMAKE_CXX_FLAGS_RELEASE} /MT")
     set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "/Zi ${CMAKE_CXX_FLAGS_RELEASE}")
+	set(CMAKE_SHARED_LINKER_FLAGS      "/LTCG ${CMAKE_SHARED_LINKER_FLAGS}")

     # Problem with Qt linking
     # FIXME(Charly): Not sure if this should be done on Linux


Another cmake fix.

Another cmake fix.

--- cmake/FindQuadmath.cmake
+++ cmake/FindQuadmath.cmake
@@ -30,6 +30,7 @@

 include(FindPackageHandleStandardArgs)
 include(CMakePushCheckState)
+include(CheckCXXSourceCompiles)

 if(Quadmath_INCLUDE_DIR AND Quadmath_LIBRARY)
 	# Already in cache, be silent


Cmake: Additional comments for about finding Qt6 plugins

--- cmake/installutils.cmake
+++ cmake/installutils.cmake
@@ -248,9 +248,14 @@
                     # Plugins are not stored in QtYXXX_PLUGINS anymore.
                     # The QT_PLUGINS property could have been used, but it is
                     # only set for non-imported targets (static builds, see qt_internal_add_plugin).
-
-                    # This workaround instead finds the plugin types registered with the Qt module
-                    # and installs all plugins of those types.
+                    # See https://github.com/qt/qtbase/blob/9db7cc79a26ced4997277b5c206ca15949133240/cmake/QtProperties.cmake
+                    # Also tried to use QT_KNOWN_PLUGINS, but it was empty.
+                    # In case the plugins could have beem retrieved, it would have been
+                    # possible to use the QT_MODULE plugin target property
+                    # to find out which Qt module it is associated with...
+
+                    # The workaround below instead finds the plugin types registered
+                    # with the Qt module and installs all plugins of those types.
                     # The workaround may thus copy redundant plugins.

                     # Extract XXX from QtYXXX
@@ -259,6 +264,12 @@
                     get_target_property(target_type Qt${QT_VERSION_MAJOR}::${qt_module} TYPE)

                     if(NOT target_type STREQUAL "INTERFACE_LIBRARY")
+                        # MODULE_PLUGIN_TYPES are for example "accessiblebridge;platforms;imageformats;"
+                        # The plugin types are often named according to the folder in which
+                        # the libraries are stored. So, we install all files in those folders.
+                        #
+                        # It is set in qt_internal_add_module
+                        # https://github.com/qt/qtbase/blob/7e11ddc930f51dcfee031b92fb944bd1d4511d81/cmake/QtModuleHelpers.cmake
                         get_target_property(plugin_types
                                             Qt${QT_VERSION_MAJOR}::${qt_module} MODULE_PLUGIN_TYPES)
                         if(plugin_types)


added rostime to target_link_libraries

added rostime to target_link_libraries

git-svn-id: e7ea667a1d39a4453c4efcc4ba7bca3d620c3f19@3710 a9d63959-f2ad-4865-b262-bf0e56cfafb6

--- cmake/pcl_find_ros.cmake
+++ cmake/pcl_find_ros.cmake
@@ -3,7 +3,7 @@

 macro(link_ros_libs _target)
     if(USE_ROS)
-        target_link_libraries(${_target} sensor_msgs roscpp_serialization rosconsole)
+        target_link_libraries(${_target} sensor_msgs roscpp_serialization rosconsole rostime)
     endif(USE_ROS)
 endmacro(link_ros_libs)


py/mkrules.cmake: Add MICROPY_QSTRDEFS_PORT to qstr build process.

This allows a port to specify a custom qstrdefsport.h file, the same as the
QSTR_DEFS variable in a Makefile.

Signed-off-by: Damien George <99e6b749acbfbe2a596df99e91d24d6e1fdbee00@micropython.org>

--- py/mkrules.cmake
+++ py/mkrules.cmake
@@ -95,8 +95,10 @@

 add_custom_command(
     OUTPUT ${MICROPY_QSTRDEFS_PREPROCESSED}
-    COMMAND cat ${MICROPY_QSTRDEFS_PY} ${MICROPY_QSTRDEFS_COLLECTED} | sed "s/^Q(.*)/\"&\"/" | ${CMAKE_C_COMPILER} -E ${MICROPY_CPP_FLAGS} - | sed "s/^\\\"\\(Q(.*)\\)\\\"/\\1/" > ${MICROPY_QSTRDEFS_PREPROCESSED}
-    DEPENDS ${MICROPY_QSTRDEFS_COLLECTED}
+    COMMAND cat ${MICROPY_QSTRDEFS_PY} ${MICROPY_QSTRDEFS_PORT} ${MICROPY_QSTRDEFS_COLLECTED} | sed "s/^Q(.*)/\"&\"/" | ${CMAKE_C_COMPILER} -E ${MICROPY_CPP_FLAGS} - | sed "s/^\\\"\\(Q(.*)\\)\\\"/\\1/" > ${MICROPY_QSTRDEFS_PREPROCESSED}
+    DEPENDS ${MICROPY_QSTRDEFS_PY}
+        ${MICROPY_QSTRDEFS_PORT}
+        ${MICROPY_QSTRDEFS_COLLECTED}
     VERBATIM
     COMMAND_EXPAND_LISTS
 )


trying to fix cyclus module macros

trying to fix cyclus module macros

--- CMake/CyclusModuleMacros.cmake
+++ CMake/CyclusModuleMacros.cmake
@@ -2,9 +2,40 @@

   SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY
     ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}${_path})
+
+  IF(NOT DEFINED CYCPP)
+    SET(CYCPP "${CYCLUS_CORE_INCLUDE_DIRS}/../cycpp.py")
+  ENDIF(NOT DEFINED CYCPP)

+  SET(BUILD_DIR ${PROJECT_BINARY_DIR}/${_dir})
+  FILE(MAKE_DIRECTORY ${BUILD_DIR})
+
+  GET_PROPERTY(DIRS DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
+  #SET(INCL_ARG "")
+  SET(INCL_ARG "$ENV{C_INCLUDE_PATH}")
+  FOREACH(DIR ${DIRS})
+    SET(INCL_ARG "${INCL_ARG}:${DIR}")
+  ENDFOREACH(DIR ${DIRS})
+  # SET(INCL_ARG "-I=\"${INCL_ARG}\"")
+  SET(ENV{C_INCLUDE_PATH} ${INCL_ARG})
+  MESSAGE("C_INCLUDE_PATH: $ENV{C_INCLUDE_PATH}")
+  #SET(INCL_ARG "-I=\"${DIRS}\"")
+  #MESSAGE("INCL ARG: ${INCL_ARG}")
+
+  SET(HIN "${CMAKE_CURRENT_SOURCE_DIR}/${_name}.h")
+  SET(HOUT "-o=${BUILD_DIR}/${_name}.h")
+  IF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_name}.h")
+    EXECUTE_PROCESS(COMMAND ${CYCPP} ${HIN} ${HOUT})# ${INCL_ARG})
+    MESSAGE("Executing ${CYCPP} ${HIN} ${HOUT}")# ${INCL_ARG}")
+  ENDIF(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${_name}.h")
+
+  SET(CCIN "${CMAKE_CURRENT_SOURCE_DIR}/${_name}.cc")
+  SET(CCOUT "-o=${BUILD_DIR}/${_name}.cc")
+  MESSAGE("Executing ${CYCPP} ${CCIN} ${CCOUT}")# ${INCL_ARG}")
+  EXECUTE_PROCESS(COMMAND ${CYCPP} ${CCIN} ${CCOUT}) # ${INCL_ARG})
+
   # Build the cyclus executable from the CYCLUS_SRC source files
-  ADD_LIBRARY( ${_dir}       ${_name}.cc )
+  ADD_LIBRARY( ${_dir} ${BUILD_DIR}/${_name}.cc )
   # Link the libraries to libcycluscore
   TARGET_LINK_LIBRARIES(${_dir} dl cycluscore)
   SET(CYCLUS_LIBRARIES ${CYCLUS_LIBRARIES} ${_dir} )


CMake: Fix race condition in web builds which resulted in js errors. This probably interferes with accuracy of progress bar, but is definitely better than not loading at all.

--- CMake/Modules/UrhoCommon.cmake
+++ CMake/Modules/UrhoCommon.cmake
@@ -570,7 +570,7 @@
     if (NOT WEB)
         return ()
     endif ()
-    file (WRITE "${CMAKE_CURRENT_BINARY_DIR}/${RESOURCES}.load.js" "var Module;if(typeof Module==='undefined')Module=eval('(function(){try{return Module||{}}catch(e){return{}}})()');var s=document.createElement('script');s.src='${RESOURCES}';document.body.appendChild(s);Module['preRun'].push(function(){Module['addRunDependency']('${RESOURCES}.loader')});s.onload=function(){Module['removeRunDependency']('${RESOURCES}.loader')};")
+    file (WRITE "${CMAKE_CURRENT_BINARY_DIR}/${RESOURCES}.load.js" "var Module;if(typeof Module==='undefined')Module=eval('(function(){try{return Module||{}}catch(e){return{}}})()');var s=document.createElement('script');s.src='${RESOURCES}';document.body.appendChild(s);Module['preRun'].push(function(){Module['addRunDependency']('${RESOURCES}.loader')});s.onload=function(){if (Module.finishedDataFileDownloads < Module.expectedDataFileDownloads) setTimeout(s.onload, 100); else Module['removeRunDependency']('${RESOURCES}.loader')};")
     target_link_libraries(${TARGET} PRIVATE "--pre-js ${CMAKE_CURRENT_BINARY_DIR}/${RESOURCES}.load.js")
     add_dependencies(${TARGET} ${RESOURCES})
 endfunction ()


From Torben Dannahuer, "modified findcollada.cmake which can now detect Boost 1.55 libraries, which are used by Collada in my 3rdParty package"

--- CMakeModules/FindCOLLADA.cmake
+++ CMakeModules/FindCOLLADA.cmake
@@ -242,7 +242,7 @@
     )

     FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY
-        NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BUILDNAME}0-mt libboost_filesystem-${COLLADA_BUILDNAME}0-mt-1_54
+        NAMES libboost_filesystem boost_filesystem boost_filesystem-mt libboost_filesystem-${COLLADA_BUILDNAME}0-mt libboost_filesystem-${COLLADA_BUILDNAME}0-mt-1_54 libboost_filesystem-${COLLADA_BUILDNAME}0-mt-1_55
         PATHS
         ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
         ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
@@ -250,7 +250,7 @@
     )

     FIND_LIBRARY(COLLADA_BOOST_FILESYSTEM_LIBRARY_DEBUG
-        NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BUILDNAME}0-mt-gd libboost_filesystem-${COLLADA_BUILDNAME}0-mt-gd-1_54
+        NAMES libboost_filesystem-d boost_filesystem-d boost_filesystem-mt-d libboost_filesystem-${COLLADA_BUILDNAME}0-mt-gd libboost_filesystem-${COLLADA_BUILDNAME}0-mt-gd-1_54 libboost_filesystem-${COLLADA_BUILDNAME}0-mt-gd-1_55
         PATHS
         ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
         ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
@@ -258,7 +258,7 @@
     )

     FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY
-        NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BUILDNAME}0-mt libboost_system-${COLLADA_BUILDNAME}0-mt-1_54
+        NAMES libboost_system boost_system boost_system-mt libboost_system-${COLLADA_BUILDNAME}0-mt libboost_system-${COLLADA_BUILDNAME}0-mt-1_54 libboost_system-${COLLADA_BUILDNAME}0-mt-1_55
         PATHS
         ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
         ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw
@@ -266,7 +266,7 @@
     )

     FIND_LIBRARY(COLLADA_BOOST_SYSTEM_LIBRARY_DEBUG
-        NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BUILDNAME}0-mt-gd libboost_system-${COLLADA_BUILDNAME}0-mt-gd-1_54
+        NAMES libboost_system-d boost_system-d boost_system-mt-d libboost_system-${COLLADA_BUILDNAME}0-mt-gd libboost_system-${COLLADA_BUILDNAME}0-mt-gd-1_54 libboost_system-${COLLADA_BUILDNAME}0-mt-gd-1_55
         PATHS
         ${COLLADA_DOM_ROOT}/external-libs/boost/lib/${COLLADA_BUILDNAME}
         ${COLLADA_DOM_ROOT}/external-libs/boost/lib/mingw


silence noisy messages

silence noisy messages

--- compcmake/joedbc.cmake
+++ compcmake/joedbc.cmake
@@ -66,7 +66,6 @@
  add_dependencies(${target} all_joedbc)
  target_include_directories(${target} PUBLIC ${JOEDB_DIR}/../src)
  get_target_property(target_type ${target} TYPE)
- message("-- ${target}: ${target_type}")

  if (NOT "${target_type}" STREQUAL "OBJECT_LIBRARY")
   target_link_libraries(${target} ${JOEDB_LIB})


update

update

--- modules/HdrHistogram.cmake
+++ modules/HdrHistogram.cmake
@@ -3,7 +3,7 @@
   # Module library
   file(GLOB SOURCE_FILES "HdrHistogram/src/*.c")
   if(NOT MSVC)
-    set_source_files_properties(${SOURCE_FILES} PROPERTIES COMPILE_FLAGS "${COMMON_COMPILE_FLAGS} -Wno-implicit-function-declaration -Wno-incompatible-pointer-types")
+    set_source_files_properties(${SOURCE_FILES} PROPERTIES COMPILE_FLAGS "${PEDANTIC_COMPILE_FLAGS} -Wno-implicit-function-declaration -Wno-incompatible-pointer-types")
   else()
     # C4146: unary minus operator applied to unsigned type, result still unsigned
     # C4244: 'conversion' conversion from 'type1' to 'type2', possible loss of data


Fix CMakes for ST Cube packages (#1777)

Fix CMakes for ST Cube packages (#1777)

- Improvements in CMake syntax.
- Include path to CMSIS.

Signed-off-by: piwi1263 <994bae4cbd153cbc1b284e543355271e6af76bb5@gmail.com>

--- CMake/Modules/FindSTM32H7_CubePackage.cmake
+++ CMake/Modules/FindSTM32H7_CubePackage.cmake
@@ -4,7 +4,8 @@
 #

 # set include directories
-list(APPEND STM32H7_CubePackage_INCLUDE_DIRS "${CMAKE_BINARY_DIR}/STM32H7_CubePackage_Source/Drivers/STM32H7xx_HAL_Driver/Inc")
+list(APPEND STM32H7_CubePackage_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/STM32H7_CubePackage_Source/Drivers/CMSIS/Device/ST/STM32H7xx/Include)
+list(APPEND STM32H7_CubePackage_INCLUDE_DIRS ${CMAKE_BINARY_DIR}/STM32H7_CubePackage_Source/Drivers/STM32H7xx_HAL_Driver/Inc)

 # source files
 set(STM32H7_CubePackage_SRCS
@@ -12,6 +13,7 @@
     # add HAL files here as required

     # SPIFFS
+    stm32h7xx_hal_dma.c
     stm32h7xx_hal_qspi.c
 )

@@ -20,7 +22,7 @@
     find_file(STM32H7_CubePackage_SRC_FILE ${SRC_FILE}
         PATHS

-        "${CMAKE_BINARY_DIR}/STM32H7_CubePackage_Source/Drivers/STM32H7xx_HAL_Driver/Src"
+        ${CMAKE_BINARY_DIR}/STM32H7_CubePackage_Source/Drivers/STM32H7xx_HAL_Driver/Src

         CMAKE_FIND_ROOT_PATH_BOTH
     )


host-gcc: add missing set(CMAKE_ASM_FLAGS -m32)

This fixes the following error on all x86 BOARDs (qemu_x86,
galileo,... see "make usage" for the complete list) when compiling
assembly files with ZEPHYR_TOOLCHAIN_VARIANT=host:

 cc1: error: CPU you selected does not support x86-64 instruction set

This also fixes the following error when compiling minnowboard,
up_squared and up_squared_sbl boards with ZEPHYR_TOOLCHAIN_VARIANT=host:

  cc1: error: -mpreferred-stack-boundary=2 is not between 3 and 12

This fix alone is not enough to compile any of these boards; however it
moves compilation much further to the next, unrelated failure(s),
namely: 'undefined __udivdi3' and other libgcc symbols for all x86
boards; + some other, additional issues for some boards. See next
commit.

Signed-off-by: Marc Herbert <77e7c7d746b52c6eb01119b65a031ae1f650246d@intel.com>

--- cmake/compiler/host-gcc/target.cmake
+++ cmake/compiler/host-gcc/target.cmake
@@ -9,9 +9,10 @@
 find_program(CMAKE_READELF      readelf)
 find_program(CMAKE_GDB          gdb    )

+set(CMAKE_ASM_FLAGS           -m32 )
 set(CMAKE_C_FLAGS             -m32 )
 set(CMAKE_CXX_FLAGS           -m32 )
-set(CMAKE_SHARED_LINKER_FLAGS -m32 )
+set(CMAKE_SHARED_LINKER_FLAGS -m32 ) # unused?

 if(CONFIG_CPLUSPLUS)
   set(cplusplus_compiler g++)


TO_NATIVE_PATH escapes white-space on Linux. Do manual conversion.

--- cmake/usFunctionEmbedResources.cmake
+++ cmake/usFunctionEmbedResources.cmake
@@ -69,11 +69,17 @@
           message(SEND_ERROR "The ROOT_DIR argument is not a directory: ${current_root_dir}")
         endif()
         get_filename_component(current_root_dir "${current_root_dir}" REALPATH)
-        file(TO_NATIVE_PATH "${current_root_dir}" current_root_dir_native)
-        list(APPEND cmd_line_args -d "${current_root_dir_native}")
+        if(WIN32)
+          string(REPLACE "/" "\\" current_root_dir "${current_root_dir}")
+        endif()
+        list(APPEND cmd_line_args -d "${current_root_dir}")
       elseif(current_arg_name STREQUAL "FILES")
         set(res_file "${current_root_dir}/${arg}")
-        file(TO_NATIVE_PATH "${res_file}" res_file_native)
+        if(WIN32)
+          string(REPLACE "/" "\\" res_file_native "${res_file}")
+        else()
+          set(res_file_native "${res_file}")
+        endif()
         if(IS_DIRECTORY ${res_file})
           message(SEND_ERROR "A resource cannot be a directory: ${res_file_native}")
         endif()


[Build] RMOL now cleanly builds with the new common CMake framework.

--- project_config_embeddable.cmake
+++ project_config_embeddable.cmake
@@ -754,20 +754,14 @@
   endif ("${_linker_lang}" STREQUAL "_linker_lang-NOTFOUND")

   ##
-  # Installation
-  set (_all_targets ${_lib_target})
-  foreach (_arg_lib_name ${${MODULE_NAME}_INTER_TARGETS})
-    list (APPEND _all_targets ${_arg_lib_name}lib)
-  endforeach (_arg_lib_name)
-
-  # Installation of the library binaries
-  install (TARGETS ${_all_targets}
+  # Installation of the library
+  install (TARGETS ${_lib_target}
     EXPORT ${LIB_DEPENDENCY_EXPORT}
     LIBRARY DESTINATION "${INSTALL_LIB_DIR}" COMPONENT runtime)

   # Register, for reporting purpose, the list of libraries to be built
   # and installed for that module
-  list (APPEND ${MODULE_NAME}_ALL_LIBS ${_all_targets})
+  list (APPEND ${MODULE_NAME}_ALL_LIBS ${_lib_target})
   set (${MODULE_NAME}_ALL_LIBS ${${MODULE_NAME}_ALL_LIBS} PARENT_SCOPE)

   # Install the header files for the library
@@ -872,22 +866,32 @@
 ##                            Tests                              ##
 ###################################################################
 #
-macro (add_test_suites _test_suite_dir_list)
+macro (add_test_suites)
+  #
+  set (_test_suite_dir_list ${ARGV})
+
   if (Boost_FOUND)
     # Tell CMake/CTest that tests will be performed
     enable_testing()

-    #
+    # Browse all the modules, and register test suites for each of them
+    set (_check_target_list "")
     foreach (_module_name ${_test_suite_dir_list})
       set (${_module_name}_ALL_TST_TARGETS "")
       # Each individual test suite is specified within the dedicated
       # sub-directory. The CMake file within each of those test sub-directories
       # specifies a target named check_${_module_name}tst.
       add_subdirectory (test/${_module_name})
-      add_custom_target (check DEPENDS check_${_module_name}tst)
+
+      # Register, for book-keeping purpose (a few lines below),
+      # the (CMake/CTest) test target of the current module
+      list (APPEND _check_target_list check_${_module_name}tst)
     endforeach (_module_name)

-    # Register, for book-keeping purpose, the list of modules to be tested
+    # Register all the module (CMake/CTest) test targets at once
+    add_custom_target (check DEPENDS ${_check_target_list})
+
+    # Register, for reporting purpose, the list of modules to be tested
     set (PROJ_ALL_MOD_FOR_TST ${_test_suite_dir_list})

   endif (Boost_FOUND)


Future work: replace this function with CMake built in function

--- Packaging/isfile_symlink.cmake
+++ Packaging/isfile_symlink.cmake
@@ -17,6 +17,18 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 #
+
+# Two things can replace this whole function :
+# This test if it is a symlink
+# if(IS_SYMLINK file_name)
+  # This resolve the link
+  # get_filename_component(real_name file_name
+                       # REALPATH )
+# endif()
+# We can also just do
+# get_filename_component(real_name file_name
+                       # REALPATH )
+# and resolve the symlink
 function(isfile_symlink file result_var1 result_var2)
   #
   # A file is not executable until proven otherwise:


[added] minimum compiler version checking function.

--- cmake/BOTG.cmake
+++ cmake/BOTG.cmake
@@ -268,6 +268,13 @@
    SET (CMAKE_REQUIRED_DEFINITIONS "${save_defs}")
 ENDMACRO()
 #-------------------------------------------------------------------------------
+FUNCTION( BOTG_MinimumCompilerVersion compiler lang version )
+    BOTG_CompilerMatches( ${compiler} ${lang} found )
+    IF( ${found} AND CMAKE_${lang}_COMPILER_VERSION VERSION_LESS ${version} )
+        MESSAGE( FATAL_ERROR "compiler=${compiler} for lang=${lang} is required to have minimum version=${version} but found ${CMAKE_${lang}_COMPILER_VERSION}")
+    ENDIF()
+ENDFUNCTION()
+#-------------------------------------------------------------------------------
 MACRO( BOTG_UseCxxStandard version )
     BOTG_AddCompilerFlags( CXX "GNU|Clang" ANY
         "-std=c++${version}"
@@ -301,19 +308,46 @@
     ENDIF()
 ENDMACRO()
 #-------------------------------------------------------------------------------
+FUNCTION( BOTG_CompilerMatches compiler lang found_compiler )
+   IF( NOT ${compiler} STREQUAL "ANY" )
+        STRING(REGEX MATCH "${compiler}" found ${BOTG_${lang}_COMPILER})
+        SET(${found_compiler} ${found} PARENT_SCOPE)
+        IF( found STREQUAL "" )
+            SET(${found_compiler} OFF PARENT_SCOPE)
+        ELSE()
+            SET(${found_compiler} ON PARENT_SCOPE)
+        ENDIF()
+    ELSE()
+        SET(${found_compiler} ON PARENT_SCOPE)
+    ENDIF()
+ENDFUNCTION()
+#-------------------------------------------------------------------------------
+FUNCTION( BOTG_SystemMatches system found_system)
+   IF( NOT ${system} STREQUAL "ANY" )
+        STRING(REGEX MATCH "${system}" found ${BOTG_SYSTEM})
+        IF( found STREQUAL "" )
+            SET(${found_system} OFF PARENT_SCOPE)
+        ELSE()
+            SET(${found_system} ON PARENT_SCOPE)
+        ENDIF()
+    ELSE()
+        SET(${found_system} ON PARENT_SCOPE)
+    ENDIF()
+ENDFUNCTION()
+#-------------------------------------------------------------------------------
+FUNCTION( BOTG_CompilerAndSystemMatches compiler lang system found_both)
+    BOTG_CompilerMatches( ${compiler} ${lang} found_compiler )
+    BOTG_SystemMatches( ${system} found_system )
+    IF( found_system AND found_compiler )
+        SET(${found_both} ON PARENT_SCOPE )
+    ELSE()
+        SET(${found_both} OFF PARENT_SCOPE )
+    ENDIF()
+ENDFUNCTION()
+#-------------------------------------------------------------------------------
 MACRO( BOTG_AddCompilerFlags lang compiler system) #list of flags comes at end
-    IF( NOT ${compiler} STREQUAL "ANY" )
-        STRING(REGEX MATCH "${compiler}" found_compiler ${BOTG_${lang}_COMPILER})
-    ELSE()
-        SET(found_compiler "ANY")
-    ENDIF()
-    IF( NOT ${system} STREQUAL "ANY" )
-        STRING(REGEX MATCH "${system}" found_system ${BOTG_SYSTEM})
-    ELSE()
-        SET(found_system "ANY")
-    ENDIF()
-
-    IF( (NOT ${found_system} STREQUAL "") AND (NOT ${found_compiler} STREQUAL "") )
+    BOTG_CompilerAndSystemMatches( ${compiler} ${lang} ${system} found )
+    IF( found )
         MESSAGE(STATUS "[BootsOnTheGround] adding package=${PACKAGE_NAME} ${lang} flags for system='${found_system}' AND compiler='${found_compiler}'")
         FOREACH( flag ${ARGN} )
             #check if flag is already in list


cmake: Update NaCl bundle url

cmake: Update NaCl bundle url

--- cmake/nacl.cmake
+++ cmake/nacl.cmake
@@ -3,7 +3,7 @@
 set(NACL_HASH 653b85599705c7932ffd762bd4884fb1)
 ExternalProject_Add(nacl_bin
   PREFIX nacl_bin
-  URL https://github.com/includeos/NaCl/releases/download/0.1.0/nacl_bin.tar.gz
+  URL https://github.com/includeos/NaCl/releases/download/v0.1.0/nacl_bin.tar.gz
   URL_HASH MD5=${NACL_HASH}
   CONFIGURE_COMMAND ""
   BUILD_COMMAND ""


more 3.7.0

more 3.7.0

--- test/common/commonConfig.cmake
+++ test/common/commonConfig.cmake
@@ -121,17 +121,10 @@
 IF(_COMMON_FOUND)
     # Handles the REQUIRED, QUIET and version-related arguments for FIND_PACKAGE.
     INCLUDE(FindPackageHandleStandardArgs)
-    IF(CMAKE_VERSION VERSION_LESS 3.7.0)
-        FIND_PACKAGE_HANDLE_STANDARD_ARGS(
-            ${_COMMON_TARGET_NAME}
-            FOUND_VAR common_FOUND
-            REQUIRED_VARS common_INCLUDE_DIR)
-    ELSE()
-        FIND_PACKAGE_HANDLE_STANDARD_ARGS(
-            ${_COMMON_TARGET_NAME}
-            FOUND_VAR common_FOUND
-            REQUIRED_VARS _COMMON_INCLUDE_DIRECTORY)
-    ENDIF()
+    FIND_PACKAGE_HANDLE_STANDARD_ARGS(
+        ${_COMMON_TARGET_NAME}
+        FOUND_VAR common_FOUND
+        REQUIRED_VARS _COMMON_INCLUDE_DIRECTORY)
 ENDIF()

 UNSET(_COMMON_FOUND)


BUG: fix ITK version number for packaging

--- SuperBuild/CMake/External_itk.cmake
+++ SuperBuild/CMake/External_itk.cmake
@@ -143,7 +143,7 @@

 #variables are later used in packaging
 set(SB_ITK_VERSION_MAJOR "4")
-set(SB_ITK_VERSION_MINOR "12")
+set(SB_ITK_VERSION_MINOR "13")

 set(_SB_ITK_DIR ${SB_INSTALL_PREFIX}/lib/cmake/ITK-${SB_ITK_VERSION_MAJOR}.${SB_ITK_VERSION_MINOR})


Updates tryrun.cmake for ARM64 cross build (#5406)

--- cross/arm64/tryrun.cmake
+++ cross/arm64/tryrun.cmake
@@ -110,3 +110,18 @@
      0
      CACHE STRING "Result from TRY_RUN" FORCE)

+SET( HAVE_PROCFS_CTL_EXITCODE
+     1
+     CACHE STRING "Result from TRY_RUN" FORCE)
+
+SET( HAVE_PROCFS_MAPS_EXITCODE
+     1
+     CACHE STRING "Result from TRY_RUN" FORCE)
+
+SET( HAVE_PROCFS_STAT_EXITCODE
+     1
+     CACHE STRING "Result from TRY_RUN" FORCE)
+
+SET( HAVE_PROCFS_STATUS_EXITCODE
+     1
+     CACHE STRING "Result from TRY_RUN" FORCE)


use TNUN_add_link_options after defining it

--- build_options.cmake
+++ build_options.cmake
@@ -62,7 +62,6 @@
 option( TNUN_DEBUG_SYMBOLS_IN_RELEASE "Generate debug symbols for easier debugging of release builds" false )
 if ( ${TNUN_DEBUG_SYMBOLS_IN_RELEASE} )
     TNUN_add_compile_options( Release ${TNUN_compiler_debug_symbols} )
-    TNUN_add_link_options   ( Release ${TNUN_linker_debug_symbols} )
 endif()

 option( TNUN_ALLOW_EXCEPTIONS "Allow exception support in C++ code" true )
@@ -121,3 +120,7 @@

 TNUN_add_link_options( Debug ${TNUN_linker_debug_flags} )
 TNUN_add_link_options( Release ${TNUN_linker_release_flags} )
+
+if ( ${TNUN_DEBUG_SYMBOLS_IN_RELEASE} )
+    TNUN_add_link_options   ( Release ${TNUN_linker_debug_symbols} )
+endif()


avoid COMPILE_LANGUAGE generator expression on VS

--- build_options.cmake
+++ build_options.cmake
@@ -63,17 +63,32 @@
 endif()

 option( TNUN_ALLOW_EXCEPTIONS "Allow exception support in C++ code" true )
-if( ${TNUN_ALLOW_EXCEPTIONS} )
-    add_compile_options( $<$<COMPILE_LANGUAGE:CXX>:${TNUN_compiler_exceptions_on}> )
+option( TNUN_ALLOW_RTTI "Allow Runtime Type Information in C++ code" true )
+
+if( ${CMAKE_GENERATOR} MATCHES "Visual Studio" )
+    if( ${TNUN_ALLOW_EXCEPTIONS} )
+        add_compile_options( ${TNUN_compiler_exceptions_on} )
+    else()
+        add_compile_options( ${TNUN_compiler_exceptions_off} )
+    endif()
+
+    if( ${TNUN_ALLOW_RTTI} )
+        add_compile_options( ${TNUN_compiler_rtti_on} )
+    else()
+        add_compile_options( ${TNUN_compiler_rtti_off} )
+    endif()
 else()
-    add_compile_options( $<$<COMPILE_LANGUAGE:CXX>:${TNUN_compiler_exceptions_off}> )
-endif()
+    if( ${TNUN_ALLOW_EXCEPTIONS} )
+        add_compile_options( $<$<COMPILE_LANGUAGE:CXX>:${TNUN_compiler_exceptions_on}> )
+    else()
+        add_compile_options( $<$<COMPILE_LANGUAGE:CXX>:${TNUN_compiler_exceptions_off}> )
+    endif()

-option( TNUN_ALLOW_RTTI "Allow Runtime Type Information in C++ code" true )
-if( ${TNUN_ALLOW_RTTI} )
-    add_compile_options( $<$<COMPILE_LANGUAGE:CXX>:${TNUN_compiler_rtti_on}> )
-else()
-    add_compile_options( $<$<COMPILE_LANGUAGE:CXX>:${TNUN_compiler_rtti_off}> )
+    if( ${TNUN_ALLOW_RTTI} )
+        add_compile_options( $<$<COMPILE_LANGUAGE:CXX>:${TNUN_compiler_rtti_on}> )
+    else()
+        add_compile_options( $<$<COMPILE_LANGUAGE:CXX>:${TNUN_compiler_rtti_off}> )
+    endif()
 endif()

 option( TNUN_NATIVE_CPU_OPTIMIZATION "Perform optimizations specific to host CPU" true )


Update Hunter

Update Hunter

--- common.cmake
+++ common.cmake
@@ -6,5 +6,5 @@
 include("${CMAKE_CURRENT_LIST_DIR}/cmake/HunterGate.cmake")
 HunterGate(
     URL "https://github.com/ruslo/hunter/archive/android-005.tar.gz"
-    SHA1 "3a18ecc61cad989aef50abafdaa88c72291eabc5"
+    SHA1 "a26088094228c90f748c41e003c6496a858a5f17"
 )


Make VAD_TIFF consistent in the internal handling of stub targets.

--- VAD_TIFF.cmake
+++ VAD_TIFF.cmake
@@ -19,26 +19,26 @@
     set(BUILD_SHARED_LIBS OFF CACHE BOOL "" FORCE)
   endif()
   add_subdirectory("${VAD_EXTERNAL_ROOT}/TIFF" "${VAD_EXTERNAL_ROOT}/TIFF/build_external_dep")
-  add_library(TIFF INTERFACE)
-  set_target_properties(TIFF PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${VAD_EXTERNAL_ROOT}/TIFF/libtiff;${VAD_EXTERNAL_ROOT}/TIFF/build_external_dep/libtiff")
-  target_link_libraries(TIFF INTERFACE tiff)
+  add_library(_VAD_TIFF_STUB INTERFACE)
+  set_target_properties(_VAD_TIFF_STUB PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${VAD_EXTERNAL_ROOT}/TIFF/libtiff;${VAD_EXTERNAL_ROOT}/TIFF/build_external_dep/libtiff")
+  target_link_libraries(_VAD_TIFF_STUB INTERFACE tiff)
   # The TIFF live CMake auto-detects libraries such as ZLIB, LibLZMA and JPEG. If they are found, we will
   # add them to the TIFF interface.
   get_property(_OPT_DEP GLOBAL PROPERTY VAD_DEP_ZLIB_SATISFIED)
   if(_OPT_DEP)
       message(STATUS "The optional dependency ZLIB for TIFF was satisfied, linking ZLIB to the TIFF interface.")
-      target_link_libraries(TIFF INTERFACE ZLIB::ZLIB)
+      target_link_libraries(_VAD_TIFF_STUB INTERFACE ZLIB::ZLIB)
   endif()
   get_property(_OPT_DEP GLOBAL PROPERTY VAD_DEP_JPEG_SATISFIED)
   if(_OPT_DEP)
       message(STATUS "The optional dependency JPEG for TIFF was satisfied, linking JPEG to the TIFF interface.")
-      target_link_libraries(TIFF INTERFACE JPEG::JPEG)
+      target_link_libraries(_VAD_TIFF_STUB INTERFACE JPEG::JPEG)
   endif()
   get_property(_OPT_DEP GLOBAL PROPERTY VAD_DEP_LibLZMA_SATISFIED)
   if(_OPT_DEP)
       message(STATUS "The optional dependency LibLZMA for TIFF was satisfied, linking LibLZMA to the TIFF interface.")
-      target_link_libraries(TIFF INTERFACE LibLZMA::LibLZMA)
+      target_link_libraries(_VAD_TIFF_STUB INTERFACE LibLZMA::LibLZMA)
   endif()
   # Add the final alias.
-  add_library(TIFF::TIFF ALIAS TIFF)
+  add_library(TIFF::TIFF ALIAS _VAD_TIFF_STUB)
 endfunction()


Removed Boilerplate

Removed Boilerplate

--- Red.cmake
+++ Red.cmake
@@ -1,8 +1,3 @@
-#
-# This file was genared by proj2cmake and will be overwritten on it's next run!
-# Please put all configurations in the cmake_conf/*.cmake files.
-#
-
 SET(Red_SRC
     "Red/Hardware/Linux/LinuxHardware.cpp"
     "Red/Network/BSD/BSDSocket.cpp"


FindLua: Also prefer to find ${PREFIX}/include/lua before versioned lua

This fixes a bug where the game finds liblua.so, but picks include/lua53
as the include path, causing a mismatch.

--- cmake/FindLua.cmake
+++ cmake/FindLua.cmake
@@ -99,7 +99,7 @@
 find_path(LUA_INCLUDE_DIR lua.h
   HINTS
     ENV LUA_DIR
-  PATH_SUFFIXES ${_lua_include_subdirs} include/lua include
+  PATH_SUFFIXES include/lua ${_lua_include_subdirs} include
   PATHS
   ~/Library/Frameworks
   /Library/Frameworks


Fix stb on Mac

Fix stb on Mac

--- cmake/FindStb.cmake
+++ cmake/FindStb.cmake
@@ -42,8 +42,10 @@
         endif()

         include(ExternalProject)
+        # Stb's commits in early February seems to cause the engine to fail compilation on Mac.
         ExternalProject_Add(stb
             GIT_REPOSITORY "https://github.com/nothings/stb.git"
+            GIT_TAG d5d052c806eee2ca1f858cb58b2f062d9fa25b90
             UPDATE_DISCONNECTED TRUE
             CONFIGURE_COMMAND "" #We don't want to actually go and build/test/generate it. Just need to download the headers.
             BUILD_COMMAND ""
@@ -64,4 +66,4 @@
     endif()
 endif()

-mark_as_advanced(Stb_INCLUDE_DIRS)+mark_as_advanced(Stb_INCLUDE_DIRS)