| diff --git a/CMakeLists.txt b/CMakeLists.txt |
| index ba692ff..fc2edff 100644 |
| --- a/CMakeLists.txt |
| +++ b/CMakeLists.txt |
| @@ -65,6 +65,7 @@ include(GNUInstallDirs) |
| include(CMakePackageConfigHelpers) |
| |
| option(BUILD_SHARED_LIBS "Default to building shared libraries" ON) |
| +option(BUILD_STATIC_LIBS "Default to building static libraries" OFF) |
| |
| # Generate a release merge and test it to verify the correctness of republishing the package. |
| ADD_CUSTOM_TARGET(distcheck |
| @@ -383,7 +384,7 @@ add_library(${PROJECT_NAME} |
| set_target_properties(${PROJECT_NAME} PROPERTIES |
| VERSION 5.0.0 |
| SOVERSION 5) |
| - |
| +list(APPEND CMAKE_TARGETS ${PROJECT_NAME}) |
| # If json-c is used as subroject it set to target correct interface -I flags and allow |
| # to build external target without extra include_directories(...) |
| target_include_directories(${PROJECT_NAME} |
| @@ -392,7 +393,33 @@ target_include_directories(${PROJECT_NAME} |
| $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}> |
| ) |
| |
| -install(TARGETS ${PROJECT_NAME} |
| +# Allow to build static and shared libraries at the same time |
| +if (BUILD_STATIC_LIBS) |
| + set(STATIC_LIB ${PROJECT_NAME}-static) |
| + add_library(${STATIC_LIB} STATIC |
| + ${JSON_C_SOURCES} |
| + ${JSON_C_HEADERS} |
| + ) |
| + |
| + # rename the static library |
| + set_target_properties(${STATIC_LIB} PROPERTIES |
| + OUTPUT_NAME ${PROJECT_NAME} |
| + ) |
| + list(APPEND CMAKE_TARGETS ${STATIC_LIB}) |
| +endif () |
| + |
| +# Always create new install dirs with 0755 permissions, regardless of umask |
| +set(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS |
| + OWNER_READ |
| + OWNER_WRITE |
| + OWNER_EXECUTE |
| + GROUP_READ |
| + GROUP_EXECUTE |
| + WORLD_READ |
| + WORLD_EXECUTE |
| + ) |
| + |
| +install(TARGETS ${CMAKE_TARGETS} |
| EXPORT ${PROJECT_NAME}-targets |
| RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} |
| LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |