From 16e7d4ba2c82081afea5af05bc6360b281d5e0c3 Mon Sep 17 00:00:00 2001 From: Bill Hoffman Date: Tue, 21 Dec 2010 09:17:21 -0500 Subject: Add flags to resource builds on vs 2010 with a test. --- Source/cmVisualStudio10TargetGenerator.cxx | 5 ++++- Tests/CMakeLists.txt | 12 +++++++++++- Tests/VSResource/CMakeLists.txt | 4 ++++ Tests/VSResource/main.cpp | 10 ++++++++++ Tests/VSResource/test.rc | 5 +++++ Tests/VSResource/test.txt | 1 + 6 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 Tests/VSResource/CMakeLists.txt create mode 100644 Tests/VSResource/main.cpp create mode 100644 Tests/VSResource/test.rc create mode 100644 Tests/VSResource/test.txt diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx index f78aeec..ebe36f2 100644 --- a/Source/cmVisualStudio10TargetGenerator.cxx +++ b/Source/cmVisualStudio10TargetGenerator.cxx @@ -1139,10 +1139,13 @@ OutputIncludes(std::vector const & includes) void cmVisualStudio10TargetGenerator:: -WriteRCOptions(std::string const& , +WriteRCOptions(std::string const& configName, std::vector const & includes) { this->WriteString("\n", 2); + Options& clOptions = *(this->ClOptions[configName]); + clOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ", + "\n"); this->OutputIncludes(includes); this->WriteString("\n", 2); } diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 04f0774..f7d3c18 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -246,7 +246,6 @@ IF(BUILD_TESTING) --test-command Simple) LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Simple_CodeBlocksGenerator") ENDIF ("${cmakeOutput}" MATCHES CodeBlocks) - # check for the KDevelop3 generator IF ("${cmakeOutput}" MATCHES KDevelop3) ADD_TEST(Simple_KDevelop3Generator ${CMAKE_CTEST_COMMAND} @@ -262,6 +261,17 @@ IF(BUILD_TESTING) ENDIF ("${cmakeOutput}" MATCHES KDevelop3) ENDIF(${CMAKE_TEST_GENERATOR} MATCHES "Unix Makefiles" OR ${CMAKE_TEST_GENERATOR} MATCHES "KDevelop") + ADD_TEST(VSResource ${CMAKE_CTEST_COMMAND} + --build-and-test + "${CMake_SOURCE_DIR}/Tests/VSResource" + "${CMake_BINARY_DIR}/Tests/VSResource" + --build-two-config + --build-generator ${CMAKE_TEST_GENERATOR} + --build-project VSResource + --build-makeprogram ${CMAKE_TEST_MAKEPROGRAM} + --test-command VSResource) + LIST(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/VSResource") + # test for correct sub-project generation # not implemented in VS6 or Xcode diff --git a/Tests/VSResource/CMakeLists.txt b/Tests/VSResource/CMakeLists.txt new file mode 100644 index 0000000..8a71bd0 --- /dev/null +++ b/Tests/VSResource/CMakeLists.txt @@ -0,0 +1,4 @@ +cmake_minimum_required (VERSION 2.6) +project (VSResource) +add_definitions(/DCMAKE_RCDEFINE="test.txt") +add_executable(VSResource main.cpp test.rc) diff --git a/Tests/VSResource/main.cpp b/Tests/VSResource/main.cpp new file mode 100644 index 0000000..6f68df3 --- /dev/null +++ b/Tests/VSResource/main.cpp @@ -0,0 +1,10 @@ +#include + +int main(int argc, char** argv) { + HRSRC hello = ::FindResource(0, "hello", "TEXT"); + if(hello) { + return 0; + } else { + return 1; + } +} diff --git a/Tests/VSResource/test.rc b/Tests/VSResource/test.rc new file mode 100644 index 0000000..8aab8b7 --- /dev/null +++ b/Tests/VSResource/test.rc @@ -0,0 +1,5 @@ +#ifdef CMAKE_RCDEFINE +hello TEXT DISCARDABLE CMAKE_RCDEFINE +#else +#error "resource compiler did not get defines from command line!" +#endif \ No newline at end of file diff --git a/Tests/VSResource/test.txt b/Tests/VSResource/test.txt new file mode 100644 index 0000000..980a0d5 --- /dev/null +++ b/Tests/VSResource/test.txt @@ -0,0 +1 @@ +Hello World! -- cgit v0.12