forked from nlohmann/json
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add CMake fetchcontent documentation and tests
Github issue: nlohmann#2073 nlohmann::json documents 2 way of depending on it using CMake 1) Copy-paste the project/source into your own project. 2) Install nlohman::json and then use find_package. (1) pollutes your git repository, (2) requires everyone to install the dependencies themselves. Since 2018, CMake provide some kind of 'package manager' features using [FetchContent](https://cmake.org/cmake/help/v3.17/module/FetchContent.html) It gives the following: ~~~cmake include(FetchContent) FetchContent_Declare(json GIT_REPOSITORY https://github.com/nlohmann/json GIT_TAG v3.7.3) FetchContent_GetProperties(json) if(NOT json_POPULATED) FetchContent_Populate(json) add_subdirectory( ${json_SOURCE_DIR} ${json_BINARY_DIR} EXCLUDE_FROM_ALL) endif() ~~~ Then declares the dependency in the target using it: ~~~cmake target_link_library(my_project PRIVATE nlohmann_json::nlohmann_json ~~~ This patch updates the documentation and provides tests.
- Loading branch information
1 parent
b1fe6ee
commit 9ab2193
Showing
5 changed files
with
73 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
add_test(NAME cmake_fetch_content_configure | ||
COMMAND ${CMAKE_COMMAND} | ||
-G "${CMAKE_GENERATOR}" | ||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} | ||
-Dnlohmann_json_source=${PROJECT_SOURCE_DIR} | ||
${CMAKE_CURRENT_SOURCE_DIR}/project | ||
) | ||
add_test(NAME cmake_fetch_content_build | ||
COMMAND ${CMAKE_COMMAND} --build . | ||
) | ||
set_tests_properties(cmake_fetch_content_configure PROPERTIES | ||
FIXTURES_SETUP cmake_fetch_content | ||
) | ||
set_tests_properties(cmake_fetch_content_build PROPERTIES | ||
FIXTURES_REQUIRED cmake_fetch_content | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
cmake_minimum_required(VERSION 3.11) | ||
|
||
project(DummyImport CXX) | ||
|
||
include(FetchContent) | ||
|
||
FetchContent_Declare(json | ||
GIT_REPOSITORY ${CMAKE_CURRENT_SOURCE_DIR}/../../.. | ||
GIT_TAG HEAD) | ||
|
||
FetchContent_GetProperties(json) | ||
if(NOT json_POPULATED) | ||
FetchContent_Populate(json) | ||
add_subdirectory(${json_SOURCE_DIR} ${json_BINARY_DIR} EXCLUDE_FROM_ALL) | ||
endif() | ||
|
||
add_executable(with_namespace_target main.cpp) | ||
target_link_libraries(with_namespace_target nlohmann_json::nlohmann_json) | ||
|
||
add_executable(without_namespace_target main.cpp) | ||
target_link_libraries(without_namespace_target nlohmann_json) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,8 @@ | ||
#include <nlohmann/json.hpp> | ||
|
||
int main(int argc, char **argv) | ||
{ | ||
nlohmann::json j; | ||
|
||
return 0; | ||
} |