Build only one of static or shared libraries
As discussed on the forums, to simplify the CMake code and avoid having to manually specify dependencies this removes the hack to allow both static and shared libraries to be built at the same time. It introduces the new variable LIBRARY_TYPE which can be either STATIC or DYNAMIC. See: http://www.volumesoffun.com/phpBB3/viewtopic.php?p=3203#p3203
This commit is contained in:
@ -29,44 +29,27 @@ LINK_DIRECTORIES(${PolyVoxCore_BINARY_DIR}/debug ${PolyVoxCore_BINARY_DIR}/relea
|
||||
|
||||
#Util
|
||||
#Build
|
||||
IF(ENABLE_STATIC_LIBRARIES)
|
||||
ADD_LIBRARY(PolyVoxUtilStatic STATIC ${UTIL_SRC_FILES} ${UTIL_INC_FILES})
|
||||
TARGET_LINK_LIBRARIES(PolyVoxUtilStatic PolyVoxCore)
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtilStatic PROPERTIES OUTPUT_NAME "PolyVoxUtil")
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtilStatic PROPERTIES VERSION ${POLYVOX_VERSION} SOVERSION ${POLYVOX_VERSION_MAJOR})
|
||||
IF(MSVC)
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtilStatic PROPERTIES COMPILE_FLAGS "/W4 /wd4251 /wd4127") #Disable warning on STL exports
|
||||
ENDIF(MSVC)
|
||||
ADD_DEPENDENCIES(PolyVoxUtilStatic PolyVoxCoreStatic)
|
||||
IF(LIBRARY_TYPE STREQUAL "STATIC")
|
||||
ADD_LIBRARY(PolyVoxUtil STATIC ${UTIL_SRC_FILES} ${UTIL_INC_FILES})
|
||||
ENDIF()
|
||||
IF(ENABLE_DYNAMIC_LIBRARIES)
|
||||
ADD_LIBRARY(PolyVoxUtilDynamic SHARED ${UTIL_SRC_FILES} ${UTIL_INC_FILES})
|
||||
TARGET_LINK_LIBRARIES(PolyVoxUtilDynamic PolyVoxCore)
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtilDynamic PROPERTIES OUTPUT_NAME "PolyVoxUtil")
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtilDynamic PROPERTIES COMPILE_FLAGS "-DPOLYVOX_SHARED_EXPORTS")
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtilDynamic PROPERTIES VERSION ${POLYVOX_VERSION} SOVERSION ${POLYVOX_VERSION_MAJOR})
|
||||
IF(MSVC)
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtilDynamic PROPERTIES COMPILE_FLAGS "/W4 /wd4251 /wd4127") #Disable warning on STL exports
|
||||
ENDIF(MSVC)
|
||||
ADD_DEPENDENCIES(PolyVoxUtilDynamic PolyVoxCoreDynamic)
|
||||
IF(LIBRARY_TYPE STREQUAL "DYNAMIC")
|
||||
ADD_LIBRARY(PolyVoxUtil SHARED ${UTIL_SRC_FILES} ${UTIL_INC_FILES})
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtil PROPERTIES COMPILE_FLAGS "-DPOLYVOX_SHARED_EXPORTS")
|
||||
ENDIF()
|
||||
|
||||
TARGET_LINK_LIBRARIES(PolyVoxUtil PolyVoxCore)
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtil PROPERTIES VERSION ${POLYVOX_VERSION} SOVERSION ${POLYVOX_VERSION_MAJOR})
|
||||
IF(MSVC)
|
||||
SET_TARGET_PROPERTIES(PolyVoxUtilStatic PROPERTIES COMPILE_FLAGS "/W4 /wd4251 /wd4127") #Disable warning on STL exports
|
||||
ENDIF(MSVC)
|
||||
|
||||
#Install
|
||||
IF(WIN32)
|
||||
IF(ENABLE_STATIC_LIBRARIES)
|
||||
INSTALL(TARGETS PolyVoxUtilStatic
|
||||
RUNTIME DESTINATION PolyVoxUtil/bin COMPONENT library
|
||||
LIBRARY DESTINATION PolyVoxUtil/lib COMPONENT library
|
||||
ARCHIVE DESTINATION PolyVoxUtil/lib COMPONENT library
|
||||
)
|
||||
ENDIF()
|
||||
IF(ENABLE_DYNAMIC_LIBRARIES)
|
||||
INSTALL(TARGETS PolyVoxUtilDynamic
|
||||
RUNTIME DESTINATION PolyVoxUtil/bin COMPONENT library
|
||||
LIBRARY DESTINATION PolyVoxUtil/lib COMPONENT library
|
||||
ARCHIVE DESTINATION PolyVoxUtil/lib COMPONENT library
|
||||
)
|
||||
ENDIF()
|
||||
INSTALL(TARGETS PolyVoxUtil
|
||||
RUNTIME DESTINATION PolyVoxUtil/bin COMPONENT library
|
||||
LIBRARY DESTINATION PolyVoxUtil/lib COMPONENT library
|
||||
ARCHIVE DESTINATION PolyVoxUtil/lib COMPONENT library
|
||||
)
|
||||
|
||||
#Install the util header files.
|
||||
INSTALL(DIRECTORY include DESTINATION PolyVoxUtil COMPONENT development PATTERN "*.svn*" EXCLUDE)
|
||||
@ -77,20 +60,11 @@ IF(WIN32)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/Debug/PolyVoxUtil.pdb DESTINATION PolyVoxUtil/lib CONFIGURATIONS Debug)
|
||||
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/RelWithDebInfo/PolyVoxUtil.pdb DESTINATION PolyVoxUtil/lib CONFIGURATIONS RelWithDebInfo)
|
||||
ELSE(WIN32)
|
||||
IF(ENABLE_STATIC_LIBRARIES)
|
||||
INSTALL(TARGETS PolyVoxUtilStatic
|
||||
RUNTIME DESTINATION bin COMPONENT library
|
||||
LIBRARY DESTINATION lib COMPONENT library
|
||||
ARCHIVE DESTINATION lib COMPONENT library
|
||||
)
|
||||
ENDIF()
|
||||
IF(ENABLE_DYNAMIC_LIBRARIES)
|
||||
INSTALL(TARGETS PolyVoxUtilDynamic
|
||||
RUNTIME DESTINATION bin COMPONENT library
|
||||
LIBRARY DESTINATION lib COMPONENT library
|
||||
ARCHIVE DESTINATION lib COMPONENT library
|
||||
)
|
||||
ENDIF()
|
||||
INSTALL(TARGETS PolyVoxUtil
|
||||
RUNTIME DESTINATION bin COMPONENT library
|
||||
LIBRARY DESTINATION lib COMPONENT library
|
||||
ARCHIVE DESTINATION lib COMPONENT library
|
||||
)
|
||||
|
||||
#Install the util header files.
|
||||
INSTALL(DIRECTORY include/ DESTINATION include/PolyVoxUtil COMPONENT development PATTERN "*.svn*" EXCLUDE)
|
||||
|
Reference in New Issue
Block a user