aboutsummaryrefslogtreecommitdiff
path: root/find-modules
AgeCommit message (Collapse)Author
2018-01-31FindQtWaylandScanner.cmake: Use qmake-query for HINTAndreas Sturmlechner
Summary: Instead of hardcoded /usr/lib, same solution as in D9116 Test Plan: Works fine with kwayland 5.42.0. Reviewers: #frameworks, #build_system, cgiboudeaux Reviewed By: cgiboudeaux Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D10201
2018-01-28Add FindSeccomp to find-modulesDavid Kahles
Summary: This is copied from KScreenlocker, but will be utilized in Baloo too. Test Plan: - Autotests are working - KScreenlocker and Baloo build with seccomp enabled Reviewers: graesslin, cgiboudeaux Reviewed By: cgiboudeaux Subscribers: cgiboudeaux, #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D8998
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-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-06Add FindGLIB2.cmake and FindPulseAudio.cmakeJonathan Marten
Will initially be used by KMix. Differential Revision: https://phabricator.kde.org/D7823
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-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-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
2017-05-15Add a new FindGperf modulePino Toscano
Summary: Add a simple module to look for GNU gperf at build time, providing an helper macro for adding generations to a list of sources. gperf will be used to generate the C/C++ sources at build time, instead of using static versions in VCS; at least kcodecs, khtml, and kio-extras will be switched to this method. Reviewers: #windows, #frameworks, #build_system, kde-mac, adridg, rjvbb Reviewed By: adridg, rjvbb Subscribers: kfunk, rjvbb, adridg Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D3830
2017-04-03FindPyModGen: Also search for an unversioned clang++Heiko Becker
Summary: While my distro does have a versioned clang executable, it doesn't have a versioned clang++ executable. The versioned executable is still searched first, falling back to the unversioned one. Reviewers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5291
2017-02-15Detect inotify.v5.32.0-rc1v5.32.0Adriaan de Groot
Summary: On Linux, inotify always exists; all you need is the header file. On the BSDs, inotify is provided through a shim to kqueue, which must be installed separately. Add a FindInotify to help sort that out. Based on RB 129316 and RB 129549. Test Plan: - On FreeBSD, reliably detects presence of libinotify in $LOCALBASE, - Needs testing on Linux that it does find the header file. Reviewers: apol, arrowdodger, #build_system, #frameworks, tcberner, ervin, skelly, dfaure, kfunk Reviewed By: tcberner, kfunk Subscribers: kfunk, #freebsd Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D3826
2017-02-05Revert "Automatically mark classes with pure virtual functions as /Abstract/."Stephen Kelly
With some combination of PyQt/compiler this breaks the build of kcoreaddons. This reverts commit 2e20aeab6e86670a66ff99a7b79120c4004b4d22.
2017-02-04Bindings: Remove unused memberv5.31.0-rc1v5.31.0Stephen Kelly
This should have been removed in a prior commit.
2017-02-04Automatically mark classes with pure virtual functions as /Abstract/.Shaheed Haque
2017-02-04Bindings: Take account of visibility of classesShaheed Haque
2017-02-04Bindings: Take account of visibility attribute on APIsShaheed Haque
Don't export API which has visibility "hidden". Visibility attributes on variables are ignored, but call the generic method anyway. Remove checks for macros which obscure the attributes. Processing the attribute directly means that is not needed.
2017-02-04Bindings: Generalize the skippable_attribute methodStephen Kelly
De-duplicate it between variables and functions. The callers already handle reporting the removal.
2017-02-04Bindings: Remove unused methodStephen Kelly
2017-02-04Bindings: Add an end marker to the regex patternShaheed Haque
Fix the anchoring of the regular expression matching to cover the complete input. This was an oversight and should have no visible effects except that if new fields are added to a rule database, existing rules with wildcards will greedily match the new fields.
2017-01-31Bindings: Remove unused importStephen Kelly
2017-01-31Remove delimiters from licence headerStephen Kelly
2017-01-31Bindings: Add missing documentation of the "name" for MethodCodeShaheed Haque
2017-01-31Update some documenation for the ModuleCodeDbShaheed Haque
2017-01-31Fix documentation for function databaseShaheed Haque
2017-01-31Remove some delimiters from the licence headerShaheed Haque
2017-01-21Bindings: Add missing rules to debug outputStephen Kelly
2017-01-18Bindings: Fix default param handlingStephen Kelly
Clang API is odd.
2017-01-18Bindings: Handle const-ref of non-record parameter defaultsStephen Kelly
2017-01-18Bindings: Handle const-ref parameters with {} initializerStephen Kelly
2017-01-18Bindings: Handle parameter initializers using {} gracefullyStephen Kelly
2017-01-18Bindings: Add explicit handling of nullptr as a parameter defaultStephen Kelly
Don't prepend a namespace to it as we do otherwise with enum/flags.
2017-01-16Change minimum CMake requirement to be the same as ECMStephen Kelly
2017-01-15Bindings: Use installed python modules if making a dependent moduleStephen Kelly
Only one directory may provide the PyKF5 namespace, so if testing KAuth, which depends on KCoreAddons, both have to be in the same directory. That means that the KAuth tests can only be run post-intallation which doesn't really cause problems.
2017-01-15Bindings: Make it possible for rules to modify the typedef typeStephen Kelly
Allow modifying the name also.
2017-01-15Bindings: Skip implementations of inline methods while parsingStephen Kelly
Don't process the same function name twice.
2017-01-15Bindings: Add a generic rule function to mark a container abstractStephen Kelly
2017-01-15Bindings: Output all python bindings in the same build locationStephen Kelly
The KConfig build creates two libraries and they should both be output in the same place so that they can be tested together.
2017-01-15Bindings: Fix handling of forward declarationsStephen Kelly
It is not appropriate to decorate each forward declaration with the SIP attribute /External/. That is only needed for forward declarations of types which are defined in a different module. Local forward declarations can be omitted from the sip code. In sip code, a forward declaration followed later by a full class definition is an error. Omit forward declarations unless they are decorated with the external attribute. Introduce a rules database for consumers to decorate them with the attribute as required.
2017-01-15Bindings: Use lists in function API instead of stringsStephen Kelly
Custom rules should be able to deal with lists in these cases. This is already the case for function parameters.
2017-01-15Bindings: Make the module name part of the test nameStephen Kelly
2017-01-13Bindings: Add a script to generate __init__.py file for bindingsStephen Kelly
Packagers can execute this script with cmake -D PYTHON_UMBRELLA_MODULE_FILE=/where/ever/PyKF5/__init__.py -P /path/to/ECM/find-modules/GeneratePythonBindingUmbrellaModule.cmake Soon, this is likely to do more than create an empty file.
2017-01-13Bindings: Fix logic for finding the clang driverStephen Kelly
Use find_package to locate the executable.
2017-01-13Bindings: Try to find libclang4 before trying to find libclang3Stephen Kelly
The LLVM project has picked a new version scheme http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html which means that major version numbers will be bumped more regularly, the minor version will remain at zero, and the patch version will be bumped. We will have to see how distros respond in terms of file naming.
2017-01-13Bindings: Determine the clang suffix from the filename if cachedStephen Kelly
The suffix is used later to run the clang executable in order to determine the built-in system includes.
2017-01-13Bindings: Make it possible to customise the installation directoryStephen Kelly
The dist-packages directory which is currently hardcoded is unsuitable to non-debian package creation. Set the directory to 'site-packages' by default.
2017-01-13Bindings: Add rules engine for typedefsStephen Kelly
Currently this is rather simple, allowing only matching typedefs by name. If we need more later, we can extend the interface. This will make it possible to add bindings for the K18n framework.
2017-01-13Bindings: Implement ModuleCode and MethodCode databasesStephen Kelly
2017-01-11Bindings: Use diagnostic level specific text when reportingStephen Kelly
Don't use the text 'Parse error' for warnings, which might confuse IDEs.
2017-01-11Bindings: Fix logging output severity for parsing messagesStephen Kelly
The Python logging module uses logging severities with numerical values which form a sequence in steps of 10. The Clang cindex.Diagnostic numerical values use a step size of 1, so the two are incompatible. Introduce a mapping function so that appropriate errors get issued when attempting to build the bindings. The logging module has one surplus diagnostic level, but we simply never use it. BUG: 374801
2017-01-11Explicitly pass -std=gnu++14 to clang when generating bindingsStephen Kelly
The generator expression here looks like it should work, but it does not set the appropriate flags for compilation. It seems that the CXX_STANDARD property is not yet populated at the time the generator expression is evaluated (to be investigated later). This came to light because users of Qt 5.7+ attempted to generate the bindings, but they encountered errors. The step of using libclang to parse the provided headers was actually failing, but that was not noticed, perhaps because the logging infrastructure in sip_generator does not emit it (to investigate later). BUG: 374801