Merge topic 'fix-13392-nmake-empty-depends-problem'

7ae7d66 NMake: Fix problem with empty DEPENDS args (#13392)
078e35d NMake: Add a test to demonstrate EmptyDepends issue (#13392)
This commit is contained in:
Brad King 2012-11-27 13:34:31 -05:00 committed by CMake Topic Stage
commit 9c48fc7213
3 changed files with 25 additions and 0 deletions

View File

@ -1875,6 +1875,14 @@ bool cmLocalGenerator::GetRealDependency(const char* inName,
// modify the name so stripping down to just the file name should
// produce the target name in this case.
std::string name = cmSystemTools::GetFilenameName(inName);
// If the input name is the empty string, there is no real
// dependency. Short-circuit the other checks:
if(name == "")
{
return false;
}
if(cmSystemTools::GetFilenameLastExtension(name) == ".exe")
{
name = cmSystemTools::GetFilenameWithoutLastExtension(name);

View File

@ -573,6 +573,8 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/CustomCommand")
ADD_TEST_MACRO(EmptyDepends ${CMAKE_CTEST_COMMAND})
add_test(CustomCommandWorkingDirectory ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/CustomCommandWorkingDirectory"

View File

@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 2.8)
project(EmptyDepends)
include(CTest)
set(extra_dep)
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/qrc_my.cxx
COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_BINARY_DIR}/qrc_my.cxx"
DEPENDS "${extra_dep}" "${CMAKE_BINARY_DIR}/my.qrc")
add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/my.qrc
COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_BINARY_DIR}/my.qrc)
add_library(qrc SHARED ${CMAKE_BINARY_DIR}/qrc_my.cxx)