~ubuntu-branches/ubuntu/vivid/bibletime/vivid

« back to all changes in this revision

Viewing changes to .pc/s390x-ftbfs.patch/CMakeLists.txt

  • Committer: Package Import Robot
  • Author(s): Dimitri John Ledkov
  • Date: 2014-11-03 11:57:04 UTC
  • mfrom: (15.1.3 sid)
  • Revision ID: package-import@ubuntu.com-20141103115704-raahdu91peoij0a3
Tags: 2.10.1-2
Add patch to build without pie, fixes FTBFS on s390x (Closes: #767209)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
PROJECT(bibletime CXX C)
 
2
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.9)
 
3
 
 
4
IF("${CMAKE_CURRENT_BINARY_DIR}" STREQUAL "${CMAKE_CURRENT_SOURCE_DIR}")
 
5
  MESSAGE(FATAL_ERROR "You probably didn't mean to run CMake from this directory. Now you have all messed up! You'd better delete CMakeFiles/ and CMakeCache.txt or things will break!")
 
6
ENDIF()
 
7
 
 
8
SET(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
 
9
 
 
10
 
 
11
################################################################################
 
12
# BibleTime version
 
13
################################################################################
 
14
# NOTICE! The version number must only be changed during the release procedures
 
15
#  A N D   N O T  during development or bug-fixing. This guarantees that all
 
16
# versions of BibleTime between OLDVERSION and NEXTVERSION have version strings
 
17
# in the form of OLDVERSION+githash where githash is the git commit hash ID.
 
18
#
 
19
# Note: for pre-#.#.0 versions, use the following suffixes:
 
20
#   _dev      if pre-beta1
 
21
#   _beta1    if post-beta1
 
22
#   _beta2    if post-beta2
 
23
#   _rc1    if post-rc1
 
24
#   _rc2    if post-rc2
 
25
# For post-full-release versions, no suffix is used.
 
26
 
 
27
SET(BT_VERSION_MAJOR "2")
 
28
SET(BT_VERSION_MINOR "10")
 
29
SET(BT_VERSION_PATCH "1")
 
30
SET(BT_VERSION_BUILD "") # Temporarily uncomment this line for release procedures
 
31
 
 
32
 
 
33
# Determine build, if needed:
 
34
IF(NOT (DEFINED BT_VERSION_BUILD))
 
35
  FIND_PACKAGE(Git)
 
36
  IF(NOT GIT_FOUND)
 
37
    FIND_PROGRAM(GIT_EXECUTABLE NAMES git)
 
38
    IF(GIT_EXECUTABLE)
 
39
      SET(GIT_FOUND TRUE)
 
40
    ENDIF()
 
41
  ENDIF()
 
42
  IF(GIT_FOUND)
 
43
    FUNCTION(BtGitRevision out)
 
44
      EXECUTE_PROCESS(COMMAND ${GIT_EXECUTABLE} rev-parse HEAD
 
45
                      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
 
46
                      ERROR_QUIET
 
47
                      RESULT_VARIABLE resVar
 
48
                      OUTPUT_VARIABLE outVar
 
49
                      OUTPUT_STRIP_TRAILING_WHITESPACE)
 
50
      IF(${resVar} EQUAL 0)
 
51
        STRING(TOLOWER "${outVar}" hashCandidate)
 
52
        STRING(REGEX MATCH "^[0123456789abcdef]+$" hasHash "${hashCandidate}")
 
53
        IF(hasHash)
 
54
          STRING(LENGTH "${hashCandidate}" hashLength)
 
55
          IF(hashLength EQUAL 40)
 
56
            SET(${out} "${hashCandidate}" PARENT_SCOPE)
 
57
          ENDIF()
 
58
        ENDIF()
 
59
      ENDIF()
 
60
    ENDFUNCTION()
 
61
    BtGitRevision(BibleTimeGitRevision)
 
62
    IF(DEFINED BibleTimeGitRevision)
 
63
      SET(BT_VERSION_BUILD "+${BibleTimeGitRevision}")
 
64
    ENDIF()
 
65
  ENDIF()
 
66
ENDIF()
 
67
 
 
68
SET(BT_VERSION_FULL "${BT_VERSION_MAJOR}.${BT_VERSION_MINOR}.${BT_VERSION_PATCH}${BT_VERSION_BUILD}")
 
69
MESSAGE(STATUS "Setting up build environment for BibleTime version ${BT_VERSION_FULL}")
 
70
 
 
71
ADD_DEFINITIONS(-DBT_VERSION="${BT_VERSION_FULL}")
 
72
 
 
73
# Define debug flags
 
74
IF(NOT (CMAKE_BUILD_TYPE STREQUAL "Release"))
 
75
  SET(CMAKE_BUILD_TYPE "Debug")
 
76
  ADD_DEFINITIONS("-DBT_DEBUG")
 
77
ELSE()
 
78
  ADD_DEFINITIONS("-DBT_NO_DEBUG" "-DNDEBUG" "-DQT_NO_DEBUG")
 
79
ENDIF()
 
80
 
 
81
#Non-English locales to be processed and installed for handbook and howto
 
82
#WARNING: If you modify HANDBOOK_LOCALE_LANGS or HOWTO_LOCALE_LANGS,
 
83
#also modify the po4a conf files in cmake/docs/ to make sure all languages are processed.
 
84
LIST(APPEND HANDBOOK_LOCALE_LANGS ar cs de es fi fr hu it nl pt_BR)
 
85
LIST(APPEND HOWTO_LOCALE_LANGS ar bg cs da de es fi fr it hu ko nl pt_BR ru)
 
86
 
 
87
# Automatically link Qt executables to qtmain target on Windows
 
88
IF(MSVC)
 
89
  cmake_policy(SET CMP0020 NEW)
 
90
ENDIF()
 
91
 
 
92
# SET INSTALLATION PATHS
 
93
IF(APPLE)
 
94
  SET(BT_DESTINATION "../MacOS")
 
95
  SET(BT_SHARE_PATH "../share")
 
96
ELSE()
 
97
  SET(BT_DESTINATION "bin")
 
98
  SET(BT_SHARE_PATH "share")
 
99
ENDIF()
 
100
 
 
101
IF(NOT BT_FORCE_USE_QT4)
 
102
  # Automatically use Qt5 if available
 
103
  FIND_PACKAGE(Qt5Core QUIET)
 
104
ENDIF()
 
105
 
 
106
# Find required packages
 
107
IF(Qt5Core_FOUND)
 
108
  FIND_PACKAGE(Qt5LinguistTools REQUIRED)
 
109
  FIND_PACKAGE(Qt5Widgets REQUIRED)
 
110
  FIND_PACKAGE(Qt5DBus QUIET)
 
111
  IF(Qt5DBus_FOUND AND NOT APPLE)
 
112
    set(BT_Use_DBus TRUE)
 
113
  ELSE()
 
114
    set(BT_Use_DBus FALSE)
 
115
  ENDIF()
 
116
  MESSAGE( "-- Found Qt " ${Qt5Core_VERSION})
 
117
ELSE()
 
118
  SET(QT_MIN_VERSION 4.5.0)
 
119
  SET(QT_USE_QTXML 1)
 
120
  SET(QT_USE_QTWEBKIT 1)
 
121
  SET(QT_USE_QTMAIN 1)
 
122
  FIND_PACKAGE(Qt4 REQUIRED)
 
123
  IF(QT_QTDBUS_FOUND AND NOT APPLE)
 
124
    set(BT_Use_DBus TRUE)
 
125
  ELSE()
 
126
    set(BT_Use_DBus FALSE)
 
127
  ENDIF()
 
128
  MESSAGE( "-- Found Qt " ${QTVERSION})
 
129
ENDIF()
 
130
 
 
131
FIND_PACKAGE(CLucene REQUIRED)
 
132
FIND_PACKAGE(Sword 1.7.0 REQUIRED)
 
133
 
 
134
# Define $bibletime_SOURCES
 
135
INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/BTSourceFileList.cmake")
 
136
 
 
137
#
 
138
# The actual build options
 
139
#
 
140
INCLUDE_DIRECTORIES(
 
141
    ${CMAKE_CURRENT_BINARY_DIR}        #for .h files generated from .ui
 
142
    ${CMAKE_CURRENT_SOURCE_DIR}/src    # so that include paths like "frontend/..." work
 
143
    ${CLucene_INCLUDE_DIR}            #CLucene headers
 
144
    ${CLucene_LIBRARY_DIR}            #CLucene/clucene-config.h
 
145
    ${Sword_INCLUDE_DIRS}
 
146
)
 
147
 
 
148
#This must come before the target definition!
 
149
LINK_DIRECTORIES(${CLucene_LIBRARY_DIR})
 
150
 
 
151
IF(MSVC)
 
152
  ADD_EXECUTABLE("bibletime" WIN32 ${common_bibletime_SOURCES})
 
153
ELSE()
 
154
  ADD_EXECUTABLE("bibletime" ${common_bibletime_SOURCES})
 
155
ENDIF()
 
156
 
 
157
IF(${BIBLETIME_FRONTEND} STREQUAL "MOBILE")
 
158
  SET_TARGET_PROPERTIES("bibletime" PROPERTIES OUTPUT_NAME "btm")
 
159
ELSEIF(APPLE)
 
160
  SET_TARGET_PROPERTIES("bibletime" PROPERTIES OUTPUT_NAME "BibleTime")
 
161
ELSE()
 
162
  SET_TARGET_PROPERTIES("bibletime" PROPERTIES OUTPUT_NAME "bibletime")
 
163
ENDIF()
 
164
 
 
165
# Define rules to generate ${bibletime_UI_translations} files
 
166
INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/BTUITranslation.cmake")
 
167
 
 
168
IF(Qt5Core_FOUND)
 
169
  TARGET_LINK_LIBRARIES("bibletime"
 
170
      ${CLucene_LIBRARY}
 
171
      ${Sword_LDFLAGS}
 
172
  )
 
173
 
 
174
  IF(${BIBLETIME_FRONTEND} STREQUAL "MOBILE")
 
175
    qt5_use_modules("bibletime" Widgets Qml Quick Network)
 
176
  ELSE()
 
177
    IF(BT_Use_DBus)
 
178
      qt5_use_modules("bibletime" DBus Widgets WebKit WebKitWidgets Xml Network)
 
179
    ELSE()
 
180
      qt5_use_modules("bibletime" Widgets WebKit WebKitWidgets Xml Network)
 
181
    ENDIF()
 
182
  ENDIF()
 
183
ELSE()
 
184
  IF(BT_Use_DBus)
 
185
    SET(QT_USE_QTDBUS 1) # Required by INCLUDE(${QT_USE_FILE}) below
 
186
    MESSAGE(STATUS "Using DBUS")
 
187
  ELSE()
 
188
    ADD_DEFINITIONS("-DNO_DBUS")
 
189
    MESSAGE(STATUS "No DBUS found")
 
190
  ENDIF()
 
191
  # If cmake says that qdbusxml2cpp is missing, uncomment the following line
 
192
  #SET(QT_DBUSXML2CPP_EXECUTABLE "/usr/bin/qdbusxml2cpp") #TEMP HACK?
 
193
  INCLUDE(${QT_USE_FILE})
 
194
  TARGET_LINK_LIBRARIES("bibletime"
 
195
      ${QT_LIBRARIES}
 
196
      ${CLucene_LIBRARY}
 
197
      ${Sword_LDFLAGS}
 
198
  )
 
199
ENDIF()
 
200
 
 
201
SET(BibleTime_CFLAGS "-Wall")
 
202
SET(BibleTime_LDFLAGS "")
 
203
IF(MSVC)
 
204
  SET(CMAKE_CXX_FLAGS_RELEASE "-DNO_DBUS -DSWUSINGDLL /MD  /Zc:wchar_t- /W1 /D_UNICODE /DUNICODE /Zc:wchar_t")
 
205
  SET(CMAKE_CXX_FLAGS_DEBUG   "-DNO_DBUS -DSWUSINGDLL /MDd /Zc:wchar_t- /W1 /D_UNICODE /DUNICODE /Zc:wchar_t /Od")
 
206
  SET(BibleTime_LDFLAGS "${BibleTime_LDFLAGS} /SUBSYSTEM:WINDOWS")
 
207
ELSE()
 
208
  SET(BibleTime_CFLAGS "${BibleTime_CFLAGS} -Wextra -fpie -fexceptions")
 
209
  SET(CMAKE_CXX_FLAGS_RELEASE "-O2")
 
210
  SET(CMAKE_CXX_FLAGS_DEBUG "-ggdb")
 
211
  IF(APPLE)
 
212
    # enable support MacOS 10.5+
 
213
    SET(T "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/")
 
214
    SET(BibleTime_CFLAGS "${BibleTime_CFLAGS} -mmacosx-version-min=10.7 -stdlib=libc++ -isysroot ${T}")
 
215
    SET(BibleTime_LDFLAGS "${BibleTime_LDFLAGS} -mmacosx-version-min=10.7 -stdlib=libc++ -isysroot ${T} -F /Library/Frameworks/")
 
216
    UNSET(T)
 
217
  ENDIF()
 
218
ENDIF()
 
219
 
 
220
SET_TARGET_PROPERTIES("bibletime" PROPERTIES
 
221
                      COMPILE_FLAGS "${Sword_CFLAGS_OTHER} ${BibleTime_CFLAGS}"
 
222
                      LINK_FLAGS "${BibleTime_LDFLAGS}")
 
223
 
 
224
# Install files
 
225
#
 
226
INSTALL(TARGETS "bibletime" DESTINATION "${BT_DESTINATION}")
 
227
FILE(GLOB INSTALL_ICONS_LIST "${CMAKE_CURRENT_SOURCE_DIR}/pics/icons/*.svg")
 
228
INSTALL(FILES ${INSTALL_ICONS_LIST}
 
229
        DESTINATION "${BT_SHARE_PATH}/bibletime/icons/")
 
230
FILE(GLOB INSTALL_ICONS_LIST_PNG "${CMAKE_CURRENT_SOURCE_DIR}/pics/icons/bibletime.png")
 
231
INSTALL(FILES ${INSTALL_ICONS_LIST_PNG}
 
232
        DESTINATION "${BT_SHARE_PATH}/bibletime/icons/")
 
233
INSTALL(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src/display-templates/"
 
234
        DESTINATION "${BT_SHARE_PATH}/bibletime/display-templates/")
 
235
INSTALL(FILES "src/frontend/display/bthtml.js"
 
236
        DESTINATION "${BT_SHARE_PATH}/bibletime/javascript/")
 
237
INSTALL(FILES "docs/license.html"
 
238
        DESTINATION "${BT_SHARE_PATH}/bibletime/license/")
 
239
INSTALL(FILES ${bibletime_QML_FILES} DESTINATION "${BT_SHARE_PATH}/qml/")
 
240
INSTALL(FILES "pics/startuplogo.png" "pics/startuplogo_christmas.png"
 
241
              "pics/startuplogo_easter.jpg"
 
242
        DESTINATION "${BT_SHARE_PATH}/bibletime/pics/")
 
243
 
 
244
#
 
245
# Platform specific installation
 
246
#
 
247
 
 
248
# Linux: application icon and desktop file:
 
249
INSTALL(FILES "${CMAKE_CURRENT_SOURCE_DIR}/pics/icons/bibletime.svg"
 
250
        DESTINATION "${BT_SHARE_PATH}/icons/")
 
251
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/platforms/linux/bibletime.desktop.cmake"
 
252
               "${CMAKE_CURRENT_BINARY_DIR}/bibletime.desktop" @ONLY)
 
253
INSTALL(FILES "${CMAKE_CURRENT_BINARY_DIR}/bibletime.desktop"
 
254
        DESTINATION "${BT_SHARE_PATH}/applications/")
 
255
 
 
256
 
 
257
IF(MSVC)
 
258
  # sword locale information
 
259
  FILE(GLOB INSTALL_SWORD_LOCALE_LIST "${Sword_INCLUDE_DIRS}/../locales.d/*")
 
260
  INSTALL(FILES ${INSTALL_SWORD_LOCALE_LIST}
 
261
          DESTINATION "${BT_SHARE_PATH}/sword/locales.d/")
 
262
 
 
263
  # install pdb file for debugging purposes
 
264
  IF(CMAKE_BUILD_TYPE STREQUAL "Debug")
 
265
    SET(bibletime_PDB "${bibletime_BINARY_DIR}/Debug/bibletime.pdb")
 
266
    INSTALL(FILES "${bibletime_PDB}" DESTINATION "${BT_DESTINATION}")
 
267
  ENDIF()
 
268
ENDIF()
 
269
 
 
270
IF(APPLE)
 
271
  # sword locale information, needed for DMG image
 
272
  FILE(GLOB INSTALL_SWORD_LOCALE_LIST "${Sword_INCLUDE_DIRS}/../../share/sword/locales.d/*")
 
273
  INSTALL(FILES ${INSTALL_SWORD_LOCALE_LIST}
 
274
          DESTINATION "${BT_SHARE_PATH}/sword/locales.d/")
 
275
ENDIF()
 
276
 
 
277
INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/BTDocumentation.cmake")
 
278
 
 
279
IF(WIN32 AND NOT UNIX)
 
280
  INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/BTBinaryPackageWindows.cmake")
 
281
ENDIF()
 
282
IF(APPLE)
 
283
  INCLUDE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/BTBinaryPackageMacOS.cmake")
 
284
ENDIF()
 
285
 
 
286
######################################################
 
287
# "make uninstall" target; see http://www.cmake.org/Wiki/CMake_FAQ#Can_I_do_.22make_uninstall.22_with_CMake.3F
 
288
#
 
289
CONFIGURE_FILE("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in"
 
290
               "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
 
291
               IMMEDIATE @ONLY)
 
292
ADD_CUSTOM_TARGET(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
 
293
######################################################
 
294