summaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
Diffstat (limited to 'Tests')
-rw-r--r--Tests/CMakeLists.txt48
-rw-r--r--Tests/CTestTestLaunchers/launcher_test_project/CMakeLists.txt19
-rw-r--r--Tests/CTestTestLaunchers/launcher_test_project/CTestConfig.cmake8
-rw-r--r--Tests/CTestTestLaunchers/launcher_test_project/command.cmake5
-rw-r--r--Tests/CTestTestLaunchers/test.cmake.in39
-rw-r--r--Tests/CTestTestStopTime/GetDate.cmake163
-rw-r--r--Tests/CustomCommand/CMakeLists.txt7
-rw-r--r--Tests/CustomCommand/source_in_custom_target.cpp0
-rw-r--r--Tests/QtAutogen/Adir/CMakeLists.txt (renamed from Tests/QtAutomoc/Adir/CMakeLists.txt)0
-rw-r--r--Tests/QtAutogen/Adir/libA.cpp (renamed from Tests/QtAutomoc/Adir/libA.cpp)0
-rw-r--r--Tests/QtAutogen/Adir/libA.h (renamed from Tests/QtAutomoc/Adir/libA.h)0
-rw-r--r--Tests/QtAutogen/Bdir/CMakeLists.txt (renamed from Tests/QtAutomoc/Bdir/CMakeLists.txt)0
-rw-r--r--Tests/QtAutogen/Bdir/libB.cpp (renamed from Tests/QtAutomoc/Bdir/libB.cpp)0
-rw-r--r--Tests/QtAutogen/Bdir/libB.h (renamed from Tests/QtAutomoc/Bdir/libB.h)0
-rw-r--r--Tests/QtAutogen/CMakeLists.txt (renamed from Tests/QtAutomoc/CMakeLists.txt)17
-rw-r--r--Tests/QtAutogen/abc.cpp (renamed from Tests/QtAutomoc/abc.cpp)0
-rw-r--r--Tests/QtAutogen/abc.h (renamed from Tests/QtAutomoc/abc.h)0
-rw-r--r--Tests/QtAutogen/abc_p.h (renamed from Tests/QtAutomoc/abc_p.h)0
-rw-r--r--Tests/QtAutogen/bar.cpp (renamed from Tests/QtAutomoc/bar.cpp)0
-rw-r--r--Tests/QtAutogen/blub.cpp (renamed from Tests/QtAutomoc/blub.cpp)0
-rw-r--r--Tests/QtAutogen/blub.h (renamed from Tests/QtAutomoc/blub.h)0
-rw-r--r--Tests/QtAutogen/calwidget.cpp (renamed from Tests/QtAutomoc/calwidget.cpp)3
-rw-r--r--Tests/QtAutogen/calwidget.h (renamed from Tests/QtAutomoc/calwidget.h)7
-rw-r--r--Tests/QtAutogen/calwidget.ui32
-rw-r--r--Tests/QtAutogen/codeeditor.cpp (renamed from Tests/QtAutomoc/codeeditor.cpp)0
-rw-r--r--Tests/QtAutogen/codeeditor.h (renamed from Tests/QtAutomoc/codeeditor.h)0
-rw-r--r--Tests/QtAutogen/defines_test/CMakeLists.txt (renamed from Tests/QtAutomoc/defines_test/CMakeLists.txt)0
-rw-r--r--Tests/QtAutogen/defines_test/defines_test.cpp (renamed from Tests/QtAutomoc/defines_test/defines_test.cpp)0
-rw-r--r--Tests/QtAutogen/empty.cpp (renamed from Tests/QtAutomoc/empty.cpp)0
-rw-r--r--Tests/QtAutogen/empty.h (renamed from Tests/QtAutomoc/empty.h)0
-rw-r--r--Tests/QtAutogen/foo.cpp (renamed from Tests/QtAutomoc/foo.cpp)0
-rw-r--r--Tests/QtAutogen/foo.h (renamed from Tests/QtAutomoc/foo.h)0
-rw-r--r--Tests/QtAutogen/gadget.cpp (renamed from Tests/QtAutomoc/gadget.cpp)0
-rw-r--r--Tests/QtAutogen/gadget.h (renamed from Tests/QtAutomoc/gadget.h)0
-rw-r--r--Tests/QtAutogen/libC.cpp (renamed from Tests/QtAutomoc/libC.cpp)0
-rw-r--r--Tests/QtAutogen/libC.h (renamed from Tests/QtAutomoc/libC.h)0
-rw-r--r--Tests/QtAutogen/main.cpp (renamed from Tests/QtAutomoc/main.cpp)17
-rw-r--r--Tests/QtAutogen/private_slot.cpp (renamed from Tests/QtAutomoc/private_slot.cpp)0
-rw-r--r--Tests/QtAutogen/private_slot.h (renamed from Tests/QtAutomoc/private_slot.h)0
-rw-r--r--Tests/QtAutogen/resourcetester.cpp21
-rw-r--r--Tests/QtAutogen/resourcetester.h17
-rw-r--r--Tests/QtAutogen/sub/bar.h (renamed from Tests/QtAutomoc/sub/bar.h)0
-rw-r--r--Tests/QtAutogen/test.qrc5
-rw-r--r--Tests/QtAutogen/xyz.cpp (renamed from Tests/QtAutomoc/xyz.cpp)0
-rw-r--r--Tests/QtAutogen/xyz.h (renamed from Tests/QtAutomoc/xyz.h)0
-rw-r--r--Tests/QtAutogen/yaf.cpp (renamed from Tests/QtAutomoc/yaf.cpp)0
-rw-r--r--Tests/QtAutogen/yaf.h (renamed from Tests/QtAutomoc/yaf.h)0
-rw-r--r--Tests/QtAutogen/yaf_p.h (renamed from Tests/QtAutomoc/yaf_p.h)0
-rw-r--r--Tests/RunCMake/CMakeLists.txt1
-rw-r--r--Tests/RunCMake/CompilerChange/EmptyCompiler-override.cmake2
-rw-r--r--Tests/RunCMake/CompilerChange/EmptyCompiler-stderr.txt12
-rw-r--r--Tests/RunCMake/CompilerChange/EmptyCompiler.cmake3
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerC-result.txt1
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerC-stderr.txt12
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerC.cmake3
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerCXX-result.txt1
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerCXX-stderr.txt12
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerCXX.cmake3
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX-result.txt1
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX-stderr.txt25
-rw-r--r--Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX.cmake4
-rw-r--r--Tests/RunCMake/CompilerNotFound/CMakeLists.txt3
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE-result.txt1
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE-stderr.txt5
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE.cmake3
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE-result.txt1
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE-stderr.txt5
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE.cmake3
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE-result.txt1
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE-stderr.txt11
-rw-r--r--Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE.cmake4
-rw-r--r--Tests/RunCMake/CompilerNotFound/RunCMakeTest.cmake11
-rw-r--r--Tests/RunCMake/Syntax/BracketComment5.cmake5
-rw-r--r--Tests/RunCMake/Syntax/Escape1-stderr.txt3
-rw-r--r--Tests/RunCMake/Syntax/Escape1.cmake3
-rw-r--r--Tests/RunCMake/Syntax/RunCMakeTest.cmake1
76 files changed, 383 insertions, 165 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 5ffd9d7..7c939ed 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1029,34 +1029,43 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
)
list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/QtAutomocNoQt")
+ # On Windows there is no RPATH, so while Qt might be available for building,
+ # the required dlls may not be in the PATH, so we can't run the executables
+ # on that platform.
+ if(WIN32)
+ set(run_autogen_test ${CMAKE_CTEST_COMMAND} -V)
+ else()
+ set(run_autogen_test QtAutogen)
+ endif()
+
find_package(Qt5Widgets QUIET NO_MODULE)
if(Qt5Widgets_FOUND)
- add_test(Qt5Automoc ${CMAKE_CTEST_COMMAND}
+ add_test(Qt5Autogen ${CMAKE_CTEST_COMMAND}
--build-and-test
- "${CMake_SOURCE_DIR}/Tests/QtAutomoc"
- "${CMake_BINARY_DIR}/Tests/Qt5Automoc"
+ "${CMake_SOURCE_DIR}/Tests/QtAutogen"
+ "${CMake_BINARY_DIR}/Tests/Qt5Autogen"
${build_generator_args}
- --build-project QtAutomoc
- --build-exe-dir "${CMake_BINARY_DIR}/Tests/Qt5Automoc"
+ --build-project QtAutogen
+ --build-exe-dir "${CMake_BINARY_DIR}/Tests/Qt5Autogen"
--force-new-ctest-process
--build-options -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} -DQT_TEST_VERSION=5
- --test-command ${CMAKE_CTEST_COMMAND} -V
+ --test-command ${run_autogen_test}
)
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt5Automoc")
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt5Autogen")
endif()
if(QT4_WORKS AND QT_QTGUI_FOUND)
- add_test(Qt4Automoc ${CMAKE_CTEST_COMMAND}
+ add_test(Qt4Autogen ${CMAKE_CTEST_COMMAND}
--build-and-test
- "${CMake_SOURCE_DIR}/Tests/QtAutomoc"
- "${CMake_BINARY_DIR}/Tests/Qt4Automoc"
+ "${CMake_SOURCE_DIR}/Tests/QtAutogen"
+ "${CMake_BINARY_DIR}/Tests/Qt4Autogen"
${build_generator_args}
- --build-project QtAutomoc
- --build-exe-dir "${CMake_BINARY_DIR}/Tests/Qt4Automoc"
+ --build-project QtAutogen
+ --build-exe-dir "${CMake_BINARY_DIR}/Tests/Qt4Autogen"
--force-new-ctest-process
--build-options -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} -DQT_TEST_VERSION=4
- --test-command ${CMAKE_CTEST_COMMAND} -V
+ --test-command ${run_autogen_test}
)
- list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt4Automoc")
+ list(APPEND TEST_BUILD_DIRS "${CMake_BINARY_DIR}/Tests/Qt4Autogen")
add_test(Qt4Targets ${CMAKE_CTEST_COMMAND}
--build-and-test
@@ -2335,6 +2344,17 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--output-log "${CMake_BINARY_DIR}/Tests/CTestTest2/testOutput.log"
)
+ if("${CMAKE_TEST_GENERATOR}" MATCHES "Makefiles" OR "${CMAKE_TEST_GENERATOR}" MATCHES "Ninja")
+ configure_file("${CMake_SOURCE_DIR}/Tests/CTestTestLaunchers/test.cmake.in"
+ "${CMake_BINARY_DIR}/Tests/CTestTestLaunchers/test.cmake" @ONLY ESCAPE_QUOTES)
+ add_test(CTestTestLaunchers ${CMAKE_CTEST_COMMAND}
+ -S "${CMake_BINARY_DIR}/Tests/CTestTestLaunchers/test.cmake" -V
+ --output-log "${CMake_BINARY_DIR}/Tests/CTestTestLaunchers/testOutput.log"
+ )
+ set_tests_properties(CTestTestLaunchers PROPERTIES
+ PASS_REGULAR_EXPRESSION "CTEST_TEST_LAUNCHER_SUCCESS")
+ endif()
+
configure_file("${CMake_SOURCE_DIR}/Tests/CTestTestChecksum/test.cmake.in"
"${CMake_BINARY_DIR}/Tests/CTestTestChecksum/test.cmake" @ONLY
ESCAPE_QUOTES)
diff --git a/Tests/CTestTestLaunchers/launcher_test_project/CMakeLists.txt b/Tests/CTestTestLaunchers/launcher_test_project/CMakeLists.txt
new file mode 100644
index 0000000..06c5725
--- /dev/null
+++ b/Tests/CTestTestLaunchers/launcher_test_project/CMakeLists.txt
@@ -0,0 +1,19 @@
+cmake_minimum_required(VERSION 2.8.12)
+
+project(launcher_test_project)
+
+include(CTest)
+
+add_custom_command(
+ OUTPUT test1.txt
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -DTESTID=1 -P "${CMAKE_CURRENT_SOURCE_DIR}/command.cmake"
+)
+
+add_custom_command(
+ OUTPUT test2.txt
+ COMMAND ${CMAKE_COMMAND}
+ ARGS -DTESTID=2 -P "${CMAKE_CURRENT_SOURCE_DIR}/command.cmake"
+)
+
+add_custom_target(mytarget ALL DEPENDS test1.txt test2.txt)
diff --git a/Tests/CTestTestLaunchers/launcher_test_project/CTestConfig.cmake b/Tests/CTestTestLaunchers/launcher_test_project/CTestConfig.cmake
new file mode 100644
index 0000000..bf404ab
--- /dev/null
+++ b/Tests/CTestTestLaunchers/launcher_test_project/CTestConfig.cmake
@@ -0,0 +1,8 @@
+set(CTEST_USE_LAUNCHERS 1)
+set(CTEST_PROJECT_NAME "CTestTestLaunchers")
+set(CTEST_NIGHTLY_START_TIME "21:00:00 EDT")
+set(CTEST_DART_SERVER_VERSION "2")
+set(CTEST_DROP_METHOD "http")
+set(CTEST_DROP_SITE "www.cdash.org")
+set(CTEST_DROP_LOCATION "/CDash/submit.php?project=PublicDashboard")
+set(CTEST_DROP_SITE_CDASH TRUE)
diff --git a/Tests/CTestTestLaunchers/launcher_test_project/command.cmake b/Tests/CTestTestLaunchers/launcher_test_project/command.cmake
new file mode 100644
index 0000000..7f31af9
--- /dev/null
+++ b/Tests/CTestTestLaunchers/launcher_test_project/command.cmake
@@ -0,0 +1,5 @@
+if("${TESTID}" STREQUAL "1")
+ message("success")
+elseif("${TESTID}" STREQUAL "2")
+ message(FATAL_ERROR "failure")
+endif()
diff --git a/Tests/CTestTestLaunchers/test.cmake.in b/Tests/CTestTestLaunchers/test.cmake.in
new file mode 100644
index 0000000..43a6533
--- /dev/null
+++ b/Tests/CTestTestLaunchers/test.cmake.in
@@ -0,0 +1,39 @@
+cmake_minimum_required(VERSION 2.8.12)
+
+# Settings:
+set(CTEST_DASHBOARD_SOURCE "@CMake_SOURCE_DIR@/Tests/CTestTestLaunchers")
+set(CTEST_DASHBOARD_ROOT "@CMake_BINARY_DIR@/Tests/CTestTestLaunchers")
+set(CTEST_SITE "@SITE@")
+set(CTEST_BUILD_NAME "Launchers-@BUILDNAME@-CTestTestLaunchers")
+
+set(CTEST_SOURCE_DIRECTORY "${CTEST_DASHBOARD_SOURCE}/launcher_test_project")
+set(CTEST_BINARY_DIRECTORY "${CTEST_DASHBOARD_ROOT}/launcher_test_project-bin")
+set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
+set(CTEST_CMAKE_GENERATOR_TOOLSET "@CMAKE_GENERATOR_TOOLSET@")
+set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
+set(CTEST_NOTES_FILES "${CTEST_SCRIPT_DIRECTORY}/${CTEST_SCRIPT_NAME}")
+
+ctest_empty_binary_directory(${CTEST_BINARY_DIRECTORY})
+
+file(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "
+CMAKE_CXX_FLAGS:STRING=@CMAKE_CXX_FLAGS@
+CMAKE_C_FLAGS:STRING=@CMAKE_C_FLAGS@
+CMAKE_C_COMPILER:STRING=@CMAKE_C_COMPILER@
+CMAKE_CXX_COMPILER:STRING=@CMAKE_CXX_COMPILER@
+CMAKE_C_COMPILER_ARG1:STRING=@CMAKE_C_COMPILER_ARG1@
+CMAKE_CXX_COMPILER_ARG1:STRING=@CMAKE_CXX_COMPILER_ARG1@
+")
+
+set(TEST_SUCCESS FALSE)
+
+ctest_start(Experimental)
+ctest_configure(OPTIONS "-DCTEST_USE_LAUNCHERS=1")
+ctest_build(NUMBER_ERRORS error_count)
+
+if("${error_count}" STREQUAL "1")
+ set(TEST_SUCCESS TRUE)
+endif()
+
+if(TEST_SUCCESS)
+ message("CTEST_TEST_LAUNCHER_SUCCESS")
+endif()
diff --git a/Tests/CTestTestStopTime/GetDate.cmake b/Tests/CTestTestStopTime/GetDate.cmake
index fc55031..edc6519 100644
--- a/Tests/CTestTestStopTime/GetDate.cmake
+++ b/Tests/CTestTestStopTime/GetDate.cmake
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.4)
+cmake_minimum_required(VERSION 2.8.11)
macro(GET_DATE)
#
@@ -13,10 +13,7 @@ macro(GET_DATE)
# ${GD_PREFIX}PREFIX (if '${GD_PREFIX}' is not 'GD_'...!)
# ${GD_PREFIX}VERBOSE
#
- # ${GD_PREFIX}CMD
- # ${GD_PREFIX}ARGS
# ${GD_PREFIX}OV
- # ${GD_PREFIX}RV
#
# ${GD_PREFIX}REGEX
# ${GD_PREFIX}YEAR
@@ -25,8 +22,6 @@ macro(GET_DATE)
# ${GD_PREFIX}HOUR
# ${GD_PREFIX}MINUTE
# ${GD_PREFIX}SECOND
- # ${GD_PREFIX}FRACTIONAL_SECOND
- # ${GD_PREFIX}DAY_OF_WEEK
#
# Caller can then use these variables to construct names based on
# date and time stamps...
@@ -51,31 +46,10 @@ macro(GET_DATE)
# Retrieve the current date and time in the format:
#
- # Thu 01/12/2006 8:55:12.01
- # dow mm/dd/YYYY HH:MM:SS.ssssss
+ # 01/12/2006 08:55:12
+ # mm/dd/YYYY HH:MM:SS
#
- # Use "echo %DATE% %TIME%" on Windows.
- # Otherwise, try "date" as implemented on most Unix flavors.
- #
- if(WIN32)
- #
- # Use "cmd" shell with %DATE% and %TIME% support...
- # May need adjustment in different locales or for custom date/time formats
- # set in the Windows Control Panel.
- #
- set(${GD_PREFIX}CMD "cmd")
- set(${GD_PREFIX}ARGS "/c echo %DATE% %TIME%")
- else()
- #
- # Match the format returned by default in US English Windows:
- #
- set(${GD_PREFIX}CMD "date")
- set(${GD_PREFIX}ARGS "\"+%a %m/%d/%Y %H:%M:%S.00\"")
- endif()
-
- exec_program("${${GD_PREFIX}CMD}" "." ARGS "${${GD_PREFIX}ARGS}"
- OUTPUT_VARIABLE ${GD_PREFIX}OV RETURN_VALUE ${GD_PREFIX}RV
- )
+ string(TIMESTAMP "${GD_PREFIX}OV" "%m/%d/%Y %H:%M:%S")
if(${GD_PREFIX}VERBOSE)
message(STATUS "")
@@ -87,114 +61,39 @@ macro(GET_DATE)
endif()
message(STATUS "${GD_PREFIX}VERBOSE='${${GD_PREFIX}VERBOSE}'")
message(STATUS "")
- message(STATUS "${GD_PREFIX}CMD='${${GD_PREFIX}CMD}'")
- message(STATUS "${GD_PREFIX}ARGS='${${GD_PREFIX}ARGS}'")
message(STATUS "${GD_PREFIX}OV='${${GD_PREFIX}OV}'")
- message(STATUS "${GD_PREFIX}RV='${${GD_PREFIX}RV}'")
message(STATUS "")
endif()
- if("${${GD_PREFIX}RV}" STREQUAL "0")
- #
- # Extract eight individual components by matching a regex with paren groupings.
- # Use the replace functionality and \\1 thru \\8 to extract components.
- #
- set(${GD_PREFIX}REGEX "([^ ]+) +([^/]+)/([^/]+)/([^ ]+) +([^:]+):([^:]+):([^\\.]+)\\.(.*)")
-
- string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\1" ${GD_PREFIX}DAY_OF_WEEK "${${GD_PREFIX}OV}")
- string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\2" ${GD_PREFIX}MONTH "${${GD_PREFIX}OV}")
- string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\3" ${GD_PREFIX}DAY "${${GD_PREFIX}OV}")
- string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\4" ${GD_PREFIX}YEAR "${${GD_PREFIX}OV}")
- string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\5" ${GD_PREFIX}HOUR "${${GD_PREFIX}OV}")
- string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\6" ${GD_PREFIX}MINUTE "${${GD_PREFIX}OV}")
- string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\7" ${GD_PREFIX}SECOND "${${GD_PREFIX}OV}")
- string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\8" ${GD_PREFIX}FRACTIONAL_SECOND "${${GD_PREFIX}OV}")
-
- #
- # Verify that extracted components don't have anything obviously
- # wrong with them... Emit warnings if something looks suspicious...
- #
-
- # Expecting a four digit year:
- #
- if(NOT "${${GD_PREFIX}YEAR}" MATCHES "^[0-9][0-9][0-9][0-9]$")
- message(STATUS "WARNING: Extracted ${GD_PREFIX}YEAR='${${GD_PREFIX}YEAR}' is not a four digit number...")
- endif()
-
- # Expecting month to be <= 12:
- #
- if(${${GD_PREFIX}MONTH} GREATER 12)
- message(STATUS "WARNING: Extracted ${GD_PREFIX}MONTH='${${GD_PREFIX}MONTH}' is greater than 12!")
- endif()
-
- # Expecting day to be <= 31:
- #
- if(${${GD_PREFIX}DAY} GREATER 31)
- message(STATUS "WARNING: Extracted ${GD_PREFIX}DAY='${${GD_PREFIX}DAY}' is greater than 31!")
- endif()
-
- # Expecting hour to be <= 23:
- #
- if(${${GD_PREFIX}HOUR} GREATER 23)
- message(STATUS "WARNING: Extracted ${GD_PREFIX}HOUR='${${GD_PREFIX}HOUR}' is greater than 23!")
- endif()
-
- # Expecting minute to be <= 59:
- #
- if(${${GD_PREFIX}MINUTE} GREATER 59)
- message(STATUS "WARNING: Extracted ${GD_PREFIX}MINUTE='${${GD_PREFIX}MINUTE}' is greater than 59!")
- endif()
-
- # Expecting second to be <= 59:
- #
- if(${${GD_PREFIX}SECOND} GREATER 59)
- message(STATUS "WARNING: Extracted ${GD_PREFIX}SECOND='${${GD_PREFIX}SECOND}' is greater than 59!")
- endif()
+ #
+ # Extract six individual components by matching a regex with paren groupings.
+ # Use the replace functionality and \\1 thru \\6 to extract components.
+ #
+ set(${GD_PREFIX}REGEX "([^/]+)/([^/]+)/([^ ]+) +([^:]+):([^:]+):([^\\.]+)")
- # If individual components are single digit,
- # prepend a leading zero:
- #
- if("${${GD_PREFIX}YEAR}" MATCHES "^[0-9]$")
- set(${GD_PREFIX}YEAR "0${${GD_PREFIX}YEAR}")
- endif()
- if("${${GD_PREFIX}MONTH}" MATCHES "^[0-9]$")
- set(${GD_PREFIX}MONTH "0${${GD_PREFIX}MONTH}")
- endif()
- if("${${GD_PREFIX}DAY}" MATCHES "^[0-9]$")
- set(${GD_PREFIX}DAY "0${${GD_PREFIX}DAY}")
- endif()
- if("${${GD_PREFIX}HOUR}" MATCHES "^[0-9]$")
- set(${GD_PREFIX}HOUR "0${${GD_PREFIX}HOUR}")
- endif()
- if("${${GD_PREFIX}MINUTE}" MATCHES "^[0-9]$")
- set(${GD_PREFIX}MINUTE "0${${GD_PREFIX}MINUTE}")
- endif()
- if("${${GD_PREFIX}SECOND}" MATCHES "^[0-9]$")
- set(${GD_PREFIX}SECOND "0${${GD_PREFIX}SECOND}")
- endif()
+ string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\1" ${GD_PREFIX}MONTH "${${GD_PREFIX}OV}")
+ string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\2" ${GD_PREFIX}DAY "${${GD_PREFIX}OV}")
+ string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\3" ${GD_PREFIX}YEAR "${${GD_PREFIX}OV}")
+ string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\4" ${GD_PREFIX}HOUR "${${GD_PREFIX}OV}")
+ string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\5" ${GD_PREFIX}MINUTE "${${GD_PREFIX}OV}")
+ string(REGEX REPLACE "${${GD_PREFIX}REGEX}" "\\6" ${GD_PREFIX}SECOND "${${GD_PREFIX}OV}")
- if(${GD_PREFIX}VERBOSE)
- message(STATUS "${GD_PREFIX}REGEX='${${GD_PREFIX}REGEX}'")
- message(STATUS "${GD_PREFIX}YEAR='${${GD_PREFIX}YEAR}'")
- message(STATUS "${GD_PREFIX}MONTH='${${GD_PREFIX}MONTH}'")
- message(STATUS "${GD_PREFIX}DAY='${${GD_PREFIX}DAY}'")
- message(STATUS "${GD_PREFIX}HOUR='${${GD_PREFIX}HOUR}'")
- message(STATUS "${GD_PREFIX}MINUTE='${${GD_PREFIX}MINUTE}'")
- message(STATUS "${GD_PREFIX}SECOND='${${GD_PREFIX}SECOND}'")
- message(STATUS "${GD_PREFIX}FRACTIONAL_SECOND='${${GD_PREFIX}FRACTIONAL_SECOND}'")
- message(STATUS "${GD_PREFIX}DAY_OF_WEEK='${${GD_PREFIX}DAY_OF_WEEK}'")
- message(STATUS "")
- message(STATUS "Counters that change...")
- message(STATUS "")
- message(STATUS "...very very quickly : ${${GD_PREFIX}YEAR}${${GD_PREFIX}MONTH}${${GD_PREFIX}DAY}${${GD_PREFIX}HOUR}${${GD_PREFIX}MINUTE}${${GD_PREFIX}SECOND}${${GD_PREFIX}FRACTIONAL_SECOND}")
- message(STATUS " every second : ${${GD_PREFIX}YEAR}${${GD_PREFIX}MONTH}${${GD_PREFIX}DAY}${${GD_PREFIX}HOUR}${${GD_PREFIX}MINUTE}${${GD_PREFIX}SECOND}")
- message(STATUS " daily : ${${GD_PREFIX}YEAR}${${GD_PREFIX}MONTH}${${GD_PREFIX}DAY}")
- message(STATUS " monthly : ${${GD_PREFIX}YEAR}${${GD_PREFIX}MONTH}")
- message(STATUS " annually : ${${GD_PREFIX}YEAR}")
- message(STATUS "")
- endif()
- else()
- message(SEND_ERROR "ERROR: macro(GET_DATE) failed. ${GD_PREFIX}CMD='${${GD_PREFIX}CMD}' ${GD_PREFIX}ARGS='${${GD_PREFIX}ARGS}' ${GD_PREFIX}OV='${${GD_PREFIX}OV}' ${GD_PREFIX}RV='${${GD_PREFIX}RV}'")
+ if(${GD_PREFIX}VERBOSE)
+ message(STATUS "${GD_PREFIX}REGEX='${${GD_PREFIX}REGEX}'")
+ message(STATUS "${GD_PREFIX}YEAR='${${GD_PREFIX}YEAR}'")
+ message(STATUS "${GD_PREFIX}MONTH='${${GD_PREFIX}MONTH}'")
+ message(STATUS "${GD_PREFIX}DAY='${${GD_PREFIX}DAY}'")
+ message(STATUS "${GD_PREFIX}HOUR='${${GD_PREFIX}HOUR}'")
+ message(STATUS "${GD_PREFIX}MINUTE='${${GD_PREFIX}MINUTE}'")
+ message(STATUS "${GD_PREFIX}SECOND='${${GD_PREFIX}SECOND}'")
+ message(STATUS "")
+ message(STATUS "Counters that change...")
+ message(STATUS "")
+ message(STATUS " every second : ${${GD_PREFIX}YEAR}${${GD_PREFIX}MONTH}${${GD_PREFIX}DAY}${${GD_PREFIX}HOUR}${${GD_PREFIX}MINUTE}${${GD_PREFIX}SECOND}")
+ message(STATUS " daily : ${${GD_PREFIX}YEAR}${${GD_PREFIX}MONTH}${${GD_PREFIX}DAY}")
+ message(STATUS " monthly : ${${GD_PREFIX}YEAR}${${GD_PREFIX}MONTH}")
+ message(STATUS " annually : ${${GD_PREFIX}YEAR}")
+ message(STATUS "")
endif()
if(${GD_PREFIX}VERBOSE)
diff --git a/Tests/CustomCommand/CMakeLists.txt b/Tests/CustomCommand/CMakeLists.txt
index 30daa7d..ff96add 100644
--- a/Tests/CustomCommand/CMakeLists.txt
+++ b/Tests/CustomCommand/CMakeLists.txt
@@ -449,3 +449,10 @@ set_property(SOURCE perconfig.out PROPERTY SYMBOLIC 1)
add_custom_target(perconfig_target ALL
COMMAND ${CMAKE_COMMAND} -E echo "perconfig=$<TARGET_FILE:perconfig>" "config=$<CONFIGURATION>"
DEPENDS perconfig.out)
+
+# Test SOURCES in add_custom_target() with COMPILE_DEFINITIONS
+# which previously caused a crash in the makefile generators.
+add_custom_target(source_in_custom_target SOURCES source_in_custom_target.cpp)
+set_property(SOURCE source_in_custom_target
+ PROPERTY COMPILE_DEFINITIONS "TEST"
+)
diff --git a/Tests/CustomCommand/source_in_custom_target.cpp b/Tests/CustomCommand/source_in_custom_target.cpp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/Tests/CustomCommand/source_in_custom_target.cpp
diff --git a/Tests/QtAutomoc/Adir/CMakeLists.txt b/Tests/QtAutogen/Adir/CMakeLists.txt
index a1c36ff..a1c36ff 100644
--- a/Tests/QtAutomoc/Adir/CMakeLists.txt
+++ b/Tests/QtAutogen/Adir/CMakeLists.txt
diff --git a/Tests/QtAutomoc/Adir/libA.cpp b/Tests/QtAutogen/Adir/libA.cpp
index 3968c44..3968c44 100644
--- a/Tests/QtAutomoc/Adir/libA.cpp
+++ b/Tests/QtAutogen/Adir/libA.cpp
diff --git a/Tests/QtAutomoc/Adir/libA.h b/Tests/QtAutogen/Adir/libA.h
index 03ad1e0..03ad1e0 100644
--- a/Tests/QtAutomoc/Adir/libA.h
+++ b/Tests/QtAutogen/Adir/libA.h
diff --git a/Tests/QtAutomoc/Bdir/CMakeLists.txt b/Tests/QtAutogen/Bdir/CMakeLists.txt
index d9d4aa7..d9d4aa7 100644
--- a/Tests/QtAutomoc/Bdir/CMakeLists.txt
+++ b/Tests/QtAutogen/Bdir/CMakeLists.txt
diff --git a/Tests/QtAutomoc/Bdir/libB.cpp b/Tests/QtAutogen/Bdir/libB.cpp
index 72f2cfa..72f2cfa 100644
--- a/Tests/QtAutomoc/Bdir/libB.cpp
+++ b/Tests/QtAutogen/Bdir/libB.cpp
diff --git a/Tests/QtAutomoc/Bdir/libB.h b/Tests/QtAutogen/Bdir/libB.h
index 510c17f..510c17f 100644
--- a/Tests/QtAutomoc/Bdir/libB.h
+++ b/Tests/QtAutogen/Bdir/libB.h
diff --git a/Tests/QtAutomoc/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt
index 8ad693a..7991c4e 100644
--- a/Tests/QtAutomoc/CMakeLists.txt
+++ b/Tests/QtAutogen/CMakeLists.txt
@@ -1,6 +1,6 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.11)
-project(QtAutomoc)
+project(QtAutogen)
if (QT_TEST_VERSION STREQUAL 4)
find_package(Qt4 REQUIRED)
@@ -35,15 +35,20 @@ add_definitions(-DFOO -DSomeDefine="Barx")
# enable relaxed mode so automoc can handle all the special cases:
set(CMAKE_AUTOMOC_RELAXED_MODE TRUE)
+set(CMAKE_AUTOUIC ON)
+set(CMAKE_AUTORCC ON)
+
# create an executable and two library targets, each requiring automoc:
add_library(codeeditorLib STATIC codeeditor.cpp)
add_library(privateSlot OBJECT private_slot.cpp)
-add_executable(foo main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp
- xyz.cpp yaf.cpp gadget.cpp $<TARGET_OBJECTS:privateSlot>)
+add_executable(QtAutogen main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp
+ xyz.cpp yaf.cpp gadget.cpp $<TARGET_OBJECTS:privateSlot>
+ test.qrc resourcetester.cpp
+)
-set_target_properties(foo codeeditorLib privateSlot PROPERTIES AUTOMOC TRUE)
+set_target_properties(QtAutogen codeeditorLib privateSlot PROPERTIES AUTOMOC TRUE)
include(GenerateExportHeader)
# The order is relevant here. B depends on A, and B headers depend on A
@@ -59,7 +64,7 @@ set_target_properties(libC PROPERTIES AUTOMOC TRUE)
generate_export_header(libC)
target_link_libraries(libC LINK_PUBLIC libB)
-target_link_libraries(foo codeeditorLib ${QT_LIBRARIES} libC)
+target_link_libraries(QtAutogen codeeditorLib ${QT_LIBRARIES} libC)
add_library(empty STATIC empty.cpp)
set_target_properties(empty PROPERTIES AUTOMOC TRUE)
diff --git a/Tests/QtAutomoc/abc.cpp b/Tests/QtAutogen/abc.cpp
index 4bbc769..4bbc769 100644
--- a/Tests/QtAutomoc/abc.cpp
+++ b/Tests/QtAutogen/abc.cpp
diff --git a/Tests/QtAutomoc/abc.h b/Tests/QtAutogen/abc.h
index d1924b0..d1924b0 100644
--- a/Tests/QtAutomoc/abc.h
+++ b/Tests/QtAutogen/abc.h
diff --git a/Tests/QtAutomoc/abc_p.h b/Tests/QtAutogen/abc_p.h
index 952fff3..952fff3 100644
--- a/Tests/QtAutomoc/abc_p.h
+++ b/Tests/QtAutogen/abc_p.h
diff --git a/Tests/QtAutomoc/bar.cpp b/Tests/QtAutogen/bar.cpp
index 8be4815..8be4815 100644
--- a/Tests/QtAutomoc/bar.cpp
+++ b/Tests/QtAutogen/bar.cpp
diff --git a/Tests/QtAutomoc/blub.cpp b/Tests/QtAutogen/blub.cpp
index bd53972..bd53972 100644
--- a/Tests/QtAutomoc/blub.cpp
+++ b/Tests/QtAutogen/blub.cpp
diff --git a/Tests/QtAutomoc/blub.h b/Tests/QtAutogen/blub.h
index 1967bc1..1967bc1 100644
--- a/Tests/QtAutomoc/blub.h
+++ b/Tests/QtAutogen/blub.h
diff --git a/Tests/QtAutomoc/calwidget.cpp b/Tests/QtAutogen/calwidget.cpp
index cbfa5a8..defde20 100644
--- a/Tests/QtAutomoc/calwidget.cpp
+++ b/Tests/QtAutogen/calwidget.cpp
@@ -49,7 +49,10 @@
#include "calwidget.h"
+ #include "ui_calwidget.h"
+
Window::Window()
+ : ui(new Ui::Window)
{
createPreviewGroupBox();
createGeneralOptionsGroupBox();
diff --git a/Tests/QtAutomoc/calwidget.h b/Tests/QtAutogen/calwidget.h
index 8447389..d21a473 100644
--- a/Tests/QtAutomoc/calwidget.h
+++ b/Tests/QtAutogen/calwidget.h
@@ -52,6 +52,11 @@
class QGroupBox;
class QLabel;
+ namespace Ui
+ {
+ class Window;
+ }
+
class Window : public QWidget
{
Q_OBJECT
@@ -116,6 +121,8 @@
QCheckBox *firstFridayCheckBox;
QCheckBox *mayFirstCheckBox;
+
+ Ui::Window *ui;
};
#endif
diff --git a/Tests/QtAutogen/calwidget.ui b/Tests/QtAutogen/calwidget.ui
new file mode 100644
index 0000000..1c245ca
--- /dev/null
+++ b/Tests/QtAutogen/calwidget.ui
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Window</class>
+ <widget class="QWidget" name="Window">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>400</width>
+ <height>300</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <widget class="QPushButton" name="pushButton">
+ <property name="geometry">
+ <rect>
+ <x>90</x>
+ <y>180</y>
+ <width>94</width>
+ <height>24</height>
+ </rect>
+ </property>
+ <property name="text">
+ <string>PushButton</string>
+ </property>
+ </widget>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/Tests/QtAutomoc/codeeditor.cpp b/Tests/QtAutogen/codeeditor.cpp
index 01da062..01da062 100644
--- a/Tests/QtAutomoc/codeeditor.cpp
+++ b/Tests/QtAutogen/codeeditor.cpp
diff --git a/Tests/QtAutomoc/codeeditor.h b/Tests/QtAutogen/codeeditor.h
index 56e9e792..56e9e792 100644
--- a/Tests/QtAutomoc/codeeditor.h
+++ b/Tests/QtAutogen/codeeditor.h
diff --git a/Tests/QtAutomoc/defines_test/CMakeLists.txt b/Tests/QtAutogen/defines_test/CMakeLists.txt
index ad4e684..ad4e684 100644
--- a/Tests/QtAutomoc/defines_test/CMakeLists.txt
+++ b/Tests/QtAutogen/defines_test/CMakeLists.txt
diff --git a/Tests/QtAutomoc/defines_test/defines_test.cpp b/Tests/QtAutogen/defines_test/defines_test.cpp
index 2836d35..2836d35 100644
--- a/Tests/QtAutomoc/defines_test/defines_test.cpp
+++ b/Tests/QtAutogen/defines_test/defines_test.cpp
diff --git a/Tests/QtAutomoc/empty.cpp b/Tests/QtAutogen/empty.cpp
index ab32cf6..ab32cf6 100644
--- a/Tests/QtAutomoc/empty.cpp
+++ b/Tests/QtAutogen/empty.cpp
diff --git a/Tests/QtAutomoc/empty.h b/Tests/QtAutogen/empty.h
index 4566142..4566142 100644
--- a/Tests/QtAutomoc/empty.h
+++ b/Tests/QtAutogen/empty.h
diff --git a/Tests/QtAutomoc/foo.cpp b/Tests/QtAutogen/foo.cpp
index 699ba09..699ba09 100644
--- a/Tests/QtAutomoc/foo.cpp
+++ b/Tests/QtAutogen/foo.cpp
diff --git a/Tests/QtAutomoc/foo.h b/Tests/QtAutogen/foo.h
index 32d4c8d..32d4c8d 100644
--- a/Tests/QtAutomoc/foo.h
+++ b/Tests/QtAutogen/foo.h
diff --git a/Tests/QtAutomoc/gadget.cpp b/Tests/QtAutogen/gadget.cpp
index 23d95fa..23d95fa 100644
--- a/Tests/QtAutomoc/gadget.cpp
+++ b/Tests/QtAutogen/gadget.cpp
diff --git a/Tests/QtAutomoc/gadget.h b/Tests/QtAutogen/gadget.h
index 7c688ee..7c688ee 100644
--- a/Tests/QtAutomoc/gadget.h
+++ b/Tests/QtAutogen/gadget.h
diff --git a/Tests/QtAutomoc/libC.cpp b/Tests/QtAutogen/libC.cpp
index 8d61cb1..8d61cb1 100644
--- a/Tests/QtAutomoc/libC.cpp
+++ b/Tests/QtAutogen/libC.cpp
diff --git a/Tests/QtAutomoc/libC.h b/Tests/QtAutogen/libC.h
index 4fb4a2c..4fb4a2c 100644
--- a/Tests/QtAutomoc/libC.h
+++ b/Tests/QtAutogen/libC.h
diff --git a/Tests/QtAutomoc/main.cpp b/Tests/QtAutogen/main.cpp
index bd80180..c8a036e 100644
--- a/Tests/QtAutomoc/main.cpp
+++ b/Tests/QtAutogen/main.cpp
@@ -38,7 +38,8 @@
**
****************************************************************************/
-#include <QApplication>
+#include <QCoreApplication>
+#include <QTimer>
#include "codeeditor.h"
#include "calwidget.h"
@@ -49,17 +50,11 @@
#include "xyz.h"
#include "yaf.h"
#include "libC.h"
+#include "resourcetester.h"
int main(int argv, char **args)
{
- QApplication app(argv, args);
-
- CodeEditor editor;
- editor.setWindowTitle(QObject::tr("Code Editor Example"));
- editor.show();
-
- Window w;
- w.show();
+ QCoreApplication app(argv, args);
Foo foo;
foo.doFoo();
@@ -82,5 +77,9 @@ int main(int argv, char **args)
LibC lc;
lc.foo();
+ ResourceTester rt;
+
+ QTimer::singleShot(0, &rt, SLOT(doTest()));
+
return app.exec();
}
diff --git a/Tests/QtAutomoc/private_slot.cpp b/Tests/QtAutogen/private_slot.cpp
index 1387a70..1387a70 100644
--- a/Tests/QtAutomoc/private_slot.cpp
+++ b/Tests/QtAutogen/private_slot.cpp
diff --git a/Tests/QtAutomoc/private_slot.h b/Tests/QtAutogen/private_slot.h
index 28e5448..28e5448 100644
--- a/Tests/QtAutomoc/private_slot.h
+++ b/Tests/QtAutogen/private_slot.h
diff --git a/Tests/QtAutogen/resourcetester.cpp b/Tests/QtAutogen/resourcetester.cpp
new file mode 100644
index 0000000..43314e1
--- /dev/null
+++ b/Tests/QtAutogen/resourcetester.cpp
@@ -0,0 +1,21 @@
+
+#include "resourcetester.h"
+
+#include <QDebug>
+#include <QApplication>
+#include <QFile>
+#include <QTimer>
+
+ResourceTester::ResourceTester(QObject *parent)
+ : QObject(parent)
+{
+
+}
+
+void ResourceTester::doTest()
+{
+ if (!QFile::exists(":/CMakeLists.txt"))
+ qApp->exit(EXIT_FAILURE);
+
+ QTimer::singleShot(0, qApp, SLOT(quit()));
+}
diff --git a/Tests/QtAutogen/resourcetester.h b/Tests/QtAutogen/resourcetester.h
new file mode 100644
index 0000000..b02cb4e
--- /dev/null
+++ b/Tests/QtAutogen/resourcetester.h
@@ -0,0 +1,17 @@
+
+#ifndef RESOURCE_TESTER_H
+#define RESOURCE_TESTER_H
+
+#include <QObject>
+
+class ResourceTester : public QObject
+{
+ Q_OBJECT
+public:
+ explicit ResourceTester(QObject *parent = 0);
+
+private slots:
+ void doTest();
+};
+
+#endif
diff --git a/Tests/QtAutomoc/sub/bar.h b/Tests/QtAutogen/sub/bar.h
index db56b8e..db56b8e 100644
--- a/Tests/QtAutomoc/sub/bar.h
+++ b/Tests/QtAutogen/sub/bar.h
diff --git a/Tests/QtAutogen/test.qrc b/Tests/QtAutogen/test.qrc
new file mode 100644
index 0000000..c3d4e3c
--- /dev/null
+++ b/Tests/QtAutogen/test.qrc
@@ -0,0 +1,5 @@
+<!DOCTYPE RCC><RCC version="1.0">
+<qresource>
+ <file>CMakeLists.txt</file>
+</qresource>
+</RCC>
diff --git a/Tests/QtAutomoc/xyz.cpp b/Tests/QtAutogen/xyz.cpp
index a3562a3..a3562a3 100644
--- a/Tests/QtAutomoc/xyz.cpp
+++ b/Tests/QtAutogen/xyz.cpp
diff --git a/Tests/QtAutomoc/xyz.h b/Tests/QtAutogen/xyz.h
index 8175d37..8175d37 100644
--- a/Tests/QtAutomoc/xyz.h
+++ b/Tests/QtAutogen/xyz.h
diff --git a/Tests/QtAutomoc/yaf.cpp b/Tests/QtAutogen/yaf.cpp
index d278ab4..d278ab4 100644
--- a/Tests/QtAutomoc/yaf.cpp
+++ b/Tests/QtAutogen/yaf.cpp
diff --git a/Tests/QtAutomoc/yaf.h b/Tests/QtAutogen/yaf.h
index 8689f83..8689f83 100644
--- a/Tests/QtAutomoc/yaf.h
+++ b/Tests/QtAutogen/yaf.h
diff --git a/Tests/QtAutomoc/yaf_p.h b/Tests/QtAutogen/yaf_p.h
index f0368ad..f0368ad 100644
--- a/Tests/QtAutomoc/yaf_p.h
+++ b/Tests/QtAutogen/yaf_p.h
diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
index e84aba2..97bf14d 100644
--- a/Tests/RunCMake/CMakeLists.txt
+++ b/Tests/RunCMake/CMakeLists.txt
@@ -60,6 +60,7 @@ add_RunCMake_test(CTest)
if(UNIX AND "${CMAKE_TEST_GENERATOR}" MATCHES "Unix Makefiles")
add_RunCMake_test(CompilerChange)
endif()
+add_RunCMake_test(CompilerNotFound)
add_RunCMake_test(Configure)
add_RunCMake_test(DisallowedCommands)
add_RunCMake_test(ExternalData)
diff --git a/Tests/RunCMake/CompilerChange/EmptyCompiler-override.cmake b/Tests/RunCMake/CompilerChange/EmptyCompiler-override.cmake
new file mode 100644
index 0000000..28d29e0
--- /dev/null
+++ b/Tests/RunCMake/CompilerChange/EmptyCompiler-override.cmake
@@ -0,0 +1,2 @@
+message(STATUS "CMAKE_C_COMPILER is \"${CMAKE_C_COMPILER}\"")
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cc.cmake" "set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\")\n")
diff --git a/Tests/RunCMake/CompilerChange/EmptyCompiler-stderr.txt b/Tests/RunCMake/CompilerChange/EmptyCompiler-stderr.txt
index 4745b25..cf3b1b3 100644
--- a/Tests/RunCMake/CompilerChange/EmptyCompiler-stderr.txt
+++ b/Tests/RunCMake/CompilerChange/EmptyCompiler-stderr.txt
@@ -1,5 +1,13 @@
You have changed variables that require your cache to be deleted.
Configure will be re-run and you may have to reset some variables.
The following variables have changed:
-CMAKE_C_COMPILER= *(
-|$)
+CMAKE_C_COMPILER= *
++
+CMake Error at EmptyCompiler.cmake:2 \(enable_language\):
+ No CMAKE_C_COMPILER could be found.
+
+ Tell CMake where to find the compiler by setting either the environment
+ variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
+ the compiler, or to the compiler name if it is in the PATH.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:6 \(include\)$
diff --git a/Tests/RunCMake/CompilerChange/EmptyCompiler.cmake b/Tests/RunCMake/CompilerChange/EmptyCompiler.cmake
index c87ec49..06e9e03 100644
--- a/Tests/RunCMake/CompilerChange/EmptyCompiler.cmake
+++ b/Tests/RunCMake/CompilerChange/EmptyCompiler.cmake
@@ -1,3 +1,2 @@
+set(CMAKE_USER_MAKE_RULES_OVERRIDE_C ${CMAKE_CURRENT_LIST_DIR}/EmptyCompiler-override.cmake)
enable_language(C)
-message(STATUS "CMAKE_C_COMPILER is \"${CMAKE_C_COMPILER}\"")
-file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/cc.cmake" "set(CMAKE_C_COMPILER \"${CMAKE_C_COMPILER}\")\n")
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerC-result.txt b/Tests/RunCMake/CompilerNotFound/BadCompilerC-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerC-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerC-stderr.txt b/Tests/RunCMake/CompilerNotFound/BadCompilerC-stderr.txt
new file mode 100644
index 0000000..c98842d
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerC-stderr.txt
@@ -0,0 +1,12 @@
+CMake Error at BadCompilerC.cmake:2 \(enable_language\):
+ The CMAKE_C_COMPILER:
+
+ no-C-compiler
+
+ is not a full path and was not found in the PATH.
+
+ Tell CMake where to find the compiler by setting either the environment
+ variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
+ the compiler, or to the compiler name if it is in the PATH.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerC.cmake b/Tests/RunCMake/CompilerNotFound/BadCompilerC.cmake
new file mode 100644
index 0000000..10fe59a
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerC.cmake
@@ -0,0 +1,3 @@
+set(CMAKE_C_COMPILER "no-C-compiler")
+enable_language(C)
+message(FATAL_ERROR "This error should not be reached.")
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerCXX-result.txt b/Tests/RunCMake/CompilerNotFound/BadCompilerCXX-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerCXX-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerCXX-stderr.txt b/Tests/RunCMake/CompilerNotFound/BadCompilerCXX-stderr.txt
new file mode 100644
index 0000000..7ef4f5e
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerCXX-stderr.txt
@@ -0,0 +1,12 @@
+CMake Error at BadCompilerCXX.cmake:2 \(enable_language\):
+ The CMAKE_CXX_COMPILER:
+
+ no-CXX-compiler
+
+ is not a full path and was not found in the PATH.
+
+ Tell CMake where to find the compiler by setting either the environment
+ variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
+ to the compiler, or to the compiler name if it is in the PATH.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerCXX.cmake b/Tests/RunCMake/CompilerNotFound/BadCompilerCXX.cmake
new file mode 100644
index 0000000..3b1e890
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerCXX.cmake
@@ -0,0 +1,3 @@
+set(CMAKE_CXX_COMPILER "no-CXX-compiler")
+enable_language(CXX)
+message(FATAL_ERROR "This error should not be reached.")
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX-result.txt b/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX-stderr.txt b/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX-stderr.txt
new file mode 100644
index 0000000..eecff54
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX-stderr.txt
@@ -0,0 +1,25 @@
+CMake Error at BadCompilerCandCXX.cmake:3 \(project\):
+ The CMAKE_C_COMPILER:
+
+ no-C-compiler
+
+ is not a full path and was not found in the PATH.
+
+ Tell CMake where to find the compiler by setting either the environment
+ variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
+ the compiler, or to the compiler name if it is in the PATH.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)
++
+CMake Error at BadCompilerCandCXX.cmake:3 \(project\):
+ The CMAKE_CXX_COMPILER:
+
+ no-CXX-compiler
+
+ is not a full path and was not found in the PATH.
+
+ Tell CMake where to find the compiler by setting either the environment
+ variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
+ to the compiler, or to the compiler name if it is in the PATH.
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX.cmake b/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX.cmake
new file mode 100644
index 0000000..2b6fa61
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/BadCompilerCandCXX.cmake
@@ -0,0 +1,4 @@
+set(CMAKE_C_COMPILER "no-C-compiler")
+set(CMAKE_CXX_COMPILER "no-CXX-compiler")
+project(BadCompilerCandCXXInner C CXX)
+message(FATAL_ERROR "This error should not be reached.")
diff --git a/Tests/RunCMake/CompilerNotFound/CMakeLists.txt b/Tests/RunCMake/CompilerNotFound/CMakeLists.txt
new file mode 100644
index 0000000..12cd3c7
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/CMakeLists.txt
@@ -0,0 +1,3 @@
+cmake_minimum_required(VERSION 2.8.4)
+project(${RunCMake_TEST} NONE)
+include(${RunCMake_TEST}.cmake)
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE-result.txt b/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE-stderr.txt b/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE-stderr.txt
new file mode 100644
index 0000000..88bb95e
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE-stderr.txt
@@ -0,0 +1,5 @@
+CMake Error at NoCompilerC-IDE.cmake:2 \(enable_language\):
+ No CMAKE_C_COMPILER could be found.
+
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE.cmake b/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE.cmake
new file mode 100644
index 0000000..45e1a68
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerC-IDE.cmake
@@ -0,0 +1,3 @@
+set(CMAKE_C_COMPILER_ID_ERROR_FOR_TEST "#error NoCompilerC-IDE")
+enable_language(C)
+message(FATAL_ERROR "This error should not be reached.")
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE-result.txt b/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE-stderr.txt b/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE-stderr.txt
new file mode 100644
index 0000000..4c92323
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE-stderr.txt
@@ -0,0 +1,5 @@
+CMake Error at NoCompilerCXX-IDE.cmake:2 \(enable_language\):
+ No CMAKE_CXX_COMPILER could be found.
+
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE.cmake b/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE.cmake
new file mode 100644
index 0000000..85025a0
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerCXX-IDE.cmake
@@ -0,0 +1,3 @@
+set(CMAKE_CXX_COMPILER_ID_ERROR_FOR_TEST "#error NoCompilerCXX-IDE")
+enable_language(CXX)
+message(FATAL_ERROR "This error should not be reached.")
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE-result.txt b/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE-result.txt
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE-result.txt
@@ -0,0 +1 @@
+1
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE-stderr.txt b/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE-stderr.txt
new file mode 100644
index 0000000..21c69f5
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE-stderr.txt
@@ -0,0 +1,11 @@
+CMake Error at NoCompilerCandCXX-IDE.cmake:3 \(project\):
+ No CMAKE_C_COMPILER could be found.
+
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)
++
+CMake Error at NoCompilerCandCXX-IDE.cmake:3 \(project\):
+ No CMAKE_CXX_COMPILER could be found.
+
+Call Stack \(most recent call first\):
+ CMakeLists.txt:3 \(include\)$
diff --git a/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE.cmake b/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE.cmake
new file mode 100644
index 0000000..78256a9
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/NoCompilerCandCXX-IDE.cmake
@@ -0,0 +1,4 @@
+set(CMAKE_C_COMPILER_ID_ERROR_FOR_TEST "#error NoCompilerCandCXX-IDE")
+set(CMAKE_CXX_COMPILER_ID_ERROR_FOR_TEST "#error NoCompilerCandCXX-IDE")
+project(NoCompilerCandCXXInner C CXX)
+message(FATAL_ERROR "This error should not be reached.")
diff --git a/Tests/RunCMake/CompilerNotFound/RunCMakeTest.cmake b/Tests/RunCMake/CompilerNotFound/RunCMakeTest.cmake
new file mode 100644
index 0000000..8b84f39
--- /dev/null
+++ b/Tests/RunCMake/CompilerNotFound/RunCMakeTest.cmake
@@ -0,0 +1,11 @@
+include(RunCMake)
+
+if("${RunCMake_GENERATOR}" MATCHES "Visual Studio|Xcode")
+ run_cmake(NoCompilerC-IDE)
+ run_cmake(NoCompilerCXX-IDE)
+ run_cmake(NoCompilerCandCXX-IDE)
+else()
+ run_cmake(BadCompilerC)
+ run_cmake(BadCompilerCXX)
+ run_cmake(BadCompilerCandCXX)
+endif()
diff --git a/Tests/RunCMake/Syntax/BracketComment5.cmake b/Tests/RunCMake/Syntax/BracketComment5.cmake
index bb6d9f3..dc9e6b4 100644
--- a/Tests/RunCMake/Syntax/BracketComment5.cmake
+++ b/Tests/RunCMake/Syntax/BracketComment5.cmake
@@ -2,5 +2,10 @@
message(FATAL_ERROR "This is commented out.")
#]] #[[
message(FATAL_ERROR "This is commented out.")
+#]]#[[
+message(FATAL_ERROR "This is commented out.")
#]] #message(FATAL_ERROR "This is commented out.")
+#[[
+message(FATAL_ERROR "This is commented out.")
+#]]#message(FATAL_ERROR "This is commented out.")
message(STATUS "The above FATAL_ERROR did not occur.")
diff --git a/Tests/RunCMake/Syntax/Escape1-stderr.txt b/Tests/RunCMake/Syntax/Escape1-stderr.txt
new file mode 100644
index 0000000..6601ce7
--- /dev/null
+++ b/Tests/RunCMake/Syntax/Escape1-stderr.txt
@@ -0,0 +1,3 @@
+^\\##\[\[#\]\]#\[\[\]\]x#\\"
+\$\@\^\\; \(\)#\\"
+\$\@\^; \(\)$
diff --git a/Tests/RunCMake/Syntax/Escape1.cmake b/Tests/RunCMake/Syntax/Escape1.cmake
new file mode 100644
index 0000000..3bf801e
--- /dev/null
+++ b/Tests/RunCMake/Syntax/Escape1.cmake
@@ -0,0 +1,3 @@
+message([[\#]] \#[[ \#]] "#[[]]" x#comment
+ "\#\\\"\n\$\@\^\;\ \t\(\)"#comment
+ \#\\\"\n\$\@\^\;\ \t\(\))
diff --git a/Tests/RunCMake/Syntax/RunCMakeTest.cmake b/Tests/RunCMake/Syntax/RunCMakeTest.cmake
index 2d49f76..4f42a07 100644
--- a/Tests/RunCMake/Syntax/RunCMakeTest.cmake
+++ b/Tests/RunCMake/Syntax/RunCMakeTest.cmake
@@ -39,6 +39,7 @@ run_cmake(BracketNoSpace2)
run_cmake(BracketNoSpace3)
run_cmake(BracketNoSpace4)
run_cmake(BracketNoSpace5)
+run_cmake(Escape1)
run_cmake(ParenNoSpace0)
run_cmake(ParenNoSpace1)
run_cmake(ParenNoSpace2)