Browse Source

support to build both static and shared libraries

tags/json-c-0.15-20200726
dota17 5 years ago
parent
commit
952db0f397
2 changed files with 29 additions and 1 deletions
  1. +20
    -0
      CMakeLists.txt
  2. +9
    -1
      README.md

+ 20
- 0
CMakeLists.txt View File

@@ -400,6 +400,26 @@ target_include_directories(${PROJECT_NAME}
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
)

# Allow to build static and shared libraries at the same time
if (BUILD_STATIC_LIBS)
set(ORIGINAL_STATIC_LIB_NAME ${PROJECT_NAME}-static)
add_library(${ORIGINAL_STATIC_LIB_NAME} STATIC
${JSON_C_SOURCES}
${JSON_C_HEADERS}
)

# rename the static library
set_target_properties(${ORIGINAL_STATIC_LIB_NAME} PROPERTIES
OUTPUT_NAME ${PROJECT_NAME}
)

target_include_directories(${PROJECT_NAME}
PUBLIC
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}>
$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}>
)
endif ()

# Always create new install dirs with 0755 permissions, regardless of umask
set(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS
OWNER_READ


+ 9
- 1
README.md View File

@@ -98,6 +98,7 @@ Variable | Type | Description
CMAKE_INSTALL_PREFIX | String | The install location.
CMAKE_BUILD_TYPE | String | Defaults to "debug"
BUILD_SHARED_LIBS | Bool | The default build generates a dynamic (dll/so) library. Set this to OFF to create a static library instead.
BUILD_STATIC_LIBS | Bool | This build generates a static (lib/a) library.
ENABLE_RDRAND | Bool | Enable RDRAND Hardware RNG Hash Seed
ENABLE_THREADING | Bool | Enable partial threading support
DISABLE_WERROR | Bool | Disable use of -Werror
@@ -106,7 +107,14 @@ DISABLE_BSYMBOLIC | Bool | Disable use of -Bsymbolic-functions
Pass these options as `-D` on CMake's command-line.

```sh
cmake -DBUILD_SHARED_LIBS=OFF ...
# build a static library
cmake -DBUILD_SHARED_LIBS=OFF ..
```

Allow to build both static and shared libraries.

```sh
cmake -DBUILD_STATIC_LIBS=ON ..
```

### Building with partial threading support


Loading…
Cancel
Save