Commit 6048802decaf0e2d2888a4497d757cba0c2f7989

Authored by Peter M. Groen
1 parent 586e5e7b

Add switch for building a shared or static library

Showing 1 changed file with 13 additions and 6 deletions
library.cmake
1   -# @brief Adds a single shared library target and performs related actions,
2   -# such as target properties, hsoa versioning, and some packaging variables.
  1 +# @brief Adds a single shared or static library target and performs related actions,
  2 +# such as target properties and some packaging variables.
3 3 # @note The default binary directory is CMAKE_BINARY_DIR, but can be overridden by specifying the ${PROJECT_NAME}_CURRENT_BINARY_DIR.
4 4 function(add_libraries)
5 5  
... ... @@ -12,10 +12,17 @@ if (${PROJECT_NAME}_CURRENT_BINARY_DIR)
12 12 endif()
13 13 message(STATUS "CURRENT_PROJECT_BINARY_DIR : ${CURRENT_PROJECT_BINARY_DIR}")
14 14  
15   -include_directories(${HSOA_VERSION_INCLUDE_DIR})
  15 +if(DEFINED ${BUILD_STATIC})
  16 + if(${BUILD_STATIC} STREQUAL "ON")
  17 + set(SHARED_OR_STATIC "STATIC")
  18 + else()
  19 + set(SHARED_OR_STATIC "SHARED")
  20 + endif()
  21 +else()
  22 + set(SHARED_OR_STATIC "SHARED")
  23 +endif()
16 24  
17   -add_library( ${PROJECT_NAME} SHARED
18   - ${HSOA_VERSION_SRC_FILE}
  25 +add_library( ${PROJECT_NAME} ${SHARED_OR_STATIC}
19 26 ${SRC_LIST}
20 27 )
21 28  
... ... @@ -28,7 +35,7 @@ set_target_properties( ${PROJECT_NAME}
28 35 VERSION ${PROJECT_VERSION}
29 36 SOVERSION ${PROJECT_VERSION_MAJOR}
30 37 LIBRARY_OUTPUT_DIRECTORY ${CURRENT_PROJECT_BINARY_DIR}/lib
31   - ARCHIVE_OUTPUT_DIRECTORY ${CURRENT_PROJECT_BINARY_DIR}/archive
  38 + ARCHIVE_OUTPUT_DIRECTORY ${CURRENT_PROJECT_BINARY_DIR}/lib
32 39 )
33 40  
34 41 endfunction()
... ...