Sun, 13 Feb 2022 17:24:55 +0100
The table screen is more or less complete.
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) | |
3 | 19 | set(CMAKE_AUTOUIC ON) |
20 | set(CMAKE_AUTORCC ON) | |
1 | 21 | |
22 | SET( CMAKE_CXX_FLAGS_RELEASE "-Wall -ansi -pedantic -Wno-long-long -O2 -pipe" ) | |
23 | SET( CMAKE_CXX_FLAGS_DEBUG "-Wall -g3 -pipe" ) | |
24 | ||
25 | #====================================================Set build type===================================================== | |
26 | # We might always to tell the compiler to include debugging information (eg via the -g option on gcc). It makes the | |
27 | # binaries slightly bigger on Linux, but helps greatly in analysing core dumps etc. (In closed-source projects people | |
28 | # sometimes turn it off for release builds to make it harder to reverse engineer the software, but obviously that's not | |
29 | # an issue for us.) | |
30 | # | |
31 | # However, setting CMAKE_BUILD_TYPE to "Debug", also changes other things, such as the default location for config | |
32 | # files, which we don't want on a release build, so we would probably need to set compiler flags directly. | |
33 | # | |
34 | # .:TBD:. Investigate whether setting CMAKE_BUILD_TYPE to "RelWithDebInfo" does what we want. | |
35 | # | |
36 | #IF( ${DO_RELEASE_BUILD} ) | |
37 | # SET(CMAKE_BUILD_TYPE "Release") | |
38 | #ELSE() | |
39 | # SET(CMAKE_BUILD_TYPE "Debug") | |
40 | #ENDIF() | |
41 | ||
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
42 | # ===== Directories ===== |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
43 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
44 | 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
|
45 | 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
|
46 | ENDIF() |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
47 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
48 | 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
|
49 | 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
|
50 | 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
|
51 | 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
|
52 | ENDIF() |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
53 | |
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( 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
|
55 | 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
|
56 | 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
|
57 | |
1 | 58 | |
59 | SET(ROOTDIR "${CMAKE_CURRENT_SOURCE_DIR}") | |
60 | SET(SRCDIR "${ROOTDIR}/src") | |
3 | 61 | 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
|
62 | SET(DATADIR "${ROOTDIR}/data") |
1 | 63 | #SET(TRANSLATIONSDIR "${ROOTDIR}/translations") |
64 | ||
65 | INCLUDE_DIRECTORIES(${SRCDIR}) | |
66 | INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}/src") # In case of out-of-source build. | |
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 | # ===== Find Qt5 ===== |
1 | 69 | |
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
70 | # Minimum versio 5.13 for debug messages. |
3 | 71 | find_package(Qt5 5.13 REQUIRED COMPONENTS Core Widgets Network Sql) |
1 | 72 | |
3 | 73 | # PrintSupport Xml LinguistTools |
1 | 74 | |
75 | # Some extra files for the "make clean" target. | |
76 | SET_PROPERTY( | |
77 | DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} | |
78 | PROPERTY ADDITIONAL_MAKE_CLEAN_FILES | |
79 | cmake_install.cmake | |
80 | compile_commands.json | |
81 | CMakeCache.txt | |
82 | ) | |
83 | ||
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
84 | # ===== 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
|
85 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
86 | 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
|
87 | SET( CONFIGDOCDIR "${DOCPATH}/" ) |
1 | 88 | |
89 | # Tell cmake where the configure file is and where | |
90 | # to put the output. All variables in config.in written as "${VAR}$ | |
91 | # will be replaced by VAR as determined by cmake in config.h. | |
92 | # Outputs only in the build directory. | |
93 | CONFIGURE_FILE( src/config.in src/config.h ) | |
94 | ||
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
95 | # ===== 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
|
96 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
97 | 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
|
98 | ${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
|
99 | ${SRCDIR}/bmsapp.cpp |
4 | 100 | ${SRCDIR}/AboutDialog.cpp |
6
f8474f2c5db9
We can fetch a list of suppliers and show it in the wrong window. Still a lot to learn about Qt5
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
101 | ${SRCDIR}/InventorySuppliers.cpp |
3 | 102 | ${SRCDIR}/MainWindow.cpp |
103 | ${SRCDIR}/database/database.cpp | |
2
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
104 | ) |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
105 | |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
106 | 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
|
107 | ${SRCDIR}/bmsapp.h |
4 | 108 | ${SRCDIR}/AboutDialog.h |
6
f8474f2c5db9
We can fetch a list of suppliers and show it in the wrong window. Still a lot to learn about Qt5
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
109 | ${SRCDIR}/InventorySuppliers.h |
3 | 110 | ${SRCDIR}/MainWindow.h |
111 | ${SRCDIR}/database/database.h | |
112 | ) | |
113 | ||
114 | set( UIS | |
4 | 115 | ${UIDIR}/AboutDialog.ui |
6
f8474f2c5db9
We can fetch a list of suppliers and show it in the wrong window. Still a lot to learn about Qt5
Michiel Broek <mbroek@mbse.eu>
parents:
4
diff
changeset
|
116 | ${UIDIR}/InventorySuppliers.ui |
3 | 117 | ${UIDIR}/MainWindow.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
|
118 | ) |
1 | 119 | |
120 | 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
|
121 | ${SRCS} |
a1e435907f3a
Added commandline parameters. Added initial app functions. Added user configuration read/write/create.
Michiel Broek <mbroek@mbse.eu>
parents:
1
diff
changeset
|
122 | ${HDRS} |
3 | 123 | ${UIS} |
124 | resources/icons.qrc | |
1 | 125 | ) |
126 | ||
127 | # ===== Build the application ===== | |
128 | ||
129 | add_executable(${bmsapp_EXECUTABLE} ${SOURCE_FILES}) | |
3 | 130 | target_link_libraries(${bmsapp_EXECUTABLE} Qt5::Core Qt5::Widgets Qt5::Network Qt5::Sql) |
1 | 131 |