File: CMakeLists.txt

package info (click to toggle)
qlandkartegt 1.8.1%2Bds-7
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 34,776 kB
  • ctags: 9,728
  • sloc: cpp: 137,036; ansic: 712; xml: 527; perl: 361; sh: 215; makefile: 58; python: 29
file content (153 lines) | stat: -rw-r--r-- 4,443 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
project(QLandkarteGT)

option(QK_QT5_PORT "Qt5 port" OFF)
if(QK_QT5_PORT)
  set(QT_QMAKE_EXECUTABLE "/usr/lib64/qt5/bin/qmake")
  add_definitions(-DQK_QT5_PORT)
  cmake_minimum_required(VERSION 2.8.9)
  find_package(Qt5Widgets)
  if(NOT(${Qt5Core_VERSION_MINOR} LESS 1))
    set(QK_QT5_SERIAL_PORT ON)
    set(QEXTSERIALPORT_INCLUDE_DIRS "")
  endif(NOT(${Qt5Core_VERSION_MINOR} LESS 1))
  if(NOT(${Qt5Core_VERSION_MINOR} LESS 2))
    set(QK_QT5_TZONE ON)
  endif(NOT(${Qt5Core_VERSION_MINOR} LESS 2))
else(QK_QT5_PORT)
  cmake_minimum_required(VERSION 2.6.0)
endif(QK_QT5_PORT)


set(APPLICATION_NAME ${PROJECT_NAME})

set(APPLICATION_VERSION_MAJOR "1")
set(APPLICATION_VERSION_MINOR "8")
set(APPLICATION_VERSION_PATCH "1")


add_definitions(-DVER_MAJOR=${APPLICATION_VERSION_MAJOR} -DVER_MINOR=${APPLICATION_VERSION_MINOR} -DVER_STEP=${APPLICATION_VERSION_PATCH})

set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin)
if (APPLE)
  set(PROGNAME "QLandkarte GT")
  set(CONFIGDIR "Library/Application Support/${PROGNAME}/")
  set(MAC_BUNDLE_PATH ${EXECUTABLE_OUTPUT_PATH}/${PROGNAME}.app)
  set(MAC_ICON_FILE qlandkartegt.icns)
  set(MACOSX_BUNDLE_SHORT_VERSION_STRING ${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR}.${APPLICATION_VERSION_PATCH})
  set(MACOSX_BUNDLE_ICON_FILE ${MAC_ICON_FILE})
  set(MACOSX_BUNDLE_BUNDLE_NAME ${PROGNAME})
  set(MACOSX_BUNDLE_BUNDLE_VERSION ${APPLICATION_VERSION_MAJOR}.${APPLICATION_VERSION_MINOR})
  set(MACOSX_BUNDLE_GUI_IDENTIFIER org.qlandkarte.QLandkarteGT)
else(APPLE)
  set(PROGNAME qlandkartegt)
  set(CONFIGDIR ".config/QLandkarteGT/")
endif(APPLE)
if(MSVC)
  # Add link-time code generation to improve performance
  set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /GL")
  set(CMAKE_EXE_LINKER_FLAGS_RELEASE    "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG")
  set(CMAKE_MODULE_LINKER_FLAGS_RELEASE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} /LTCG")
  set(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} /LTCG")
endif(MSVC)

# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked
set(CMAKE_MODULE_PATH
  ${CMAKE_SOURCE_DIR}/cmake/Modules
)

# add definitions
include(DefineCMakeDefaults)
include(DefineCompilerFlags)
include(DefineInstallationPaths)
include(CPackConfig.cmake)

# config.h generation
if (NOT WIN32)
SET (NATIVE_FILE_DIALOG ON CACHE BOOL "Use OS native file dialog")
else (NOT WIN32)
SET (NATIVE_FILE_DIALOG OFF CACHE BOOL "Use OS native file dialog")
endif (NOT WIN32)

if(NATIVE_FILE_DIALOG)
    set(FILEDIALOGFLAGS "0")
else(NATIVE_FILE_DIALOG)
    set(FILEDIALOGFLAGS "QFileDialog::DontUseNativeDialog")
endif(NATIVE_FILE_DIALOG)

include(ConfigureChecks.cmake)
configure_file(config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)

if (NOT QK_QT5_SERIAL_PORT)
  if (NOT WIN32)
    find_package(QextSerialPort)
  else (NOT WIN32)
    find_package(QextSerialPort QUIET)
  endif (NOT WIN32)

  if(NOT QEXTSERIALPORT_FOUND)
    add_subdirectory(3rdparty/SerialPort/qextserialport)
    set(QEXTSERIALPORT_LIBRARIES qextserialport)
    set(QEXTSERIALPORT_INCLUDE_DIRS ${CMAKE_SOURCE_DIR}/3rdparty/SerialPort/qextserialport)
  endif()
  add_subdirectory(3rdparty/SerialPort)
endif (NOT QK_QT5_SERIAL_PORT)

add_subdirectory(3rdparty/QZip)
add_subdirectory(3rdparty/QTextHtmlExporter)
add_subdirectory(3rdparty/getopt)
add_subdirectory(3rdparty/map2gcm)
add_subdirectory(3rdparty/map2rmap)
add_subdirectory(3rdparty/map2rmp)
add_subdirectory(3rdparty/map2jnx)
add_subdirectory(3rdparty/cache2gtiff)

if (NOT QK_QT5_TZONE)
    add_subdirectory(3rdparty/tzone)
endif (NOT QK_QT5_TZONE)

find_package(QtSoap)
if (NOT QTSOAP_FOUND)
    add_subdirectory(3rdparty/qtsoap)
endif()

add_subdirectory(src)

if (UNIX AND NOT WIN32 AND NOT APPLE)
  install(
    FILES
      qlandkartegt.desktop
    DESTINATION
      ${XDG_APPS_DIR}
  )

  install(
    DIRECTORY
      src/icons/hicolor
    DESTINATION
      ${DATA_INSTALL_PREFIX}/icons
  )

  install(
    FILES
      src/icons/qlandkartegt.png
    DESTINATION
      ${DATA_INSTALL_PREFIX}/pixmaps
  )

  install(
    FILES
      qlandkartegt.1
    DESTINATION
      ${MAN_INSTALL_DIR}/man1
  )
endif (UNIX AND NOT WIN32 AND NOT APPLE)

CONFIGURE_FILE(
  "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
  "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
  IMMEDIATE @ONLY)

ADD_CUSTOM_TARGET(uninstall
  "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")