Expand the 'existing target guard' in generated CMake files.
authorStephen Kelly <stephen.kelly@kdab.com>
Fri, 18 May 2012 18:10:46 +0000 (20:10 +0200)
committerQt by Nokia <qt-info@nokia.com>
Thu, 7 Jun 2012 17:08:34 +0000 (19:08 +0200)
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 <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
mkspecs/cmake/Qt5BasicConfig.cmake.in
src/corelib/Qt5CoreConfigExtras.cmake.in

index a0afc28..3c10ac9 100644 (file)
@@ -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
index b2a95ca..cd330f5 100644 (file)
@@ -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)