summaryrefslogtreecommitdiffstats
path: root/cmake/QtGenerateExtPri.cmake
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@qt.io>2020-04-22 21:01:32 +0200
committerJoerg Bornemann <joerg.bornemann@qt.io>2020-05-19 13:26:53 +0200
commit759da6742a513fa3fb85bb6db569cff5a53a47d6 (patch)
treee3f45a31991eac56b6ac699a6ebb8678ff168780 /cmake/QtGenerateExtPri.cmake
parentaed7a65b8b0870d8a019f7917888587de2a66303 (diff)
CMake: Generate information about 3rdparty libs in module .pri files
For modules that are not yet ported to CMake and that use QMAKE_USE += libfoo we need to provide the information about libfoo in the qt_lib_XXX.pri files. Also, we now generate qt_ext_XXX.pri files for bundled 3rdparty libs. Task-number: QTBUG-75666 Change-Id: I9e4b057a197554ecb37c294c0bf09e2a2b3aa053 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtGenerateExtPri.cmake')
-rw-r--r--cmake/QtGenerateExtPri.cmake47
1 files changed, 47 insertions, 0 deletions
diff --git a/cmake/QtGenerateExtPri.cmake b/cmake/QtGenerateExtPri.cmake
new file mode 100644
index 0000000000..02ac675d4e
--- /dev/null
+++ b/cmake/QtGenerateExtPri.cmake
@@ -0,0 +1,47 @@
+# Generate a qt_ext_XXX.pri file.
+#
+# - Replaces occurrences of the build libdir with $$[QT_INSTALL_LIBDIR/get].
+#
+# This file is to be used in CMake script mode with the following variables set:
+# IN_FILES: path to the qt_ext_XXX.cmake files
+# OUT_FILE: path to the generated qt_ext_XXX.pri file
+# QT_BUILD_LIBDIR: path to Qt's libdir when building (those paths get replaced)
+set(content "")
+string(TOUPPER "${LIB}" uclib)
+set(first_iteration TRUE)
+list(LENGTH CONFIGS number_of_configs)
+foreach(in_file ${IN_FILES})
+ include(${in_file})
+ if(first_iteration)
+ # Add configuration-independent variables
+ set(first_iteration FALSE)
+ list(JOIN incdir " " incdir)
+ list(JOIN defines " " defines)
+ string(APPEND content "QMAKE_INCDIR_${uclib} = ${incdir}
+QMAKE_DEFINES_${uclib} = ${defines}
+")
+ endif()
+ set(config_suffix "")
+ if(number_of_configs GREATER "1")
+ # We're in multi-config mode. Use a _DEBUG or _RELEASE suffix for libs.
+ # qmake_use.prf does not support other configurations.
+ string(TOUPPER "${cfg}" config_suffix)
+ if(config_suffix STREQUAL "DEBUG")
+ set(config_suffix _DEBUG)
+ else()
+ set(config_suffix _RELEASE)
+ endif()
+ endif()
+
+ # Replace the build libdir
+ set(fixed_libs "")
+ foreach(lib ${libs})
+ string(REPLACE "${QT_BUILD_LIBDIR}" "$$[QT_INSTALL_LIBS/get]" lib "${lib}")
+ list(APPEND fixed_libs "${lib}")
+ endforeach()
+
+ list(JOIN fixed_libs " " libs)
+ string(APPEND content "QMAKE_LIBS_${uclib}${config_suffix} = ${libs}
+")
+endforeach()
+file(WRITE "${OUT_FILE}" "${content}")