summaryrefslogtreecommitdiffstats
path: root/Tests/TryCompile/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/TryCompile/CMakeLists.txt')
-rw-r--r--Tests/TryCompile/CMakeLists.txt33
1 files changed, 33 insertions, 0 deletions
diff --git a/Tests/TryCompile/CMakeLists.txt b/Tests/TryCompile/CMakeLists.txt
index 4667345..c0662a9 100644
--- a/Tests/TryCompile/CMakeLists.txt
+++ b/Tests/TryCompile/CMakeLists.txt
@@ -25,6 +25,39 @@ MACRO(TEST_EXPECT_CONTAINS command expected)
ENDIF(NOT "${result}" MATCHES "${expected}")
ENDMACRO(TEST_EXPECT_CONTAINS command expected)
+
+# Write a simple test program with an include file
+WRITE_FILE( ${CMAKE_BINARY_DIR}/CMakeTmp/my_include.h "#define TEST_VALUE 0\n")
+WRITE_FILE( ${CMAKE_BINARY_DIR}/my_test.cxx "#include \"my_include.h\"\nint main() { return TEST_VALUE; }")
+
+SET(INC_STRING "-I \"${CMAKE_BINARY_DIR}/CMakeTmp\"")
+# Removing the quotes fixes the Xcode 3 bug, but this
+# will fail if ${CMAKE_BINARY_DIR} contains an spaces
+# SET(INC_STRING "-I ${CMAKE_BINARY_DIR}/CMakeTmp")
+
+TRY_RUN(my_test my_test_COMPILED
+ ${CMAKE_BINARY_DIR}
+ ${CMAKE_BINARY_DIR}/my_test.cxx
+ CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${INC_STRING}
+ OUTPUT_VARIABLE OUTPUT)
+
+
+# Display the results of the test and write compilation errors to a log
+IF(NOT my_test_COMPILED)
+ MESSAGE(FATAL_ERROR "Performing Try-Run - Test Compilation Failed")
+ WRITE_FILE(${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
+ "Performing Try-Run my_test failed to compile with the following output:\n"
+ "${OUTPUT}\n" APPEND)
+ELSE(NOT my_test_COMPILED)
+ IF(my_test)
+ MESSAGE("The test compiled but failed at run time")
+ ELSE(my_test)
+ MESSAGE("The test compiled and passed")
+ ENDIF(my_test)
+ENDIF(NOT my_test_COMPILED)
+
+
+
# try to compile a file that should compile
# also check that COPY_FILE works
TRY_COMPILE(SHOULD_PASS