Преглед на файлове

Merge topic 'cmake-build-specify-makefile-name'

cfce067b3f Tests: Add RunCMake.Make case for conflicting Makefile names
378c047ae3 Makefiles: Explicitly tell 'make' tool what Makefile name to use

Acked-by: Kitware Robot <[email protected]>
Merge-request: !5509
Brad King преди 5 години
родител
ревизия
c0619861c9
променени са 3 файла, в които са добавени 18 реда и са изтрити 0 реда
  1. 5 0
      Source/cmGlobalUnixMakefileGenerator3.cxx
  2. 5 0
      Tests/RunCMake/Make/MakefileConflict.cmake
  3. 8 0
      Tests/RunCMake/Make/RunCMakeTest.cmake

+ 5 - 0
Source/cmGlobalUnixMakefileGenerator3.cxx

@@ -589,6 +589,11 @@ cmGlobalUnixMakefileGenerator3::GenerateBuildCommand(
   }
   makeCommand.Add(this->SelectMakeProgram(makeProgram));
 
+  // Explicitly tell the make tool to use the Makefile written by
+  // cmLocalUnixMakefileGenerator3::WriteLocalMakefile
+  makeCommand.Add("-f");
+  makeCommand.Add("Makefile");
+
   if (jobs != cmake::NO_BUILD_PARALLEL_LEVEL) {
     if (jobs == cmake::DEFAULT_BUILD_PARALLEL_LEVEL) {
       makeCommand.Add("-j");

+ 5 - 0
Tests/RunCMake/Make/MakefileConflict.cmake

@@ -0,0 +1,5 @@
+add_custom_target(Custom)
+
+# Write a file that GNU make will prefer over "Makefile"
+# if 'cmake --build' does not explicitly specify it.
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/GNUmakefile" "")

+ 8 - 0
Tests/RunCMake/Make/RunCMakeTest.cmake

@@ -42,6 +42,14 @@ run_VerboseBuild()
 run_cmake(CustomCommandDepfile-ERROR)
 run_cmake(IncludeRegexSubdir)
 
+function(run_MakefileConflict)
+  run_cmake(MakefileConflict)
+  set(RunCMake_TEST_NO_CLEAN 1)
+  set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/MakefileConflict-build)
+  run_cmake_command(MakefileConflict-build ${CMAKE_COMMAND} --build . --target Custom)
+endfunction()
+run_MakefileConflict()
+
 function(run_CMP0113 val)
   set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/CMP0113-${val}-build)
   run_cmake(CMP0113-${val})