diff options
author | Brad King <brad.king@kitware.com> | 2014-07-02 13:54:49 (GMT) |
---|---|---|
committer | CMake Topic Stage <kwrobot@kitware.com> | 2014-07-02 13:54:49 (GMT) |
commit | e2a12b8a58e0b96ef974463d4412fa804e3af297 (patch) | |
tree | 4dfa7a3303747a60629f58423eb2538912b9286d | |
parent | 94fbf33ad1fb8e304fb8ba1847b1a74e09e05f13 (diff) | |
parent | ac8879ce91a61703c9c3fc1e06316dbe8d5a8786 (diff) | |
download | CMake-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.cxx | 7 | ||||
-rw-r--r-- | Tests/ObjectLibrary/CMakeLists.txt | 6 |
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) |