diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2022-08-03 17:46:15 +0200 |
---|---|---|
committer | Alexey Edelev <alexey.edelev@qt.io> | 2022-09-13 00:50:47 +0200 |
commit | ac74b60c9c1101288eb2c558420ba69f675a2ee2 (patch) | |
tree | 5feb216236b05bc18ceacf9a4274753530d8cc71 /cmake/QtTargetHelpers.cmake | |
parent | f0a40991fa5a77bb6e09976a3c041f93cbf44347 (diff) |
Add function to add and compile executables at configure time
qt_internal_add_configure_time_executable compiles the executable
at configure time and exposes it to the CMake source tree. This is
useful when need to run a small C++ program at configure time.
Task-number: QTBUG-87480
Change-Id: I031efe797c8afa0721d75b46d4f36f67276bf46e
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtTargetHelpers.cmake')
-rw-r--r-- | cmake/QtTargetHelpers.cmake | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/cmake/QtTargetHelpers.cmake b/cmake/QtTargetHelpers.cmake index 7e1f7cdc2d..e215e7d021 100644 --- a/cmake/QtTargetHelpers.cmake +++ b/cmake/QtTargetHelpers.cmake @@ -508,6 +508,24 @@ endif() set(properties_retrieved TRUE) + get_target_property(is_configure_time_target ${target} _qt_internal_configure_time_target) + if(is_configure_time_target) + get_target_property(configure_time_target_install_location ${target} + _qt_internal_configure_time_target_install_location) + if(configure_time_target_install_location) + string(APPEND content " +# Import configure-time executable ${full_target} +if(NOT TARGET ${full_target}) + add_executable(${full_target} IMPORTED) + set_property(TARGET ${full_target} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${default_cfg}) + set_target_properties(${full_target} PROPERTIES IMPORTED_LOCATION_${uc_default_cfg} + \"$\\{PACKAGE_PREFIX_DIR}/${configure_time_target_install_location}\") + set_property(TARGET ${full_target} PROPERTY IMPORTED_GLOBAL TRUE) +endif() +\n") + endif() + endif() + # Non-prefix debug-and-release builds: add check for the existence of the debug binary of # the target. It is not built by default. if(NOT QT_WILL_INSTALL AND QT_FEATURE_debug_and_release) @@ -521,7 +539,7 @@ if(NOT EXISTS \"$\\{_qt_imported_location}\") list(REMOVE_ITEM _qt_imported_configs DEBUG) set_property(TARGET ${full_target} PROPERTY IMPORTED_CONFIGURATIONS $\\{_qt_imported_configs}) set_property(TARGET ${full_target} PROPERTY IMPORTED_LOCATION_DEBUG) -endif()\n\n") +endif()\n") endif() endif() |