diff --git a/CMake/ITKSetStandardCompilerFlags.cmake b/CMake/ITKSetStandardCompilerFlags.cmake index db4de2f..4042257 100644 --- a/CMake/ITKSetStandardCompilerFlags.cmake +++ b/CMake/ITKSetStandardCompilerFlags.cmake @@ -22,6 +22,38 @@ include(ITK_CheckCCompilerFlag) include(ITK_CheckCXXCompilerFlag) +if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.14.0) + cmake_policy(SET CMP0083 NEW) + include(CheckPIESupported) + check_pie_supported() +endif() + +function(check_c_compiler_flags c_flag_var) + set(local_c_flags "") + set(flag_list "${ARGN}") + foreach(flag IN LISTS flag_list) + string(REPLACE "=" "_" flag_var ${flag} ) + ITK_CHECK_C_COMPILER_FLAG(${flag} C_HAS_WARNING${flag_var}) + if(${C_HAS_WARNING${flag_var}}) + set(local_c_flags "${local_c_flags} ${flag}") + endif() + endforeach() + set(${c_flag_var} "${local_c_flags}" PARENT_SCOPE) +endfunction() + +function(check_cxx_compiler_flags cxx_flag_var) + set(local_cxx_flags "") + set(flag_list "${ARGN}") + foreach(flag IN LISTS flag_list) + string(REPLACE "=" "_" flag_var ${flag} ) + ITK_CHECK_CXX_COMPILER_FLAG(${flag} CXX_HAS_WARNING${flag_var}) + if(${CXX_HAS_WARNING${flag_var}}) + set(local_cxx_flags "${local_cxx_flags} ${flag}") + endif() + endforeach() + set(${cxx_flag_var} "${local_cxx_flags}" PARENT_SCOPE) +endfunction() + function(check_c_compiler_warning_flags c_flag_var) set(local_c_flags "") set(flag_list "${ARGN}") @@ -34,7 +66,6 @@ function(check_c_compiler_warning_flags c_flag_var) set(${c_flag_var} "${local_c_flags}" PARENT_SCOPE) endfunction() - function(check_cxx_compiler_warning_flags cxx_flag_var) set(local_cxx_flags "") set(flag_list "${ARGN}") @@ -97,9 +128,7 @@ function(check_compiler_warning_flags c_warning_flags_var cxx_warning_flags_var) # Check this list on both C and C++ compilers set(c_and_cxx_flags ${VerboseWarningsFlag} -# -Wno-long-double is only applicable with gcc on apple, and is generating -# warnings now on all platforms. -# -Wno-long-double #Needed on APPLE + -Wno-long-double #Needed on APPLE -Wcast-align -Wdisabled-optimization -Wextra @@ -108,7 +137,6 @@ function(check_compiler_warning_flags c_warning_flags_var cxx_warning_flags_var) -Wno-format-nonliteral -Wpointer-arith -Wshadow - -Wunused -Wwrite-strings -funit-at-a-time @@ -119,9 +147,11 @@ function(check_compiler_warning_flags c_warning_flags_var cxx_warning_flags_var) set(cxx_flags -Wno-deprecated -Wno-invalid-offsetof + -Wno-undefined-var-template # suppress invalid warning when explicitly instantiated in another translation unit -Woverloaded-virtual -Wstrict-null-sentinel ) + ##-Wno-c++0x-static-nonintegral-init ## Clang compiler likes to warn about this feature that is technically only in ## c++0x, but works on many compilers, and if it fails, then alternate methods are used @@ -133,6 +163,49 @@ function(check_compiler_warning_flags c_warning_flags_var cxx_warning_flags_var) set(${cxx_warning_flags_var} "${CMAKE_CXX_WARNING_FLAGS}" PARENT_SCOPE) endfunction() +function(check_compiler_optimization_flags c_optimization_flags_var cxx_optimization_flags_var) + set(${c_optimization_flags_var} "" PARENT_SCOPE) + set(${cxx_optimization_flags_var} "" PARENT_SCOPE) + + if(MSVC) + set(InstructionSetOptimizationFlags + # https://docs.microsoft.com/en-us/cpp/build/reference/arch-x64?view=vs-2015 + /arch:SSE /arch:SSE2 /arch:/AVX /arch:/AVX2 ) # /arch:/AVX2 AVX2 circa 2013 + else() + if (${CMAKE_C_COMPILER} MATCHES "icc.*$") + set(USING_INTEL_ICC_COMPILER TRUE) + endif() + if (${CMAKE_CXX_COMPILER} MATCHES "icpc.*$") + set(USING_INTEL_ICC_COMPILER TRUE) + endif() + if(USING_INTEL_ICC_COMPILER) + set(InstructionSetOptimizationFlags "" ) + else() + set(InstructionSetOptimizationFlags "") + endif () + + # Check this list on C compiler only + set(c_flags "") + + # Check this list on C++ compiler only + set(cxx_flags "") + + # Check this list on both C and C++ compilers + set(InstructionSetOptimizationFlags + # https://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/i386-and-x86_002d64-Options.html + # NOTE the corei7 release date was 2008 + -mtune=native # Tune the code for the computer used to compile this package, but allow running on generic cpu archetectures defined by -march + -march=corei7-avx # Use ABI settings to support corei7 (circa 2008 ABI feature sets, corei7-avx circa 2013) + ) + endif() + set(c_and_cxx_flags ${InstructionSetOptimizationFlags}) + + check_c_compiler_flags( CMAKE_C_WARNING_FLAGS ${c_and_cxx_flags} ${c_flags}) + check_cxx_compiler_flags(CMAKE_CXX_WARNING_FLAGS ${c_and_cxx_flags} ${cxx_flags}) + + set(${c_optimization_flags_var} "${CMAKE_C_WARNING_FLAGS}" PARENT_SCOPE) + set(${cxx_optimization_flags_var} "${CMAKE_CXX_WARNING_FLAGS}" PARENT_SCOPE) +endfunction() macro(check_compiler_platform_flags) # On Visual Studio 8 MS deprecated C. This removes all 1.276E1265 security @@ -166,9 +239,10 @@ macro(check_compiler_platform_flags) if(WIN32) # Some libraries (e.g. vxl libs) have no dllexport markup, so we can # build full shared libraries only with the GNU toolchain. For non - # gnu compilers on windows, only Common is shared. This allows for - # plugin type applications to use a dll for ITKCommon which will contain - # the static for Modified time. + # gnu compilers on windows, only a few libraries are built shared. + # This is controlled with ITK_LIBRARY_BUILD_TYPE used in the add_library + # call. This allows for plugin type applications to use a dll for + # ITKCommon which will contain the static for Modified time. if(CMAKE_COMPILER_IS_GNUCXX) # CMake adds --enable-all-exports on Cygwin (since Cygwin is # supposed to be UNIX-like), but we need to add it explicitly for @@ -181,18 +255,56 @@ macro(check_compiler_platform_flags) set(CMAKE_EXE_LINKER_FLAGS "-Wl,--enable-auto-import") endif() else() + # if CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS is on, then + # BUILD_SHARED_LIBS works as it would on other systems + if(NOT CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS) if(BUILD_SHARED_LIBS) set(ITK_LIBRARY_BUILD_TYPE "SHARED") else() set(ITK_LIBRARY_BUILD_TYPE "STATIC") endif() + # turn off BUILD_SHARED_LIBS as ITK_LIBRARY_BUILD_TYPE + # is used on the libraries that have markup. set(BUILD_SHARED_LIBS OFF) endif() endif() + endif() + #----------------------------------------------------------------------------- #ITK requires special compiler flags on some platforms. if(CMAKE_COMPILER_IS_GNUCXX) - if(APPLE) + + # GCC's -Warray-bounds has been shown to throw false positives with -O3 on 4.8. + if(UNIX AND ( + ("${CMAKE_CXX_COMPILER_VERSION}" VERSION_EQUAL "4.8") OR + ("${CMAKE_CXX_COMPILER_VERSION}" VERSION_GREATER "4.8" AND "${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS "4.9") )) + set(ITK_REQUIRED_CXX_FLAGS "${ITK_REQUIRED_CXX_FLAGS} -Wno-array-bounds") + endif() + + if("${CMAKE_SYSTEM_NAME}" MATCHES "Linux") + set(_safe_cmake_required_flags "${CMAKE_REQUIRED_FLAGS}") + set(CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -fuse-ld=gold") + CHECK_CXX_SOURCE_COMPILES("int main() { return 0;}" have_gold) + set(CMAKE_REQUIRED_FLAGS "${_safe_cmake_required_flags}") + if(have_gold) + set(_use_gold_linker_default ON) + set(_gold_linker_failure_condition_0 "${CMAKE_CXX_COMPILER_VERSION}" VERSION_LESS "4.9.0") + set(_gold_linker_failure_condition_1 NOT BUILD_SHARED_LIBS AND "${CMAKE_CXX_COMPILER_VERSION}" VERSION_EQUAL "4.9.0") + if( (${_gold_linker_failure_condition_0}) OR (${_gold_linker_failure_condition_1}) ) + set(_use_gold_linker_default OFF) + endif() + option(ITK_USE_GOLD_LINKER "Use the gold linker instead of ld." ${_use_gold_linker_default}) + mark_as_advanced(ITK_USE_GOLD_LINKER) + # The gold linker is approximately 3X faster. + if(ITK_USE_GOLD_LINKER) + set(CMAKE_EXE_LINKER_FLAGS "-fuse-ld=gold ${CMAKE_EXE_LINKER_FLAGS}") + set(CMAKE_MODULE_LINKER_FLAGS "-fuse-ld=gold ${CMAKE_MODULE_LINKER_FLAGS}") + set(CMAKE_SHARED_LINKER_FLAGS "-fuse-ld=gold ${CMAKE_SHARED_LINKER_FLAGS}") + endif() + endif() + endif() + + if(APPLE) option(ITK_USE_64BITS_APPLE_TRUNCATION_WARNING "Turn on warnings on 64bits to 32bits truncations." OFF) mark_as_advanced(ITK_USE_64BITS_APPLE_TRUNCATION_WARNING) @@ -213,7 +325,6 @@ macro(check_compiler_platform_flags) message("-fopenmp causes incorrect compliation of HDF, removing from ${listname}") endif() endforeach() - endif() # gcc must have -msse2 option to enable sse2 support @@ -245,7 +356,8 @@ macro(check_compiler_platform_flags) endif() endif() endif() - + + # mingw thread support if(MINGW) set(ITK_REQUIRED_CXX_FLAGS "${ITK_REQUIRED_CXX_FLAGS} -mthreads") @@ -253,7 +365,6 @@ macro(check_compiler_platform_flags) set(ITK_REQUIRED_LINK_FLAGS "${ITK_REQUIRED_LINK_FLAGS} -mthreads") endif() - #----------------------------------------------------------------------------- # The frename-registers option does not work due to a bug in the gnu compiler. # It must be removed or data errors will be produced and incorrect results @@ -271,25 +382,70 @@ macro(check_compiler_platform_flags) #----------------------------------------------------------------------------- # Set the compiler-specific flag for disabling optimization. if(MSVC) - set(ITK_CXX_DISABLE_OPTIMIZATION_FLAG "/Od") - elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "^(GNU|Intel)$") - set(ITK_CXX_DISABLE_OPTIMIZATION_FLAG "-O0") + set(${PROJECT_NAME}_CXX_DISABLE_OPTIMIZATION_FLAG "/Od") + elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "^(GNU|Intel)$" AND NOT MINGW) + set(${PROJECT_NAME}_CXX_DISABLE_OPTIMIZATION_FLAG "-O0") endif() - if(DEFINED ITK_CXX_DISABLE_OPTIMIZATION_FLAG) - CHECK_CXX_SOURCE_COMPILES(${ITK_CXX_DISABLE_OPTIMIZATION_FLAG} CXX_HAS_DISABLE_OPTIMIZATION_FLAG) + if(DEFINED ${PROJECT_NAME}_CXX_DISABLE_OPTIMIZATION_FLAG) + CHECK_CXX_SOURCE_COMPILES(${${PROJECT_NAME}_CXX_DISABLE_OPTIMIZATION_FLAG} CXX_HAS_DISABLE_OPTIMIZATION_FLAG) endif() + endmacro()#End the platform check function +if(NOT ${PROJECT_NAME}_C_WARNING_FLAGS OR NOT ${PROJECT_NAME}_CXX_WARNING_FLAGS ) # Only check once if not explicitly set on command line + #----------------------------------------------------------------------------- + #Check the set of warning flags the compiler supports + check_compiler_warning_flags(C_WARNING_FLAGS CXX_WARNING_FLAGS) +endif() + +if(NOT ${PROJECT_NAME}_C_WARNING_FLAGS) #Not set on cmake command line option -D${PROJECT_NAME}_C_WARNING_FLAGS:STRING="" + set(${PROJECT_NAME}_C_WARNING_FLAGS ${C_WARNING_FLAGS}) +endif() +set(${PROJECT_NAME}_C_WARNING_FLAGS ${${PROJECT_NAME}_C_WARNING_FLAGS} CACHE STRING "ITK C compiler warning flags. Modify to suit your needs.") + +if(NOT ${PROJECT_NAME}_CXX_WARNING_FLAGS) #Not set on cmake command line option -D${PROJECT_NAME}_CXX_WARNING_FLAGS:STRING="" + set(${PROJECT_NAME}_CXX_WARNING_FLAGS ${CXX_WARNING_FLAGS}) +endif() +set(${PROJECT_NAME}_CXX_WARNING_FLAGS ${${PROJECT_NAME}_CXX_WARNING_FLAGS} CACHE STRING "ITK CXX compiler warning flags. Modify to suit your needs.") + +mark_as_advanced(${PROJECT_NAME}_CXX_WARNING_FLAGS) +mark_as_advanced(${PROJECT_NAME}_C_WARNING_FLAGS) +unset(C_WARNING_FLAGS) +unset(CXX_WARNING_FLAGS) + + +if(NOT ${PROJECT_NAME}_C_OPTIMIZATION_FLAGS OR NOT ${PROJECT_NAME}_CXX_OPTIMIZATION_FLAGS ) # Only check once if not explicitly set on command line + #----------------------------------------------------------------------------- + #Check the set of warning flags the compiler supports + check_compiler_optimization_flags(C_OPTIMIZATION_FLAGS CXX_OPTIMIZATION_FLAGS) +endif() +if(NOT ${PROJECT_NAME}_C_OPTIMIZATION_FLAGS) #Not set on cmake command line option -D${PROJECT_NAME}_C_OPTIMIZATION_FLAGS:STRING="" + set(${PROJECT_NAME}_C_OPTIMIZATION_FLAGS ${C_OPTIMIZATION_FLAGS} CACHE STRING "ITK C Compiler ABI/Optimization flags, Use '-march=native' to maximize performance, but break portabilitly.") +else() + set(${PROJECT_NAME}_C_OPTIMIZATION_FLAGS ${${PROJECT_NAME}_C_OPTIMIZATION_FLAGS} CACHE STRING "ITK C Compiler ABI/Optimization flags, Use '-march=native' to maximize performance, but break portabilitly.") +endif() +if(NOT ${PROJECT_NAME}_CXX_OPTIMIZATION_FLAGS) #Not set on cmake command line option -D${PROJECT_NAME}_CXX_OPTIMIZATION_FLAGS:STRING="" + set(${PROJECT_NAME}_CXX_OPTIMIZATION_FLAGS ${CXX_OPTIMIZATION_FLAGS} CACHE STRING "ITK CXX Compiler ABI/Optimization flags, Use '-march=native' to maximize performance, but break portabilitly.") +else() + set(${PROJECT_NAME}_CXX_OPTIMIZATION_FLAGS ${${PROJECT_NAME}_CXX_OPTIMIZATION_FLAGS} CACHE STRING "ITK CXX Compiler ABI/Optimization flags, Use '-march=native' to maximize performance, but break portabilitly.") +endif() +mark_as_advanced(${PROJECT_NAME}_CXX_OPTIMIZATION_FLAGS) +mark_as_advanced(${PROJECT_NAME}_C_OPTIMIZATION_FLAGS) +unset(C_OPTIMIZATION_FLAGS) +unset(CXX_OPTIMIZATION_FLAGS) #----------------------------------------------------------------------------- -#Check the set of warning flags the compiler supports -check_compiler_warning_flags(C_WARNING_FLAGS CXX_WARNING_FLAGS) +#Check the set of platform flags the compiler supports +check_compiler_platform_flags() # Append ITK warnings to the CMake flags. # We do not set them in ITK_REQUIRED FLAGS because all project which # use ITK don't require these flags . -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_WARNING_FLAGS}") -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_WARNING_FLAGS}") -#----------------------------------------------------------------------------- -#Check the set of platform flags the compiler supports -check_compiler_platform_flags() +string(REPLACE " " ";" CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${${PROJECT_NAME}_C_OPTIMIZATION_FLAGS} ${${PROJECT_NAME}_C_WARNING_FLAGS}") +list(REMOVE_DUPLICATES CMAKE_C_FLAGS) +string(REPLACE ";" " " CMAKE_C_FLAGS "${CMAKE_C_FLAGS}") + +string(REPLACE " " ";" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${${PROJECT_NAME}_CXX_OPTIMIZATION_FLAGS} ${${PROJECT_NAME}_CXX_WARNING_FLAGS}") +list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS) +string(REPLACE ";" " " CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") + diff --git a/SuperBuild.cmake b/SuperBuild.cmake index 7dc3d10..46c598c 100644 --- a/SuperBuild.cmake +++ b/SuperBuild.cmake @@ -54,12 +54,12 @@ mark_as_superbuild( ## for i in SuperBuild/*; do echo $i |sed 's/.*External_\([a-zA-Z]*\).*/\1/g'|fgrep -v cmake|fgrep -v Template; done|sort -u set(${PRIMARY_PROJECT_NAME}_DEPENDENCIES + Boost SlicerExecutionModel ITK Eigen VTK teem - Boost ) #----------------------------------------------------------------------------- @@ -122,6 +122,7 @@ mark_as_superbuild( PYTHON_LIBRARY:FILEPATH BOOST_ROOT:PATH BOOST_INCLUDE_DIR:PATH + Boost_LIBRARY_DIR:PATH SlicerExecutionModel_DIR:PATH SlicerExecutionModel_DEFAULT_CLI_RUNTIME_OUTPUT_DIRECTORY:PATH SlicerExecutionModel_DEFAULT_CLI_LIBRARY_OUTPUT_DIRECTORY:PATH diff --git a/SuperBuild/External_Boost.cmake b/SuperBuild/External_Boost.cmake index 34ec12c..f1f03a1 100644 --- a/SuperBuild/External_Boost.cmake +++ b/SuperBuild/External_Boost.cmake @@ -34,36 +34,45 @@ if(NOT ( DEFINED "USE_SYSTEM_${extProjName}" AND "${USE_SYSTEM_${extProjName}}" ### --- Project specific additions here set(Boost_Install_Dir ${CMAKE_CURRENT_BINARY_DIR}/${proj}-install) - set(Boost_Configure_Script ${CMAKE_CURRENT_LIST_DIR}/External_Boost_configureboost.cmake) - set(Boost_Build_Script ${CMAKE_CURRENT_LIST_DIR}/External_Boost_buildboost.cmake) + + if(CMAKE_COMPILER_IS_CLANGXX) + set(CLANG_ARG -DCMAKE_COMPILER_IS_CLANGXX:BOOL=ON) + endif() ### --- End Project specific additions -# SVN is too slow SVN_REPOSITORY http://svn.boost.org/svn/boost/trunk -# SVN is too slow SVN_REVISION -r "82586" - set(${proj}_URL http://sourceforge.net/projects/boost/files/boost/1.55.0/boost_1_55_0.tar.gz ) - set(${proj}_MD5 93780777cfbf999a600f62883bd54b17 ) if(CMAKE_COMPILER_IS_CLANGXX) set(CLANG_ARG -DCMAKE_COMPILER_IS_CLANGXX:BOOL=ON) endif() set(BOOST_SOURCE_DIR ${SOURCE_DOWNLOAD_CACHE}/${proj}) - ExternalProject_Add(${proj} - ${${proj}_EP_ARGS} - URL ${${proj}_URL} - URL_MD5 ${${proj}_MD5} - SOURCE_DIR ${BOOST_SOURCE_DIR} - CONFIGURE_COMMAND ${CMAKE_COMMAND} - ${CLANG_ARG} - -DBUILD_DIR:PATH=${CMAKE_CURRENT_BINARY_DIR}/${proj} - -DBOOST_INSTALL_DIR:PATH=${Boost_Install_Dir} - -P ${Boost_Configure_Script} - INSTALL_COMMAND "" - BUILD_IN_SOURCE 1 - BUILD_COMMAND ${CMAKE_COMMAND} - -DBUILD_DIR:PATH=${CMAKE_CURRENT_BINARY_DIR}/Boost - -DBOOST_INSTALL_DIR:PATH=${Boost_Install_Dir} -P ${Boost_Build_Script} - ) - set(BOOST_ROOT ${BOOST_SOURCE_DIR}) - set(BOOST_INCLUDE_DIR ${BOOST_SOURCE_DIR}) + + set( Boost_url "http://sourceforge.net/projects/boost/files/boost/1.70.0/boost_1_70_0.tar.gz") + set( Boost_md5 fea771fe8176828fabf9c09242ee8c26 ) + set( Boost_Bootstrap_Command ./bootstrap.sh ) + set( Boost_b2_Command ./b2 ) + + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(Boost_address_model 64) +else() + set(Boost_address_model 32) +endif() + + ExternalProject_Add(${proj} + ${${proj}_EP_ARGS} + BUILD_IN_SOURCE 1 + URL ${Boost_url} + URL_MD5 ${Boost_md5} + UPDATE_COMMAND "" + CONFIGURE_COMMAND ${Boost_Bootstrap_Command} --prefix=${Boost_Install_Dir}/lib + BUILD_COMMAND ${Boost_b2_Command} install -j8 --prefix=${Boost_Install_Dir} --with-thread --with-filesystem --with-system --with-date_time --with-program_options --with-atomic address-model=${Boost_address_model} link=static,shared + INSTALL_COMMAND "" + ) + + set(BOOST_ROOT ${Boost_Install_Dir}) + set(BOOST_INCLUDE_DIR ${Boost_Install_Dir}/include) + set(Boost_LIBRARY_DIR ${Boost_Install_Dir}/lib) + message(STATUS "BOOST_ROOT is " ${BOOST_ROOT}) + message(STATUS "Boost_LIBRARY_DIR is " ${Boost_LIBRARY_DIR}) + else() if(${USE_SYSTEM_${extProjName}}) find_package(${proj} ${${extProjName}_REQUIRED_VERSION} REQUIRED) @@ -74,4 +83,10 @@ else() ExternalProject_Add_Empty(${proj} "${${proj}_DEPENDENCIES}") endif() -list(APPEND ${CMAKE_PROJECT_NAME}_SUPERBUILD_EP_VARS ${extProjName}_DIR:PATH) +mark_as_superbuild( + VARS + ${extProjName}_DIR:PATH + LABELS + "FIND_PACKAGE" +) + diff --git a/SuperBuild/External_Eigen.cmake b/SuperBuild/External_Eigen.cmake index 6e5c5a3..bb8ddae 100644 --- a/SuperBuild/External_Eigen.cmake +++ b/SuperBuild/External_Eigen.cmake @@ -10,7 +10,7 @@ if(DEFINED ${extProjName}_DIR AND NOT EXISTS ${${extProjName}_DIR}) endif() # Set dependency list -set(${proj}_DEPENDENCIES "") +set(${proj}_DEPENDENCIES Boost) # Include dependent projects if any ExternalProject_Include_Dependencies(${proj} PROJECT_VAR proj DEPENDS_VAR ${proj}_DEPENDENCIES) @@ -48,7 +48,7 @@ if(NOT ( DEFINED "USE_SYSTEM_${extProjName}" AND "${USE_SYSTEM_${extProjName}}" LOG_INSTALL 0 # Wrap install in script to to ignore log output from dashboards INSTALL_DIR ${${proj}_INSTALL_DIR} CMAKE_GENERATOR ${gen} - CMAKE_ARGS -Wno-dev --no-warn-unused-cli + CMAKE_ARGS -Wno-dev --no-warn-unused-cli -DBOOST_ROOT:PATH=${BOOST_ROOT} -DBoost_NO_BOOST_CMAKE=TRUE -DBoost_NO_SYSTEM_PATHS=TRUE -DBoost_LIBRARY_DIRS:FILEPATH=${BOOST_ROOT}/lib CMAKE_CACHE_ARGS ${CMAKE_OSX_EXTERNAL_PROJECT_ARGS} ${COMMON_EXTERNAL_PROJECT_ARGS}