56 lines
1.8 KiB
Diff
56 lines
1.8 KiB
Diff
diff --git CMakeLists.txt CMakeLists.txt
|
|
index ba692ff..fc2edff 100644
|
|
--- CMakeLists.txt
|
|
+++ 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}
|