summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSam Freed <safreed@microsoft.com>2021-06-07 16:38:05 (GMT)
committerBrad King <brad.king@kitware.com>2021-06-08 11:49:50 (GMT)
commitde2b14a7117be203544f3014d2a0a9cac93f9a1e (patch)
tree9afb355ca40aea4d1f93b39a419c337cffe17012
parentefe7ac9022b18132d33c68919c81422d738cd672 (diff)
parent534c40e6d8801853c19435a8c2d732ca2b01b606 (diff)
downloadCMake-de2b14a7117be203544f3014d2a0a9cac93f9a1e.zip
CMake-de2b14a7117be203544f3014d2a0a9cac93f9a1e.tar.gz
CMake-de2b14a7117be203544f3014d2a0a9cac93f9a1e.tar.bz2
Merge branch 'backport-3.20-presets-build-fixes' into presets-build-fixes
-rw-r--r--Source/cmake.cxx4
-rw-r--r--Tests/RunCMake/CMakeLists.txt16
-rw-r--r--Tests/RunCMake/CMakePresetsBuild/Good.json.in2
-rw-r--r--Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake8
4 files changed, 25 insertions, 5 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index 840a9d9..33455c3 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -3263,7 +3263,9 @@ int cmake::Build(int jobs, std::string dir, std::vector<std::string> targets,
this->UnprocessedPresetEnvironment = expandedPreset->Environment;
this->ProcessPresetEnvironment();
- if (jobs == cmake::DEFAULT_BUILD_PARALLEL_LEVEL && expandedPreset->Jobs) {
+ if ((jobs == cmake::DEFAULT_BUILD_PARALLEL_LEVEL ||
+ jobs == cmake::NO_BUILD_PARALLEL_LEVEL) &&
+ expandedPreset->Jobs) {
jobs = *expandedPreset->Jobs;
}
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index d02d7a2..be315cb 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -836,9 +836,19 @@ add_RunCMake_test(PrecompileHeaders -DCMAKE_C_COMPILER_ID=${CMAKE_C_COMPILER_ID}
-DCMAKE_C_COMPILER_VERSION=${CMAKE_C_COMPILER_VERSION})
add_RunCMake_test("UnityBuild")
-add_RunCMake_test(CMakePresets -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA})
-add_RunCMake_test(CMakePresetsBuild -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA})
-add_RunCMake_test(CMakePresetsTest -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE} -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA})
+add_RunCMake_test(CMakePresets
+ -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+ -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
+ )
+add_RunCMake_test(CMakePresetsBuild
+ -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+ -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
+ -DCMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}
+ )
+add_RunCMake_test(CMakePresetsTest
+ -DPYTHON_EXECUTABLE=${PYTHON_EXECUTABLE}
+ -DCMake_TEST_JSON_SCHEMA=${CMake_TEST_JSON_SCHEMA}
+ )
if(${CMAKE_GENERATOR} MATCHES "Make|Ninja")
add_RunCMake_test(TransformDepfile)
diff --git a/Tests/RunCMake/CMakePresetsBuild/Good.json.in b/Tests/RunCMake/CMakePresetsBuild/Good.json.in
index 3d0b838..c7f318c 100644
--- a/Tests/RunCMake/CMakePresetsBuild/Good.json.in
+++ b/Tests/RunCMake/CMakePresetsBuild/Good.json.in
@@ -30,7 +30,7 @@
"description": "",
"inheritConfigureEnvironment": true,
"environment": {},
- "jobs": 0,
+ @Good_json_jobs@
"targets": [],
"configuration": "",
"verbose": true,
diff --git a/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake b/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake
index 2c8d1a0..b37c770 100644
--- a/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CMakePresetsBuild/RunCMakeTest.cmake
@@ -62,6 +62,14 @@ endfunction()
set(CMakePresets_SCHEMA_EXPECTED_RESULT 0)
+if(RunCMake_GENERATOR MATCHES "NMake|Borland|Watcom")
+ set(Good_json_jobs [[]])
+elseif(RunCMake_GENERATOR MATCHES "Make" AND CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
+ set(Good_json_jobs [["jobs": 1,]])
+else()
+ set(Good_json_jobs [["jobs": 0,]])
+endif()
+
run_cmake_build_presets(Good "default;other" "build-other;withEnvironment;noEnvironment;macros;vendorObject;singleTarget")
run_cmake_build_presets(InvalidConfigurePreset "default" "badConfigurePreset")
run_cmake_build_presets(Condition "default" "enabled;disabled")