From b023cb71be18df4c97a872ad7a7f633ea517087c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 16:02:39 -0700 Subject: [PATCH 01/12] when building RelWithDebInfo check for correct bullet libs --- cmake/externals/bullet/CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/cmake/externals/bullet/CMakeLists.txt b/cmake/externals/bullet/CMakeLists.txt index 125432002c..799306d8e5 100644 --- a/cmake/externals/bullet/CMakeLists.txt +++ b/cmake/externals/bullet/CMakeLists.txt @@ -66,11 +66,15 @@ if (DEFINED BULLET_LIB_EXT) list(GET _LIB_PAIR 0 _LIB_VAR_NAME) list(GET _LIB_PAIR 1 _LIB_NAME) - set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} release library location") + if (WIN32) + # on windows, we might end up with a library that ends with RelWithDebInfo if Visual Studio is building for that configuration + set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$>:_RelWithDebugInfo>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location") + set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_DEBUG ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}_Debug.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} debug library location") else () + set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} release library location") set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_DEBUG "" CACHE FILEPATH "${_LIB_NAME} debug library location") endif () endforeach() From 654ae5032b5c202adc63ff536201bc9e1e2b132c Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 16:11:48 -0700 Subject: [PATCH 02/12] simplify the RelWithDebInfo check in bullet ext --- cmake/externals/bullet/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/externals/bullet/CMakeLists.txt b/cmake/externals/bullet/CMakeLists.txt index 799306d8e5..098f0bb19d 100644 --- a/cmake/externals/bullet/CMakeLists.txt +++ b/cmake/externals/bullet/CMakeLists.txt @@ -70,7 +70,7 @@ if (DEFINED BULLET_LIB_EXT) if (WIN32) # on windows, we might end up with a library that ends with RelWithDebInfo if Visual Studio is building for that configuration - set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$>:_RelWithDebugInfo>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location") + set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$:_RelWithDebugInfo>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location") set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_DEBUG ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}_Debug.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} debug library location") else () From be34e5a814709399677663c15050beb8750443bb Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 16:40:13 -0700 Subject: [PATCH 03/12] fix RelWithDebInfo path for faceshift --- cmake/externals/faceshift/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cmake/externals/faceshift/CMakeLists.txt b/cmake/externals/faceshift/CMakeLists.txt index 28fbffec34..ed387be34f 100644 --- a/cmake/externals/faceshift/CMakeLists.txt +++ b/cmake/externals/faceshift/CMakeLists.txt @@ -27,6 +27,8 @@ set(LIBRARY_RELEASE_PATH "lib/Release") if (WIN32) set(LIBRARY_PREFIX "") set(LIBRARY_EXT "lib") + # use RelWithDebInfo in release path when building RelWithDebInfo config on Windows + set(LIBRARY_RELEASE_PATH "$<$:build/RelWithDebInfo>$<$>:lib/Release>") elseif (APPLE) set(LIBRARY_EXT "a") set(LIBRARY_PREFIX "lib") From 670f51af0b3fffb7080b26b95c0d927235d6c353 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 16:50:03 -0700 Subject: [PATCH 04/12] fix reference to RelWithDebugInfo library for polyvox --- cmake/externals/polyvox/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmake/externals/polyvox/CMakeLists.txt b/cmake/externals/polyvox/CMakeLists.txt index 3740e26762..9aa4bed955 100644 --- a/cmake/externals/polyvox/CMakeLists.txt +++ b/cmake/externals/polyvox/CMakeLists.txt @@ -19,7 +19,7 @@ ExternalProject_Get_Property(${EXTERNAL_NAME} INSTALL_DIR) if (APPLE) set(INSTALL_NAME_LIBRARY_DIR ${INSTALL_DIR}/lib) - + ExternalProject_Add_Step( ${EXTERNAL_NAME} change-install-name-debug @@ -29,7 +29,7 @@ if (APPLE) WORKING_DIRECTORY LOG 1 ) - + ExternalProject_Add_Step( ${EXTERNAL_NAME} change-install-name-release @@ -59,7 +59,7 @@ endif () if (WIN32) set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/PolyVoxCore/lib/Debug/PolyVoxCore.lib CACHE FILEPATH "polyvox core library") - set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE ${INSTALL_DIR}/PolyVoxCore/lib/Release/PolyVoxCore.lib CACHE FILEPATH "polyvox core library") + set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/PolyVoxCore/lib/$<$:RelWithDebInfo>$<$>:Release>/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library") # set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY ${INSTALL_DIR}/PolyVoxUtil/lib/PolyVoxUtil.lib CACHE FILEPATH "polyvox util library") elseif (APPLE) set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/libPolyVoxCore.dylib CACHE FILEPATH "polyvox core library") From e100a7bedbab70e1160f86304083cfb50ade9993 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 16:54:21 -0700 Subject: [PATCH 05/12] point VHACD external to correct library for RelWithDebugInfo --- cmake/externals/vhacd/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/externals/vhacd/CMakeLists.txt b/cmake/externals/vhacd/CMakeLists.txt index efe6ed0381..befdce0b96 100644 --- a/cmake/externals/vhacd/CMakeLists.txt +++ b/cmake/externals/vhacd/CMakeLists.txt @@ -8,7 +8,7 @@ include(ExternalProject) ExternalProject_Add( ${EXTERNAL_NAME} URL http://hifi-public.s3.amazonaws.com/dependencies/v-hacd-master.zip - URL_MD5 3bfc94f8dd3dfbfe8f4dc088f4820b3e + URL_MD5 3bfc94f8dd3dfbfe8f4dc088f4820b3e CMAKE_ARGS ${ANDROID_CMAKE_ARGS} -DCMAKE_INSTALL_PREFIX:PATH= BINARY_DIR ${EXTERNAL_PROJECT_PREFIX}/build LOG_DOWNLOAD 1 @@ -25,7 +25,11 @@ string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) if (WIN32) set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD debug library") - set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/lib/Release/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD release library") + + # use generator expression to ensure the library is found when building RelWithDebInfo in VS + set(_LIB_FOLDER "$<$:build/src/VHACD_Lib/RelWithDebInfo>$<$>:lib/Release>") + + set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/${_LIB_FOLDER}/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD release library") else () set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG "" CACHE FILEPATH "Path to V-HACD debug library") set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/lib/libVHACD.a CACHE FILEPATH "Path to V-HACD release library") From 5311de1f7b2fd050e85b7f5730a7a1ece67bdd60 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 17:05:08 -0700 Subject: [PATCH 06/12] handle MinSizeRel library discovery for bullet external --- cmake/externals/bullet/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/externals/bullet/CMakeLists.txt b/cmake/externals/bullet/CMakeLists.txt index 098f0bb19d..317e3302d9 100644 --- a/cmake/externals/bullet/CMakeLists.txt +++ b/cmake/externals/bullet/CMakeLists.txt @@ -70,7 +70,7 @@ if (DEFINED BULLET_LIB_EXT) if (WIN32) # on windows, we might end up with a library that ends with RelWithDebInfo if Visual Studio is building for that configuration - set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$:_RelWithDebugInfo>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location") + set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_RELEASE "${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}$<$:_RelWithDebugInfo>$<$:_MinsizeRel>.${BULLET_LIB_EXT}" CACHE FILEPATH "${_LIB_NAME} release library location") set(${EXTERNAL_NAME_UPPER}_${_LIB_VAR_NAME}_DEBUG ${BULLET_LIB_DIR}/${LIB_PREFIX}${_LIB_NAME}_Debug.${BULLET_LIB_EXT} CACHE FILEPATH "${_LIB_NAME} debug library location") else () From ee521ed36993ed3ae9f1cd689b1a42dd892d255e Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 17:06:22 -0700 Subject: [PATCH 07/12] handle library release path for faceshift MinSizeRel build --- cmake/externals/faceshift/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/externals/faceshift/CMakeLists.txt b/cmake/externals/faceshift/CMakeLists.txt index ed387be34f..2ab5cfe6c3 100644 --- a/cmake/externals/faceshift/CMakeLists.txt +++ b/cmake/externals/faceshift/CMakeLists.txt @@ -28,7 +28,7 @@ if (WIN32) set(LIBRARY_PREFIX "") set(LIBRARY_EXT "lib") # use RelWithDebInfo in release path when building RelWithDebInfo config on Windows - set(LIBRARY_RELEASE_PATH "$<$:build/RelWithDebInfo>$<$>:lib/Release>") + set(LIBRARY_RELEASE_PATH "$<$:build/RelWithDebInfo>$<$:build/MinSizeRel>$<$:lib/Release>") elseif (APPLE) set(LIBRARY_EXT "a") set(LIBRARY_PREFIX "lib") From 0367f70a390161d27ae25e05fe6f9a164eecd5c8 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 17:07:51 -0700 Subject: [PATCH 08/12] interpolate CONFIG for polyvox library path --- cmake/externals/polyvox/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/externals/polyvox/CMakeLists.txt b/cmake/externals/polyvox/CMakeLists.txt index 9aa4bed955..c0586d88a4 100644 --- a/cmake/externals/polyvox/CMakeLists.txt +++ b/cmake/externals/polyvox/CMakeLists.txt @@ -59,7 +59,7 @@ endif () if (WIN32) set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/PolyVoxCore/lib/Debug/PolyVoxCore.lib CACHE FILEPATH "polyvox core library") - set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/PolyVoxCore/lib/$<$:RelWithDebInfo>$<$>:Release>/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library") + set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/PolyVoxCore/lib/$/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library") # set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY ${INSTALL_DIR}/PolyVoxUtil/lib/PolyVoxUtil.lib CACHE FILEPATH "polyvox util library") elseif (APPLE) set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/libPolyVoxCore.dylib CACHE FILEPATH "polyvox core library") From 6d38b1fe72186f25c06d2556c91f74f785c530a9 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 17:11:30 -0700 Subject: [PATCH 09/12] handle MinSizeRel configuration in vhacd external --- cmake/externals/vhacd/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/externals/vhacd/CMakeLists.txt b/cmake/externals/vhacd/CMakeLists.txt index befdce0b96..779451a304 100644 --- a/cmake/externals/vhacd/CMakeLists.txt +++ b/cmake/externals/vhacd/CMakeLists.txt @@ -26,8 +26,12 @@ string(TOUPPER ${EXTERNAL_NAME} EXTERNAL_NAME_UPPER) if (WIN32) set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD debug library") - # use generator expression to ensure the library is found when building RelWithDebInfo in VS - set(_LIB_FOLDER "$<$:build/src/VHACD_Lib/RelWithDebInfo>$<$>:lib/Release>") + # use generator expression to ensure the correct library is found when building different configurations in VS + set(_LIB_FOLDER """ + $<$:build/src/VHACD_Lib/RelWithDebInfo> + $<$:build/src/VHACD_Lib/MinSizeRel> + $<$,$>:lib/Release> + """) set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/${_LIB_FOLDER}/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD release library") else () From 22c7d4032bd66d47203bbc22d2ee2b81bdc27826 Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 17:13:19 -0700 Subject: [PATCH 10/12] fix debug config handling of release faceshift lib --- cmake/externals/faceshift/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/externals/faceshift/CMakeLists.txt b/cmake/externals/faceshift/CMakeLists.txt index 2ab5cfe6c3..2f49dab428 100644 --- a/cmake/externals/faceshift/CMakeLists.txt +++ b/cmake/externals/faceshift/CMakeLists.txt @@ -27,8 +27,12 @@ set(LIBRARY_RELEASE_PATH "lib/Release") if (WIN32) set(LIBRARY_PREFIX "") set(LIBRARY_EXT "lib") - # use RelWithDebInfo in release path when building RelWithDebInfo config on Windows - set(LIBRARY_RELEASE_PATH "$<$:build/RelWithDebInfo>$<$:build/MinSizeRel>$<$:lib/Release>") + # use selected configuration in release path when building on Windows + set(LIBRARY_RELEASE_PATH """ + $<$:build/RelWithDebInfo> + $<$:build/MinSizeRel> + $<$,$>:lib/Release> + """) elseif (APPLE) set(LIBRARY_EXT "a") set(LIBRARY_PREFIX "lib") From 85dc63a671ed0be16af32f1a5346bdbcf18836fd Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 17:14:44 -0700 Subject: [PATCH 11/12] fix multi-line strings in VHACD and faceshift externals --- cmake/externals/faceshift/CMakeLists.txt | 8 +++----- cmake/externals/vhacd/CMakeLists.txt | 8 +++----- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/cmake/externals/faceshift/CMakeLists.txt b/cmake/externals/faceshift/CMakeLists.txt index 2f49dab428..c4f2055435 100644 --- a/cmake/externals/faceshift/CMakeLists.txt +++ b/cmake/externals/faceshift/CMakeLists.txt @@ -28,11 +28,9 @@ if (WIN32) set(LIBRARY_PREFIX "") set(LIBRARY_EXT "lib") # use selected configuration in release path when building on Windows - set(LIBRARY_RELEASE_PATH """ - $<$:build/RelWithDebInfo> - $<$:build/MinSizeRel> - $<$,$>:lib/Release> - """) + set(LIBRARY_RELEASE_PATH "$<$:build/RelWithDebInfo>") + set(LIBRARY_RELEASE_PATH "${LIBRARY_RELEASE_PATH}$<$:build/MinSizeRel>") + set(LIBRARY_RELEASE_PATH "${LIBRARY_RELEASE_PATH}$<$,$>:lib/Release>") elseif (APPLE) set(LIBRARY_EXT "a") set(LIBRARY_PREFIX "lib") diff --git a/cmake/externals/vhacd/CMakeLists.txt b/cmake/externals/vhacd/CMakeLists.txt index 779451a304..11afa255f1 100644 --- a/cmake/externals/vhacd/CMakeLists.txt +++ b/cmake/externals/vhacd/CMakeLists.txt @@ -27,11 +27,9 @@ if (WIN32) set(${EXTERNAL_NAME_UPPER}_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD debug library") # use generator expression to ensure the correct library is found when building different configurations in VS - set(_LIB_FOLDER """ - $<$:build/src/VHACD_Lib/RelWithDebInfo> - $<$:build/src/VHACD_Lib/MinSizeRel> - $<$,$>:lib/Release> - """) + set(_LIB_FOLDER "$<$:build/src/VHACD_Lib/RelWithDebInfo>") + set(_LIB_FOLDER "${_LIB_FOLDER}$<$:build/src/VHACD_Lib/MinSizeRel>") + set(_LIB_FOLDER "${_LIB_FOLDER}$<$,$>:lib/Release>") set(${EXTERNAL_NAME_UPPER}_LIBRARY_RELEASE ${INSTALL_DIR}/${_LIB_FOLDER}/VHACD_LIB.lib CACHE FILEPATH "Path to V-HACD release library") else () From a7987734251ab53807cdac97296249a3d235688b Mon Sep 17 00:00:00 2001 From: Stephen Birarda Date: Thu, 23 Mar 2017 17:31:02 -0700 Subject: [PATCH 12/12] fix polyvox location for MinSizeRel --- cmake/externals/polyvox/CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmake/externals/polyvox/CMakeLists.txt b/cmake/externals/polyvox/CMakeLists.txt index c0586d88a4..c799b45e78 100644 --- a/cmake/externals/polyvox/CMakeLists.txt +++ b/cmake/externals/polyvox/CMakeLists.txt @@ -59,7 +59,13 @@ endif () if (WIN32) set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/PolyVoxCore/lib/Debug/PolyVoxCore.lib CACHE FILEPATH "polyvox core library") - set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/PolyVoxCore/lib/$/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library") + + # use generator expression to ensure the correct library is found when building different configurations in VS + set(_LIB_FOLDER "$<$:PolyVoxCore/lib/RelWithDebInfo>") + set(_LIB_FOLDER "${_LIB_FOLDER}$<$:build/library/PolyVoxCore/MinSizeRel>") + set(_LIB_FOLDER "${_LIB_FOLDER}$<$,$>:PolyVoxCore/lib/Release>") + + set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_RELEASE "${INSTALL_DIR}/${_LIB_FOLDER}/PolyVoxCore.lib" CACHE FILEPATH "polyvox core library") # set(${EXTERNAL_NAME_UPPER}_UTIL_LIBRARY ${INSTALL_DIR}/PolyVoxUtil/lib/PolyVoxUtil.lib CACHE FILEPATH "polyvox util library") elseif (APPLE) set(${EXTERNAL_NAME_UPPER}_CORE_LIBRARY_DEBUG ${INSTALL_DIR}/lib/Debug/libPolyVoxCore.dylib CACHE FILEPATH "polyvox core library")