aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-12-20Use readelf to find project dependenciesv5.42.0-rc1v5.42.0Aleix Pol
Summary: We were using a link.txt file that cmake used to generate, on newer cmake versions it doesn't anymore. Instead use readelf, much like androiddeployqt does, to extract the depenencies. Catch: It relies on having all the binaries being at the same subdirectory, which is the default in ECM since not long ago. Test Plan: Build kirigamigallery with it Reviewers: #frameworks, #build_system, aacid Reviewed By: aacid Subscribers: mart Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D8173
2017-12-15Introduce INSTALL_PREFIX_SCRIPT to easily set up prefixesAleix Pol
Summary: If enabled it will install a prefix.sh script to the root of the prefix. This file will be useful to be able to easily set up a prefix to be used by integrating the environment variables it exports. Test Plan: ``` $ cat prefix.sh export PATH=/home/apol/devel/kde5/bin:$PATH export LD_LIBRARY_PATH=/home/apol/devel/kde5/lib64:$LD_LIBRARY_PATH export XDG_DATA_DIRS=/home/apol/devel/kde5/share:${XDG_DATA_DIRS:-/usr/local/share/:/usr/share/} export XDG_CONFIG_DIRS=/home/apol/devel/kde5/etc/xdg:${XDG_CONFIG_DIRS:-/etc/xdg} export QT_PLUGIN_PATH=/home/apol/devel/kde5/lib64/plugins:$QT_PLUGIN_PATH export QML2_IMPORT_PATH=/home/apol/devel/kde5/lib64/qml:$QML2_IMPORT_PATH ``` Reviewers: #frameworks, sitter Reviewed By: sitter Subscribers: kfunk, bcooksley, ngraham, sitter, cgiboudeaux, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D9299
2017-12-10GIT_SILENT Upgrade ECM version to 5.42.0.l10n daemon script
2017-11-30Add the description tag to the generated pkgconfig filesv5.41.0-rc1v5.41.0Christophe Giboudeaux
Summary: pkgconfig complains when the .pc file doesn't have a description. eg: $ pkg-config Baloo Package 'Baloo' has no Description: field With this change, if the DESCRIPTION parameter is not used, ECM_GENERATE_PKGCONFIG_FILE will : - First look if there's a metainfo.yaml file and get the description from there - If the file doesn't exist, or if the description tag is empty or non-existent, create a description based on the LIB_NAME value Test Plan: Tests added & pass Reviewers: dfaure, apol Reviewed By: dfaure Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D9056
2017-11-24ecm_add_test: Use proper path sep on WindowsKevin Funk
Summary: We need to separate paths in environment variables with a semincolon (;) on Windows. Reviewers: dfaure Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D8979
2017-11-15Fix variable nameAleix Pol
2017-11-14restore old behaviour of FindPulseAudioJohannes Hirte
Summary: Commit ee5b036c1df4776a258c0d8067fd2eaf18875829 added a new FindPulseAudio module with a slightly different syntax than the old one. Since the old module was removed with commit 7574022825804db2274bba992d6fc4a4817c1536 plasma-desktop and plasma-pa are broken. Just adding the old syntax as synonym for fixing this. See also https://bugs.kde.org/show_bug.cgi?id=386659 Test Plan: compile tested with plasma-desktop Reviewers: #frameworks, cgiboudeaux Reviewed By: cgiboudeaux Subscribers: jriddell, ngraham, rikmills, cgiboudeaux, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D8777
2017-11-13Remove FindSasl2.cmake from the ECM's attic.Christophe Giboudeaux
2017-11-13Delete the .reviewboardrc file.Christophe Giboudeaux
Creating new requests using reviewboard is not allowed anymore.
2017-11-13Add FindSasl2.cmake to ECMChristophe Giboudeaux
Summary: We have copies of this module in several PIM repositories (kdepim-runtime, kldap, kimap, libksieve...). It's time to move it to ECM and get rid of these copies. Reviewers: #kde_pim, vkrause Reviewed By: #kde_pim, vkrause Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system, #kde_pim Differential Revision: https://phabricator.kde.org/D8790
2017-11-13Only pass the ARGS thing when doing MakefilesAleix Pol
Ninja chokes on the $
2017-11-12GIT_SILENT Upgrade ECM version to 5.41.0.l10n daemon script
2017-11-06Remove FindGLIB2.cmake and FindPulseAudio.cmake from atticJonathan Marten
Differential Revision: https://phabricator.kde.org/D7823
2017-11-06Add FindGLIB2.cmake and FindPulseAudio.cmakeJonathan Marten
Will initially be used by KMix. Differential Revision: https://phabricator.kde.org/D7823
2017-11-05ECMAddTests: set QT_PLUGIN_PATH so locally built plugins can be foundDavid Faure
Summary: This of course requires running the unittests via ctest rather than launching the executable directly. Test Plan: `ctest -V -R kurifiltertest` in kio, which prints QCoreApplication::libraryPaths() at the beginning of the test. With this commit, builddir/kio/bin is added at the front of the list, and the kurifilter plugins from kio's build are loaded. Reviewers: cgiboudeaux, kfunk Reviewed By: cgiboudeaux Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D8660
2017-11-05KDECMakeSettings: more docu about the layout of the build dirDavid Faure
Reviewers: kossebau Subscribers: #build_system, #frameworks Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D7612
2017-10-31GIT_SILENT Upgrade ECM version to 5.40.0.v5.40.0-rc1v5.40.0l10n daemon script
2017-09-09GIT_SILENT Upgrade ECM version to 5.39.0.v5.39.0-rc1v5.39.0l10n daemon script
2017-09-03Fix python bindings compilation after 7af93dd23873d0b9cdbac192949e7e5114940aa6Antonio Rojas
Explicitely set LIBRARY_OUTPUT_DIRECTORY for the python module Differential Revision: https://phabricator.kde.org/D7677 CCMAIL: release-team@kde.org
2017-08-10GIT_SILENT upgrade version to 5.38v5.38.0-rc1David Faure
2017-08-10Forgot to add the testAleix Pol
2017-08-10Fix the fixChristophe Giboudeaux
2017-08-10Fix build with older CMake versions.Christophe Giboudeaux
VERSION_GREATER_EQUAL was added in CMake 3.7 and ECM still depends on CMake 2.8.12
2017-08-10Revert "RFC: Make ECMAddTests respect BUILD_TESTING"Kevin Funk
This broke a lot of frameworks when built WITH BUILD_TESTING=OFF. I didn't notice before since kdesrc-build was appending BUILD_TESTING=TRUE thus re-enabling the tests for me... This reverts commit b99d2d2c5dedcaba9745dddc1dd7b8d4811babf1.
2017-08-10Revert "doc: Add 'Since' note"Kevin Funk
Needed to revert parent commit This reverts commit ebbef5afcaee863c62136b14dbd06a7a73cf769a.
2017-08-09Set CMAKE_*_OUTPUT_DIRECTORY to run tests without installing.David Faure
Summary: For compatibility reasons, this is only enabled when projects upgrade their find_package(ECM) line to request a version >= 5.38. A little bit like cmake policies: just upgrading ECM is compatible, while increasing the required version can change behaviour. Test Plan: Tested make test in all KF5 frameworks; I have patches for some of them which I can't commit until this is in. Reviewers: cgiboudeaux, kfunk Reviewed By: cgiboudeaux, kfunk Subscribers: kfunk, #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D7198
2017-08-09Include a module for finding qml imports as runtime dependenciesAleix Pol
Summary: Allows to check if a module is available on the system and sets it as a runtime dependency. This is useful for projects so that they can specify their qml dependencies easily and packagers and developers get to see what's missing by looking at the cmake output. Reviewers: #build_system, #frameworks, sitter Reviewed By: sitter Subscribers: dfaure, aacid Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D7094
2017-08-09doc: Add 'Since' noteKevin Funk
2017-08-07RFC: Make ECMAddTests respect BUILD_TESTINGKevin Funk
Summary: Use-case: Make building unit tests optional, by just following the CMake BUILD_TESTING option. The usual approach to conditionally build tests is to do: ``` if (BUILD_TESTING) add_executable(TestOne TestOne.cpp) target_link_libraries(TestOne my_library) endif() ``` or: ``` if (BUILD_TESTING) add_subdirectory(tests) endif() ``` This patch just turns all calls to ecm_add_test(...) into no-ops if BUILD_TESTING=OFF. See: https://cmake.org/cmake/help/v3.6/module/CTest.html Reviewers: vkrause Reviewed By: vkrause Subscribers: kossebau, vkrause, elvisangelaccio, asturmlechner, apol, #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D7187
2017-08-02Add --gradle to androiddeployqtv5.37.0-rc1v5.37.0Albert Astals Cid
Otherwise when trying to build with the newest Qt/android toolchains it fails Differential Revision: https://phabricator.kde.org/D6875
2017-08-02Fix install apk targetAlbert Astals Cid
Differential Revision: https://phabricator.kde.org/D6876
2017-07-31Make ECMPoQmToolsTest actually fail if a translation is wrongWolfgang Bauer
Currently the test still passed even if one of the check_translations() calls would fail. The reason is that check_translations() is a function which has its own scope, so if it sets "failed" the upper level doesn't see it. Use the PARENT_SCOPE option when setting the variable to properly propagate the value to the upper level. Differential Revision: https://phabricator.kde.org/D6701
2017-07-29Fix usage of query_qmake: differ between calls expecting qmake or notFriedrich W. H. Kossebau
Summary: when KDE_INSTALL_USE_QT_SYS_PATHS has been explicitely set, qmake can be considered a required dependency, otherwise the paths will not be known, which would be unexpected. Also does the code calling query_qmake, besides the one testing for the same install prefix, not handle the case of empty strings being returned and then results in bogus behaviour. Thus this patch makes code fail hard if query_qmake is expected to yield a result, but no qmake executable is found. Reviewers: #frameworks, ltoscano, rdieter, apol Reviewed By: apol Subscribers: #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D6772
2017-07-20Add API dox for KDEInstallDirs' KDE_INSTALL_USE_QT_SYS_PATHSFriedrich W. H. Kossebau
Reviewers: #frameworks, apol Reviewed By: apol Subscribers: #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D6773
2017-07-18KDECompilerSettings.cmake - handle Cywgin when setting LINK_FLAGSAllen Winter
Differential Revision: https://phabricator.kde.org/D6762
2017-07-15Fix incomplete default path noted in QTQCHDIR documentationFriedrich W. H. Kossebau
2017-07-13Properly point at ECMAleix Pol
Fix typo
2017-07-13add a metainfo.yaml to make ECM a proper frameworkHarald Sitter
Reviewers: ochurlaud, dfaure, skelly Reviewed By: dfaure Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D6604
2017-07-08GIT_SILENT Upgrade ECM version to 5.37.0.l10n daemon script
2017-07-08Android: scan for qml files in the source dir, not in the install dir.David Faure
Summary: When the QML files are all bundled into a .qrc file, they don't get copied to the install dir, which would lead to qmlimportscanner not picking up the dependencies (e.g. QtQuick Controls) for android packaging. Looking at commit 1b0496d, I wonder if maybe we should be able to specify two paths to look into? But qmlimportscanner doesn't support that, does it? Test Plan: using this toolchain for a basic QtQuick2 app created from a QtCreator template, with Qt Quick Controls support, and QML files in a Qt resource. Reviewers: apol, mart Reviewed By: apol Subscribers: #build_system, #frameworks Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D6466
2017-07-05Stabilize ECMQtDeclareLoggingCategoryTestKevin Funk
2017-06-23FindQHelpGenerator: avoid picking up Qt4 versionv5.36.0-rc1v5.36.0Michael Palimaka
Summary: Passing NO_DEFAULT_PATH ignores $PATH and ensures that we use the previously-detected Qt5 binary path. Test Plan: qhelpgenerator is now picked up from the same location as Qt5::qmake. Before, anything in $PATH was preferred even if it was the Qt 4 version. Reviewers: #frameworks, kossebau, kfunk Reviewed By: kossebau, kfunk Subscribers: alexeymin, asturmlechner, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D6249
2017-06-17ECMAddQch: fail hard if needed tools are not present, to avoid surprisesFriedrich W. H. Kossebau
2017-06-17Drop perl as dep for ecm_add_qch, not needed/usedFriedrich W. H. Kossebau
Cmp. https://bugzilla.gnome.org/show_bug.cgi?id=783759
2017-06-15(always include CheckCXXCompilerFlag before calling it)R.J.V. Bertin
Mea culpa, the project I tested this with apparently used the macro too.
2017-06-15guess less, test moreR.J.V. Bertin
Don't attempt to guess whether (Apple) Clang 3.5 supports -Wdate-time, use CheckCXXCompilerFlag and be certain.
2017-06-14detect Xcode <= 6.2 from Clang version onlyR.J.V. Bertin
This modifies 340b969f54d2f271e925ed7f84c831e1e4b2ccd0 by testing for Xcode <= 6.2 using the AppleClang version scheme only, to account for rare conditions where the compiler ID is not AppleClang.
2017-06-10GIT_SILENT Upgrade ECM version to 5.36.0.l10n daemon script
2017-06-05scan the whole install folder for qml dependenciesMarco Martin
Summary: set qml-root-path as the root install folder of the application, as is used to scan for import dependencies, and both qml files in share should be scanned as well as other qml imports that may be installed in /lib Test Plan: kirigami gallery deployment has again all the needed dependencies Reviewers: apol Reviewed By: apol Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D6103
2017-06-05New: ECMAddQch, for generating qch & doxygen tag filesFriedrich W. H. Kossebau
Summary: Enables generation of QCH files during a normal build, for documenting the public API of a library. These macros are especially done with release builds in mind, so distributed packages (like from Linux distributions) can include QCH files matching the version of the library and will be also automatically updated on new versions of the libary. Next to that these macros also support linking between different QCH files, so a subclass from another library for which there also is a QCH file installed will be linked to the entry in that other QCH file. This inter-QCH linking is especially useful for libraries extending Qt, where many of the used types are from Qt libraries. The macros come with the needed information for Qt libraries prepared, so the used Qt libraries just need to be listed in the LINK_QCHS argument by target names, like Qt5Core_QCH or Qt5Widgets_QCH. This should be a nice supplement to online services like api.kde.org, like Qt's own QCH files are to doc.qt.io, While QCH files from an abstract POV could be seen similar to code libraries, being components with links to lookup symbols/entries in other QCH files, so the rules and code should be done with similar concepts, currently CMake's target system seems bound to executable code creation. So things like "file(EXPORT ...)" could sadly not be reused, as custom targets are not supported with that. Thus a custom macro had to be created for now. Also could I not find a way to use namespaces like KF5::, for more consistent target naming. The patch also adds two variables to KDEInstallDirs.cmake for controlling where the QCH (and respective doxygen tag files) are installed. The QTQCHDIR variant allows to install QCH files for Qt-extending libraries into the same folder where Qt's own QCH files are, so Qt Assistant & other QCH viewer pick up them automatically to add them to the default help file collection. The QCHDIR variant would provide a neutral, but central installation location. Neutral, as it never "pollutes" the Qt system dirs with files possibly unrelated to Qt-based development (e.g. when simply using qthelp tools for documentation), and central, to help with finding available QCH files for manually adding/loading them into a viewer, given there is no official way currently to register the availability of QCH files on installing. Open questions: a) target system for exporting/importing done in a sane way? Better name pattern for the QCH targets than xxx_QCH (see the targets created for Qt, like Qt5Core_QCH)? b) sharing metadata with kapidox Initially I placed these macros into the kapidox module, as this seems the logic place. And would match what kdoctools does for user manuals. Just, that would create a build dependency on kapidox which complicates usage a little. Having these macros in ECM delivers them with no extra effort needed. The data in metainfo.yaml is partially duplicated with the data feed into the macros. How to deduplicate that is still open. Especially with the need to not depend on external data sources like identify.kde.org. Issues: * doxygen versions before 1.8.13 are broken and miss to include some files with generated QCH (https://bugzilla.gnome.org/show_bug.cgi?id=773693) * Qt Assistant often only built with QTextBrowser, while doxygen uses lots of HTML5 (incl. hardcoded JavaScript) (https://bugzilla.gnome.org/show_bug.cgi?id=773715), needs e.g. distributions to use QtWebKit to work, upcoming Qt versions might soon also have QtWebEngine based help viewer (https://codereview.qt-project.org/#/c/111559/) * inter-QCH links do not work in KDevelop currently (see https://bugs.kde.org/show_bug.cgi?id=372747) if installed as separate QCH files More details/background info at https://frinring.wordpress.com/2016/09/27/adding-api-dox-generation-to-the-build-by-cmake-macros/ Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D2854