diff options
author | Michael Stürmer <michael.stuermer@schaeffler.com> | 2016-11-21 15:05:17 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2016-11-29 14:31:30 (GMT) |
commit | e390991846825799e619e072a28f1da58b7c89ba (patch) | |
tree | c311f84f4df2a5e55cf667fe505e243de45c9258 /Tests/RunCMake | |
parent | 1528831bb1330cc539004f9fb3068e871f109d34 (diff) | |
download | CMake-e390991846825799e619e072a28f1da58b7c89ba.zip CMake-e390991846825799e619e072a28f1da58b7c89ba.tar.gz CMake-e390991846825799e619e072a28f1da58b7c89ba.tar.bz2 |
VS: Add option to customize vcxproj user props file
Add a `VS_USER_PROPS_CXX` target property to set the user props file of
the generated `.vcxproj` file to be something other than the default
`$(UserRootDir)\\Microsoft.Cpp.$(Platform).user.props`.
Diffstat (limited to 'Tests/RunCMake')
-rw-r--r-- | Tests/RunCMake/VS10Project/RunCMakeTest.cmake | 1 | ||||
-rw-r--r-- | Tests/RunCMake/VS10Project/VsCustomProps-check.cmake | 25 | ||||
-rw-r--r-- | Tests/RunCMake/VS10Project/VsCustomProps.cmake | 7 | ||||
-rw-r--r-- | Tests/RunCMake/VS10Project/my.props | 5 |
4 files changed, 38 insertions, 0 deletions
diff --git a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake index 22d8164..d913af7 100644 --- a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake +++ b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake @@ -1,3 +1,4 @@ include(RunCMake) run_cmake(VsConfigurationType) run_cmake(VsTargetsFileReferences) +run_cmake(VsCustomProps) diff --git a/Tests/RunCMake/VS10Project/VsCustomProps-check.cmake b/Tests/RunCMake/VS10Project/VsCustomProps-check.cmake new file mode 100644 index 0000000..22a3df0 --- /dev/null +++ b/Tests/RunCMake/VS10Project/VsCustomProps-check.cmake @@ -0,0 +1,25 @@ +set(vcProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.vcxproj") +if(NOT EXISTS "${vcProjectFile}") + set(RunCMake_TEST_FAILED "Project file ${vcProjectFile} does not exist.") + return() +endif() + +set(importFound FALSE) + +set(props_file "${RunCMake_SOURCE_DIR}/my.props") +file(TO_NATIVE_PATH "${props_file}" check_file) +file(STRINGS "${vcProjectFile}" lines) +foreach(line IN LISTS lines) + if(line MATCHES "^ *<Import Project=\"([^\"]+)\".*Label=\"([^\"]+)\".*$") + if("${CMAKE_MATCH_1}" STREQUAL "${check_file}" AND + "${CMAKE_MATCH_2}" STREQUAL "LocalAppDataPlatform") + message(STATUS "foo.vcxproj is importing ${check_file}") + set(importFound TRUE) + endif() + endif() +endforeach() + +if(NOT importFound) + set(RunCMake_TEST_FAILED "Import of custom .props file not found.") + return() +endif() diff --git a/Tests/RunCMake/VS10Project/VsCustomProps.cmake b/Tests/RunCMake/VS10Project/VsCustomProps.cmake new file mode 100644 index 0000000..af52a3e --- /dev/null +++ b/Tests/RunCMake/VS10Project/VsCustomProps.cmake @@ -0,0 +1,7 @@ +enable_language(CXX) +add_library(foo foo.cpp) + +set(props_file "${CMAKE_CURRENT_SOURCE_DIR}/my.props") + +set_target_properties(foo PROPERTIES + VS_USER_PROPS_CXX "${props_file}") diff --git a/Tests/RunCMake/VS10Project/my.props b/Tests/RunCMake/VS10Project/my.props new file mode 100644 index 0000000..7c98cde --- /dev/null +++ b/Tests/RunCMake/VS10Project/my.props @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="utf-8"?> +<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> + <PropertyGroup> + </PropertyGroup> +</Project> |