annotate src/CMakeLists.txt @ 57:2cd76e6c0fcf

Add MacOS build support
author Andre Heinecke <andre.heinecke@intevation.de>
date Tue, 19 May 2015 15:36:00 +0200
parents 07744e276579
children af8f1792d48d
rev   line source
25
64a51a42c01f Assign copyright correctly
Andre Heinecke <andre.heinecke@intevation.de>
parents: 9
diff changeset
1 # Copyright (C) 2015 by ETH Zürich
27
5bd14af5bce5 Fix copyright header in CMake files (wrong comment character)
Andre Heinecke <andre.heinecke@intevation.de>
parents: 25
diff changeset
2 # Software engineering by Intevation GmbH
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
3 #
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
4 # This file is Free Software under the GNU GPL (v>=2)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
5 # and comes with ABSOLUTELY NO WARRANTY!
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
6 # See LICENSE.txt for details.
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
7
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
8 include_directories(${Qt5Widgets_INCLUDE_DIRS})
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
9
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
10 include_directories(${CMAKE_CURRENT_SOURCE_DIR})
1
7a2637c3eb83 Add csv parser from libqxt
Andre Heinecke <andre.heinecke@intevation.de>
parents: 0
diff changeset
11 include_directories(libqxt)
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
12
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
13 add_definitions(${Qt5Widgets_DEFINITIONS})
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
14
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
15 set(APPLICATION_SRC
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
16 main.cpp
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
17 mainwindow.cpp
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
18 strhelp.c
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
19 util_win.c
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
20 util_linux.c
2
97d2c8869c39 First prototype implementation of table view and player
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1
diff changeset
21 metadataview.cpp
97d2c8869c39 First prototype implementation of table view and player
Andre Heinecke <andre.heinecke@intevation.de>
parents: 1
diff changeset
22 pngplayer.cpp
3
248d5d1cdb38 Add functionalty to control buttons and make picture resizable
Andre Heinecke <andre.heinecke@intevation.de>
parents: 2
diff changeset
23 imagelabel.cpp
4
e4748da7140b Add filter functionalty to metadataview
Andre Heinecke <andre.heinecke@intevation.de>
parents: 3
diff changeset
24 filterwidget.cpp
9
e3c8f61e45a9 Implement folderselection dialogs
Andre Heinecke <andre.heinecke@intevation.de>
parents: 4
diff changeset
25 folderselectdialog.cpp
46
97c14310cc1a Add icon and more details about licenses
Andre Heinecke <andre.heinecke@intevation.de>
parents: 27
diff changeset
26 icons/icon.rc
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
27 )
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
28
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
29 find_package(Qt5LinguistTools)
57
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
30
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
31 # See: https://bugreports.qt-project.org/browse/QTBUG-35918
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
32 # extra static libs should be automatically managed but they
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
33 # are not so we make this here explicitly neccessary.
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
34 # The list is taken from the libs/*.prl file
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
35 if(APPLE)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
36 set(GUI_TYPE MACOSX_BUNDLE)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
37 include_directories ( /Developer/Headers/FlatCarbon )
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
38 find_library(COCOA_LIBRARAY Cocoa)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
39 find_library(CARBON_LIBRARY Carbon)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
40 find_library(APP_SERVICES_LIBRARY ApplicationServices)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
41 find_library(FOUNDATION_LIBRARAY Foundation)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
42 find_library(CORE_SERVICES_LIBRARAY CoreServices)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
43 find_library(CORE_FOUNDATION_LIBRARY CoreFoundation)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
44 find_library(OPENGL_LIBRARAY OpenGL)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
45 find_library(AGL_LIBRARY AGL)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
46 find_library(IOKIT_LIBRARY IOKit)
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
47
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
48 get_target_property(_loc Qt5::Widgets LOCATION)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
49 get_filename_component(_qtpath ${_loc} PATH)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
50
57
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
51 set(MAC_EXTRA_LIBS
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
52 -L${_qtpath}
57
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
53 -lQt5Gui -lQt5Core -lQt5PlatformSupport
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
54 -lQt5PrintSupport
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
55 -lz -lm ${APP_SERVICES_LIBRARY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
56 ${FOUNDATION_LIBRARAY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
57 ${CORE_FOUNDATION_LIBRARY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
58 ${COCOA_LIBRARAY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
59 ${CORE_SERVICES_LIBRARAY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
60 ${OPENGL_LIBRARAY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
61 ${AGL_LIBRARY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
62 ${CARBON_LIBRARY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
63 ${IOKIT_LIBRARY}
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
64 -lqtharfbuzzng -lz -lcups)
2cd76e6c0fcf Add MacOS build support
Andre Heinecke <andre.heinecke@intevation.de>
parents: 50
diff changeset
65 set(EXTRA_STATIC_LIBS Qt5::QCocoaIntegrationPlugin ${MAC_EXTRA_LIBS} )
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
66
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
67 elseif(WIN32)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
68 set (_add_executable_params WIN32)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
69
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
70 get_target_property(_loc Qt5::Widgets LOCATION)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
71 get_filename_component(_qtpath ${_loc} PATH)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
72 set(WINDOWS_EXTRA_LIBS
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
73 -L${_qtpath}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
74 -lwinspool -lshlwapi
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
75 -lQt5PlatformSupport -lQt5Gui -lcomdlg32 -loleaut32 -limm32 -lwinmm
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
76 -lglu32 -lopengl32 -lgdi32 -lQt5Core -lole32 -lmstask -luuid -lws2_32
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
77 -ladvapi32 -lshell32 -luser32 -lkernel32 -lpcre16 -lz)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
78
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
79 set(EXTRA_STATIC_LIBS Qt5::QWindowsIntegrationPlugin ${WINDOWS_EXTRA_LIBS})
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
80 endif()
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
81
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
82 set(QT_RESOURCES
50
07744e276579 Add icon also for non Windows systems
Andre Heinecke <andre.heinecke@intevation.de>
parents: 46
diff changeset
83 fonts.qrc
07744e276579 Add icon also for non Windows systems
Andre Heinecke <andre.heinecke@intevation.de>
parents: 46
diff changeset
84 icons/icons.qrc
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
85 )
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
86
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
87 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}")
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
88 qt5_add_resources(APPLICATION_SRC ${QT_RESOURCES})
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
89
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
90 if(Qt5LinguistTools_FOUND)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
91
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
92 set(FILES_TO_TRANSLATE
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
93 ${APPLICATION_SRC}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
94 )
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
95
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
96 # Include translation as a resource
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
97 # This works in the source directory to enable the rcc dependencies to be found
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
98 # and it also updates the currently available localization.
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
99 configure_file(l10n/l10n.qrc.in l10n.qrc)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
100 qt5_add_resources(APPLICATION_SRC ${CMAKE_CURRENT_BINARY_DIR}/l10n.qrc)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
101 qt5_create_translation(TRANSLATION_SRC ${FILES_TO_TRANSLATE}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
102 ${CMAKE_CURRENT_SOURCE_DIR}/l10n/main_de_DE.ts)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
103 endif()
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
104
1
7a2637c3eb83 Add csv parser from libqxt
Andre Heinecke <andre.heinecke@intevation.de>
parents: 0
diff changeset
105 add_subdirectory(libqxt)
7a2637c3eb83 Add csv parser from libqxt
Andre Heinecke <andre.heinecke@intevation.de>
parents: 0
diff changeset
106
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
107 add_executable(${PROJECT_NAME}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
108 ${_add_executable_params}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
109 # ${IMG_SRC}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
110 ${APPLICATION_SRC}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
111 ${TRANSLATION_SRC}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
112 # ${CMAKE_SOURCE_DIR}/img/icon.rc
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
113 )
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
114
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
115
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
116 target_link_libraries(${PROJECT_NAME}
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
117 Qt5::Widgets
1
7a2637c3eb83 Add csv parser from libqxt
Andre Heinecke <andre.heinecke@intevation.de>
parents: 0
diff changeset
118 ${EXTRA_STATIC_LIBS}
7a2637c3eb83 Add csv parser from libqxt
Andre Heinecke <andre.heinecke@intevation.de>
parents: 0
diff changeset
119 ${PROJECT_NAME}_libqxt
7a2637c3eb83 Add csv parser from libqxt
Andre Heinecke <andre.heinecke@intevation.de>
parents: 0
diff changeset
120 )
0
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
121
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
122 if (WIN32)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
123 set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS "-municode")
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
124 endif(WIN32)
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
125
147b08bc7d64 Initial commit of a basic Application framework.
Andre Heinecke <andre.heinecke@intevation.de>
parents:
diff changeset
126 install(TARGETS ${PROJECT_NAME} DESTINATION bin)
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)