aboutsummaryrefslogtreecommitdiff
path: root/find-modules
AgeCommit message (Collapse)Author
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
2017-01-10Bindings: Correctly handle access specifiers within macrosStephen Kelly
The Q_DECLARE_TR_FUNCTIONS macro contains a `public:` access specifier, but the sip_generator just pastes the entire macro name. Adjust the generator to extract the correct access specifier.
2017-01-05Bindings: Improve diagnostics for the rules engineShaheed Haque
Note which rule has a modification effect.
2017-01-05Bindings: Remove db member from RuleStephen Kelly
It is unused.
2017-01-05Bindings: Fix copy-pasta in documentationStephen Kelly
2017-01-05Skip attributes on enums when generating bindingsShaheed Haque
2017-01-04Fix message when searching for libclang.Adriaan de Groot
Summary: Cut-and-paste-o from the Python detection code. Reviewers: #frameworks, skelly, apol Reviewed By: apol Subscribers: #buildsystem Tags: #frameworks, #buildsystem Differential Revision: https://phabricator.kde.org/D3952
2016-11-07Print path to Qtcoremod.sip file if there is a problemStephen Kelly
2016-10-31Add the PythonModuleGeneration moduleStephen Kelly
This can be used by KF5 libraries to generate python 2 and 3 bindings.
2016-10-31Add a sip wrapperStephen Kelly
When sip is executed it is passed one .sip file. However, it uses that to generate multiple cpp source files, one per class in the sip file. Buildsystems need to know the outputs of commands, so this does not work well as the output can't easily be predicted. So, create a unity build of all files to compile into the python module.
2016-10-31Add Qt5 Ruleset.Stephen Kelly
The ruleset is used to transform or omit artifacts in C++ header files when determining the SIP content to generate. Some content common to all Qt-using libraries can be processed by using the rule set present here. For example, most Q_METATYPE internal declarations should be discarded.
2016-10-31Add the rules_engine and sip_generatorShaheed Haque
These files process C++ headers with libclang and python-clang bindings, using the AST to generate SIP files for PyQt binding library generation. The design allows for further extensions which can process other artifacts found in headers. This iteration of the design is a simple minimum which suffices to generate headers for KItemModels and some other libraries.
2016-02-11Fix the 'Since' tag.Christophe Giboudeaux
FindPoppler wasn't available in ecm < 5.19 CCMAIL:faure@kde.org
2016-01-13Add a FindPoppler moduleAlex Richardson
At least Okular and KBibTex include a FindPoppler.cmake module but this one uses the new ECMFindModuleHelpers and has imported targets. REVIEW: 126183
2015-12-18CMake: Cleanup: Strip text from endif/elseKevin Funk
REVIEW: 126414
2015-11-17Do not find XCB's XINPUT library by default.Alex Merry
The XINPUT library is unlikely to be available on many systems, including a lot of Linux distributions. This will warn developers in advance by (a) not searching for XINPUT unless it was explicitly requested, and (b) printing a warning if they do request it. REVIEW: 125935
2015-04-26Port remaining find modules to ecm_find_package_version_check.v5.10.0-rc1v5.10.0Michael Palimaka
REVIEW: 123470
2015-04-19real fix for png2ico, pipe error stream also to result variablePatrick von Reth
2015-04-19execute png2icon --help with ERROR_QUIET, to prevent printing of banner from ↵Patrick von Reth
http://www.winterdrache.de/freeware/png2ico/
2015-03-09Fix tab characters in regexes.Alex Merry
There is no "\t" in CMake's regular expression syntax; we need to make the character be interpreted when CMake parses it as a string.
2015-02-11Add Debian path to search path for qtwaylandscannerJonathan Riddell
Debian likes to install qt binaries into an obscure path, search here as well REVIEW: 122526
2015-02-06Document when modules were added to ECM.Alex Merry
2015-02-01Minor documentation syntax fixes.Alex Merry
2015-01-24Add ecm_add_app_icon function.Alex Merry
This adds an application icon to an executable from PNG files for Windows and Mac OS X. Unlike the similar kde4_add_app_icon macro from kdelibs, this requires icons to be explicitly listed as arguments (meaning CMake can tell when ones are added or deleted and reconfigure as appropriate), and it works with Matthias Benkmann's png2ico tool, as well as the KDE-Win tool of the same name. Currently missing unit tests. Also completely untested (except that `make test` runs on Linux, so there are no obvious syntax errors). With thanks to Ralf Habacker for the inital work on porting kde4_add_app_icon. CHANGELOG: Add ECMAddAppIcon module to add icons to executable targets on Windows and Mac OS X.
2014-11-07Do not skip searching for X11 and Wayland on WindowsAlex Merry
While the search is unlikely to succeed on Windows, having different behaviour between the platforms (eg: find_package(Wayland REQUIRED) was not fatal on Windows, even though Wayland_FOUND would always be FALSE) is not ideal, and if someone did port them to Windows for some reason, the find modules should support that. If applications actually want different behaviour between platforms (like requiring a module on Unix, but not on Windows), they should implement that logic themselves (since they will have to deal with targets not being defined, etc, anyway). REVIEW: 120481
2014-10-19Wayland and QtWayland protocol scannersPier Luigi Fiorini
Add a couple of find modules for wayland-scanner and qtwaylandscanner. These modules find the respective executables and create a target that points to the executable. Targets are respectively Wayland::Scanner and Wayland::QtScanner. There are also macros to generate C protocols with wayland-scanner and C++ wrappers with qtwaylandscanner. REVIEW: 120034
2014-09-15add support for detecting libgit2 (with version check, API changes a lot)Christoph Cullmann
add FindLibGit2.cmake + doc link scripts tries to detect version not by pkgconfig to work on windows without pkgconfig, too REVIEW: 120196
2014-04-26Add a FindKF5.cmake moduleAlex Merry
REVIEW: 117780
2014-04-25Add a stub for ECMFindModuleHelpers to the find-modules dirAlex Merry
ECMUseFindModules allows find modules to be copied to a local directory. These find modules may use ECMFindModuleHelpers, but they will not be in the same relative location to ECMFindModuleHelpers.cmake and there is no guarantee that ECMFindModulesHelpers.cmake will be in the CMake module path. To solve this, we make sure there is always a stub file in the same directory as the find modules that includes the real ECMFindModuleHelpers.cmake. The one installed with ECM just includes "../modules/ECMFindModuleHelpers.cmake", while ecm_use_find_modules generates a stub that uses an absolute path. REVIEW 117658