ENH: fix bug in full path to target depends stuff
This commit is contained in:
parent
a44ac0719c
commit
26b527ac0f
@ -410,16 +410,17 @@ IF(BUILD_TESTING)
|
|||||||
--test-command ${CMAKE_CMAKE_COMMAND} -E compare_files
|
--test-command ${CMAKE_CMAKE_COMMAND} -E compare_files
|
||||||
${CMake_SOURCE_DIR}/Tests/TargetName/scripts/hello_world
|
${CMake_SOURCE_DIR}/Tests/TargetName/scripts/hello_world
|
||||||
${CMake_BINARY_DIR}/Tests/TargetName/scripts/hello_world)
|
${CMake_BINARY_DIR}/Tests/TargetName/scripts/hello_world)
|
||||||
ADD_TEST(LibName ${CMAKE_CTEST_COMMAND}
|
|
||||||
|
ADD_TEST(CustComDepend ${CMAKE_CTEST_COMMAND}
|
||||||
--build-and-test
|
--build-and-test
|
||||||
"${CMake_SOURCE_DIR}/Tests/LibName"
|
"${CMake_SOURCE_DIR}/Tests/CustComDepend"
|
||||||
"${CMake_BINARY_DIR}/Tests/LibName"
|
"${CMake_BINARY_DIR}/Tests/CustComDepend"
|
||||||
--build-two-config
|
--build-two-config
|
||||||
--build-generator ${CMAKE_TEST_GENERATOR}
|
--build-generator ${CMAKE_TEST_GENERATOR}
|
||||||
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
|
--build-makeprogram ${CMAKE_TEST_MAKEPROGRAM}
|
||||||
--build-project LibName
|
--build-project CustComDepend
|
||||||
--build-exe-dir "${CMake_BINARY_DIR}/Tests/LibName/lib"
|
--build-exe-dir "${CMake_BINARY_DIR}/Tests/CustComDepend/bin"
|
||||||
--test-command foobar
|
--test-command foo bar.c
|
||||||
)
|
)
|
||||||
|
|
||||||
ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND}
|
ADD_TEST(CustomCommand ${CMAKE_CTEST_COMMAND}
|
||||||
|
@ -1863,6 +1863,8 @@ std::string cmLocalGenerator::GetRealDependency(const char* inName,
|
|||||||
tLocation = cmSystemTools::GetFilenamePath(tLocation);
|
tLocation = cmSystemTools::GetFilenamePath(tLocation);
|
||||||
std::string depLocation = cmSystemTools::GetFilenamePath(
|
std::string depLocation = cmSystemTools::GetFilenamePath(
|
||||||
std::string(inName));
|
std::string(inName));
|
||||||
|
depLocation = cmSystemTools::CollapseFullPath(depLocation.c_str());
|
||||||
|
tLocation = cmSystemTools::CollapseFullPath(tLocation.c_str());
|
||||||
if(depLocation != tLocation)
|
if(depLocation != tLocation)
|
||||||
{
|
{
|
||||||
// it is a full path to a depend that has the same name
|
// it is a full path to a depend that has the same name
|
||||||
|
@ -253,6 +253,8 @@ void cmTarget::TraceVSDependencies(std::string projFile,
|
|||||||
tLocation = cmSystemTools::GetFilenamePath(tLocation);
|
tLocation = cmSystemTools::GetFilenamePath(tLocation);
|
||||||
std::string depLocation = cmSystemTools::GetFilenamePath(
|
std::string depLocation = cmSystemTools::GetFilenamePath(
|
||||||
std::string(fullName));
|
std::string(fullName));
|
||||||
|
depLocation = cmSystemTools::CollapseFullPath(depLocation.c_str());
|
||||||
|
tLocation = cmSystemTools::CollapseFullPath(tLocation.c_str());
|
||||||
if(depLocation == tLocation)
|
if(depLocation == tLocation)
|
||||||
{
|
{
|
||||||
isUtility = true;
|
isUtility = true;
|
||||||
|
11
Tests/CustComDepend/CMakeLists.txt
Normal file
11
Tests/CustComDepend/CMakeLists.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
project(CustComDepend)
|
||||||
|
add_definitions(-D_CRT_SECURE_NO_DEPRECATE=1)
|
||||||
|
set(EXECUTABLE_OUTPUT_PATH ${CustComDepend_BINARY_DIR}/bin)
|
||||||
|
add_executable(foo foo.cxx)
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT ${CustComDepend_BINARY_DIR}/bar.c
|
||||||
|
COMMAND ${CustComDepend_BINARY_DIR}/bin/foo ${CustComDepend_BINARY_DIR}/bar.c
|
||||||
|
DEPENDS ${CustComDepend_BINARY_DIR}/bin/${CMAKE_CFG_INTDIR}/foo
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(bar SHARED ${CustComDepend_BINARY_DIR}/bar.c)
|
15
Tests/CustComDepend/foo.cxx
Normal file
15
Tests/CustComDepend/foo.cxx
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main(int ac, char** av)
|
||||||
|
{
|
||||||
|
FILE* fout = fopen(av[1], "w");
|
||||||
|
printf("create %s\n", av[1]);
|
||||||
|
if(!fout)
|
||||||
|
{
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
fprintf(fout, "int bar(){ return 10;}\n");
|
||||||
|
fclose(fout);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user