Improve build system doc
This commit is contained in:
parent
52a76a7bd2
commit
d5d8b308e9
|
@ -1,6 +1,7 @@
|
||||||
# Build system
|
# Build system
|
||||||
|
|
||||||
\brief Variables to control the build system and provided CMake modules
|
\brief Documents variables to control the build system and provided CMake
|
||||||
|
modules
|
||||||
|
|
||||||
## Variables passable as CMake arguments
|
## Variables passable as CMake arguments
|
||||||
|
|
||||||
|
@ -90,19 +91,24 @@ and qtutilities.
|
||||||
* `META_CXX_STANDARD=11/14/..`: specifies the C++ version, default is 14
|
* `META_CXX_STANDARD=11/14/..`: specifies the C++ version, default is 14
|
||||||
|
|
||||||
### Files
|
### Files
|
||||||
* `HEADER_FILES/SRC_FILES`: specifies C++ header/source files
|
* `HEADER_FILES`/`SRC_FILES`: specifies C++ header/source files
|
||||||
|
* `TEST_HEADER_FILES`/`TEST_SRC_FILES`: specifies C++ header/source files of the
|
||||||
|
tests
|
||||||
* `TS_FILES`: specifies Qt translations
|
* `TS_FILES`: specifies Qt translations
|
||||||
* `RES_FILES`: specifies Qt resource files
|
* `RES_FILES`: specifies Qt resource files
|
||||||
* `DBUS_FILES`: specifies files for Qt DBus
|
* `DBUS_FILES`: specifies files for Qt DBus
|
||||||
* `WIDGETS_HEADER_FILES/WIDGETS_SRC_FILES`: specifies C++ header/source files
|
* `WIDGETS_HEADER_FILES`/`WIDGETS_SRC_FILES`: specifies C++ header/source files
|
||||||
only required for Qt Widgets GUI
|
only required for Qt Widgets GUI
|
||||||
* `QML_HEADER_FILES/QML_SRC_FILES/QML_RES_FILES`: specifies C++ header/source
|
* `QML_HEADER_FILES`/`QML_SRC_FILES`/`QML_RES_FILES`: specifies C++
|
||||||
files and Qt resouce files only required for Qt Quick GUI
|
header/source files and Qt resouce files only required for Qt Quick GUI
|
||||||
* `DOC_FILES`: additional markdown files to be inlcuded in the documentation
|
* `DOC_FILES`: additional markdown files to be inlcuded in the documentation
|
||||||
created via Doxygen; the first file is used as the main page
|
created via Doxygen; the first file is used as the main page
|
||||||
* `DOC_ONLY_FILES`: specifies documentation-only files
|
* `DOC_ONLY_FILES`: specifies documentation-only files
|
||||||
* `REQUIRED_ICONS`: names of the icons required by the application and the
|
* `REQUIRED_ICONS`: names of the icons required by the application and the
|
||||||
used libraries (can be generated with `qtutilities/scripts/required_icons.sh`)
|
used libraries (can be generated with `qtutilities/scripts/required_icons.sh`)
|
||||||
|
* `CMAKE_MODULE_FILES`/`CMAKE_TEMPLATE_FILES`: specifies CMake modules/templates
|
||||||
|
provides by the project; those files are installed so they can be used by
|
||||||
|
other projects
|
||||||
|
|
||||||
### Additional build variables
|
### Additional build variables
|
||||||
* `META_PRIVATE/PUBLIC_COMPILE_DEFINITIONS`: specifies private/public compile
|
* `META_PRIVATE/PUBLIC_COMPILE_DEFINITIONS`: specifies private/public compile
|
||||||
|
@ -111,16 +117,18 @@ and qtutilities.
|
||||||
* `META_PUBLIC_QT_MODULES`: specifies Qt modules used in the public library
|
* `META_PUBLIC_QT_MODULES`: specifies Qt modules used in the public library
|
||||||
interface
|
interface
|
||||||
|
|
||||||
## Use of the provided modules
|
## Provided modules
|
||||||
Most important modules:
|
Most important modules:
|
||||||
* `BaseConfig`: does basic configuration, reads most of the `META`-variables
|
* `BaseConfig`: does basic configuration, reads most of the `META`-variables
|
||||||
* `LibraryTarget`: does further configuration for building dynamic and static
|
* `LibraryTarget`: does further configuration for building dynamic and static
|
||||||
libraries and plugins, `META_PROJECT_TYPE` must be set accordingly
|
libraries and plugins; `META_PROJECT_TYPE` must be set accordingly
|
||||||
* `AppTarget`: does further configuration for building an application,
|
* `AppTarget`: does further configuration for building an application;
|
||||||
`META_PROJECT_TYPE` must be set accordingly
|
`META_PROJECT_TYPE` must be set accordingly
|
||||||
* `ShellCompletion`: enables shell completion (only works when using the
|
* `ShellCompletion`: enables shell completion; only works when using the
|
||||||
argument parser provided by the library of course)
|
argument parser provided by the ApplicationUtilities::ArgumentParser class
|
||||||
* `TestTarget`: adds a test target
|
of course
|
||||||
|
* `TestTarget`: adds the test target `check` which is *not* required by target
|
||||||
|
`all`; uses files specified in `TEST_HEADER_FILES`/`TEST_SRC_FILES` variables
|
||||||
* `Doxygen`: adds a target to generate documentation using Doxygen
|
* `Doxygen`: adds a target to generate documentation using Doxygen
|
||||||
* `WindowsResources`: handles creation of windows resources to set application
|
* `WindowsResources`: handles creation of windows resources to set application
|
||||||
meta data and icon
|
meta data and icon
|
||||||
|
@ -130,4 +138,5 @@ Most important modules:
|
||||||
The inclusion order of the modules matters.
|
The inclusion order of the modules matters.
|
||||||
For an example, checkout the project file of c++utilities itself. The project
|
For an example, checkout the project file of c++utilities itself. The project
|
||||||
files of [Syncthing Tray](https://github.com/Martchus/syncthingtray) should
|
files of [Syncthing Tray](https://github.com/Martchus/syncthingtray) should
|
||||||
cover everything.
|
cover everything (library, plugin, application, tests, desktop file, Qt
|
||||||
|
resources and translations, ...).
|
||||||
|
|
Loading…
Reference in New Issue