Revision: 77244
http://sourceforge.net/p/brlcad/code/77244
Author: starseeker
Date: 2020-09-26 17:41:28 +0000 (Sat, 26 Sep 2020)
Log Message:
-----------
Replace hardcoding with variables, try to minimize MSVC conditionals in higher
level code.
Modified Paths:
--------------
brlcad/branches/thirdparty_rework/misc/CMake/ExternalProject_Target.cmake
brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt
Modified:
brlcad/branches/thirdparty_rework/misc/CMake/ExternalProject_Target.cmake
===================================================================
--- brlcad/branches/thirdparty_rework/misc/CMake/ExternalProject_Target.cmake
2020-09-26 15:50:10 UTC (rev 77243)
+++ brlcad/branches/thirdparty_rework/misc/CMake/ExternalProject_Target.cmake
2020-09-26 17:41:28 UTC (rev 77244)
@@ -238,13 +238,13 @@
set(E_SHARED 1)
endif (E_OUTPUT_FILE AND NOT E_EXEC)
- if (E_LINK_TARGET_DEBUG)
+ if (E_LINK_TARGET_DEBUG AND NOT MSVC)
set(LINK_TARGET_DEBUG "${E_LINK_TARGET_DEBUG}")
- endif (E_LINK_TARGET_DEBUG)
+ endif (E_LINK_TARGET_DEBUG AND NOT MSVC)
- if (E_STATIC_LINK_TARGET_DEBUG)
+ if (E_STATIC_LINK_TARGET_DEBUG AND NOT MSVC)
set(STATIC LINK_TARGET_DEBUG "${E_STATIC_LINK_TARGET_DEBUG}")
- endif (E_STATIC_LINK_TARGET_DEBUG)
+ endif (E_STATIC_LINK_TARGET_DEBUG AND NOT MSVC)
# Create imported target - need to both make the target itself
# and set the necessary properties. See also
@@ -257,11 +257,11 @@
# Handle shared library
if (E_SHARED)
add_library(${etarg} SHARED IMPORTED GLOBAL)
- if (E_LINK_TARGET)
+ if (E_LINK_TARGET AND NOT MSVC)
ET_target_props(${etarg} "${E_IMPORT_PREFIX}" ${E_LINK_TARGET}
LINK_TARGET_DEBUG "${LINK_TARGET_DEBUG}")
- else (E_LINK_TARGET)
+ else (E_LINK_TARGET AND NOT MSVC)
ET_target_props(${etarg} "${E_IMPORT_PREFIX}" ${E_OUTPUT_FILE}
LINK_TARGET_DEBUG "${LINK_TARGET_DEBUG}")
- endif (E_LINK_TARGET)
+ endif (E_LINK_TARGET AND NOT MSVC)
install(FILES
"${CMAKE_BINARY_DIR}/${LIB_DIR}/${E_SUBDIR}/${E_OUTPUT_FILE}" DESTINATION
${LIB_DIR}/${E_SUBDIR})
if (E_RPATH AND NOT MSVC)
@@ -272,11 +272,11 @@
# If we do have a static lib as well, handle that
if (E_STATIC AND BUILD_STATIC_LIBS)
add_library(${etarg}-static STATIC IMPORTED GLOBAL)
- if (E_STATIC_LINK_TARGET)
+ if (E_STATIC_LINK_TARGET AND NOT MSVC)
ET_target_props(${etarg}-static "${E_IMPORT_PREFIX}"
${E_STATIC_LINK_TARGET} STATIC_LINK_TARGET_DEBUG "${STATIC_LINK_TARGET_DEBUG}"
STATIC)
- else (E_STATIC_LINK_TARGET)
+ else (E_STATIC_LINK_TARGET AND NOT MSVC)
ET_target_props(${etarg}-static "${E_IMPORT_PREFIX}"
${E_STATIC_OUTPUT_FILE} STATIC_LINK_TARGET_DEBUG "${STATIC_LINK_TARGET_DEBUG}"
STATIC)
- endif (E_STATIC_LINK_TARGET)
+ endif (E_STATIC_LINK_TARGET AND NOT MSVC)
if (MSVC)
install(FILES
"${CMAKE_BINARY_DIR}/${BIN_DIR}/${E_SUBDIR}/${E_OUTPUT_FILE}" DESTINATION
${BIN_DIR}/${E_SUBDIR})
else (MSVC)
@@ -299,11 +299,11 @@
add_dependencies(${etarg} ${extproj})
# Add install rules for any symlinks the caller has listed
- if(E_SYMLINKS)
+ if(E_SYMLINKS AND NOT MSVC)
foreach(slink ${E_SYMLINKS})
install(FILES "${CMAKE_BINARY_DIR}/${LIB_DIR}/${E_SUBDIR}/${slink}"
DESTINATION ${LIB_DIR}/${E_SUBDIR})
endforeach(slink ${E_SYMLINKS})
- endif (E_SYMLINKS)
+ endif(E_SYMLINKS AND NOT MSVC)
endfunction(ExternalProject_Target)
Modified: brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt
===================================================================
--- brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt
2020-09-26 15:50:10 UTC (rev 77243)
+++ brlcad/branches/thirdparty_rework/src/superbuild/CMakeLists.txt
2020-09-26 17:41:28 UTC (rev 77244)
@@ -41,6 +41,14 @@
add_definitions(-DZ_PREFIX_STR=${Z_PREFIX_STR})
set(Z_PREFIX_STR "${Z_PREFIX_STR}" CACHE STRING "prefix for zlib functions"
FORCE)
+ if (MSVC)
+ set(ZLIB_BASENAME z_brl)
+ set(ZLIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
+ else (MSVC)
+ set(ZLIB_BASENAME libz_brl)
+ set(ZLIB_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}.${ZLIB_VERSION})
+ endif (MSVC)
+
ExternalProject_Add(ZLIB_BLD
SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../other/libz"
BUILD_ALWAYS ${EXTERNAL_BUILD_UPDATE} ${LOG_OPTS}
@@ -48,23 +56,13 @@
-DCMAKE_INSTALL_RPATH=${CMAKE_BUILD_RPATH}
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
-DZ_PREFIX_STR=${Z_PREFIX_STR}
)
- if (NOT MSVC)
- ExternalProject_Target(zlib ZLIB_BLD
- OUTPUT_FILE libz_brl${CMAKE_SHARED_LIBRARY_SUFFIX}.${ZLIB_VERSION}
- STATIC_OUTPUT_FILE libz${CMAKE_STATIC_LIBRARY_SUFFIX}
- SYMLINKS
"libz_brl${CMAKE_SHARED_LIBRARY_SUFFIX};libz_brl${CMAKE_SHARED_LIBRARY_SUFFIX}.1"
- LINK_TARGET "libz_brl${CMAKE_SHARED_LIBRARY_SUFFIX}"
- RPATH
- )
- set(ZLIB_BASENAME libz_brl)
- else (NOT MSVC)
- ExternalProject_Target(zlib ZLIB_BLD
- OUTPUT_FILE zlib${CMAKE_SHARED_LIBRARY_SUFFIX}
- STATIC_OUTPUT_FILE z_brl${CMAKE_STATIC_LIBRARY_SUFFIX}
- )
- set(ZLIB_BASENAME z_brl)
- endif (NOT MSVC)
-
+ ExternalProject_Target(zlib ZLIB_BLD
+ OUTPUT_FILE ${ZLIB_BASENAME}${ZLIB_SUFFIX}
+ STATIC_OUTPUT_FILE ${ZLIB_BASENAME}${CMAKE_STATIC_LIBRARY_SUFFIX}
+ SYMLINKS
"${ZLIB_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX};${ZLIB_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.1"
+ LINK_TARGET "${ZLIB_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+ RPATH
+ )
ExternalProject_ByProducts(ZLIB_BLD ${INCLUDE_DIR}
zconf.h
zlib.h
@@ -107,6 +105,14 @@
set(OPENNURBS_PATCH_VERSION 245)
set(OPENNURBS_VERSION
${OPENNURBS_MAJOR_VERSION}.${OPENNURBS_MINOR_VERSION}.${OPENNURBS_PATCH_VERSION})
+ if (MSVC)
+ set(OPENNURBS_BASENAME openNURBS)
+ set(OPENNURBS_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
+ else (MSVC)
+ set(OPENNURBS_BASENAME libopenNURBS)
+ set(OPENNURBS_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX}.${OPENNURBS_VERSION})
+ endif (MSVC)
+
# Because we use a custom name for zlib, we need to conditionally use a
# generator expression to set its location for FindZLIB. So far, haven't
# found a less verbose way to make this work...
@@ -125,16 +131,15 @@
BUILD_ALWAYS ${EXTERNAL_BUILD_UPDATE} ${LOG_OPTS}
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}
-DLIB_DIR=${LIB_DIR} -DBIN_DIR=${BIN_DIR}
-DCMAKE_INSTALL_RPATH=${CMAKE_BUILD_RPATH}
-DBUILD_STATIC_LIBS=${BUILD_STATIC_LIBS}
- DEPENDS ${ZLIB_TARGET}
)
endif (TARGET zlib)
ExternalProject_Target(openNURBS OPENNURBS_BLD
- OUTPUT_FILE libopenNURBS${CMAKE_SHARED_LIBRARY_SUFFIX}.${OPENNURBS_VERSION}
- STATIC_OUTPUT_FILE libopenNURBS${CMAKE_STATIC_LIBRARY_SUFFIX}
- SYMLINKS
"libopenNURBS${CMAKE_SHARED_LIBRARY_SUFFIX};libopenNURBS${CMAKE_SHARED_LIBRARY_SUFFIX}.${OPENNURBS_MAJOR_VERSION}"
- LINK_TARGET "libopenNURBS${CMAKE_SHARED_LIBRARY_SUFFIX}"
- STATIC_LINK_TARGET "libopenNURBS${CMAKE_STATIC_LIBRARY_SUFFIX}"
+ OUTPUT_FILE ${OPENNURBS_BASENAME}${OPENNURBS_SUFFIX}
+ STATIC_OUTPUT_FILE ${OPENNURBS_BASENAME}${CMAKE_STATIC_LIBRARY_SUFFIX}
+ SYMLINKS
"${OPENNURBS_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX};${OPENNURBS_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}.${OPENNURBS_MAJOR_VERSION}"
+ LINK_TARGET "${OPENNURBS_BASENAME}${CMAKE_SHARED_LIBRARY_SUFFIX}"
+ STATIC_LINK_TARGET "${OPENNURBS_BASENAME}${CMAKE_STATIC_LIBRARY_SUFFIX}"
RPATH
)
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits