mirror of
https://github.com/reactos/CMake.git
synced 2025-02-01 17:42:41 +00:00
Tests: Extend VS10Project to cover .targets
file linking
With VS generators for 2010 and above, passing a `.targets` file to `target_link_libraries` is expected to generate content in the `.vcxproj` file to import the targets file. Add a test to cover this.
This commit is contained in:
parent
8b33507aba
commit
c9560a9a7b
@ -1,2 +1,3 @@
|
|||||||
include(RunCMake)
|
include(RunCMake)
|
||||||
run_cmake(VsConfigurationType)
|
run_cmake(VsConfigurationType)
|
||||||
|
run_cmake(VsTargetsFileReferences)
|
||||||
|
@ -0,0 +1,45 @@
|
|||||||
|
set(files foo.vcxproj bar.vcxproj baz.vcxproj)
|
||||||
|
|
||||||
|
foreach(file ${files})
|
||||||
|
set(vsProjectFile ${RunCMake_TEST_BINARY_DIR}/${file})
|
||||||
|
|
||||||
|
if(NOT EXISTS "${vsProjectFile}")
|
||||||
|
set(RunCMake_TEST_FAILED "Project file ${vsProjectFile} does not exist.")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(waldoFound FALSE)
|
||||||
|
set(xyzzyFound FALSE)
|
||||||
|
file(STRINGS "${vsProjectFile}" lines)
|
||||||
|
foreach(line IN LISTS lines)
|
||||||
|
if(line MATCHES "^ *<Import Project=.*/>$")
|
||||||
|
if(line MATCHES "^.*waldo.targets.*$")
|
||||||
|
set(waldoFound TRUE)
|
||||||
|
message(STATUS "${file} is importing waldo.targets")
|
||||||
|
elseif(line MATCHES "^.*xyzzy.targets.*$")
|
||||||
|
set(xyzzyFound TRUE)
|
||||||
|
message(STATUS "${file} is importing xyzzy.targets")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
if("${file}" STREQUAL "foo.vcxproj")
|
||||||
|
if(NOT xyzzyFound)
|
||||||
|
set(RunCMake_TEST_FAILED "xyzzy.targets not imported from ${file}")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
if(waldoFound)
|
||||||
|
set(RunCMake_TEST_FAILED "waldo.targets imported from ${file}")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
if(NOT xyzzyFound)
|
||||||
|
set(RunCMake_TEST_FAILED "xyzzy.targets not imported from ${file}")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
if(NOT waldoFound)
|
||||||
|
set(RunCMake_TEST_FAILED "waldo.targets not imported from ${file}")
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endforeach()
|
9
Tests/RunCMake/VS10Project/VsTargetsFileReferences.cmake
Normal file
9
Tests/RunCMake/VS10Project/VsTargetsFileReferences.cmake
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
enable_language(CXX)
|
||||||
|
add_library(foo foo.cpp)
|
||||||
|
target_link_libraries(foo ${CMAKE_BINARY_DIR}/xyzzy.targets)
|
||||||
|
|
||||||
|
add_library(bar bar.cpp)
|
||||||
|
target_link_libraries(bar foo ${CMAKE_BINARY_DIR}/waldo.targets)
|
||||||
|
|
||||||
|
add_executable(baz baz.cpp)
|
||||||
|
target_link_libraries(baz bar)
|
3
Tests/RunCMake/VS10Project/bar.cpp
Normal file
3
Tests/RunCMake/VS10Project/bar.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
void bar()
|
||||||
|
{
|
||||||
|
}
|
3
Tests/RunCMake/VS10Project/baz.cpp
Normal file
3
Tests/RunCMake/VS10Project/baz.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
void baz()
|
||||||
|
{
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user