Merge pull request #1330 from ax3l/topic-installEmbed
CMake: Optional Install if Embedded
This commit is contained in:
commit
d39842e68f
2 changed files with 34 additions and 27 deletions
|
@ -16,6 +16,7 @@ include(ExternalProject)
|
||||||
## OPTIONS
|
## OPTIONS
|
||||||
##
|
##
|
||||||
option(JSON_BuildTests "Build the unit tests when BUILD_TESTING is enabled." ON)
|
option(JSON_BuildTests "Build the unit tests when BUILD_TESTING is enabled." ON)
|
||||||
|
option(JSON_Install "Install CMake targets during install step." ON)
|
||||||
option(JSON_MultipleHeaders "Use non-amalgamated version of the library." OFF)
|
option(JSON_MultipleHeaders "Use non-amalgamated version of the library." OFF)
|
||||||
|
|
||||||
##
|
##
|
||||||
|
@ -96,32 +97,34 @@ configure_file(
|
||||||
@ONLY
|
@ONLY
|
||||||
)
|
)
|
||||||
|
|
||||||
install(
|
if(JSON_Install)
|
||||||
DIRECTORY ${NLOHMANN_JSON_INCLUDE_BUILD_DIR}
|
|
||||||
DESTINATION ${NLOHMANN_JSON_INCLUDE_INSTALL_DIR}
|
|
||||||
)
|
|
||||||
install(
|
|
||||||
FILES ${NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE} ${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE}
|
|
||||||
DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR}
|
|
||||||
)
|
|
||||||
if (NLOHMANN_ADD_NATVIS)
|
|
||||||
install(
|
install(
|
||||||
FILES ${NLOHMANN_NATVIS_FILE}
|
DIRECTORY ${NLOHMANN_JSON_INCLUDE_BUILD_DIR}
|
||||||
DESTINATION .
|
DESTINATION ${NLOHMANN_JSON_INCLUDE_INSTALL_DIR}
|
||||||
)
|
)
|
||||||
|
install(
|
||||||
|
FILES ${NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE} ${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE}
|
||||||
|
DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR}
|
||||||
|
)
|
||||||
|
if (NLOHMANN_ADD_NATVIS)
|
||||||
|
install(
|
||||||
|
FILES ${NLOHMANN_NATVIS_FILE}
|
||||||
|
DESTINATION .
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
export(
|
||||||
|
TARGETS ${NLOHMANN_JSON_TARGET_NAME}
|
||||||
|
NAMESPACE ${PROJECT_NAME}::
|
||||||
|
FILE ${NLOHMANN_JSON_CMAKE_PROJECT_TARGETS_FILE}
|
||||||
|
)
|
||||||
|
install(
|
||||||
|
TARGETS ${NLOHMANN_JSON_TARGET_NAME}
|
||||||
|
EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME}
|
||||||
|
INCLUDES DESTINATION ${NLOHMANN_JSON_INCLUDE_INSTALL_DIR}
|
||||||
|
)
|
||||||
|
install(
|
||||||
|
EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME}
|
||||||
|
NAMESPACE ${PROJECT_NAME}::
|
||||||
|
DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR}
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
export(
|
|
||||||
TARGETS ${NLOHMANN_JSON_TARGET_NAME}
|
|
||||||
NAMESPACE ${PROJECT_NAME}::
|
|
||||||
FILE ${NLOHMANN_JSON_CMAKE_PROJECT_TARGETS_FILE}
|
|
||||||
)
|
|
||||||
install(
|
|
||||||
TARGETS ${NLOHMANN_JSON_TARGET_NAME}
|
|
||||||
EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME}
|
|
||||||
INCLUDES DESTINATION ${NLOHMANN_JSON_INCLUDE_INSTALL_DIR}
|
|
||||||
)
|
|
||||||
install(
|
|
||||||
EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME}
|
|
||||||
NAMESPACE ${PROJECT_NAME}::
|
|
||||||
DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR}
|
|
||||||
)
|
|
||||||
|
|
|
@ -100,6 +100,10 @@ To embed the library directly into an existing CMake project, place the entire s
|
||||||
# run from your own project's code.
|
# run from your own project's code.
|
||||||
set(JSON_BuildTests OFF CACHE INTERNAL "")
|
set(JSON_BuildTests OFF CACHE INTERNAL "")
|
||||||
|
|
||||||
|
# If you only include this third party in PRIVATE source files, you do not
|
||||||
|
# need to install it when your main project gets installed.
|
||||||
|
# set(JSON_Install OFF CACHE INTERNAL "")
|
||||||
|
|
||||||
# Don't use include(nlohmann_json/CMakeLists.txt) since that carries with it
|
# Don't use include(nlohmann_json/CMakeLists.txt) since that carries with it
|
||||||
# unintended consequences that will break the build. It's generally
|
# unintended consequences that will break the build. It's generally
|
||||||
# discouraged (although not necessarily well documented as such) to use
|
# discouraged (although not necessarily well documented as such) to use
|
||||||
|
|
Loading…
Reference in a new issue