mirror of
https://github.com/KjellKod/g3log.git
synced 2025-03-04 19:13:31 +01:00
Issue #182: Provide means for building static version of library
This commit is contained in:
parent
a1b5d97689
commit
04f71853d7
42
Build.cmake
42
Build.cmake
@ -104,32 +104,48 @@ ENDIF()
|
||||
|
||||
# Create the g3log library
|
||||
INCLUDE_DIRECTORIES(${LOG_SRC})
|
||||
SET(G3LOG_LIBRARY g3logger)
|
||||
|
||||
ADD_LIBRARY(${G3LOG_LIBRARY} SHARED ${SRC_FILES})
|
||||
SET(${G3LOG_LIBRARY}_VERSION_STRING ${VERSION})
|
||||
MESSAGE("Creating ${G3LOG_LIBRARY} VERSION: " ${VERSION})
|
||||
SET_TARGET_PROPERTIES(g3logger PROPERTIES LINKER_LANGUAGE CXX SOVERSION ${VERSION})
|
||||
SET(G3LOG_LIBRARY g3logger)
|
||||
SET(G3LOG_LIBRARY_STATIC g3logger_static)
|
||||
|
||||
set_target_properties(${G3LOG_LIBRARY} PROPERTIES
|
||||
IF (LIB_DYNAMIC OR LIB_STATIC)
|
||||
SET(${G3LOG_LIBRARY}_VERSION_STRING ${VERSION})
|
||||
MESSAGE("Creating ${G3LOG_LIBRARY} VERSION: " ${VERSION})
|
||||
ENDIF()
|
||||
|
||||
IF(LIB_DYNAMIC)
|
||||
ADD_LIBRARY(${G3LOG_LIBRARY} SHARED ${SRC_FILES})
|
||||
SET_TARGET_PROPERTIES(g3logger PROPERTIES LINKER_LANGUAGE CXX SOVERSION ${VERSION})
|
||||
set_target_properties(${G3LOG_LIBRARY} PROPERTIES
|
||||
LINKER_LANGUAGE CXX
|
||||
OUTPUT_NAME g3logger
|
||||
CLEAN_DIRECT_OUTPUT 1)
|
||||
|
||||
IF(APPLE)
|
||||
set_target_properties(${G3LOG_LIBRARY} PROPERTIES MACOSX_RPATH TRUE)
|
||||
IF(APPLE)
|
||||
set_target_properties(${G3LOG_LIBRARY} PROPERTIES MACOSX_RPATH TRUE)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
IF(LIB_STATIC)
|
||||
ADD_LIBRARY(${G3LOG_LIBRARY_STATIC} STATIC ${SRC_FILES})
|
||||
SET_TARGET_PROPERTIES(${G3LOG_LIBRARY_STATIC} PROPERTIES LINKER_LANGUAGE CXX OUTPUT_NAME ${G3LOG_LIBRARY})
|
||||
ENDIF()
|
||||
|
||||
|
||||
IF(NOT ${ADD_BUILD_WIN_SHARED}.x STREQUAL ".x")
|
||||
IF(NOT(CMAKE_VERSION LESS 3.4) AND MSVC)
|
||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
TARGET_LINK_LIBRARIES(${G3LOG_LIBRARY} ${PLATFORM_LINK_LIBRIES})
|
||||
|
||||
# Kjell: This is likely not necessary, except for Windows?
|
||||
TARGET_INCLUDE_DIRECTORIES(${G3LOG_LIBRARY} PUBLIC ${LOG_SRC})
|
||||
IF (LIB_DYNAMIC)
|
||||
TARGET_LINK_LIBRARIES(${G3LOG_LIBRARY} ${PLATFORM_LINK_LIBRIES})
|
||||
# Kjell: This is likely not necessary, except for Windows?
|
||||
TARGET_INCLUDE_DIRECTORIES(${G3LOG_LIBRARY} PUBLIC ${LOG_SRC})
|
||||
ENDIF()
|
||||
|
||||
|
||||
IF (LIB_STATIC)
|
||||
TARGET_LINK_LIBRARIES(${G3LOG_LIBRARY_STATIC} ${PLATFORM_LINK_LIBRIES})
|
||||
ENDIF()
|
||||
|
||||
|
@ -40,18 +40,27 @@ SET(CPACK_RESOURCE_FILE_LICENSE ${g3log_SOURCE_DIR}/LICENSE)
|
||||
SET(CPACK_PACKAGE_VENDOR "KjellKod")
|
||||
SET(CMAKE_INSTALL_HEADERDIR ${CMAKE_INSTALL_HEADERDIR}/g3log)
|
||||
|
||||
|
||||
IF(LIB_DYNAMIC)
|
||||
INSTALL( TARGETS g3logger
|
||||
ARCHIVE DESTINATION ${CPACK_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CPACK_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT libraries)
|
||||
ENDIF()
|
||||
|
||||
IF(LIB_STATIC)
|
||||
INSTALL( TARGETS g3logger_static
|
||||
ARCHIVE DESTINATION ${CPACK_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
|
||||
COMPONENT libraries)
|
||||
ENDIF()
|
||||
|
||||
IF(LIB_DYNAMIC OR LIB_STATIC)
|
||||
INSTALL( FILES ${HEADER_FILES}
|
||||
DESTINATION ${CPACK_INSTALL_PREFIX}/${CMAKE_INSTALL_HEADERDIR}
|
||||
COMPONENT headers)
|
||||
|
||||
INSTALL( FILES ${PROJECT_SOURCE_DIR}/cmake/g3loggerConfig.cmake
|
||||
DESTINATION ${CPACK_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/g3logger)
|
||||
ENDIF()
|
||||
|
||||
SET(CPACK_COMPONENTS_ALL libraries headers)
|
||||
SET(CPACK_COMPONENT_LIBRARIES_DISPLAY_NAME "G3Log libraries")
|
||||
|
@ -109,10 +109,27 @@ IF (MSVC OR MINGW)
|
||||
MESSAGE("-DADD_BUILD_WIN_SHARED=OFF")
|
||||
ENDIF()
|
||||
ENDIF (MSVC OR MINGW)
|
||||
|
||||
# -DLIB_DYNAMIC=ON : Build dynamic version of the library
|
||||
option (LIB_DYNAMIC
|
||||
"Build dynamic version of the library. By default the dynamic library will be generated" ON)
|
||||
IF (LIB_DYNAMIC)
|
||||
MESSAGE("-DLIB_DYNAMIC=ON\t\t\t(Dynamic library will be built)")
|
||||
ELSE()
|
||||
MESSAGE("-DLIB_DYNAMIC=OFF\t\t\t(Dynamic library will not be built)")
|
||||
ENDIF(LIB_DYNAMIC)
|
||||
|
||||
# -DLIB_STATIC=ON : Build static version of the library
|
||||
option (LIB_STATIC
|
||||
"Build static version of the library. By default the static library will not be generated" OFF)
|
||||
IF (LIB_STATIC)
|
||||
MESSAGE("-DLIB_STATIC=ON\t\t\t\t(Static library will be built)")
|
||||
ELSE()
|
||||
MESSAGE("-DLIB_STATIC=OFF\t\t\t(Static library will not be built)")
|
||||
ENDIF(LIB_STATIC)
|
||||
|
||||
MESSAGE("\n\n\n")
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -30,7 +30,7 @@
|
||||
option (ADD_FATAL_EXAMPLE "Fatal (fatal-crashes/contract) examples " ON)
|
||||
|
||||
|
||||
IF (ADD_FATAL_EXAMPLE)
|
||||
IF (ADD_FATAL_EXAMPLE AND LIB_DYNAMIC)
|
||||
MESSAGE("-DADD_FATAL_EXAMPLE=ON")
|
||||
MESSAGE("\t\t[contract][sigsegv][fatal choice] are examples of when g3log comes in handy\n")
|
||||
include_directories (${DIR_EXAMPLE})
|
||||
@ -43,4 +43,4 @@
|
||||
target_link_libraries(g3log-FATAL-choice ${G3LOG_LIBRARY} ${EXAMPLE_PLATFORM_LINK_LIBRIES})
|
||||
ELSE()
|
||||
MESSAGE("-DADD_SIMPLE_EXAMPLE=OFF")
|
||||
ENDIF (ADD_FATAL_EXAMPLE)
|
||||
ENDIF (ADD_FATAL_EXAMPLE AND LIB_DYNAMIC)
|
||||
|
Loading…
x
Reference in New Issue
Block a user