Mon, 07 Feb 2022 21:28:26 +0100
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
1 | 1 | # CMakeLists.txt is part of bmsapp |
2 | # | |
3 | ||
4 | PROJECT(bmsapp) | |
5 | CMAKE_MINIMUM_REQUIRED( VERSION 3.6 ) | |
6 | SET(bmsapp_EXECUTABLE "bmsapp") | |
7 | MESSAGE( STATUS "Building bmsapp" ) | |
8 | ||
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
9 | # ===== Set application version ===== |
1 | 10 | |
11 | SET( bmsapp_VERSION_MAJOR 0 ) | |
12 | SET( bmsapp_VERSION_MINOR 1 ) | |
13 | SET( bmsapp_VERSION_PATCH 0 ) | |
14 | ||
15 | # Compile flags | |
16 | ||
17 | # Automatically run moc on source files when necessary | |
18 | set(CMAKE_AUTOMOC ON) | |
19 | ||
20 | SET( CMAKE_CXX_FLAGS_RELEASE "-Wall -ansi -pedantic -Wno-long-long -O2 -pipe" ) | |
21 | SET( CMAKE_CXX_FLAGS_DEBUG "-Wall -g3 -pipe" ) | |
22 | ||
23 | #====================================================Set build type===================================================== | |
24 | # We might always to tell the compiler to include debugging information (eg via the -g option on gcc). It makes the | |
25 | # binaries slightly bigger on Linux, but helps greatly in analysing core dumps etc. (In closed-source projects people | |
26 | # sometimes turn it off for release builds to make it harder to reverse engineer the software, but obviously that's not | |
27 | # an issue for us.) | |
28 | # | |
29 | # However, setting CMAKE_BUILD_TYPE to "Debug", also changes other things, such as the default location for config | |
30 | # files, which we don't want on a release build, so we would probably need to set compiler flags directly. | |
31 | # | |
32 | # .:TBD:. Investigate whether setting CMAKE_BUILD_TYPE to "RelWithDebInfo" does what we want. | |
33 | # | |
34 | #IF( ${DO_RELEASE_BUILD} ) | |
35 | # SET(CMAKE_BUILD_TYPE "Release") | |
36 | #ELSE() | |
37 | # SET(CMAKE_BUILD_TYPE "Debug") | |
38 | #ENDIF() | |
39 | ||
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
40 | # ===== Directories ===== |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
41 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
42 | IF( NOT EXEC_PREFIX ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
43 | SET( EXEC_PREFIX ${CMAKE_INSTALL_PREFIX} ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
44 | ENDIF() |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
45 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
46 | SET( DATAROOTDIR "${EXEC_PREFIX}/share" ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
47 | SET( BINDIR "${EXEC_PREFIX}/bin" ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
48 | IF( NOT DOCDIR ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
49 | SET( DOCDIR "${DATAROOTDIR}/doc/${CMAKE_PROJECT_NAME}" ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
50 | ENDIF() |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
51 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
52 | SET( DATAPATH "${DATAROOTDIR}/${CMAKE_PROJECT_NAME}" ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
53 | SET( TARGETPATH ${BINDIR} ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
54 | SET( DOCPATH ${DOCDIR} ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
55 | |
1 | 56 | |
57 | SET(ROOTDIR "${CMAKE_CURRENT_SOURCE_DIR}") | |
58 | SET(SRCDIR "${ROOTDIR}/src") | |
59 | #SET(UIDIR "${ROOTDIR}/ui") | |
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
60 | SET(DATADIR "${ROOTDIR}/data") |
1 | 61 | #SET(TRANSLATIONSDIR "${ROOTDIR}/translations") |
62 | ||
63 | INCLUDE_DIRECTORIES(${SRCDIR}) | |
64 | INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}/src") # In case of out-of-source build. | |
65 | ||
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
66 | # ===== Find Qt5 ===== |
1 | 67 | |
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
68 | # Minimum versio 5.13 for debug messages. |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
69 | find_package(Qt5 5.13 REQUIRED COMPONENTS Core Widgets) |
1 | 70 | |
71 | # Network PrintSupport Sql Xml LinguistTools | |
72 | ||
73 | # Some extra files for the "make clean" target. | |
74 | SET_PROPERTY( | |
75 | DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | |
76 | PROPERTY ADDITIONAL_MAKE_CLEAN_FILES | |
77 | cmake_install.cmake | |
78 | compile_commands.json | |
79 | CMakeCache.txt | |
80 | ) | |
81 | ||
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
82 | # ===== Setup the config.h ===== |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
83 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
84 | SET( CONFIGDATADIR "${DATAPATH}/" ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
85 | SET( CONFIGDOCDIR "${DOCPATH}/" ) |
1 | 86 | |
87 | # Tell cmake where the configure file is and where | |
88 | # to put the output. All variables in config.in written as "${VAR}$ | |
89 | # will be replaced by VAR as determined by cmake in config.h. | |
90 | # Outputs only in the build directory. | |
91 | CONFIGURE_FILE( src/config.in src/config.h ) | |
92 | ||
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
93 | # ===== All sources ===== |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
94 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
95 | set( SRCS |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
96 | ${SRCDIR}/main.cpp |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
97 | ${SRCDIR}/bmsapp.cpp |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
98 | ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
99 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
100 | set( HDRS |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
101 | ${SRCDIR}/bmsapp.h |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
102 | ) |
1 | 103 | |
104 | set( SOURCE_FILES | |
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
105 | ${SRCS} |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
106 | ${HDRS} |
1 | 107 | ) |
108 | ||
109 | # ===== Build the application ===== | |
110 | ||
111 | add_executable(${bmsapp_EXECUTABLE} ${SOURCE_FILES}) | |
112 | target_link_libraries(${bmsapp_EXECUTABLE} Qt5::Core Qt5::Widgets) | |
113 |