diff options
Diffstat (limited to 'Tests/RunCMake')
-rw-r--r-- | Tests/RunCMake/Ninja/QtAutoMocSkipPch.cmake | 17 | ||||
-rw-r--r-- | Tests/RunCMake/Ninja/RunCMakeTest.cmake | 16 |
2 files changed, 33 insertions, 0 deletions
diff --git a/Tests/RunCMake/Ninja/QtAutoMocSkipPch.cmake b/Tests/RunCMake/Ninja/QtAutoMocSkipPch.cmake new file mode 100644 index 0000000..059b917 --- /dev/null +++ b/Tests/RunCMake/Ninja/QtAutoMocSkipPch.cmake @@ -0,0 +1,17 @@ +enable_language(CXX) + +set(QtX Qt${with_qt_version}) + +find_package(${QtX} REQUIRED COMPONENTS Core) + +set(CMAKE_AUTOMOC ON) + +add_library(simple_lib SHARED simple_lib.cpp) +add_executable(app_with_qt app.cpp app_qt.cpp) + +target_link_libraries(app_with_qt PRIVATE simple_lib ${QtX}::Core) + +set_source_files_properties(app.cpp app_qt.cpp + PROPERTIES SKIP_PRECOMPILE_HEADERS ON) + +target_precompile_headers(app_with_qt PRIVATE [["QObject"]]) diff --git a/Tests/RunCMake/Ninja/RunCMakeTest.cmake b/Tests/RunCMake/Ninja/RunCMakeTest.cmake index 2a5b556..9f078e6 100644 --- a/Tests/RunCMake/Ninja/RunCMakeTest.cmake +++ b/Tests/RunCMake/Ninja/RunCMakeTest.cmake @@ -357,6 +357,22 @@ function(run_QtAutoMocDeps) run_ninja("${RunCMake_TEST_BINARY_DIR}") endif() endfunction() + +function(run_QtAutoMocSkipPch) + set(QtX Qt${CMake_TEST_Qt_version}) + if(CMake_TEST_${QtX}Core_Version VERSION_GREATER_EQUAL 5.15.0) + set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/QtAutoMocSkipPch-build) + run_cmake_with_options(QtAutoMocSkipPch + "-Dwith_qt_version=${CMake_TEST_Qt_version}" + "-D${QtX}_DIR=${${QtX}_DIR}" + "-D${QtX}Core_DIR=${${QtX}Core_DIR}" + "-DCMAKE_PREFIX_PATH:STRING=${CMAKE_PREFIX_PATH}" + ) + # Build the project. + run_ninja("${RunCMake_TEST_BINARY_DIR}") + endif() +endfunction() if(CMake_TEST_Qt_version) run_QtAutoMocDeps() + run_QtAutoMocSkipPch() endif() |