mirror of
https://github.com/nlohmann/json.git
synced 2026-10-03 13:10:33 +00:00
tests/cmake_fetch_content/project calls the single-argument FetchContent_Populate(json) after FetchContent_Declare(), which CMake 3.30 deprecated as CMP0169. Since the project declares cmake_minimum_required(VERSION 3.11...3.14), the policy stays unset, so every configure with a current CMake prints the deprecation warning. The test is kept on purpose: it is the only coverage of the FetchContent_Populate + add_subdirectory pattern for CMake 3.11-3.13 users, which the docs still describe as supported. Explicitly set CMP0169 to OLD, with a comment explaining why. Also fix two stale version guards: - tests/cmake_fetch_content/CMakeLists.txt guarded the test with VERSION_GREATER "3.11.0", which is dead now that tests/CMakeLists.txt requires CMake 3.13. - tests/cmake_fetch_content2/CMakeLists.txt guarded with VERSION_GREATER "3.14.0", which skips exactly 3.14.0, the first version with FetchContent_MakeAvailable. Change it to VERSION_GREATER_EQUAL "3.14". Verified locally: `ctest -R cmake_fetch_content` passes with CMake 4.1, and the CMP0169 deprecation warning that appeared before this change is gone. Closes #5714 item 5. Signed-off-by: Niels Lohmann <mail@nlohmann.me>
20 lines
640 B
CMake
20 lines
640 B
CMake
add_test(NAME cmake_fetch_content_configure
|
|
COMMAND ${CMAKE_COMMAND}
|
|
-G "${CMAKE_GENERATOR}"
|
|
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
|
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
|
-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
|
|
LABELS "git_required;not_reproducible"
|
|
)
|
|
set_tests_properties(cmake_fetch_content_build PROPERTIES
|
|
FIXTURES_REQUIRED cmake_fetch_content
|
|
LABELS "git_required;not_reproducible"
|
|
)
|