Based on the the light-weight (no tests etc.) fetchcontent-version: ArthurSonzogni/nlohmann_json_cmake_fetchcontent
find_package(nlohmann_json)
...
include_directories(... ${nlohmann_json_INCLUDE_DIRS})
target_link_libraries(foo PRIVATE nlohmann_json)
Original readme:
This repository is based on: astoeckel/json. The goal is to provide a lightweight repository tracking every releases of nlohmann/json, compatible with cmake FetchContent.
You can depends on it using:
Example:
include(FetchContent)
FetchContent_Declare(json
GIT_REPOSITORY https://github.com/ArthurSonzogni/nlohmann_json_cmake_fetchcontent
GIT_TAG v3.9.1)
FetchContent_GetProperties(json)
if(NOT json_POPULATED)
FetchContent_Populate(json)
add_subdirectory(${json_SOURCE_DIR} ${json_BINARY_DIR} EXCLUDE_FROM_ALL)
endif()
target_link_libraries(foo PRIVATE nlohmann_json::nlohmann_json)
You can replace always replace the URL by the official repository: https://github.com/nlohmann/json The only difference is the download size. It would be several orders of magnitude larger.
This repository is fully autonomous. It updates itself every week using github actions.
See: