Martchus
b2a2773cdf
Support passing absolute path to CMAKE_INSTALL_INCLUDEDIR
...
See https://github.com/Martchus/cpp-utilities/issues/18
2020-02-13 11:19:36 +01:00
Martchus
1eb64f1208
Make install directory for bash completion files customizable
...
* Use CMAKE_INSTALL_DATAROOTDIR for default
* Allow overriding via BASH_COMPLETION_INSTALL_DIR
2020-02-10 17:22:17 +01:00
Martchus
115133b7a5
Use target name for bash completion file
...
Otherwise it doesn't seem to be sourced automatically
2020-02-10 17:15:32 +01:00
Martchus
30878fab07
Prevent duplicated LIB_SUFFIX
...
Some build system macros might pass CMAKE_INSTALL_LIBDIR/LIB_INSTALL_DIR
and LIB_SUFFIX at the same time. I suppose in this case the LIB_SUFFIX
should not be added if it is already present to avoid `lib6464`.
2020-02-04 17:09:47 +01:00
Martchus
fe43824c98
Allow passing LIB_INSTALL_DIR as well
...
That variable (but not `CMAKE_INSTALL_LIBDIR`) is apparently
passed when building for Fedora with the `%cmake` RPM macro.
2020-02-04 15:30:01 +01:00
Martchus
dcb1d896c2
Apply cmake-format
2020-02-04 15:24:13 +01:00
Martchus
c97dfbfd4c
Use GNUInstallDirs
...
See https://github.com/Martchus/cpp-utilities/issues/17
2020-02-01 00:01:26 +01:00
Martchus
f5e275288d
Reformat CMake files with cmake-format 0.6.7
2020-01-26 19:24:04 +01:00
Martchus
0b56ecfb04
Run cmake-format individually for each file
...
Seems like cmake-format 0.6.7 only applies CLI options
to the first file anymore. So in order to have the options
applied to all files and not just the first one just
invoke it for each file individually.
2020-01-26 19:23:18 +01:00
Martchus
522d2e8cc8
Avoid an indentation level in TestTarget.cmake
2020-01-20 17:57:03 +01:00
Martchus
d5930c8d60
Set visbility preset for test application to default
2020-01-20 17:54:28 +01:00
Martchus
a9cb91bee2
Set default visibility explicitely to hidden
...
Hidden default visibility is already expected to be handled by
users of the library because it is the default under Windows.
2020-01-10 18:05:55 +01:00
Martchus
9d8135bfd7
Require CMake 3.3.0 in all modules
2020-01-10 18:01:13 +01:00
Martchus
1ce06517cc
Apply cmake-format 0.6.5
2019-12-27 01:45:30 +01:00
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
7cdfca9407
Apply cmake-format
2019-09-14 20:52:57 +02: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
f9bd0b5987
Don't use @META_CONFIG_SUFFIX@ in APP_SPECIFIC_QT_TRANSLATION_FILES
...
See a40d2974e0
2019-08-09 23:20:10 +02:00
Martchus
c483dcc7bf
Remove obsolete code for handling static targets
2019-08-06 17:43:12 +02:00
Martchus
99bc257755
Apply cmake-format
2019-08-06 00:02:38 +02:00
Martchus
d168717023
Configure install destinations already in BasicConfig.cmake
...
It might be already useful before the library config is applied.
2019-08-05 23:46:09 +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
eb34ce610d
Add domain to ApplicationInfo
2019-07-20 20:57:56 +02:00
Martchus
d184370fea
Add note about project()
...
So I don't get the bright idea to revert recent
changes again in some future refactoring.
2019-07-20 18:04:10 +02:00
Chih-Hsuan Yen
9264f1ac76
Add icons (*.icns) for Mac OS X/macOS .app bundles
2019-07-20 12:14:30 +08:00
Chih-Hsuan Yen
6f3a1fa086
Make .app bundles work on macOS
...
By setting CMake variables for Info.plist generation. Some of them are
necessary and others are good to have.
2019-07-17 17:53:16 +08:00
Martchus
d318585fb2
Add EXCLUDED_FILES variable
...
When adding source files to the _FILES variables conditionally
those are so far not being formatted or translated. Adding
these files at least to the EXCLUDED_FILES will fix this.
Replaces DOC_ONLY_FILES which served the same purpose but was
limited to documentation.
2019-07-13 14:01:25 +02:00
Chih-Hsuan Yen
ee31e5c1d1
Fix building with Xcode
2019-07-13 10:22:21 +08:00
Martchus
81a3d4fa94
Don't skip entire use_pkg_config_module if target exists
...
Otherwise the same library can not be added to another library
variable.
2019-07-09 18:36:28 +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
fd531bdd6a
Prefix most of the macros in global.h
2019-06-12 20:34:25 +02:00
Martchus
6c9a956a4f
Apply cmake-format
2019-06-10 22:43:42 +02:00
Martchus
93bdf5b4f1
Do not error-out if file system lib not found
2019-06-07 16:45:06 +02:00
Martchus
d9b4ca5381
Fix build when not file system library required
2019-06-06 15:20:42 +02:00
Martchus
aebd324cf4
Add CMake function to use std::filesystem
2019-06-05 23:48:01 +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
01f21e63c9
Fix appdata.xml.in
2019-05-19 14:14:25 +02:00
Martchus
6489cae19e
Apply cmake-format
2019-05-15 15:52:29 +02:00
Martchus
1a478411d6
Default to C++17
2019-05-11 18:42:38 +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
0443905986
Fix creation of desktop files
2019-05-05 23:19:05 +02:00
Martchus
02bd9f7c06
Add new fields to ApplicationInfo
2019-05-05 18:35:40 +02:00
Martchus
fa961b21bc
Adapt translatin search path to new config feature
2019-05-05 18:35:13 +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
716af584c5
Use CMakeParseArguments for add_custom_desktop_file()
2019-04-13 20:33:39 +02:00
Martchus
6088f6bb43
Don't include Qt-specific config in config.h
2019-04-13 20:33:39 +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
42dd86a16e
Support cmake-format via tidy target
2019-02-05 22:51:07 +01:00
Martchus
b2bf0a002b
Allow to add default cppunit test application
...
To get rid of the boilderplate file "cppunit.cpp" in each
project using cppunit for tests.
2019-01-13 22:14:42 +01:00
Martchus
f66aa33d61
Reduce indentation in TestTarget.cmake
2019-01-13 22:01: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
b16d91287d
Track dependencies of Windows resource file
...
So changing the icon will cause the resource file
to be recompiled.
2018-12-22 00:40:38 +01:00
Martchus
8ed1a03f92
Consider *.c and *.hpp files formattable as well
2018-12-08 19:06:01 +01:00
Martchus
2f0a7050ac
Auto-detect bugtracker on Gitea
2018-12-08 19:04:48 +01:00
Martchus
26496c310e
Make path of Git executable configurable
2018-12-08 19:04:01 +01:00
Martchus
c0f74e4c89
Add BOOST_IOSTREAMS_DYN_LINK to compile defs
...
if linking dynamically against Boost.Iostreams
2018-10-21 20:24:55 +02:00
Martchus
c66420b1dc
Remove target to launch tests with wine
...
This wasn't of much use. One can just use `make
check` and set WINEPATH before manually.
2018-10-07 20:04:31 +02:00
Martchus
749eea2ab6
Support NativeFileStream via Boost.Iostreams
...
So it can also be enabled when not using libstdc++.
2018-09-30 13:55:30 +02:00
Martchus
3c02ad6d92
Fix check for source files
2018-09-24 22:39:09 +02:00
Martchus
3a65e3ecdd
Adjust CMake modules for better Android support
2018-09-16 00:25:04 +02:00
Martchus
93d6fb5d88
Reduce indentation in ListToString
2018-07-27 16:30:11 +02:00
Martchus
35ebac1cac
Add static-check target for executing clang-tidy
2018-07-27 16:19:16 +02:00
Martchus
2e2b66e398
Add mingw-w64 specific targets only when using mingw-w64
2018-07-27 16:18:27 +02:00
Martchus
6dcd39f1ac
Set CXX_STANDARD on header-only lib target for Qt Creator
2018-06-26 00:05:26 +02:00
Martchus
3a6bbb0115
Allow enabling GUI config even when no specific sources present
...
Useful when GUI specific code is only wrapped using #ifdef so
there are no extra files.
2018-06-24 20:47:19 +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
b77607f3e0
Rename META_REQUIRED_FEATURES
...
Because those features are actually not required.
2018-06-03 22:15:20 +02:00
Martchus
4a69db787d
Allow to create header for feature detection
...
The header will only contain some preprocessor conditions.
CMake will *not* do checks with the current compiler.
2018-06-03 21:49:01 +02:00
Martchus
52bf075317
Move creation of srcdirref and testfiles dir to BasicConfig
...
Those make testing more convenient and are also useful when
there's no test target, eg. when testing syncthingtray with
mocked configuration.
2018-05-01 23:59:28 +02:00
Martchus
7cafdd551e
Fix wrong negation to enable Doxygen target
2018-03-21 22:33:12 +01:00
Martchus
9a352e0b8f
Do not add source files to Doxygen target
...
Adding the files only has the effect that the files
are shown in the IDE. However, the files should be present
anyways and adding them again causes Qt Creator to
accidently use the wrong target for the code model.
2018-03-19 20:38:10 +01:00
Martchus
19332033ec
Format all GUI-only files
2018-03-11 18:58:26 +01:00
Martchus
9e8ec0fcd5
Split Qt-specific config from other config
...
So adding Qt-specific config does not require a change
in c++utilities anymore.
2018-03-07 18:23:51 +01:00
Martchus
8a83870ac7
Allow variable number of digits in license versions
2018-02-28 18:01:17 +01:00
Martchus
d684e20bfc
Add launchable to appdata.xml
2018-02-22 00:01:01 +01:00
Martchus
0dcbb3de55
Improve coding style in CMake modules
2018-02-21 23:07:51 +01:00
Martchus
eea5aa57bc
Fix reading version of static Qt 5 modules
2018-02-21 22:41:13 +01:00
Martchus
7c8580d579
Add license to config
2018-02-21 22:14:22 +01:00
Martchus
e57e79f9c9
Stringify meta data in template
2018-02-21 22:07:05 +01:00
Martchus
486c99f7fd
Determine project license automatically
2018-02-21 21:58:27 +01:00
Martchus
989d1d20c8
Allow using templated appdata body
2018-02-21 21:55:52 +01:00
Martchus
6300e37924
Install shared/static config
2018-02-19 19:45:07 +01:00
Martchus
486a09c1c5
Add basic template for meta info
2018-02-18 20:18:00 +01:00