diff options
author | Joerg Bornemann <joerg.bornemann@qt.io> | 2020-04-22 21:01:32 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@qt.io> | 2020-05-19 13:26:53 +0200 |
commit | 759da6742a513fa3fb85bb6db569cff5a53a47d6 (patch) | |
tree | e3f45a31991eac56b6ac699a6ebb8678ff168780 /cmake/QtGenerateExtPri.cmake | |
parent | aed7a65b8b0870d8a019f7917888587de2a66303 (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.cmake | 47 |
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}") |