mirror of
https://github.com/DaveGamble/cJSON.git
synced 2024-12-27 14:14:07 +08:00
Add overrides for BUILD_SHARED_LIBS
This commit is contained in:
parent
eb7c681a4b
commit
2a087843e4
@ -123,9 +123,18 @@ file(GLOB HEADERS cJSON.h)
|
|||||||
set(SOURCES cJSON.c)
|
set(SOURCES cJSON.c)
|
||||||
|
|
||||||
option(BUILD_SHARED_AND_STATIC_LIBS "Build both shared and static libraries" Off)
|
option(BUILD_SHARED_AND_STATIC_LIBS "Build both shared and static libraries" Off)
|
||||||
|
option(CJSON_OVERRIDE_BUILD_SHARED_LIBS "Override BUILD_SHARED_LIBS with CJSON_BUILD_SHARED_LIBS" OFF)
|
||||||
|
option(CJSON_BUILD_SHARED_LIBS "Overrides BUILD_SHARED_LIBS if CJSON_OVERRIDE_BUILD_SHARED_LIBS is enabled" ON)
|
||||||
|
|
||||||
|
if ((CJSON_OVERRIDE_BUILD_SHARED_LIBS AND CJSON_BUILD_SHARED_LIBS) OR ((NOT CJSON_OVERRIDE_BUILD_SHARED_LIBS) AND BUILD_SHARED_LIBS))
|
||||||
|
set(CJSON_LIBRARY_TYPE SHARED)
|
||||||
|
else()
|
||||||
|
set(CJSON_LIBRARY_TYPE STATIC)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
if (NOT BUILD_SHARED_AND_STATIC_LIBS)
|
if (NOT BUILD_SHARED_AND_STATIC_LIBS)
|
||||||
add_library("${CJSON_LIB}" "${HEADERS}" "${SOURCES}")
|
add_library("${CJSON_LIB}" "${CJSON_LIBRARY_TYPE}" "${HEADERS}" "${SOURCES}")
|
||||||
else()
|
else()
|
||||||
# See https://cmake.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F
|
# See https://cmake.org/Wiki/CMake_FAQ#How_do_I_make_my_shared_and_static_libraries_have_the_same_root_name.2C_but_different_suffixes.3F
|
||||||
add_library("${CJSON_LIB}" SHARED "${HEADERS}" "${SOURCES}")
|
add_library("${CJSON_LIB}" SHARED "${HEADERS}" "${SOURCES}")
|
||||||
@ -165,7 +174,7 @@ if(ENABLE_CJSON_UTILS)
|
|||||||
set(SOURCES_UTILS cJSON_Utils.c)
|
set(SOURCES_UTILS cJSON_Utils.c)
|
||||||
|
|
||||||
if (NOT BUILD_SHARED_AND_STATIC_LIBS)
|
if (NOT BUILD_SHARED_AND_STATIC_LIBS)
|
||||||
add_library("${CJSON_UTILS_LIB}" "${HEADERS_UTILS}" "${SOURCES_UTILS}")
|
add_library("${CJSON_UTILS_LIB}" "${CJSON_LIBRARY_TYPE}" "${HEADERS_UTILS}" "${SOURCES_UTILS}")
|
||||||
target_link_libraries("${CJSON_UTILS_LIB}" "${CJSON_LIB}")
|
target_link_libraries("${CJSON_UTILS_LIB}" "${CJSON_LIB}")
|
||||||
else()
|
else()
|
||||||
add_library("${CJSON_UTILS_LIB}" SHARED "${HEADERS_UTILS}" "${SOURCES_UTILS}")
|
add_library("${CJSON_UTILS_LIB}" SHARED "${HEADERS_UTILS}" "${SOURCES_UTILS}")
|
||||||
|
@ -94,6 +94,7 @@ You can change the build process with a list of different options that you can p
|
|||||||
* `-DBUILD_SHARED_AND_STATIC_LIBS=On`: Build both shared and static libraries. (off by default)
|
* `-DBUILD_SHARED_AND_STATIC_LIBS=On`: Build both shared and static libraries. (off by default)
|
||||||
* `-DCMAKE_INSTALL_PREFIX=/usr`: Set a prefix for the installation.
|
* `-DCMAKE_INSTALL_PREFIX=/usr`: Set a prefix for the installation.
|
||||||
* `-DENABLE_LOCALES=On`: Enable the usage of localeconv method. ( on by default )
|
* `-DENABLE_LOCALES=On`: Enable the usage of localeconv method. ( on by default )
|
||||||
|
* `-DCJSON_OVERRIDE_BUILD_SHARED_LIBS=On`: Enable overriding the value of `BUILD_SHARED_LIBS` with `-DCJSON_BUILD_SHARED_LIBS`.
|
||||||
|
|
||||||
If you are packaging cJSON for a distribution of Linux, you would probably take these steps for example:
|
If you are packaging cJSON for a distribution of Linux, you would probably take these steps for example:
|
||||||
```
|
```
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
if(ENABLE_CJSON_TEST)
|
if(ENABLE_CJSON_TEST)
|
||||||
add_library(unity unity/src/unity.c)
|
add_library(unity "${CJSON_LIBRARY_TYPE}" unity/src/unity.c)
|
||||||
|
|
||||||
# Disable -Werror for Unity
|
# Disable -Werror for Unity
|
||||||
if (FLAG_SUPPORTED_Werror)
|
if (FLAG_SUPPORTED_Werror)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user