diff options
author | NicolasIRAGNE <nicoragne@hotmail.fr> | 2022-01-07 01:10:44 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-01-07 01:10:44 +0300 |
commit | f253e9664d6a0628fa779c858a05a5aaf05e9cb4 (patch) | |
tree | 22d60b52f6aec50fd4aa9c77bb18731e6f67a1ed /cmake | |
parent | b48095ee99aff048dc4760dd644b848bc1e6f0c3 (diff) |
Make the imported target installable (#7)
Import from the original nlohmann repository the parts about installing the library.
Co-authored-by: Nicolas IRAGNE <nicolas.iragne@alyce.fr>
Co-authored-by: ArthurSonzogni <sonzogniarthur@gmail.com>
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/config.cmake.in | 15 | ||||
-rw-r--r-- | cmake/nlohmann_jsonConfigVersion.cmake.in | 20 |
2 files changed, 35 insertions, 0 deletions
diff --git a/cmake/config.cmake.in b/cmake/config.cmake.in new file mode 100644 index 0000000..824412d --- /dev/null +++ b/cmake/config.cmake.in @@ -0,0 +1,15 @@ +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 + (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@ + ) + endif() +endif()
\ No newline at end of file diff --git a/cmake/nlohmann_jsonConfigVersion.cmake.in b/cmake/nlohmann_jsonConfigVersion.cmake.in new file mode 100644 index 0000000..38ab828 --- /dev/null +++ b/cmake/nlohmann_jsonConfigVersion.cmake.in @@ -0,0 +1,20 @@ +# This is essentially cmake's BasicConfigVersion-SameMajorVersion.cmake.in but +# without the 32/64-bit check. Since json is a header-only library, it doesn't +# matter if it was built on a different platform than what it is used on (see +# https://github.com/nlohmann/json/issues/1697). +set(PACKAGE_VERSION "@PROJECT_VERSION@") + +if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) + set(PACKAGE_VERSION_COMPATIBLE FALSE) +else() + + if(PACKAGE_FIND_VERSION_MAJOR STREQUAL "@PROJECT_VERSION_MAJOR@") + set(PACKAGE_VERSION_COMPATIBLE TRUE) + else() + set(PACKAGE_VERSION_COMPATIBLE FALSE) + endif() + + if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION) + set(PACKAGE_VERSION_EXACT TRUE) + endif() +endif()
\ No newline at end of file |