|
|
@@ -11,14 +11,23 @@ set(RunCMake-check-file check.cmake)
|
|
|
|
|
|
include("${RunCMake_SOURCE_DIR}/validate_schema.cmake")
|
|
|
|
|
|
+function(reset_cmake_presets_directory name)
|
|
|
+ set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/${name}")
|
|
|
+ file(REMOVE_RECURSE "${RunCMake_TEST_SOURCE_DIR}")
|
|
|
+ file(MAKE_DIRECTORY "${RunCMake_TEST_SOURCE_DIR}")
|
|
|
+endfunction()
|
|
|
+
|
|
|
function(run_cmake_presets name)
|
|
|
set(RunCMake_TEST_SOURCE_DIR "${RunCMake_BINARY_DIR}/${name}")
|
|
|
set(_source_arg "${RunCMake_TEST_SOURCE_DIR}")
|
|
|
if(CMakePresets_SOURCE_ARG)
|
|
|
set(_source_arg "${CMakePresets_SOURCE_ARG}")
|
|
|
endif()
|
|
|
- file(REMOVE_RECURSE "${RunCMake_TEST_SOURCE_DIR}")
|
|
|
- file(MAKE_DIRECTORY "${RunCMake_TEST_SOURCE_DIR}")
|
|
|
+
|
|
|
+ if(NOT RunCMake_TEST_SOURCE_DIR_NO_CLEAN)
|
|
|
+ file(REMOVE_RECURSE "${RunCMake_TEST_SOURCE_DIR}")
|
|
|
+ file(MAKE_DIRECTORY "${RunCMake_TEST_SOURCE_DIR}")
|
|
|
+ endif()
|
|
|
configure_file("${RunCMake_SOURCE_DIR}/CMakeLists.txt.in" "${RunCMake_TEST_SOURCE_DIR}/CMakeLists.txt" @ONLY)
|
|
|
|
|
|
if(NOT CMakePresets_FILE)
|
|
|
@@ -95,6 +104,7 @@ run_cmake_presets(ExtraRootField)
|
|
|
run_cmake_presets(ExtraPresetField)
|
|
|
run_cmake_presets(ExtraVariableField)
|
|
|
run_cmake_presets(FuturePresetInstallDirField)
|
|
|
+run_cmake_presets(FuturePresetToolchainField)
|
|
|
run_cmake_presets(InvalidPresetVendor)
|
|
|
set(CMakePresets_SCHEMA_EXPECTED_RESULT 0)
|
|
|
run_cmake_presets(DuplicatePresets)
|
|
|
@@ -191,6 +201,28 @@ run_cmake_presets(GoodInstallInherit)
|
|
|
run_cmake_presets(GoodInstallOverride)
|
|
|
run_cmake_presets(GoodInstallCommandLine "--install-prefix=${RunCMake_SOURCE_DIR}/path/passed/on/command_line")
|
|
|
|
|
|
+set(RunCMake_TEST_SOURCE_DIR_NO_CLEAN 1)
|
|
|
+set(CMakePresets_FILE "${RunCMake_SOURCE_DIR}/GoodToolchain.json.in")
|
|
|
+
|
|
|
+reset_cmake_presets_directory(GoodToolchainInherit)
|
|
|
+file(WRITE "${RunCMake_BINARY_DIR}/GoodToolchainDefault/toolchain.cmake" "")
|
|
|
+run_cmake_presets(GoodToolchainDefault)
|
|
|
+
|
|
|
+reset_cmake_presets_directory(GoodToolchainInherit)
|
|
|
+file(WRITE "${RunCMake_BINARY_DIR}/GoodToolchainInherit/toolchain.cmake" "")
|
|
|
+run_cmake_presets(GoodToolchainInherit)
|
|
|
+
|
|
|
+reset_cmake_presets_directory(GoodToolchainOverride)
|
|
|
+file(WRITE "${RunCMake_BINARY_DIR}/GoodToolchainOverride/override_toolchain.cmake" "")
|
|
|
+run_cmake_presets(GoodToolchainOverride)
|
|
|
+
|
|
|
+reset_cmake_presets_directory(GoodToolchainCommandLine)
|
|
|
+file(WRITE "${RunCMake_BINARY_DIR}/GoodToolchainCommandLine/cmd_line_toolchain.cmake" "")
|
|
|
+run_cmake_presets(GoodToolchainCommandLine "--toolchain=${RunCMake_BINARY_DIR}/GoodToolchainCommandLine/cmd_line_toolchain.cmake")
|
|
|
+
|
|
|
+unset(RunCMake_TEST_SOURCE_DIR_NO_CLEAN)
|
|
|
+
|
|
|
+
|
|
|
set(CMakePresets_FILE "${RunCMake_SOURCE_DIR}/CMakePresets.json.in")
|
|
|
# Test bad preset arguments
|
|
|
run_cmake_presets(VendorMacro)
|