summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-07-02 13:54:49 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2014-07-02 13:54:49 (GMT)
commite2a12b8a58e0b96ef974463d4412fa804e3af297 (patch)
tree4dfa7a3303747a60629f58423eb2538912b9286d
parent94fbf33ad1fb8e304fb8ba1847b1a74e09e05f13 (diff)
parentac8879ce91a61703c9c3fc1e06316dbe8d5a8786 (diff)
downloadCMake-e2a12b8a58e0b96ef974463d4412fa804e3af297.zip
CMake-e2a12b8a58e0b96ef974463d4412fa804e3af297.tar.gz
CMake-e2a12b8a58e0b96ef974463d4412fa804e3af297.tar.bz2
Merge topic 'ninja-link-order-only-dependencies'
ac8879ce Ninja: Add order-only dependencies to link commands (#14728)
-rw-r--r--Source/cmNinjaNormalTargetGenerator.cxx7
-rw-r--r--Tests/ObjectLibrary/CMakeLists.txt6
2 files changed, 12 insertions, 1 deletions
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index cfcf9f4..15a1b32 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -608,6 +608,11 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
std::string(cmake::GetCMakeFilesDirectoryPostSlash())
+ target.GetName() + ".rsp";
+ // Gather order-only dependencies.
+ cmNinjaDeps orderOnlyDeps;
+ this->GetLocalGenerator()->AppendTargetDepends(this->GetTarget(),
+ orderOnlyDeps);
+
// Write the build statement for this target.
globalGen.WriteBuild(this->GetBuildFileStream(),
comment.str(),
@@ -615,7 +620,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
outputs,
explicitDeps,
implicitDeps,
- emptyDeps,
+ orderOnlyDeps,
vars,
rspfile,
commandLineLengthLimit);
diff --git a/Tests/ObjectLibrary/CMakeLists.txt b/Tests/ObjectLibrary/CMakeLists.txt
index 0aeefaa..75c34d8 100644
--- a/Tests/ObjectLibrary/CMakeLists.txt
+++ b/Tests/ObjectLibrary/CMakeLists.txt
@@ -59,4 +59,10 @@ add_executable(UseABinternal ${dummy}
$<TARGET_OBJECTS:ABmain> $<TARGET_OBJECTS:A> $<TARGET_OBJECTS:B>
)
+# Test target-level dependencies of executable without sources.
+file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/UseABinternalDep.cmake)
+add_custom_target(UseABinternalDep COMMAND ${CMAKE_COMMAND} -E touch UseABinternalDep.cmake)
+add_custom_command(TARGET UseABinternal POST_BUILD COMMAND ${CMAKE_COMMAND} -P UseABinternalDep.cmake)
+add_dependencies(UseABinternal UseABinternalDep)
+
add_subdirectory(ExportLanguages)