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
Martchus
412e725309
Append Git revision to version
...
* Append Git revision and ID of latest commit
to version displayed via --help
* Can be turned off via option
* Has no effect if the source dir is not
a Git checkout or Git is not installed
* Implements
https://github.com/Martchus/tageditor/issues/13
2017-04-15 01:45:03 +02:00
Martchus
91e5a8b0b0
Show version of used libraries in --help
...
* Include only own libraries and Qt 5 modules
so far
* First step to implement
https://github.com/Martchus/tageditor/issues/13
2017-04-15 01:10:38 +02:00
Martchus
bfa12a9870
Allow creation of header-only library
...
* Create interface target if only headers present
* Include workaround to show header files in Qt Creator
2017-04-14 23:30:46 +02:00
Martchus
663b31c5fe
Allow skipping install targets
...
* via variable META_NO_INSTALL_TARGETS
* since this is just to silence some warnings
no need to bump minor version
2017-04-01 16:18:32 +02:00
Martchus
88196b8076
Allow creation of plugins via LibraryTarget
2017-02-20 20:03:16 +01:00
Martchus
64cc931555
Improve CMake modules
2017-02-11 02:30:46 +01:00
Martchus
9087e8da7e
Fix dependency of res file for built-in translations
2017-02-09 16:22:33 +01:00
Martchus
cb3b50c28c
Allow overriding default CXX_STANDARD
...
to ease using newer C++ features in further
projects without setting the standard manually
for each target
2017-02-04 17:44:46 +01:00
Martchus
722e9ae590
Improve install-mingw-w64-strip target
2016-11-12 02:06:52 +01:00
Martchus
b903adccdb
Provide an imported target for libs
2016-11-12 02:06:52 +01:00
Martchus
77c454b304
Allow exact shared object version
2016-10-22 21:00:33 +02:00
Martchus
73d42c287c
Support desktop actions and other additional desktop entries
2016-10-19 20:59:54 +02:00
Martchus
34cd505bf7
Remove dependencies of install targets
...
Dependencies were preventing installing
static-only builds
2016-09-11 23:10:29 +02:00
Martchus
27d99f0bda
Fix install destination of pkg-config files
2016-09-11 21:00:34 +02:00
Martchus
7be0b15d37
Add strip targets appropriately
2016-09-11 20:32:18 +02:00
Martchus
d6b08b8ed9
Fix decoration for static builds
...
- Also add improvemnts a few other things in the build system
2016-08-29 15:35:48 +02:00
Martchus
fe4e4b2ef5
Fix issues concerning building/using static libraries
...
- Ensure static versions of 3rd party libs are
found correctly
- Link tests against statically if only static
libraries have been built
- Ensure standard lib is linked statically when
static linkage is enabled
2016-08-19 16:14:55 +02:00
Martchus
9f68a95920
Add pkg-config file
2016-08-14 16:49:40 +02:00
Martchus
189a6fe6ba
Approach to enable static linkage
...
Linking statically might be useful, especially
when linking Windows applications since MinGW
is less buggy then.
2016-07-22 01:35:32 +02:00
Martchus
8efe38dadf
Improve details in the build system
...
- add target to run cross compiled Windows binaries with wine
- quit tests if --help has been specified
2016-07-16 23:04:22 +02:00
Martchus
18845b3ce0
Use option for CMake options
2016-07-10 00:16:43 +02:00
Martchus
0cc508dc93
Add option to specify lib dir suffix
2016-06-30 17:04:07 +02:00
Martchus
4d1c874b56
Add target for API doc
2016-06-10 10:24:54 +02:00
Martchus
01dee5de09
Allow creation of static libs in general
2016-05-28 01:52:55 +02:00
Martchus
2a58a83c3c
Fix template paths
2016-05-23 00:04:06 +02:00
Martchus
d27520af68
fixed some issues caused the build system changeings
2016-04-16 18:32:22 +02:00
Martchus
bd0cbd5802
reduce code duplication in build system
...
- get rid of qmake project file
- provide CMake modules for common tasks
- provide templates for *.desktop files
2016-04-16 02:11:05 +02:00