diff --git a/CMakeLists.txt b/CMakeLists.txt index f77b33870..7707db617 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,16 +32,16 @@ include(json_opts) # add library targets ############################################################################# -add_library(${NLOHMANN_JSON_TARGET_NAME} INTERFACE) -add_library(${PROJECT_NAME}::${NLOHMANN_JSON_TARGET_NAME} ALIAS ${NLOHMANN_JSON_TARGET_NAME}) +add_library(${JSON_TARGET_NAME} INTERFACE) +add_library(${PROJECT_NAME}::${JSON_TARGET_NAME} ALIAS ${JSON_TARGET_NAME}) if (${CMAKE_VERSION} VERSION_LESS "3.8.0") - target_compile_features(${NLOHMANN_JSON_TARGET_NAME} INTERFACE cxx_range_for) + target_compile_features(${JSON_TARGET_NAME} INTERFACE cxx_range_for) else() - target_compile_features(${NLOHMANN_JSON_TARGET_NAME} INTERFACE cxx_std_11) + target_compile_features(${JSON_TARGET_NAME} INTERFACE cxx_std_11) endif() target_compile_definitions( - ${NLOHMANN_JSON_TARGET_NAME} + ${JSON_TARGET_NAME} INTERFACE $<$>:JSON_USE_GLOBAL_UDLS=0> $<$>:JSON_USE_IMPLICIT_CONVERSIONS=0> @@ -51,9 +51,9 @@ target_compile_definitions( ) target_include_directories( - ${NLOHMANN_JSON_TARGET_NAME} - ${NLOHMANN_JSON_SYSTEM_INCLUDE} INTERFACE - $ + ${JSON_TARGET_NAME} + ${JSON_SYSTEM_INCLUDE} INTERFACE + $ $ ) @@ -62,7 +62,7 @@ if (MSVC) set(NLOHMANN_ADD_NATVIS TRUE) set(NLOHMANN_NATVIS_FILE "nlohmann_json.natvis") target_sources( - ${NLOHMANN_JSON_TARGET_NAME} + ${JSON_TARGET_NAME} INTERFACE $ $ @@ -100,23 +100,23 @@ include(CMakePackageConfigHelpers) # https://github.com/nlohmann/json/issues/1697 configure_file( "cmake/nlohmann_jsonConfigVersion.cmake.in" - ${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE} + ${JSON_CMAKE_VERSION_CONFIG_FILE} @ONLY ) configure_file( - ${NLOHMANN_JSON_CMAKE_CONFIG_TEMPLATE} - ${NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE} + ${JSON_CMAKE_CONFIG_TEMPLATE} + ${JSON_CMAKE_PROJECT_CONFIG_FILE} @ONLY ) if(JSON_Install) install( - DIRECTORY ${NLOHMANN_JSON_INCLUDE_BUILD_DIR} - DESTINATION ${NLOHMANN_JSON_INCLUDE_INSTALL_DIR} + DIRECTORY ${JSON_INCLUDE_BUILD_DIR} + DESTINATION ${JSON_INCLUDE_INSTALL_DIR} ) install( - FILES ${NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE} ${NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE} - DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR} + FILES ${JSON_CMAKE_PROJECT_CONFIG_FILE} ${JSON_CMAKE_VERSION_CONFIG_FILE} + DESTINATION ${JSON_CONFIG_INSTALL_DIR} ) if (NLOHMANN_ADD_NATVIS) install( @@ -125,23 +125,23 @@ if(JSON_Install) ) endif() export( - TARGETS ${NLOHMANN_JSON_TARGET_NAME} + TARGETS ${JSON_TARGET_NAME} NAMESPACE ${PROJECT_NAME}:: - FILE ${NLOHMANN_JSON_CMAKE_PROJECT_TARGETS_FILE} + FILE ${JSON_CMAKE_PROJECT_TARGETS_FILE} ) install( - TARGETS ${NLOHMANN_JSON_TARGET_NAME} - EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME} - INCLUDES DESTINATION ${NLOHMANN_JSON_INCLUDE_INSTALL_DIR} + TARGETS ${JSON_TARGET_NAME} + EXPORT ${JSON_TARGETS_EXPORT_NAME} + INCLUDES DESTINATION ${JSON_INCLUDE_INSTALL_DIR} ) install( - EXPORT ${NLOHMANN_JSON_TARGETS_EXPORT_NAME} + EXPORT ${JSON_TARGETS_EXPORT_NAME} NAMESPACE ${PROJECT_NAME}:: - DESTINATION ${NLOHMANN_JSON_CONFIG_INSTALL_DIR} + DESTINATION ${JSON_CONFIG_INSTALL_DIR} ) install( FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc" - DESTINATION ${NLOHMANN_JSON_PKGCONFIG_INSTALL_DIR} + DESTINATION ${JSON_PKGCONFIG_INSTALL_DIR} ) endif() diff --git a/cmake/json_opts.cmake b/cmake/json_opts.cmake index 617b52b65..1e6f55445 100644 --- a/cmake/json_opts.cmake +++ b/cmake/json_opts.cmake @@ -43,25 +43,25 @@ option(JSON_SystemInclude "Include as system headers (skip for clang-tidy)." OFF # configuration ############################################################################# -set(NLOHMANN_JSON_TARGET_NAME ${PROJECT_NAME}) -set(NLOHMANN_JSON_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}" CACHE INTERNAL "") -set(NLOHMANN_JSON_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}") -set(NLOHMANN_JSON_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") -set(NLOHMANN_JSON_CMAKE_CONFIG_TEMPLATE "cmake/nlohmann_jsonConfig.cmake.in") -set(NLOHMANN_JSON_CMAKE_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}") -set(NLOHMANN_JSON_CMAKE_VERSION_CONFIG_FILE "${NLOHMANN_JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}ConfigVersion.cmake") -set(NLOHMANN_JSON_CMAKE_PROJECT_CONFIG_FILE "${NLOHMANN_JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}Config.cmake") -set(NLOHMANN_JSON_CMAKE_PROJECT_TARGETS_FILE "${NLOHMANN_JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}Targets.cmake") -set(NLOHMANN_JSON_PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/pkgconfig") +set(JSON_TARGET_NAME ${PROJECT_NAME}) +set(JSON_CONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}" CACHE INTERNAL "") +set(JSON_INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_INCLUDEDIR}") +set(JSON_TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") +set(JSON_CMAKE_CONFIG_TEMPLATE "cmake/nlohmann_jsonConfig.cmake.in") +set(JSON_CMAKE_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}") +set(JSON_CMAKE_VERSION_CONFIG_FILE "${JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}ConfigVersion.cmake") +set(JSON_CMAKE_PROJECT_CONFIG_FILE "${JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}Config.cmake") +set(JSON_CMAKE_PROJECT_TARGETS_FILE "${JSON_CMAKE_CONFIG_DIR}/${PROJECT_NAME}Targets.cmake") +set(JSON_PKGCONFIG_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/pkgconfig") if (JSON_MultipleHeaders) - set(NLOHMANN_JSON_INCLUDE_BUILD_DIR "${PROJECT_SOURCE_DIR}/include/") + set(JSON_INCLUDE_BUILD_DIR "${PROJECT_SOURCE_DIR}/include/") else() - set(NLOHMANN_JSON_INCLUDE_BUILD_DIR "${PROJECT_SOURCE_DIR}/single_include/") + set(JSON_INCLUDE_BUILD_DIR "${PROJECT_SOURCE_DIR}/single_include/") endif() if (JSON_SystemInclude) - set(NLOHMANN_JSON_SYSTEM_INCLUDE "SYSTEM") + set(JSON_SYSTEM_INCLUDE "SYSTEM") endif() set(JSON_TEST_DATA_URL https://github.com/nlohmann/json_test_data.git) diff --git a/cmake/json_summary.cmake b/cmake/json_summary.cmake index 58075f97e..4cdaed8e4 100644 --- a/cmake/json_summary.cmake +++ b/cmake/json_summary.cmake @@ -88,5 +88,5 @@ json_feature(JSON_LegacyDiscardedValueComparison "Legacy discarded value compari message("") json_feature(JSON_MultipleHeaders "Use the multi-header code?") -message(" Include directory: ${NLOHMANN_JSON_INCLUDE_BUILD_DIR}") +message(" Include directory: ${JSON_INCLUDE_BUILD_DIR}") json_feature(JSON_SystemInclude "Include as system headers?") diff --git a/cmake/nlohmann_jsonConfig.cmake.in b/cmake/nlohmann_jsonConfig.cmake.in index 9a17a7d7b..7aa4a2e6f 100644 --- a/cmake/nlohmann_jsonConfig.cmake.in +++ b/cmake/nlohmann_jsonConfig.cmake.in @@ -2,14 +2,14 @@ include(FindPackageHandleStandardArgs) set(${CMAKE_FIND_PACKAGE_NAME}_CONFIG ${CMAKE_CURRENT_LIST_FILE}) find_package_handle_standard_args(@PROJECT_NAME@ CONFIG_MODE) -if(NOT TARGET @PROJECT_NAME@::@NLOHMANN_JSON_TARGET_NAME@) - include("${CMAKE_CURRENT_LIST_DIR}/@NLOHMANN_JSON_TARGETS_EXPORT_NAME@.cmake") - if((NOT TARGET @NLOHMANN_JSON_TARGET_NAME@) AND +if(NOT TARGET @PROJECT_NAME@::@JSON_TARGET_NAME@) + include("${CMAKE_CURRENT_LIST_DIR}/@JSON_TARGETS_EXPORT_NAME@.cmake") + if((NOT TARGET @JSON_TARGET_NAME@) AND (NOT @PROJECT_NAME@_FIND_VERSION OR @PROJECT_NAME@_FIND_VERSION VERSION_LESS 3.2.0)) - add_library(@NLOHMANN_JSON_TARGET_NAME@ INTERFACE IMPORTED) - set_target_properties(@NLOHMANN_JSON_TARGET_NAME@ PROPERTIES - INTERFACE_LINK_LIBRARIES @PROJECT_NAME@::@NLOHMANN_JSON_TARGET_NAME@ + add_library(@JSON_TARGET_NAME@ INTERFACE IMPORTED) + set_target_properties(@JSON_TARGET_NAME@ PROPERTIES + INTERFACE_LINK_LIBRARIES @PROJECT_NAME@::@JSON_TARGET_NAME@ ) endif() endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ab476fc80..58f840e62 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -54,7 +54,7 @@ target_include_directories(test_main PUBLIC thirdparty/doctest thirdparty/fifo_map ${PROJECT_BINARY_DIR}/include) -target_link_libraries(test_main PUBLIC ${NLOHMANN_JSON_TARGET_NAME}) +target_link_libraries(test_main PUBLIC ${JSON_TARGET_NAME}) ############################################################################# # define test- and standard-specific build settings diff --git a/tests/abi/CMakeLists.txt b/tests/abi/CMakeLists.txt index ba90837cb..964b19776 100644 --- a/tests/abi/CMakeLists.txt +++ b/tests/abi/CMakeLists.txt @@ -18,7 +18,7 @@ target_compile_options(abi_compat_common INTERFACE target_include_directories(abi_compat_common SYSTEM INTERFACE ../thirdparty/doctest include) -target_link_libraries(abi_compat_common INTERFACE ${NLOHMANN_JSON_TARGET_NAME}) +target_link_libraries(abi_compat_common INTERFACE ${JSON_TARGET_NAME}) # shared main() add_library(abi_compat_main STATIC main.cpp)