Commit Graph

282 Commits

Author SHA1 Message Date
Martchus 7cea979261 Remove obsolete comment about ios_base::failure and new ABI 2021-05-13 16:23:10 +02:00
Martchus 6d5045c2b1 Port away from deprecated WriteCompilerDetectionHeader module 2021-05-13 15:49:53 +02:00
Martchus e2a7d807a3 Disable warnings about unused const variables
as these are usually just used in another compile unit
2021-03-22 13:45:16 +01:00
Martchus 9c532cbdd9 Ignore unknown warning options 2021-03-20 21:57:09 +01:00
Martchus d38a9bb776 Disable/weaken a few warnings again which don't seem to be very usefull after all 2021-03-20 20:58:28 +01:00
Martchus f5aeeb77aa Add CMake variable to enable defaults useful for development 2021-03-18 00:39:04 +01:00
Martchus 5b8520d50c Add CMake variables to conveniently enable warnings and treat them as errors 2021-03-18 00:25:00 +01:00
Martchus cd43879390 Remove uses of USES_TERMINAL without COMMAND again as it is not possible 2021-03-17 21:27:21 +01:00
Martchus 4fc415ed5a Allow following test output live when building with ninja 2021-03-05 23:03:59 +01:00
Martchus d1e3a28277 Apply cmake-format 2021-01-08 00:51:49 +01:00
Martchus cabcc11d3e Incorporate extra target suffix used when targeting MinGW in pkg-config file 2021-01-08 00:43:51 +01:00
Martchus 7fb2a9ed73 Avoid duplicating the `lib` prefix in the pkg-config file
This is in accordance with omitting the `lib` prefix of the target if the
project name already starts with `lib`.
2021-01-08 00:39:08 +01:00
Martchus 0be639ea97 Use `-lfoo` form in pkg-config file if dependency doesn't look like a path
So e.g. `-lpthread` is added to the pkg-config file instead of just
`pthread`.
2021-01-08 00:37:14 +01:00
Martchus b1b0c10366 Prevent reading library properties from interface library targets 2021-01-07 20:06:12 +01:00
Martchus 9fb3bbe179 Export a target for using only headers of a library
Some backend libraries of Syncthing Tray and Reflective RapidJSON only use
certain headers of qtutilities/c++utilities. The current solution did not
really work because it did not distinguish between the build and install
interface and also did not take compile definitions and options into
account.
2021-01-01 18:42:22 +01:00
Martchus 27c8a17f99 Allow enforcing absence of a target suffix for Syncthing Tray's test helper 2021-01-01 18:38:09 +01:00
Martchus 47f7252bc0 Remove leftover message from debugging 2021-01-01 18:35:49 +01:00
Martchus 7ad2a9818d Support target suffix when generating the dependency list for the config header 2021-01-01 18:34:43 +01:00
Martchus a5d2aa15e0 Support Qt 6 modules when generating the dependency list for the config header 2021-01-01 18:32:27 +01:00
Martchus 8a9d72bee9 Disable linking against default Qt plugins
This change would obviously better go into qtutilities. However, it is
easier done here and doesn't pull in any dependency on Qt anyways.
2020-12-20 17:53:37 +01:00
Martchus 80d2823915 Add PROJECT_CONFIG_SUFFIX to the config header 2020-12-14 20:57:05 +01:00
Martchus 6905b1a216 Apply cmake-format 2020-11-25 18:02:24 +01:00
Martchus a40ee3aa7e Use query_qmake_variable_path if available 2020-11-11 18:51:50 +01:00
Martchus e5989dd4d1 Allow setting a display name for the configuration
This also allow to clear the display name because it isn't always nice to
incorporate it within the application name (e.g. static Windows builds).
2020-11-02 23:26:37 +01:00
Martchus 3a8ae77477 Improve handling configuration suffix
* Use configuration suffix when installing icons
* Include configuration name suffix in application name

This way differently configured versions of the same applications should be
co-installable within the same prefix. That is useful to install the Qt 6
version of an application alongside the Qt 5 version.
2020-10-23 16:58:41 +02:00
Martchus e2f170ddd5 Fix install-mingw-w64-strip (and underlying targets)
* Fix escaping issues with Ninja
* Use `$<TARGET_LINKER_FILE_NAME:tgt>` to avoid hard-coding
  library extensions
2020-10-10 16:45:58 +02:00
Martchus 98e6f360af Apply cmake-format 2020-10-10 01:07:06 +02:00
Martchus 0b267c7959 Avoid duplicating the "lib" prefix
if the target name already starts with "lib"
2020-09-23 22:48:28 +02:00
Martchus 26b6ef0486 Avoid 'not a git repository (or any of the parent directories)' during configuration
Try to append the Git revision only if the source directory is actually a
Git checkout.
2020-09-12 22:24:45 +02:00
Martchus 60d9a80b6a Improve icon generation
* Remove PNG_ICON_CROP
    * Not sure how that was supposed to be useful because even for projects
      without PNG_ICON_NO_CROP it does not make much sense
* Test multiple sizes to determine the PNG path automatically
* Locate PNG in basic config so the path is also automatically determined
  for the macOS bundle as well
* Log status message when ffmpeg/png2icns are not available
* Format CMake code more nicely
2020-08-11 23:12:17 +02:00
Martchus 7dab98b257 Use a higher resolution for Windows icons for better High-DPI support 2020-08-05 18:21:52 +02:00
Martchus 84011c2768 Apply CMake format 2020-07-07 12:14:05 +02:00
Martchus d0076e24a7 Get rid of WINDOWS_EXT completely as it is now no longer used 2020-07-04 15:21:55 +02:00
Martchus 534aaf0b4d Fix 'OriginalFilename' in Windows RC file
Rely on generator expressions to get the correct filename. This has never
worked because WINDOWS_EXT was usually only set after WindowsResources has
been included.
2020-07-04 15:21:20 +02:00
Martchus 47850ace49 Remove leftovers from _run target
See c66420b1dc
2020-07-04 15:14:14 +02:00
Martchus b03332f37a Add "SOVERSION" as suffix to shared libraries for mingw-w64 targets
* Also enable the "lib" prefix which CMake would add by default again; it
  has only been removed to preserve compatibility with qmake when switching
  from qmake to CMake
* None of these changes are enabled by default to preserve compatibility
2020-07-04 14:43:26 +02:00
Martchus 63b5fb9c14 Add PROJECT_VARNAME and PROJECT_VARNAME_UPPER to config header 2020-06-23 02:06:29 +02:00
Martchus 942044ea30 Make cache variable doc string compatible with Qt Creator
The double quotes need to be removed from the doc string. Otherwise, Qt
Creator creates a line like
```
set("EXCLUDE_TESTS_FROM_ALL" "OFF" CACHE "BOOL" "specifies whether to exclude tests from the "all" target (enabled by default)" FORCE)
```
in its `qtcsettings.cmake` which doesn't work because the escaping is
missing.
2020-06-22 22:29:21 +02:00
Martchus f24f09f79a Fix setting test properties for coverage when special target name configured 2020-06-22 22:26:17 +02:00
Martchus 74b010cbb9 Make manually added test targets as part of the check target 2020-06-16 01:09:39 +02:00
Martchus a9453483a7 Allow adding test targets manually 2020-06-15 22:28:19 +02:00
Martchus fe5dc5e6a7 Apply cmake-format 0.6.10 2020-04-27 22:59:06 +02:00
Martchus 1c6315a078 Add opt-outs for additional linker flags to achieve a fully statically linked build
See https://github.com/Martchus/syncthingtray/issues/64
2020-04-27 22:55:06 +02:00
Martchus 6273b42643 Fix remaining hard-coded install dirs
See https://github.com/Martchus/cpp-utilities/issues/17#issuecomment-596420331
2020-03-09 10:45:20 +01:00
Martchus e241d718ce Apply cmake-format 2020-03-05 19:05:33 +01:00
Martchus e94d42f19c Support passing absolute path to CMAKE_INSTALL_BINDIR/LIBDIR
Same as b2a2773 but for CMAKE_INSTALL_BINDIR and CMAKE_INSTALL_LIBDIR.
2020-03-05 14:52:52 +01:00
Martchus 0733f0705d Check one more parent level for LICENSE file
Hack to fix license auto-detection for Plasmoid
2020-02-14 22:30:10 +01:00
Martchus 2b3adc3a6f Don't prefix CMAKE_INSTALL_DATAROOTDIR; it might be absolute
Same as https://github.com/Martchus/cpp-utilities/issues/18 but for
the share directory.
2020-02-14 22:29:07 +01:00
Martchus e9803a41dc Fix inconsistent variables for compile options/definitions
So these options/definitions should no longer be missing in some
places, e.g. the pkg-config file.
2020-02-14 13:22:47 +01:00
Martchus 4dd2179f19 Fix remaining install dirs to use GNUInstallDirs consistently 2020-02-13 11:32:28 +01:00