diff --git a/Tests/Complex/Executable/A.cxx b/Tests/Complex/Executable/A.cxx index 0cc995af0..fb3eb0819 100644 --- a/Tests/Complex/Executable/A.cxx +++ b/Tests/Complex/Executable/A.cxx @@ -1,7 +1,9 @@ // Include code from a header that should not be compiled separately. #include "A.hh" +#include int main() { - return A(); + printf("#define A_VALUE %d\n", A()); + return 0; } diff --git a/Tests/Complex/Executable/CMakeLists.txt b/Tests/Complex/Executable/CMakeLists.txt index 1f0b99986..c76944f21 100644 --- a/Tests/Complex/Executable/CMakeLists.txt +++ b/Tests/Complex/Executable/CMakeLists.txt @@ -55,8 +55,10 @@ SET_SOURCE_FILES_PROPERTIES(complex_nobuild.cxx PROPERTIES SET_SOURCE_FILES_PROPERTIES(complex_nobuild.c PROPERTIES HEADER_FILE_ONLY 1) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt) -ADD_EXECUTABLE(complex complex testcflags.c ) +ADD_CUSTOM_COMMAND(OUTPUT Aout.h COMMAND A > Aout.h VERBATIM) +ADD_EXECUTABLE(complex complex testcflags.c Aout.h) # Sub1/NameConflictTest.c Sub2/NameConflictTest.c) ADD_EXECUTABLE(complex.file complex.file.cxx complex_nobuild.cxx complex_nobuild.c) diff --git a/Tests/Complex/Executable/complex.cxx b/Tests/Complex/Executable/complex.cxx index 643b8123a..77406aadb 100644 --- a/Tests/Complex/Executable/complex.cxx +++ b/Tests/Complex/Executable/complex.cxx @@ -3,6 +3,7 @@ #include "cmTestGeneratedHeader.h" #include "cmVersion.h" #include "ExtraSources/file1.h" +#include "Aout.h" #include "file2.h" #include "sharedFile.h" extern "C" { @@ -148,42 +149,7 @@ extern "C" int NameConflictTest2(); int main() { - std::string exe = BINARY_DIR; - exe += "/bin/"; -#ifdef CMAKE_INTDIR - exe += CMAKE_INTDIR; - exe += "/"; -#endif - #ifdef COMPLEX_TEST_CMAKELIB - // Test a single character executable to test a: in makefiles - exe += "A"; - exe += cmSystemTools::GetExecutableExtension(); - int ret; - std::string errorMessage; - exe = cmSystemTools::ConvertToRunCommandPath(exe.c_str()); - if(cmSystemTools::RunSingleCommand(exe.c_str(), 0, &ret)) - { - if(ret != 10) - { - errorMessage += exe; - errorMessage += " did not return 10"; - } - } - else - { - errorMessage += exe; - errorMessage += ": failed to run."; - } - if(errorMessage.size()) - { - cmFailed(errorMessage.c_str()); - } - else - { - cmPassed("run Single Character executable A returned 10 as expected."); - } - // ---------------------------------------------------------------------- // Test cmSystemTools::UpperCase std::string str = "abc"; @@ -1064,6 +1030,12 @@ int main() } #endif +#if defined(A_VALUE) && A_VALUE == 10 + cmPassed("Single-character executable A worked."); +#else + cmFailed("Single-character executable A failed."); +#endif + // ---------------------------------------------------------------------- // Summary diff --git a/Tests/ComplexOneConfig/Executable/A.cxx b/Tests/ComplexOneConfig/Executable/A.cxx index 0cc995af0..fb3eb0819 100644 --- a/Tests/ComplexOneConfig/Executable/A.cxx +++ b/Tests/ComplexOneConfig/Executable/A.cxx @@ -1,7 +1,9 @@ // Include code from a header that should not be compiled separately. #include "A.hh" +#include int main() { - return A(); + printf("#define A_VALUE %d\n", A()); + return 0; } diff --git a/Tests/ComplexOneConfig/Executable/CMakeLists.txt b/Tests/ComplexOneConfig/Executable/CMakeLists.txt index 1f0b99986..c76944f21 100644 --- a/Tests/ComplexOneConfig/Executable/CMakeLists.txt +++ b/Tests/ComplexOneConfig/Executable/CMakeLists.txt @@ -55,8 +55,10 @@ SET_SOURCE_FILES_PROPERTIES(complex_nobuild.cxx PROPERTIES SET_SOURCE_FILES_PROPERTIES(complex_nobuild.c PROPERTIES HEADER_FILE_ONLY 1) +INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}) ADD_EXECUTABLE(A A.cxx A.hh A.h A.txt) -ADD_EXECUTABLE(complex complex testcflags.c ) +ADD_CUSTOM_COMMAND(OUTPUT Aout.h COMMAND A > Aout.h VERBATIM) +ADD_EXECUTABLE(complex complex testcflags.c Aout.h) # Sub1/NameConflictTest.c Sub2/NameConflictTest.c) ADD_EXECUTABLE(complex.file complex.file.cxx complex_nobuild.cxx complex_nobuild.c) diff --git a/Tests/ComplexOneConfig/Executable/complex.cxx b/Tests/ComplexOneConfig/Executable/complex.cxx index 643b8123a..77406aadb 100644 --- a/Tests/ComplexOneConfig/Executable/complex.cxx +++ b/Tests/ComplexOneConfig/Executable/complex.cxx @@ -3,6 +3,7 @@ #include "cmTestGeneratedHeader.h" #include "cmVersion.h" #include "ExtraSources/file1.h" +#include "Aout.h" #include "file2.h" #include "sharedFile.h" extern "C" { @@ -148,42 +149,7 @@ extern "C" int NameConflictTest2(); int main() { - std::string exe = BINARY_DIR; - exe += "/bin/"; -#ifdef CMAKE_INTDIR - exe += CMAKE_INTDIR; - exe += "/"; -#endif - #ifdef COMPLEX_TEST_CMAKELIB - // Test a single character executable to test a: in makefiles - exe += "A"; - exe += cmSystemTools::GetExecutableExtension(); - int ret; - std::string errorMessage; - exe = cmSystemTools::ConvertToRunCommandPath(exe.c_str()); - if(cmSystemTools::RunSingleCommand(exe.c_str(), 0, &ret)) - { - if(ret != 10) - { - errorMessage += exe; - errorMessage += " did not return 10"; - } - } - else - { - errorMessage += exe; - errorMessage += ": failed to run."; - } - if(errorMessage.size()) - { - cmFailed(errorMessage.c_str()); - } - else - { - cmPassed("run Single Character executable A returned 10 as expected."); - } - // ---------------------------------------------------------------------- // Test cmSystemTools::UpperCase std::string str = "abc"; @@ -1064,6 +1030,12 @@ int main() } #endif +#if defined(A_VALUE) && A_VALUE == 10 + cmPassed("Single-character executable A worked."); +#else + cmFailed("Single-character executable A failed."); +#endif + // ---------------------------------------------------------------------- // Summary