summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2013-10-11 18:16:43 (GMT)
committerStephen Kelly <steveire@gmail.com>2013-10-24 09:50:58 (GMT)
commit18fb7588df5b380340423eb36a90a7aefc1fa6ca (patch)
tree74aa97dc12bab52f5b1577b3ba9d227b95ce39c3
parente485ba12193d36ffc4faee89bb80dbe611ad7e82 (diff)
downloadCMake-18fb7588df5b380340423eb36a90a7aefc1fa6ca.zip
CMake-18fb7588df5b380340423eb36a90a7aefc1fa6ca.tar.gz
CMake-18fb7588df5b380340423eb36a90a7aefc1fa6ca.tar.bz2
Run the main executable created in the autogen tests.
Don't try to show the windows, which would require a gui capable test machine, and that's not guaranteed. Automatically link to qtmain.a on Windows to avoid a policy warning. Set policy CMP0020 to NEW by increasing the required version. Don't attempt to run the test when using Windows.
-rw-r--r--Tests/CMakeLists.txt13
-rw-r--r--Tests/QtAutogen/CMakeLists.txt8
-rw-r--r--Tests/QtAutogen/main.cpp3
3 files changed, 16 insertions, 8 deletions
diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
index 38b2a0c..cf98a41 100644
--- a/Tests/CMakeLists.txt
+++ b/Tests/CMakeLists.txt
@@ -1029,6 +1029,15 @@ ${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(Qt5Autogen ${CMAKE_CTEST_COMMAND}
@@ -1040,7 +1049,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--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/Qt5Autogen")
endif()
@@ -1054,7 +1063,7 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
--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/Qt4Autogen")
diff --git a/Tests/QtAutogen/CMakeLists.txt b/Tests/QtAutogen/CMakeLists.txt
index a7f553f..39c1ae9 100644
--- a/Tests/QtAutogen/CMakeLists.txt
+++ b/Tests/QtAutogen/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 2.8)
+cmake_minimum_required(VERSION 2.8.11)
project(QtAutogen)
@@ -40,10 +40,10 @@ 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
+add_executable(QtAutogen main.cpp calwidget.cpp foo.cpp blub.cpp bar.cpp abc.cpp
xyz.cpp yaf.cpp gadget.cpp $<TARGET_OBJECTS:privateSlot>)
-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 +59,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/QtAutogen/main.cpp b/Tests/QtAutogen/main.cpp
index bd80180..39597ba 100644
--- a/Tests/QtAutogen/main.cpp
+++ b/Tests/QtAutogen/main.cpp
@@ -56,10 +56,9 @@ int main(int argv, char **args)
CodeEditor editor;
editor.setWindowTitle(QObject::tr("Code Editor Example"));
- editor.show();
Window w;
- w.show();
+ w.setWindowTitle(QObject::tr("Window Example"));
Foo foo;
foo.doFoo();