| cmake_minimum_required(VERSION 3.11.2) |
| project(RerunRccConfigChange) |
| include("../AutogenCoreTest.cmake") |
| |
| # Tests rcc rebuilding after a configuration change |
| |
| # Dummy executable to generate a clean target |
| add_executable(dummy dummy.cpp) |
| |
| # When a .qrc or a file listed in a .qrc file changes, |
| # the target must be rebuilt |
| set(rccDepSD "${CMAKE_CURRENT_SOURCE_DIR}/RccConfigChange") |
| set(rccDepBD "${CMAKE_CURRENT_BINARY_DIR}/RccConfigChange") |
| |
| # Rebuild macro |
| macro(rebuild CFG) |
| message(STATUS "Rebuilding rccConfigChange in ${CFG} configuration.") |
| execute_process( |
| COMMAND "${CMAKE_COMMAND}" --build . --config "${CFG}" |
| WORKING_DIRECTORY "${rccDepBD}" |
| RESULT_VARIABLE result) |
| if (result) |
| message(FATAL_ERROR "${CFG} build of rccConfigChange failed.") |
| else() |
| message(STATUS "${CFG} build of rccConfigChange finished.") |
| endif() |
| endmacro() |
| |
| # Initial build |
| try_compile(RCC_DEPENDS |
| "${rccDepBD}" |
| "${rccDepSD}" |
| RccConfigChange |
| CMAKE_FLAGS "-DQT_TEST_VERSION=${QT_TEST_VERSION}" |
| "-DCMAKE_AUTOGEN_VERBOSE=${CMAKE_AUTOGEN_VERBOSE}" |
| "-DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE}" |
| OUTPUT_VARIABLE output |
| ) |
| if (NOT RCC_DEPENDS) |
| message(FATAL_ERROR "Initial build of rccConfigChange failed. Output: ${output}") |
| endif() |
| |
| # Rebuild: Release |
| rebuild(Release) |
| |
| # Rebuild: Debug |
| rebuild(Debug) |