annotate ui/CMakeLists.txt @ 648:e41a2537b84d

Implement root installation We now iterate over all users that do not obviously have their login shell disabled and look for NSS directories in their home directory, dropping our privileges to do so.
author Andre Heinecke <andre.heinecke@intevation.de>
date Wed, 25 Jun 2014 12:44:47 +0200
parents 5d6e86cf3b87
children 129e611eaf50
rev   line source
405
35d6b371ba63 Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents: 369
diff changeset
1 # Copyright (C) 2014 by Bundesamt für Sicherheit in der Informationstechnik
35d6b371ba63 Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents: 369
diff changeset
2 # Software engineering by Intevation GmbH
35d6b371ba63 Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents: 369
diff changeset
3 #
35d6b371ba63 Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents: 369
diff changeset
4 # This file is Free Software under the GNU GPL (v>=2)
35d6b371ba63 Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents: 369
diff changeset
5 # and comes with ABSOLUTELY NO WARRANTY!
35d6b371ba63 Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents: 369
diff changeset
6 # See LICENSE.txt for details.
35d6b371ba63 Add License header for CMake and shell scripts
Andre Heinecke <aheinecke@intevation.de>
parents: 369
diff changeset
7
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
8 include_directories(${Qt5Widgets_INCLUDE_DIRS})
57
d1aaee32e491 Include POLARSSL_INCLUDE_DIR in ui too
Andre Heinecke <aheinecke@intevation.de>
parents: 45
diff changeset
9 include_directories(${POLARSSL_INCLUDE_DIR})
621
5d6e86cf3b87 Fix dependency handling for messages files.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 620
diff changeset
10 include_directories(${CMAKE_SOURCE_DIR}/common)
5d6e86cf3b87 Fix dependency handling for messages files.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 620
diff changeset
11 include_directories(${CMAKE_BINARY_DIR}/common)
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
12 add_definitions(${Qt5Widgets_DEFINITIONS})
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
13
411
413b29f6758f Add translation infrastructure and a file for the Administrator application
Andre Heinecke <aheinecke@intevation.de>
parents: 409
diff changeset
14 find_package(Qt5LinguistTools)
413b29f6758f Add translation infrastructure and a file for the Administrator application
Andre Heinecke <aheinecke@intevation.de>
parents: 409
diff changeset
15
520
09077eca0b0d Rename administrator to trustbridge-admin
Andre Heinecke <aheinecke@intevation.de>
parents: 514
diff changeset
16 # Common code is used in either the client or the administrator
496
fa3a7ebf0049 Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents: 452
diff changeset
17 # application or in unit tests.
fa3a7ebf0049 Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents: 452
diff changeset
18 set(UICOMMON_SOURCES
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
19 ${CMAKE_CURRENT_SOURCE_DIR}/certificatelist.cpp
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
20 ${CMAKE_CURRENT_SOURCE_DIR}/certificate.cpp
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
21 ${CMAKE_CURRENT_SOURCE_DIR}/downloader.cpp
45
c6125d73faf4 Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents: 39
diff changeset
22 ${CMAKE_CURRENT_SOURCE_DIR}/sslconnection.cpp
452
f8b480b08532 Factor out polarssl error handling and start new sslhelp file
Andre Heinecke <aheinecke@intevation.de>
parents: 427
diff changeset
23 ${CMAKE_CURRENT_SOURCE_DIR}/sslhelp.cpp
45
c6125d73faf4 Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents: 39
diff changeset
24 )
c6125d73faf4 Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents: 39
diff changeset
25
497
5e77d1c4826c Add Icon for Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 496
diff changeset
26 # Cmake does not correctly identify gcc windres when cross compiling
5e77d1c4826c Add Icon for Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 496
diff changeset
27 # making this line neccessary to set the correct flags for it.
5e77d1c4826c Add Icon for Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 496
diff changeset
28 # See: http://public.kitware.com/Bug/view.php?id=11773
5e77d1c4826c Add Icon for Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 496
diff changeset
29 SET(CMAKE_RC_COMPILE_OBJECT
5e77d1c4826c Add Icon for Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 496
diff changeset
30 "<CMAKE_RC_COMPILER> <FLAGS> <DEFINES> -Ocoff <SOURCE> <OBJECT>")
5e77d1c4826c Add Icon for Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 496
diff changeset
31
407
af53c40e74b1 Rename m13ui to TrustBridge
Andre Heinecke <aheinecke@intevation.de>
parents: 405
diff changeset
32 set(TRUSTBRIDGE_SOURCES
496
fa3a7ebf0049 Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents: 452
diff changeset
33 ${CMAKE_CURRENT_SOURCE_DIR}/mainwindow.cpp
190
1a66a15d0df8 Added stub for help dialog.
Raimund Renkert <rrenkert@intevation.de>
parents: 124
diff changeset
34 ${CMAKE_CURRENT_SOURCE_DIR}/helpdialog.cpp
266
dd6a09d2699f Added delegate for certificate list items to render a custom ui.
Raimund Renkert <rrenkert@intevation.de>
parents: 257
diff changeset
35 ${CMAKE_CURRENT_SOURCE_DIR}/certificateitemdelegate.cpp
273
b6c2fa8457b6 Added new list item delegate for drawing a separator.
Raimund Renkert <rrenkert@intevation.de>
parents: 266
diff changeset
36 ${CMAKE_CURRENT_SOURCE_DIR}/separatoritemdelegate.cpp
257
06089ba2614a Use Installwrapper to call certificate installation process
Andre Heinecke <aheinecke@intevation.de>
parents: 254
diff changeset
37 ${CMAKE_CURRENT_SOURCE_DIR}/installwrapper.cpp
527
bedeb38c244a Move createcertlist and aboutdialog back into their respective source groups.
Andre Heinecke <aheinecke@intevation.de>
parents: 525
diff changeset
38 ${CMAKE_CURRENT_SOURCE_DIR}/aboutdialog.cpp
609
292c590ba9cb Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 603
diff changeset
39 ${CMAKE_CURRENT_SOURCE_DIR}/processhelp_win.cpp
292c590ba9cb Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 603
diff changeset
40 ${CMAKE_CURRENT_SOURCE_DIR}/processhelp_linux.cpp
292c590ba9cb Add warning dialog for running firefox and tunderbird processes
Andre Heinecke <andre.heinecke@intevation.de>
parents: 603
diff changeset
41 ${CMAKE_CURRENT_SOURCE_DIR}/processwaitdialog.cpp
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
42 ${CERTIFICATELIST_SOURCES}
45
c6125d73faf4 Move SSLConnection into it's own class
Andre Heinecke <aheinecke@intevation.de>
parents: 39
diff changeset
43 ${DOWNLOADER_SOURCES}
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
44 )
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
45
572
2459a7122532 Fix administrator typo
Andre Heinecke <aheinecke@intevation.de>
parents: 566
diff changeset
46 set(ADMINISTRATOR_SOURCES
333
de94c4ec22b1 Renamed management to administrator application.
Raimund Renkert <rrenkert@intevation.de>
parents: 327
diff changeset
47 ${CMAKE_CURRENT_SOURCE_DIR}/administratorwindow.cpp
335
811eec4e1b99 Use a table view with the new certificate table model in administrator app.
Raimund Renkert <rrenkert@intevation.de>
parents: 333
diff changeset
48 ${CMAKE_CURRENT_SOURCE_DIR}/certificatetablemodel.cpp
348
e6aa82466420 Use the table item delegate for certificates and make the model editable.
Raimund Renkert <rrenkert@intevation.de>
parents: 335
diff changeset
49 ${CMAKE_CURRENT_SOURCE_DIR}/certificatetabledelegate.cpp
362
857ae1ffdd6f Open the new dialog from the main menu.
Raimund Renkert <rrenkert@intevation.de>
parents: 348
diff changeset
50 ${CMAKE_CURRENT_SOURCE_DIR}/createinstallerdialog.cpp
527
bedeb38c244a Move createcertlist and aboutdialog back into their respective source groups.
Andre Heinecke <aheinecke@intevation.de>
parents: 525
diff changeset
51 ${CMAKE_CURRENT_SOURCE_DIR}/aboutdialog.cpp
bedeb38c244a Move createcertlist and aboutdialog back into their respective source groups.
Andre Heinecke <aheinecke@intevation.de>
parents: 525
diff changeset
52 ${CMAKE_CURRENT_SOURCE_DIR}/createcertlistdialog.cpp
566
8728ae882b6a Added dialog to show the differences before saving a certificate list.
Raimund Renkert <rrenkert@intevation.de>
parents: 561
diff changeset
53 ${CMAKE_CURRENT_SOURCE_DIR}/certificatediffdialog.cpp
327
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
54 ${CERTIFICATELIST_SOURCES}
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
55 )
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
56
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
57 # Seperated to make it easier to include the sources in tests
407
af53c40e74b1 Rename m13ui to TrustBridge
Andre Heinecke <aheinecke@intevation.de>
parents: 405
diff changeset
58 set(TRUSTBRIDGE_RESOURCES
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
59 ${CMAKE_CURRENT_SOURCE_DIR}/icons.qrc
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
60 ${CMAKE_CURRENT_SOURCE_DIR}/certs.qrc
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
61 )
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
62
572
2459a7122532 Fix administrator typo
Andre Heinecke <aheinecke@intevation.de>
parents: 566
diff changeset
63 set(ADMINISTRATOR_RESOURCES
327
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
64 ${CMAKE_CURRENT_SOURCE_DIR}/icons.qrc
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
65 )
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
66
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
67 if(UNIX)
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
68 # See: https://bugreports.qt-project.org/browse/QTBUG-35918
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
69 # XCB_EXTRA_LIBS should be gotten automatically.
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
70 # The following list is taken from the .pri file
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
71 get_target_property(_loc Qt5::Widgets LOCATION)
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
72 get_filename_component(_qtpath ${_loc} PATH)
107
5b9af103a355 Allow developers to overwrite the hardcoded xkb-common libname
Andre Heinecke <aheinecke@intevation.de>
parents: 81
diff changeset
73
5b9af103a355 Allow developers to overwrite the hardcoded xkb-common libname
Andre Heinecke <aheinecke@intevation.de>
parents: 81
diff changeset
74 if(NOT XKBCOMMON_LIB)
5b9af103a355 Allow developers to overwrite the hardcoded xkb-common libname
Andre Heinecke <aheinecke@intevation.de>
parents: 81
diff changeset
75 # Hack on a hack to overwrite the xkbcommon libname.
5b9af103a355 Allow developers to overwrite the hardcoded xkb-common libname
Andre Heinecke <aheinecke@intevation.de>
parents: 81
diff changeset
76 set(XKBCOMMON_LIB -lxkbcommon)
108
39c42b5a5693 Syntax fix
Andre Heinecke <aheinecke@intevation.de>
parents: 107
diff changeset
77 endif()
107
5b9af103a355 Allow developers to overwrite the hardcoded xkb-common libname
Andre Heinecke <aheinecke@intevation.de>
parents: 81
diff changeset
78
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
79 set(XCB_EXTRA_LIBS
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
80 -L${_qtpath}
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
81 -lX11 -lX11-xcb -lXi -lxcb-render-util -lXrender -lSM -lICE -lxcb-render -ldbus-1
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
82 -lxcb -lxcb-image -lxcb-icccm -lxcb-sync -lxcb-xfixes -lxcb-shm -lxcb-randr
107
5b9af103a355 Allow developers to overwrite the hardcoded xkb-common libname
Andre Heinecke <aheinecke@intevation.de>
parents: 81
diff changeset
83 ${XKBCOMMON_LIB} -lxcb-shape -lxcb-keysyms -lQt5PlatformSupport
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
84 -lfreetype -lQt5DBus -lQt5Gui -ljpeg -lpng -lQt5Core
601
9cdc14373a5d (issue #16) use qt with fontconfig
Andre Heinecke <andre.heinecke@intevation.de>
parents: 576
diff changeset
85 -lz -lm -ldl -lrt -lpthread -lfontconfig)
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
86
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
87 set(EXTRA_STATIC_LIBS -lz -lpthread -ldl -lpng -ljpeg
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
88 Qt5::QXcbIntegrationPlugin ${XCB_EXTRA_LIBS})
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
89
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
90 elseif(WIN32)
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
91 get_target_property(_loc Qt5::Widgets LOCATION)
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
92 get_filename_component(_qtpath ${_loc} PATH)
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
93 set(WINDOWS_EXTRA_LIBS
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
94 -L${_qtpath}
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
95 -lwinspool -lshlwapi -lfreetype -lbz2 -lpng16
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
96 -lQt5PlatformSupport -lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinmm
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
97 -lglu32 -lopengl32 -lgdi32 -ljpeg -lpng -lQt5Core -lole32 -luuid -lws2_32
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
98 -ladvapi32 -lshell32 -luser32 -lkernel32 -lz -lsicuin -lsicuuc -lsicudt -lpcre16)
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
99
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
100 set(EXTRA_STATIC_LIBS Qt5::QWindowsIntegrationPlugin ${WINDOWS_EXTRA_LIBS} -lwinhttp -lcrypt32)
602
854248d81ba4 Fully switch to unicode for windows.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
101
854248d81ba4 Fully switch to unicode for windows.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 601
diff changeset
102 add_definitions(-DUNICODE)
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
103 endif()
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
104
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
105 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
106
409
09bb19e5e369 Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents: 408
diff changeset
107 generate_cppcheck(SOURCES ${CINST_SOURCES} ${TRUSTBRIDGE_SOURCES} TARGET_NAME custom_cppcheck)
09bb19e5e369 Remove m13 mentions and change test certificate to intevation.de
Andre Heinecke <aheinecke@intevation.de>
parents: 408
diff changeset
108 add_dependencies(static_check custom_cppcheck)
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
109
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
110 # Adding resources here in an extra variable to enable reuse of
407
af53c40e74b1 Rename m13ui to TrustBridge
Andre Heinecke <aheinecke@intevation.de>
parents: 405
diff changeset
111 # TRUSTBRIDGE_SOURCES in the test subdirectory.
576
a677cffcaed4 Readd icon to the resource files (have to be linked with main)
Andre Heinecke <aheinecke@intevation.de>
parents: 572
diff changeset
112 set(TRUSTBRIDGE_MAIN_WITH_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
620
bc02ee484067 Add dummy logging with ressourced messages.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 617
diff changeset
113 ${CMAKE_CURRENT_SOURCE_DIR}/img/icon.rc)
561
4433f9d57f6d Add resources to main.
Andre Heinecke <aheinecke@intevation.de>
parents: 560
diff changeset
114 qt5_add_resources(TRUSTBRIDGE_MAIN_WITH_RESOURCES ${TRUSTBRIDGE_RESOURCES})
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
115
572
2459a7122532 Fix administrator typo
Andre Heinecke <aheinecke@intevation.de>
parents: 566
diff changeset
116 set(ADMINISTRATOR_MAIN_WITH_RESOURCES ${CMAKE_CURRENT_SOURCE_DIR}/administrator.cpp)
2459a7122532 Fix administrator typo
Andre Heinecke <aheinecke@intevation.de>
parents: 566
diff changeset
117 qt5_add_resources(ADMINISTRATOR_MAIN_WITH_RESOURCES ${ADMINISTRATOR_RESOURCES})
411
413b29f6758f Add translation infrastructure and a file for the Administrator application
Andre Heinecke <aheinecke@intevation.de>
parents: 409
diff changeset
118
514
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
119 if(WIN32)
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
120 # This option causes cmake to use the appropiate liker flags to hide
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
121 # the console Window on Windows
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
122 set (_add_executable_params WIN32)
617
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
123
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
124 # Add the event messages
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
125 if (MINGW)
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
126 STRING(REGEX REPLACE "windres" "windmc" MC_COMPILER ${CMAKE_RC_COMPILER})
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
127 else()
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
128 # untested
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
129 set(MC_COMPILER "mc.exe")
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
130 endif()
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
131
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
132 add_custom_command(
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
133 OUTPUT ${CMAKE_BINARY_DIR}/common/events.h
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
134 ${CMAKE_BINARY_DIR}/common/events.rc
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
135 ${CMAKE_BINARY_DIR}/common/MSG00407.bin
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
136 ${CMAKE_BINARY_DIR}/common/MSG00409.bin
621
5d6e86cf3b87 Fix dependency handling for messages files.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 620
diff changeset
137 COMMAND ${MC_COMPILER} ${CMAKE_SOURCE_DIR}/common/events.mc -r ${CMAKE_BINARY_DIR}/common -h ${CMAKE_BINARY_DIR}/common
617
63a128400bf3 Add message compiler logic and messages file
Andre Heinecke <andre.heinecke@intevation.de>
parents: 609
diff changeset
138 DEPENDS ${CMAKE_SOURCE_DIR}/common/events.mc)
621
5d6e86cf3b87 Fix dependency handling for messages files.
Andre Heinecke <andre.heinecke@intevation.de>
parents: 620
diff changeset
139 set_property(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/img/icon.rc APPEND PROPERTY OBJECT_DEPENDS ${CMAKE_BINARY_DIR}/common/events.rc)
514
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
140 endif()
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
141
411
413b29f6758f Add translation infrastructure and a file for the Administrator application
Andre Heinecke <aheinecke@intevation.de>
parents: 409
diff changeset
142 if(Qt5LinguistTools_FOUND)
420
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
143 # Include translation as a resource
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
144 # This works in the source directory to enable the rcc dependencies to be found
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
145 # and it also updates the currently available localization.
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
146 # This would probably be better placed in a macro
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
147 configure_file(l10n/administrator.qrc.in administrator.qrc)
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
148 qt5_add_resources(ADMINISTRATOR_L10N ${CMAKE_CURRENT_BINARY_DIR}/administrator.qrc)
572
2459a7122532 Fix administrator typo
Andre Heinecke <aheinecke@intevation.de>
parents: 566
diff changeset
149 qt5_create_translation(ADMINISTRATOR_TRANSLATION ${ADMINISTRATOR_SOURCES}
420
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
150 ${CMAKE_CURRENT_SOURCE_DIR}/l10n/administrator_de_DE.ts)
520
09077eca0b0d Rename administrator to trustbridge-admin
Andre Heinecke <aheinecke@intevation.de>
parents: 514
diff changeset
151 add_executable(trustbridge-admin
514
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
152 ${_add_executable_params}
572
2459a7122532 Fix administrator typo
Andre Heinecke <aheinecke@intevation.de>
parents: 566
diff changeset
153 ${ADMINISTRATOR_MAIN_WITH_RESOURCES}
420
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
154 ${ADMINISTRATOR_L10N}
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
155 ${ADMINISTRATOR_TRANSLATION}
16b6d5686835 Switch to resource based loading of translations
Andre Heinecke <aheinecke@intevation.de>
parents: 411
diff changeset
156 )
421
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
157
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
158 configure_file(l10n/trustbridge.qrc.in trustbridge.qrc)
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
159 qt5_add_resources(TRUSTBRIDGE_L10N ${CMAKE_CURRENT_BINARY_DIR}/trustbridge.qrc)
561
4433f9d57f6d Add resources to main.
Andre Heinecke <aheinecke@intevation.de>
parents: 560
diff changeset
160 qt5_create_translation(TRUSTBRIDGE_TRANSLATION ${TRUSTBRIDGE_SOURCES}
421
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
161 ${CMAKE_CURRENT_SOURCE_DIR}/l10n/trustbridge_de_DE.ts)
514
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
162 add_executable(trustbridge
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
163 ${_add_executable_params}
561
4433f9d57f6d Add resources to main.
Andre Heinecke <aheinecke@intevation.de>
parents: 560
diff changeset
164 ${TRUSTBRIDGE_MAIN_WITH_RESOURCES}
421
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
165 ${TRUSTBRIDGE_L10N}
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
166 ${TRUSTBRIDGE_TRANSLATION}
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
167 )
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
168
411
413b29f6758f Add translation infrastructure and a file for the Administrator application
Andre Heinecke <aheinecke@intevation.de>
parents: 409
diff changeset
169 else()
421
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
170 message (STATUS "WARNING: Could not find qt linguist tools. Translation will not be included.")
520
09077eca0b0d Rename administrator to trustbridge-admin
Andre Heinecke <aheinecke@intevation.de>
parents: 514
diff changeset
171 add_executable(trustbridge-admin
514
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
172 ${_add_executable_params}
572
2459a7122532 Fix administrator typo
Andre Heinecke <aheinecke@intevation.de>
parents: 566
diff changeset
173 ${ADMINISTRATOR_MAIN_WITH_RESOURCES})
514
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
174 add_executable(trustbridge
ce8325686b09 Use Win32 linker flags on Windows
Andre Heinecke <aheinecke@intevation.de>
parents: 497
diff changeset
175 ${_add_executable_params}
561
4433f9d57f6d Add resources to main.
Andre Heinecke <aheinecke@intevation.de>
parents: 560
diff changeset
176 ${TRUSTBRIDGE_MAIN_WITH_RESOURCES})
411
413b29f6758f Add translation infrastructure and a file for the Administrator application
Andre Heinecke <aheinecke@intevation.de>
parents: 409
diff changeset
177 endif()
327
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
178
496
fa3a7ebf0049 Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents: 452
diff changeset
179 add_library(ui_common STATIC ${UICOMMON_SOURCES})
572
2459a7122532 Fix administrator typo
Andre Heinecke <aheinecke@intevation.de>
parents: 566
diff changeset
180 add_library(tbadminlib STATIC ${ADMINISTRATOR_SOURCES})
561
4433f9d57f6d Add resources to main.
Andre Heinecke <aheinecke@intevation.de>
parents: 560
diff changeset
181 add_library(tblib STATIC ${TRUSTBRIDGE_SOURCES})
496
fa3a7ebf0049 Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents: 452
diff changeset
182
560
3af16cbc961d Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents: 558
diff changeset
183 target_link_libraries(trustbridge-admin
3af16cbc961d Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents: 558
diff changeset
184 tbadminlib
3af16cbc961d Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents: 558
diff changeset
185 Qt5::Widgets
496
fa3a7ebf0049 Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents: 452
diff changeset
186 ui_common
408
ac9e95ef6966 rename m13_common to trustbridge_common
Andre Heinecke <aheinecke@intevation.de>
parents: 407
diff changeset
187 trustbridge_common
327
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
188 ${POLARSSL_LIBRARIES}
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
189 ${EXTRA_STATIC_LIBS}
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
190 ${PROFILING_LIBS})
3261b2a9cab7 Added a first version of the management application gui.
Raimund Renkert <rrenkert@intevation.de>
parents: 273
diff changeset
191
560
3af16cbc961d Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents: 558
diff changeset
192 target_link_libraries(trustbridge
3af16cbc961d Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents: 558
diff changeset
193 tblib
3af16cbc961d Move UI code into librarys to speed up build of unit tests
Andre Heinecke <aheinecke@intevation.de>
parents: 558
diff changeset
194 Qt5::Widgets
496
fa3a7ebf0049 Move some common UI code into a library to avoid recompiling for each test
Andre Heinecke <aheinecke@intevation.de>
parents: 452
diff changeset
195 ui_common
421
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
196 trustbridge_common
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
197 ${POLARSSL_LIBRARIES}
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
198 ${EXTRA_STATIC_LIBS}
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
199 ${PROFILING_LIBS})
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
200
7edfc9b9b360 Add translation for trustbridge
Andre Heinecke <aheinecke@intevation.de>
parents: 420
diff changeset
201
33
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
202 # Tests
25c08d63d2b7 Add CMakeLists in UI
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
203 add_subdirectory(tests)
124
2d50ff378367 Add install targets
Andre Heinecke <aheinecke@intevation.de>
parents: 109
diff changeset
204
407
af53c40e74b1 Rename m13ui to TrustBridge
Andre Heinecke <aheinecke@intevation.de>
parents: 405
diff changeset
205 install(TARGETS trustbridge DESTINATION bin)
520
09077eca0b0d Rename administrator to trustbridge-admin
Andre Heinecke <aheinecke@intevation.de>
parents: 514
diff changeset
206 install(TARGETS trustbridge-admin DESTINATION bin)

http://wald.intevation.org/projects/trustbridge/