Commit Graph

77 Commits

Author SHA1 Message Date
Martchus 3fb40baebc Reformat CMake scripts against cmake-format 0.6.3 2019-12-15 18:58:42 +01:00
Martchus 6376819c07 Apply cmake-format v0.6.0 2019-11-30 17:58:01 +01:00
Martchus ea2804f147 Allow user to append custom libs to linker line
Use-case is explained in the documentation. This implementation
takes care that the additional libs actually occur at the end
of the linker line despite the use of imported targets with
INTERFACE_LINK_LIBRARIES. It might still not be perfect but
sufficient for current use-cases.
2019-08-24 13:00:32 +02:00
Martchus f9e545abdc Remove surplus whitespace 2019-08-21 22:31:04 +02:00
Martchus e14b5bf335 Remove unused CMake variable 2019-08-20 22:08:47 +02:00
Martchus 99bc257755 Apply cmake-format 2019-08-06 00:02:38 +02:00
Martchus de2d6f6d98 Improve pkg-config file generation
* Prevent imported library paths pointing to build directory
  ending up in pkg-config file
* Handle targets which reference other targets but have not pkg-config
  module
* Fix check for BUNDLED_TARGETS
2019-08-05 23:45:08 +02:00
Martchus 79855f285d Improve pkg-config file generation
* Don't refer to bundles libraries via its imported location
* Add dependencies of imported targets
2019-08-05 19:07:49 +02:00
Martchus 3d47869bcd Use META_PLUGIN_CATEGORY within build directory
The *.so file might not be found when not in the right
subdirectory.
2019-07-26 22:01:00 +02:00
Martchus 7249751d30 Apply clang-format and cmake-format 2019-06-16 16:54:26 +02:00
Martchus 869a3b2ae2 Don't try to install Qt plugins outside of the install prefix
Even if QMake tells us that would be the right location because
it breaks development setups which use a custom install prefix
and set QT_PLUGIN_PATH accordingly.
2019-06-16 16:54:00 +02:00
Martchus fc9e1ff703 Add version header to libraries 2019-06-16 15:33:10 +02:00
Martchus 5607691251 Deal with "bundled" dependencies
* Allow exporting targets from 3rd party projects which are
  built within my own projects. This is required if the build
  scripts of these 3rd party projects don't have an export on
  their own but are used in the public interface or as a dependency
  of a static library.
* Add those libraries to the pkg-config file as well.
2019-06-15 15:30:56 +02:00
Martchus 6c9a956a4f Apply cmake-format 2019-06-10 22:43:42 +02:00
Martchus bfdd6ada2b Disable mingw-w64 packaging specific code by default 2019-06-01 16:32:21 +02:00
Martchus bc0d7af67f Apply cmake-format 0.5.1
* Disable autosort as it messes with add_library and
  add_executable calls
2019-06-01 12:14:30 +02:00
Martchus e120a897c5 Add use_package to 3rdParty 2019-05-30 14:04:04 +02:00
Martchus a865522e67 Use existing TARGET_INCLUDE_DIRECTORY_BUILD_INTERFACE 2019-05-28 17:55:28 +02:00
Martchus 6489cae19e Apply cmake-format 2019-05-15 15:52:29 +02:00
Martchus e114b24d3c Add helper to use pkg-config modules
This basically creates imported targets from those
pkg-config modules. It also supports static linkage.

The main effort here is that those imported targets
are also exported appropriately. This is implemented
by letting the config script re-run pkg-config as
required.
2019-05-09 19:27:10 +02:00
Martchus b4cf641cfd Fix setting library version 2019-05-07 16:49:19 +02:00
Martchus a1267f2015 Fix handling undefined INTERFACE_REQUIRED_PACKAGES 2019-05-06 16:22:35 +02:00
Martchus a17f322f3c Apply cmake-format 2019-05-04 20:57:56 +02:00
Martchus 1480d9ab63 Support installing multiple configurations within the same prefix 2019-05-04 01:59:45 +02:00
Martchus 8ffe0e6a51 Polish CMake code 2019-04-22 22:19:08 +02:00
Martchus e9cc26478b Don't mix building static and shared libraries 2019-04-22 20:42:48 +02:00
Martchus 0bd53c77b5 Query install directory for Qt plugins from qmake 2019-02-27 21:05:23 +01:00
Martchus 86f3bf8b3b Apply cmake-format 2019-02-06 17:30:52 +01:00
Martchus 22795dac8a Remove code for Android ECM module
Use module provided by qtutilities instead
2018-12-22 02:07:49 +01:00
Martchus 3a65e3ecdd Adjust CMake modules for better Android support 2018-09-16 00:25:04 +02:00
Martchus 35ebac1cac Add static-check target for executing clang-tidy 2018-07-27 16:19:16 +02:00
Martchus 6dcd39f1ac Set CXX_STANDARD on header-only lib target for Qt Creator 2018-06-26 00:05:26 +02:00
Martchus 79679c0f42 Improve fake target for Qt Creator
This target is required so files for header-only libs
show up in Qt Creator. So far it was just a custom target.
However, this way include directories and build flags are
not correctly passed to the code model. So creating an
actual library now.
2018-06-24 20:43:08 +02:00
Martchus 6300e37924 Install shared/static config 2018-02-19 19:45:07 +01:00
Martchus 3fcbaf7fff Split shared and static configuration 2018-02-16 23:56:29 +01:00
Martchus a67805cb0f Allow providing a special include dir for build 2018-01-20 20:43:18 +01:00
Martchus 5c6207c6fa Do not try to strip header only libs 2018-01-20 17:44:14 +01:00
Martchus a4e7cbd5c3 Make target 'interface_sources_for_qtcreator' unique 2017-11-16 01:59:43 +01:00
Martchus a7880e3d0c Remove *.qm files from targets when built-in translations enabled
This prevents updating *.ts files twice and in parallel leading to
build errors.
2017-11-02 00:10:06 +01:00
Martchus a869aa8def Do not add sources to header-only libs 2017-10-23 01:12:51 +02:00
Martchus 9c8bb44843 Fix mingw-w64 targets 2017-08-31 02:16:05 +02:00
Martchus b45fe7eaeb Allow providing a shared lib as dependency for a static lib
Previously the case when the dependency of a static library
was provided by a dynamic library has not been handled
correctly leading to linker errors when building the final
application.
2017-08-06 00:35:11 +02:00
Martchus 86e12a1164 Fix include dirs for build interface
* The project directory is part of the include
  directives, eg. #include <c++utilities/...
* So the include search path must be one level
  above the project directory.
2017-08-05 18:41:41 +02:00
Martchus 15bf2779c5 Make pkg-config file for both, dynamic and static target 2017-07-30 00:56:12 +02:00
Martchus 36b2498dd6 Allow disabling install targets
Might be useful if install targets cause
problems, eg. under MacOS
2017-07-20 01:43:10 +02:00
Martchus 942c14ce3d Fix target include dirs
* Add include path of own header files for build
  and external use via imported target. Previously
  only include dirs required for external libs were
  added.
* Using global include dirs is no longer required.
* When PUBLIC_SHARED_INCLUDE_DIRS is empty, adding
  "${PUBLIC_SHARED_INCLUDE_DIRS}" to public include dirs
  does not leave INTERFACE_INCLUDE_DIRECTORIES property
  empty. Instead the source dir is added. So just don't
  use quotes here.
2017-07-11 22:02:27 +02:00
Martchus 442f7a9b25 Exclude generated files from coverage
* So files generated by moc or qdbusxml2cpp are not
  part of coverage statistics
* When filtering files, llvm-cov prints multiple tables
  showing coverage on function level.
  -> Generate overall coverage stats via awk.
2017-07-09 23:38:11 +02:00
Martchus 6f146072ea Allow overriding 3rd party libs/includes
So passwordfile can be told to use legacy OpenSSL
header in accordance with Qt 5 which still requires
OpenSSL 1.0
2017-07-04 22:44:32 +02:00
Martchus 2174dc516a Allow specifying target compile options via variable 2017-06-18 16:14:45 +02:00
Martchus b8c2e79e3d Use meta-data provided in CMake config for version info
* Don't set custom meta-data on targets
* It isn't exported anyways
* Remove version on application target because itcauses
  CMake to create symlinks
2017-04-15 23:02:41 +02:00