aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2017-06-04tests: improve error reporting for ECMAddAppIconTestPino Toscano
when checking whether there were new sources added (on Windows and Mac), check whether the variable is empty as list, instead of failing because of a cmake syntax error
2017-06-04tests: fix output directory for KDEFetchTranslationsPino Toscano
hopefully the dummy executable will be where expected (on Windows)
2017-06-04tests: fix last change on KDEFetchTranslationsPino Toscano
include the ECMMarkNonGuiExecutable module, so the ecm_mark_nongui_executable can be used
2017-06-04tests: hopefully fix KDEFetchTranslations on WindowsPino Toscano
use ecm_mark_nongui_executable to mark the dummy executable as non-gui, so its linking works
2017-06-04Fix KDEInstallDirsTest.relative_or_absolute_usr, avoid Qt paths being usedFriedrich W. H. Kossebau
Set KDE_INSTALL_USE_QT_SYS_PATHS explicitely to FALSE, to avoid it defaulting to TRUE if Qt is also installed to the /usr prefix
2017-05-30restore hidden-visibility testing with Xcode 6.2v5.35.0-rc1v5.35.0R.J.V. Bertin
Xcode 6.2 (OS X 10.9.5) has a Clang version that is based on Clang 3.5 but does not yet support -Wdate-time . Commit 7af9f8e2b6eb235923a329e8ff24012883fb6b86 introduced a regression where this compiler failed to pass the visibility tests because it prints a warning about -Wdate-time. This in turn leads to linker errors.
2017-05-23ecm_qt_declare_logging_category(): more unique include guard for headerFriedrich W. H. Kossebau
Summary: The old guard was created just from the identifier + _H, which runs the chance to clash in projects which use an identifier matching the project name and which also have a class or central file header which is named by the project and then has an include guard matching the filename. Example: project ABC -> abc.h with ABC_H guard identifier ABC, header debug.h -> debug.h with ABC_H guard any.cpp including both abc.h and debug.h will see only one content Using both the header file name and identifier for the guard name and prefixing it additionally with a macro specific term should make the guard both follow the usual pattern for guards matching the file name and also add some namespacing to allow for similar named header files in bigger projects (e.g. "debug.h") which could be included in the same include tree. Reviewers: #frameworks, #build_system Subscribers: elvisangelaccio Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5866
2017-05-20Drop modules from attic that are not useful anymorePino Toscano
Even if they are in attic and not actually in use, drop a number of modules (and old tests) that it does not make sense to keep carry further: - FindAlsa.cmake, config-alsa.h.cmake: cmake has been providing a better FindALSA for long time - FindEigen.cmake, FindEigen2.cmake & test: Eigen v1 & v2 are deprecated and unmaintained for years - FindGStreamer.cmake: gstreamer-0.10 is long dead upstream - FindKdcraw.cmake, FindKDE4Workspace.cmake, FindKdeMultimedia.cmake, FindKDevPlatform.cmake, FindKexiv2.cmake, FindKipi.cmake, FindLibAttica.cmake, FindLibKonq.cmake: modules for KDE 4 libraries -- they are provided already by kdelibs 4.x, and the frameworks versions of those libraries provide cmake config files already - FindKNepomuk.cmake, FindKonto.cmake, FindNepomuk.cmake, NepomukAddOntologyClasses.cmake, NepomukMacros.cmake: Nepomuk stuff, which is long dead - FindKopete.cmake: the Frameworks version of Kopete is not released yet, so it'd rather provide own cmake config files - FindKorundum.cmake: Korudum is dead upstream, and so is Ruby 1.8 - FindLCMS.cmake & test: LCMS 1 is dead for many years already - FindMusicBrainz.cmake: libmusicbrainz v2 is long dead, and the web service API it uses was dismantled years ago - FindOpenEXR.cmake & test: ECM already provides an improved and polished version of this module - FindPolkitQt.cmake: polkit-qt is long dead, replaced by polkit-qt-1 - FindPopplerQt4.cmake: ECM 5.19+ already provides a better FindPoppler module - FindSharedDesktopOntologies.cmake: dead upstream, but also used to provide cmake config files already - tests for Blitz, Flex, LibXslt: their modules are not even in attic
2017-05-16Add or improve "Generated. Don't edit" messages and make consistentFriedrich W. H. Kossebau
Reviewers: #frameworks, #build_system, apol Reviewed By: apol Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5867
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-05-13GIT_SILENT Upgrade ECM version to 5.35.0.l10n daemon script
2017-05-08Change default pkgconfig install path for FreeBSDTobias C. Berner
Summary: FreeBSD, opposed to most other sytems, does not install pkgconfig files to lib/pkgconfig, but to libdata/pkgconfig. Reviewers: #freebsd, apol, kfunk Reviewed By: kfunk Subscribers: kfunk, #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5766
2017-05-07Fix test when compiling from a tarballv5.34.0-rc3v5.34.0Aleix Pol
Summary: Otherwise it doesn't work when falling back to the project name. Test Plan: Ran the test locally with and without .git directory Reviewers: #frameworks, joselema, sitter Reviewed By: sitter Subscribers: #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5741
2017-05-05GIT_SILENT Upgrade ECM version to 5.34.0.v5.34.0-rc2v5.34.0-rc1l10n daemon script
2017-04-21Sanitizers: Don't use GCC-like flags for e.g. MSVCKevin Funk
Summary: Fixes compiler warnings such as: ``` cl : Command line warning D9002 : ignoring unknown option '-fsanitize=address' cl : Command line warning D9002 : ignoring unknown option '-fno-omit-frame-pointer' ``` Reviewers: aacid, bcooksley Reviewed By: aacid, bcooksley Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5489
2017-04-20adapt to fetchpo changes and use vars for target directories to dry codeHarald Sitter
Summary: - fetchpo now expects the output dirs as named arguments - new argument for poqm directories where releaseme will put _qt.po files - variables for both po/ and poqm/ to not repeat the paths all over the place Reviewers: apol Reviewed By: apol Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5525
2017-04-20fix documentation, ecm_install_po_files_as_qm generates .qm, not .moHarald Sitter
2017-04-20use correct variable for fetch-translations injectionHarald Sitter
Summary: KDE_L10N_AUTO_TRANSLATIONS is the name of the relevant option Reviewers: apol Reviewed By: apol Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5523
2017-04-20KDEPackageAppTemplates: improve API dox notation of function signatureFriedrich W. H. Kossebau
2017-04-20KDEPackageAppTemplates: mark %{dest} as deprecatedFriedrich W. H. Kossebau
2017-04-20KDEPackageAppTemplates: fix note for %{PROJECTDIRNAME}Friedrich W. H. Kossebau
2017-04-20KDEPackageAppTemplates: remove note of placeholder %{src}, never supportedFriedrich W. H. Kossebau
2017-04-18Fix minor CMake warning (CMP0054)Kevin Funk
2017-04-18KDECompilerSettings: Pass -Wvla & -Wdate-timeKevin Funk
Summary: -Wvla: Warn because it's non-standard feature, not supported by MSVC to date -Wdate-time: Warn because using __TIME__ or __DATE__ prevents reproducible builds These warnings are being used for *building* Qt itself as well (cf. qt_common.prf in qtbase) Test Plan: No new warnings from rebuilding KDE Frameworks Reviewers: mpyne Reviewed By: mpyne Subscribers: mpyne, #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5430
2017-04-11Don't include tests together with modulesAleix Pol
We have tests that go through the modules directory
2017-04-11Allow test to work with older versions of qmlplugindumpAleix Pol
2017-04-10Don't enable the test by defaultAleix Pol
The build isn't always reproducible and comparisons are unfair
2017-04-10Support older qmlplugindump versionsAleix Pol
2017-04-10Introduce ecm_generate_qmltypesAleix Pol
Summary: Introduces a function that allows to generate plugins.qmltypes files for our qml plugins using qmlplugindump much like Qt does. Test Plan: Introduced it locally on Purpose and it works Reviewers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5087
2017-04-10Add a test for _repository_name() a function added for fetch-translationsAleix Pol
Summary: It turns out it's more complex than it looks, it's always better to have tests. Reviewers: sitter, aacid Reviewed By: sitter Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5352
2017-04-10Fix compilation under AppleClangKevin Funk
Summary: Broken since we started to treat Clang and AppleClang differently (with the switch to CMake 3.0) FIXED-IN: v5.34.0 BUG: 377933 Reviewers: apol, rjvbb Reviewed By: apol, rjvbb Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5379
2017-04-07Allow projects to include the file twiceAleix Pol
2017-04-07Move the repository name recognition into a functionAleix Pol
Summary: Otherwise it would pollute the namespace and weird things happened on some projects Reviewers: bshah Reviewed By: bshah Subscribers: #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5332
2017-04-07Fix rx that matches project names out of the git uriAleix Pol
2017-04-06Introduce fetch-translations build commandAleix Pol
Summary: Makes it possible to fetch translations when building the project. To do so it fetches kde:releaseme and uses the new fetchpo.rb program to download the translations into the build directory. This should make it much easier to integrate translations in the development process. Test Plan: Downloaded and installed translations for some projects Reviewers: #frameworks, #build_system, kfunk, ltoscano, aacid, ilic, sitter Reviewed By: sitter Subscribers: sitter Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5143
2017-04-05Use -Wno-gnu-zero-variadic-macro-arguments moreKevin Funk
Summary: Add it to KDECompilerSettings.cmake instead of KDEFrameworkCompilerSettings.cmake. Users can then just enable -pedantic without worrying about the gnu-zero-variadic-macro-arguments warning. This fixes some warnings in e.g. kdenlive Reviewers: kossebau, apol, dfaure Reviewed By: apol Subscribers: apol, #frameworks, #build_system Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5302
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-03-19KDE compiler settings: treat Clang and AppleClang equallyv5.33.0-rc1v5.33.0René J.V. Bertin
https://phabricator.kde.org/D5089
2017-03-17Improve error messagesAleix Pol
2017-03-16Specify qml-root-path as the share directory in the prefixAleix Pol
Summary: This way androiddeployqt will scan the imports. Otherwise it wouldn't pull qtquickcontrols2 for me Reviewers: #build_system, #frameworks, mart Reviewed By: mart Tags: #frameworks, #build_system Differential Revision: https://phabricator.kde.org/D5067
2017-03-16default for ECM_ADDITIONAL_FIND_ROOT_PATHMarco Martin
set ECM_ADDITIONAL_FIND_ROOT_PATH the same as CMAKE_PREFIX_PATH if not specified explicitly from the commandline reviewed-by:apol