Hi there,

For anyone packaging Qt 5 and renaming the binaries moc, rcc, uic, etc, please 
remember to also change the CMake config files using those to the renamed 
binaries.

The files to change are:

In qtbase.git:
 * src/widgets/Qt5WidgetsConfigExtras.cmake.in
 * src/dbus/Qt5DBusConfigExtras.cmake.in
 * src/corelib/Qt5CoreConfigExtras.cmake.in

In qttools.git:
 * src/linguist/Qt5LinguistToolsConfig.cmake.in

You need to change the IMPORTED_LOCATION value in the files. For example:

diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in 
b/src/corelib/Qt5CoreConfigExtras.cmake.in
index 0df2703..70c32dc 100644
--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
@@ -18,9 +18,9 @@ if (NOT TARGET Qt5::moc)
 
     set_target_properties(Qt5::moc PROPERTIES
 !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)                                        
                                                                                
                                                   
-        IMPORTED_LOCATION 
\"${_qt5_corelib_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\"       
                                                                                
                        
+        IMPORTED_LOCATION 
\"${_qt5_corelib_install_prefix}/$${CMAKE_BIN_DIR}moc-qt5$$CMAKE_BIN_SUFFIX\"   
                                                                                
                        
 !!ELSE                                                                         
                                                                                
                                                   
-        IMPORTED_LOCATION \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\"           
                                                                                
                                                   
+        IMPORTED_LOCATION \"$${CMAKE_BIN_DIR}moc-qt5$$CMAKE_BIN_SUFFIX\"       
                                                                                
                                                   
 !!ENDIF                                                                        
                                                                                
                                                   
     )                                                                          
                                                                                
                                                   
     # For CMake automoc feature                             



Note also that if you move the mkspecs, you also need to patch the cmake 
files. For example:

diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in 
b/src/corelib/Qt5CoreConfigExtras.cmake.in
index 0df2703..24e4625 100644
--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
+++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
@@ -44,7 +44,7 @@ set(Qt5Core_MOC_EXECUTABLE Qt5::moc)
 set(Qt5Core_RCC_EXECUTABLE Qt5::rcc)
 
 !!IF isEmpty(CMAKE_DATA_DIR_IS_ABSOLUTE)
-list(APPEND Qt5Core_INCLUDE_DIRS 
\"${_qt5_corelib_install_prefix}/mkspecs/$${CMAKE_MKSPEC}\")
+list(APPEND Qt5Core_INCLUDE_DIRS 
\"${_qt5_corelib_install_prefix}/share/qt5/mkspecs/$${CMAKE_MKSPEC}\")
 !!ELSE
 list(APPEND Qt5Core_INCLUDE_DIRS 
\"$${CMAKE_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
 !!ENDIF



Note that the tests are in the source packages, so to verify that you have 
correct packages from the cmake point of view, you can do this:

 cd tests/auto/cmake && mkdir build && cd build && cmake .. && ctest

Note that this does not work in general for all unit tests in Qt (as many of 
them require Qt to be configured with -developer-build), but it will work for 
the cmake tests. Please report any failures.

Thanks,

-- 
Stephen Kelly <stephen.ke...@kdab.com> | Software Engineer
KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company
www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090
KDAB - Qt Experts - Platform-Independent Software Solutions

Attachment: smime.p7s
Description: S/MIME cryptographic signature

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to