| cmake_minimum_required(VERSION 3.11.2) |
| project(RerunRccConfigChange) |
| include("../AutogenTest.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(timeformat "%Y%j%H%M%S") |
| set(rccDepSD "${CMAKE_CURRENT_SOURCE_DIR}/RccConfigChange") |
| set(rccDepBD "${CMAKE_CURRENT_BINARY_DIR}/RccConfigChange") |
| |
| # 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(SEND_ERROR "Initial build of rccConfigChange failed. Output: ${output}") |
| endif() |
| |
| # - Rebuild Release |
| message("Rebuilding rccConfigChange in Release configuration") |
| execute_process(COMMAND "${CMAKE_COMMAND}" --build . --config Release WORKING_DIRECTORY "${rccDepBD}" RESULT_VARIABLE result) |
| if (result) |
| message(SEND_ERROR "Release build of rccConfigChange failed.") |
| endif() |
| |
| # - Rebuild Debug |
| message("Rebuilding rccConfigChange in Debug configuration") |
| execute_process(COMMAND "${CMAKE_COMMAND}" --build . --config Debug WORKING_DIRECTORY "${rccDepBD}" RESULT_VARIABLE result) |
| if (result) |
| message(SEND_ERROR "Debug build of rccConfigChange failed.") |
| endif() |