From 83e99243558f7e6599c670c4c98470960a58a048 Mon Sep 17 00:00:00 2001 From: Ihab Date: Thu, 6 Aug 2020 07:03:45 -0700 Subject: [PATCH 1/3] Fixing cmake build configuration for multi-config generators --- cmake/compiler/ispc.cmake | 18 ++++++++--------- cmake/ospray_macros.cmake | 33 ++++--------------------------- scripts/superbuild/CMakeLists.txt | 5 +---- 3 files changed, 13 insertions(+), 43 deletions(-) diff --git a/cmake/compiler/ispc.cmake b/cmake/compiler/ispc.cmake index 3716d4d43a..7a0d585181 100644 --- a/cmake/compiler/ispc.cmake +++ b/cmake/compiler/ispc.cmake @@ -128,16 +128,13 @@ macro (ispc_compile) mark_as_advanced(ISPC_FLAGS_RELEASE) set(ISPC_FLAGS_RELWITHDEBINFO "-O2 -g" CACHE STRING "ISPC Release with Debug symbols flags") mark_as_advanced(ISPC_FLAGS_RELWITHDEBINFO) - if (WIN32 OR "${CMAKE_BUILD_TYPE}" STREQUAL "Release") - set(ISPC_OPT_FLAGS ${ISPC_FLAGS_RELEASE}) - elseif ("${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - set(ISPC_OPT_FLAGS ${ISPC_FLAGS_DEBUG}) - else() - set(ISPC_OPT_FLAGS ${ISPC_FLAGS_RELWITHDEBINFO}) - endif() - - # turn space sparated list into ';' separated list - string(REPLACE " " ";" ISPC_OPT_FLAGS "${ISPC_OPT_FLAGS}") + set(ISPC_OPT_FLAGS + $,${ISPC_FLAGS_DEBUG}, + $,${ISPC_FLAGS_RELEASE}, + ${ISPC_FLAGS_RELWITHDEBINFO}>> + ) + string(REPLACE ";" "" ISPC_OPT_FLAGS "${ISPC_OPT_FLAGS}") + string(REPLACE " " "$" ISPC_OPT_FLAGS "${ISPC_OPT_FLAGS}") if (NOT WIN32) set(ISPC_ADDITIONAL_ARGS ${ISPC_ADDITIONAL_ARGS} --pic) @@ -205,6 +202,7 @@ macro (ispc_compile) ${input} DEPENDS ${input} ${deps} COMMENT "Building ISPC object ${outdir}/${fname}.dev${ISPC_TARGET_EXT}" + COMMAND_EXPAND_LISTS ) list(APPEND ISPC_OBJECTS ${results}) diff --git a/cmake/ospray_macros.cmake b/cmake/ospray_macros.cmake index c3a9ea5489..3e7b949511 100644 --- a/cmake/ospray_macros.cmake +++ b/cmake/ospray_macros.cmake @@ -30,36 +30,11 @@ macro(add_all_subdirectories) endforeach(dir ${dirs}) endmacro() -## Setup CMAKE_BUILD_TYPE to have a default + cycle between options in UI +## Setup ospray build type according to config (works for single and multi-config generators) macro(ospray_configure_build_type) - set(CONFIGURATION_TYPES "Debug;Release;RelWithDebInfo") - if(NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Choose the build type." FORCE) - endif() - if (WIN32) - if (NOT OSPRAY_DEFAULT_CMAKE_CONFIGURATION_TYPES_SET) - set(CMAKE_CONFIGURATION_TYPES "${CONFIGURATION_TYPES}" - CACHE STRING "List of generated configurations." FORCE) - set(OSPRAY_DEFAULT_CMAKE_CONFIGURATION_TYPES_SET ON - CACHE INTERNAL "Default CMake configuration types set.") - endif() - else() - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS ${CONFIGURATION_TYPES}) - endif() - - if (${CMAKE_BUILD_TYPE} STREQUAL "Release") - set(OSPRAY_BUILD_RELEASE TRUE ) - set(OSPRAY_BUILD_DEBUG FALSE) - set(OSPRAY_BUILD_RELWITHDEBINFO FALSE) - elseif (${CMAKE_BUILD_TYPE} STREQUAL "Debug") - set(OSPRAY_BUILD_RELEASE FALSE) - set(OSPRAY_BUILD_DEBUG TRUE ) - set(OSPRAY_BUILD_RELWITHDEBINFO FALSE) - else() - set(OSPRAY_BUILD_RELEASE FALSE) - set(OSPRAY_BUILD_DEBUG FALSE) - set(OSPRAY_BUILD_RELWITHDEBINFO TRUE ) - endif() + set(OSPRAY_BUILD_RELEASE $>) + set(OSPRAY_BUILD_DEBUG $>) + set(OSPRAY_BUILD_RELWITHDEBINFO $>) endmacro() # workaround link issues to Embree ISPC exports diff --git a/scripts/superbuild/CMakeLists.txt b/scripts/superbuild/CMakeLists.txt index 729dc46941..d3328c84b1 100644 --- a/scripts/superbuild/CMakeLists.txt +++ b/scripts/superbuild/CMakeLists.txt @@ -13,9 +13,6 @@ if(NOT CMAKE_INSTALL_PREFIX) CACHE STRING "Final install location." FORCE) endif() -if (NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release) -endif() if (NOT DEPENDENCIES_BUILD_TYPE) set(DEPENDENCIES_BUILD_TYPE Release) endif() @@ -121,7 +118,7 @@ endif() include(dep_glm) ## Build main projects ## -set(DEFAULT_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config ${CMAKE_BUILD_TYPE} ${PARALLEL_JOBS_OPTS}) +set(DEFAULT_BUILD_COMMAND ${CMAKE_COMMAND} --build . --config $ ${PARALLEL_JOBS_OPTS}) if (NOT BUILD_DEPENDENCIES_ONLY) include(build_ospray.cmake) From 06ea1106452c538da11ec59a7ddd27ebe8d58994 Mon Sep 17 00:00:00 2001 From: Ihab Date: Sun, 9 Aug 2020 12:21:53 -0700 Subject: [PATCH 2/3] removing ospray_configure_build_type since it requires cmake file generation --- cmake/ospray_macros.cmake | 7 ------- cmake/ospray_options.cmake | 1 - 2 files changed, 8 deletions(-) diff --git a/cmake/ospray_macros.cmake b/cmake/ospray_macros.cmake index 3e7b949511..8843967dd0 100644 --- a/cmake/ospray_macros.cmake +++ b/cmake/ospray_macros.cmake @@ -30,13 +30,6 @@ macro(add_all_subdirectories) endforeach(dir ${dirs}) endmacro() -## Setup ospray build type according to config (works for single and multi-config generators) -macro(ospray_configure_build_type) - set(OSPRAY_BUILD_RELEASE $>) - set(OSPRAY_BUILD_DEBUG $>) - set(OSPRAY_BUILD_RELWITHDEBINFO $>) -endmacro() - # workaround link issues to Embree ISPC exports # ISPC only adds the ISA suffix during name mangling (and dynamic dispatch # code) when compiling for multiple targets. Thus, when only one OSPRay ISA is diff --git a/cmake/ospray_options.cmake b/cmake/ospray_options.cmake index b49af3a0b4..a50b5d785e 100644 --- a/cmake/ospray_options.cmake +++ b/cmake/ospray_options.cmake @@ -18,7 +18,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}) -ospray_configure_build_type() ospray_configure_compiler() ########################################################### From 86d00b19e1a93ef70a34bd1f19c7a44d8739fca8 Mon Sep 17 00:00:00 2001 From: Ihab Date: Sun, 9 Aug 2020 14:04:52 -0700 Subject: [PATCH 3/3] Removing OSPRAY_BUILD_RELEASE/DEBUG/RELWITHDEBINFO from the config file --- cmake/ospray_cmake_config/osprayConfig.cmake.in | 4 ---- 1 file changed, 4 deletions(-) diff --git a/cmake/ospray_cmake_config/osprayConfig.cmake.in b/cmake/ospray_cmake_config/osprayConfig.cmake.in index 76b28a258f..e09670f385 100644 --- a/cmake/ospray_cmake_config/osprayConfig.cmake.in +++ b/cmake/ospray_cmake_config/osprayConfig.cmake.in @@ -82,10 +82,6 @@ set(OSPRAY_SOVERSION @OSPRAY_SOVERSION@) set(OSPRAY_INSTALL_DEPENDENCIES @OSPRAY_INSTALL_DEPENDENCIES@) -set(OSPRAY_BUILD_DEBUG @OSPRAY_BUILD_DEBUG@) -set(OSPRAY_BUILD_RELWITHDEBINFO @OSPRAY_BUILD_RELWITHDEBINFO@) -set(OSPRAY_BUILD_RELEASE @OSPRAY_BUILD_RELEASE@) - set(OSPRAY_COMPILER_ICC @OSPRAY_COMPILER_ICC@) set(OSPRAY_COMPILER_GCC @OSPRAY_COMPILER_GCC@) set(OSPRAY_COMPILER_CLANG @OSPRAY_COMPILER_CLANG@)