diff options
Diffstat (limited to 'Tests/Complex/Executable')
-rw-r--r-- | Tests/Complex/Executable/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Tests/Complex/Executable/complex.cxx | 20 | ||||
-rw-r--r-- | Tests/Complex/Executable/testcflags.c | 11 |
3 files changed, 29 insertions, 4 deletions
diff --git a/Tests/Complex/Executable/CMakeLists.txt b/Tests/Complex/Executable/CMakeLists.txt index 0f5add9..768e0fa 100644 --- a/Tests/Complex/Executable/CMakeLists.txt +++ b/Tests/Complex/Executable/CMakeLists.txt @@ -56,7 +56,7 @@ SET_SOURCE_FILES_PROPERTIES(complex COMPILE_FLAGS "-DFILE_HAS_EXTRA_COMPILE_FLAGS" OBJECT_DEPENDS ${Complex_BINARY_DIR}/cmTestGeneratedHeader.h ) - +SET_TARGET_PROPERTIES(complex PROPERTIES COMPILE_FLAGS "-DCOMPLEX_TARGET_FLAG") ADD_CUSTOM_COMMAND( TARGET complex SOURCE ${Complex_SOURCE_DIR}/cmTestGeneratedHeader.h.in diff --git a/Tests/Complex/Executable/complex.cxx b/Tests/Complex/Executable/complex.cxx index 06af8ec..f7f8d53 100644 --- a/Tests/Complex/Executable/complex.cxx +++ b/Tests/Complex/Executable/complex.cxx @@ -272,6 +272,7 @@ void ForceStringUse() // defined in testcflags.c extern "C" int TestCFlags(char* m); +extern "C" int TestTargetCompileFlags(char* m); // ====================================================================== @@ -387,7 +388,12 @@ int main() { cmPassed("Call to file1 function returned 1."); } - +#ifndef COMPLEX_TARGET_FLAG + cmFailed("COMPILE_FLAGS did not work with SET_TARGET_PROPERTIES"); +#else + cmPassed("COMPILE_FLAGS did work with SET_TARGET_PROPERTIES"); +#endif + if(file2() != 1) { cmFailed("Call to file2 function from library failed."); @@ -403,6 +409,7 @@ int main() #endif std::string gen = CMAKE_GENERATOR; // visual studio is currently broken for c flags + char msg[1024]; if(gen.find("Visual") == gen.npos) { #ifdef TEST_C_FLAGS @@ -410,7 +417,6 @@ int main() #else cmPassed("CMake CMAKE_C_FLAGS are not being passed to c++ files."); #endif - char msg[1024]; if(TestCFlags(msg)) { cmPassed( @@ -421,7 +427,15 @@ int main() cmFailed(msg); } } - + if(TestTargetCompileFlags(msg)) + { + cmPassed(msg); + } + else + { + cmFailed(msg); + } + // ---------------------------------------------------------------------- // Test ADD_DEFINITIONS diff --git a/Tests/Complex/Executable/testcflags.c b/Tests/Complex/Executable/testcflags.c index 6c692f3..f4d5848 100644 --- a/Tests/Complex/Executable/testcflags.c +++ b/Tests/Complex/Executable/testcflags.c @@ -1,4 +1,15 @@ #include <string.h> + +int TestTargetCompileFlags(char* m) +{ +#ifndef COMPLEX_TARGET_FLAG + strcpy(m, "CMAKE SET_TARGET_PROPERTIES COMPILE_FLAGS did not work"); + return 0; +#endif + strcpy(m, "CMAKE SET_TARGET_PROPERTIES COMPILE_FLAGS worked"); + return 1; +} + int TestCFlags(char* m) { /* TEST_CXX_FLAGS should not be defined in a c file */ |