summaryrefslogtreecommitdiffstats
path: root/cmake/QtGenerateLibPri.cmake
Commit message (Collapse)AuthorAgeFilesLines
* CMake: Fix glitch in module pri generation for Ninja Multi-ConfigJoerg Bornemann2020-12-211-0/+1
| | | | | | | | | | | | | With Ninja Multi-Config, QMAKE_LIBS_FOO_DEBUG and QMAKE_LIBS_FOO_RELEASE are generated, if their values differ. In that case we did not create an empty QMAKE_LIBS_FOO assignment. That, however, is needed to make the library 'foo' known to qmake_use.prf. This amends bd98ba0d17b7a7c14fefc1741e68e8ca945a6655. Fixes: QTBUG-89387 Change-Id: I80e23746e6ba6ff7f5f4186116232395814cee15 Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Do not discard empty QMAKE_LIBS_FOO entriesJoerg Bornemann2020-11-301-8/+8
| | | | | | | | | | | | Consider a qmake lib 'foo' that doesn't have entries in QMAKE_LIBS_FOO. Then we must not discard this entry in the generated module pri file, because otherwise any attempt to QMAKE_USE 'foo' will fail with the error message "Library 'foo' is not defined.". Pick-to: 6.0 Task-number: QTBUG-88951 Change-Id: Ibed283857f5f66b1b79459fe7b7cf06c7ce0691d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
* CMake: Fix generated content of prl files (again)Alexandru Croitor2020-07-311-73/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Apply the same kind of transformations to the contents of the prl files as we do for pri files. Mainly, transform system library paths that are absolute, into link flags to make them relocatable across systems. Also change the Qt frameworks to be linked via the -framework flags instead of via absolute paths. Implementation notes Move the common required functions for both QtFinishPrlFile and QtGenerateLibPri into a common QtGenerateLibHelpers.cmake file. Make sure it's listed as a dependency for the custom commands. Also make sure to pass the necessary input values like possible library prefixes and suffixes, as well as the link flag. Task-number: QTBUG-85240 Task-number: QTBUG-85801 Change-Id: I36f24207f92a1d2ed3ed2d81bb96e4e62d927b6e Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
* CMake: Use correct framework link flags in scripts and .pri filesAlexandru Croitor2020-07-011-1/+1
| | | | | | | | | | | | | | | | | | | | | target_link_libraries expects a quoted string like "-framework CoreFoundation" when linking frameworks and not 2 different arguments like "-framework" "CoreFoundation". Fix that in the FindWrapOpenGL and FindGLESv2 find modules. Make sure to not quote the framework link flags when generating .pri files even if there are spaces, otherwise building apps with qmake fails. Amends 7fcc9cf05500fd3a0a1ba5c2f90a8ad3bcd8e5b0 Amends 2ed63e587eefb246dba9e69aa01fdb2abb2def13 Amends 55a15a1c1b93d36d705fc69e44b5c806b807dd55 Amends 2a767ab4bb7de8c29d2a8365212244ed944e9aeb Task-number: QTBUG-85240 Change-Id: I66ba36760ad704d65e712072a528d9e25c336dfa Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Transform absolute library paths into link flags in .pri filesAlexandru Croitor2020-06-291-0/+86
| | | | | | | | | | | | | | | | | | | | | | | Before this change, the qt_lib_foo_private .pri files contained absolute paths to libraries, e.g. /usr/lib/x86_64-linux-gnu/libcups.so Whereas the qmake build instead embeds link flags like -lcups. Detect absolute library file paths, and transform them into link flags. This should make the .pri files relocatable. Fix the add_custom_commands to have the scripts as dependencies. Make sure to pass the suffix, prefix and other options to the qconfig.pri generation command as well. Also reverse the order of the link flags, to mirror the order that qmake generates for .pri files. Task-number: QTBUG-84781 Task-number: QTBUG-85240 Change-Id: I7bc3b234d9c86c785b169b11f3042450aa225c1f Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
* CMake: Fix libraries in qt_lib_XXX_private.pri files for NMCJoerg Bornemann2020-06-091-0/+84
qmake_use.prf understands the _DEBUG and _RELEASE suffixes for QMAKE_LIBS_XXX entries. The CMake configuration "Debug" is considered for the _DEBUG entries, "Release" and "RelWithDebInfo" for _RELEASE. The qt_lib_XXX_private.pri files are now generated in multiple steps: 1. The QT_LIBS_XXX information is generated per $<CONFIG> and written to .cmake files. 2. A preliminary qt_lib_XXX_private.pri file is generated, containing only configuration-independent data. 3. A custom command runs the QtGenerateLibPri.cmake script that combines the files from step 1 and 2 into the final qt_lib_XXX_private.pri file. The same is done for mkspecs/qmodule.pri. To be able to trigger custom commands from header modules, which are interface libraries, we introduce one XXX_timestamp ALL target per header module that creates a timestamp file. To that XXX_timestamp target we add the pri file generation target as dependency. Fixes: QTBUG-84348 Change-Id: I610f279e37feeb7eceb9ef20b3ddfecff8cfbf81 Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>