From 77a03ebd8da28c3811fe505b2a84e2d42743005f Mon Sep 17 00:00:00 2001 From: Stephen Kelly Date: Fri, 18 May 2012 20:10:46 +0200 Subject: [PATCH] Expand the 'existing target guard' in generated CMake files. This way the target will be created and have its properties populated only one time. I tried wrapping the whole file in an 'include guard', but that broke the unit test in tests/auto/cmake/pass1 (and the qt5_use_module function), because the function causes the variables in the Config file to not exist outside of the scope (eg for include directories), and yet, Qt5${Module}_FOUND is still true even when the find_package was previously called in a function, so it is not found and processed again. The change in Qt5CoreConfigExtras.cmake does not need to be guarded as it is only ever included from Qt5CoreConfig. Change-Id: Iaa016563db5eb61294360ac9e003c9c923393d8c Reviewed-by: Brad King Reviewed-by: Stephen Kelly --- mkspecs/cmake/Qt5BasicConfig.cmake.in | 39 ++++++++++++++++---------------- src/corelib/Qt5CoreConfigExtras.cmake.in | 5 +--- 2 files changed, 21 insertions(+), 23 deletions(-) diff --git a/mkspecs/cmake/Qt5BasicConfig.cmake.in b/mkspecs/cmake/Qt5BasicConfig.cmake.in index a0afc28..3c10ac9 100644 --- a/mkspecs/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/cmake/Qt5BasicConfig.cmake.in @@ -118,46 +118,47 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY FRAMEWORK 1) !!ENDIF -endif() !!IF !isEmpty(CMAKE_DEBUG_TYPE) -set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES - IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES + IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - IMPORTED_LOCATION_DEBUG \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" + IMPORTED_LOCATION_DEBUG \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" !!ELSE - IMPORTED_LOCATION_DEBUG \"$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" + IMPORTED_LOCATION_DEBUG \"$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" !!ENDIF -) + ) !!IF !isEmpty(CMAKE_IMPLIB_FILE_LOCATION_DEBUG) -set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES - IMPORTED_IMPLIB_DEBUG \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" -) + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES + IMPORTED_IMPLIB_DEBUG \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" + ) !!ENDIF !!ENDIF !!IF !isEmpty(CMAKE_RELEASE_TYPE) -set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) -set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES - IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" + set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE) + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES + IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE \"${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}\" !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - IMPORTED_LOCATION_RELEASE \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" + IMPORTED_LOCATION_RELEASE \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" !!ELSE - IMPORTED_LOCATION_RELEASE \"$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" + IMPORTED_LOCATION_RELEASE \"$${CMAKE_LIB_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" !!ENDIF ) !!IF !isEmpty(CMAKE_IMPLIB_FILE_LOCATION_RELEASE) -set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES + set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE) - IMPORTED_IMPLIB_RELEASE \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" + IMPORTED_IMPLIB_RELEASE \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" !!ELSE - IMPORTED_IMPLIB_RELEASE \"$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" + IMPORTED_IMPLIB_RELEASE \"$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" !!ENDIF -) + ) !!ENDIF !!ENDIF +endif() + !!IF !isEmpty(CMAKE_MODULE_EXTRAS) include(\"${CMAKE_CURRENT_LIST_DIR}/Qt5$${CMAKE_MODULE_NAME}ConfigExtras.cmake\") !!ENDIF diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in index b2a95ca..cd330f5 100644 --- a/src/corelib/Qt5CoreConfigExtras.cmake.in +++ b/src/corelib/Qt5CoreConfigExtras.cmake.in @@ -37,10 +37,7 @@ set(QT_LIBINFIX \"$${QT_LIBINFIX}\") !!IF !isEmpty(CMAKE_WINDOWS_BUILD) set(Qt5Core_QTMAIN_LIBRARIES Qt5::WinMain) -if (NOT _Qt5WinMain_target) - set(_Qt5WinMain_target 1) - add_library(Qt5::WinMain STATIC IMPORTED) -endif() +add_library(Qt5::WinMain STATIC IMPORTED) !!IF !isEmpty(CMAKE_DEBUG_TYPE) set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG) -- 2.7.4