/
CMakeLists.txt
243 lines (204 loc) · 9.89 KB
/
CMakeLists.txt
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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
if (NOT DEFINED DEVICE_NAME)
if ( ${GUI} STREQUAL CRGUI_XCB )
SET(DEVICE_NAME all)
else ()
SET(DEVICE_NAME v3)
endif ( ${GUI} STREQUAL CRGUI_XCB )
message("Device type is not specified! It's necessary to know device type in order to choose proper keyboard layout, etc...")
message("Using ${DEVICE_NAME} as default")
message("Add cmake parameter -D DEVICE_NAME={v3|v5|n516|v3a} to use another device settings")
else ()
message("Device type is set to ${DEVICE_NAME}")
endif (NOT DEFINED DEVICE_NAME)
#FIND_PACKAGE(Gettext REQUIRED)
#use macros from kwwidgets instead of usual
SET(KWWidgets_CMAKE_DIR ${CMAKE_SOURCE_DIR}/tools/)
INCLUDE(${KWWidgets_CMAKE_DIR}FindGettext.cmake)
INCLUDE(${KWWidgets_CMAKE_DIR}KWWidgetsInternationalizationMacros.cmake)
SET (LANGUAGES ru uk de fr bg es ca cs pl lt zh_CN zh_TW)
message( "Languages: ${LANGUAGES}" )
SET (CR3_SOURCES
src/bgfit.cpp
src/citedlg.cpp
src/fsmenu.cpp
src/mainwnd.cpp
src/recentdlg.cpp
src/selnavig.cpp
src/tocdlg.cpp
src/bmkdlg.cpp
src/cr3_def_cover.cpp
src/cr3main.cpp
src/dictdlg.cpp
src/linksdlg.cpp
src/numedit.cpp
src/scrkbd.cpp
src/settings.cpp
src/viewdlg.cpp
)
SET (CR3_STYLES
data/epub.css data/fb2.css data/htm.css data/rtf.css data/txt.css data/chm.css
)
if (${GUI} STREQUAL CRGUI_PB)
SET(CR3_SOURCES ${CR3_SOURCES} src/cr3pocketbook.cpp)
endif (${GUI} STREQUAL CRGUI_PB)
#
KWWidgets_CREATE_GETTEXT_TARGETS(
DOMAIN_NAME "cr3"
LOCALE_LIST "${LANGUAGES}"
SOURCES "${CR3_SOURCES}"
PO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/po
CREATE_POT_TARGET 1
CREATE_PO_TARGET 1
MO_BUILD_DIR ${CMAKE_BINARY_DIR}${CMAKE_DATA_DIR}/i18n
ADD_MO_TARGET_TO_ALL 1
)
# CREATE_PO_TARGET
# CREATE_MO_TARGET
SET (CR3_BIN_DESTINATION bin)
if ( ${GUI} STREQUAL CRGUI_XCB )
ADD_DEFINITIONS( -DUSE_FONTCONFIG=1 )
SET(CR3_SOURCES ${CR3_SOURCES} src/cr3xcb.cpp)
SET (EXTRA_LIBS xcb xcb-aux xcb-atom xcb-image xcb-keysyms xcb-randr fontconfig )
INSTALL( FILES ${CR3_STYLES} DESTINATION share/cr3)
INSTALL( FILES data/desktop/cr3.desktop DESTINATION share/applications)
INSTALL( DIRECTORY data/hyph/ DESTINATION share/cr3/hyph
FILES_MATCHING PATTERN "*.pdb" )
INSTALL( DIRECTORY data/hyph/ DESTINATION share/cr3/hyph
FILES_MATCHING PATTERN "*.pattern" )
IF (${DEVICE_NAME} STREQUAL all)
INSTALL( DIRECTORY data/devices/v3/skins DESTINATION share/cr3/v3 )
INSTALL( DIRECTORY data/devices/n516/skins DESTINATION share/cr3/n516 )
INSTALL( DIRECTORY data/devices/v3/keymaps/ DESTINATION share/cr3/v3 )
INSTALL( DIRECTORY data/devices/n516/keymaps/ DESTINATION share/cr3/n516 )
ELSE()
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/skins DESTINATION share/cr3 )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/keymaps DESTINATION share/cr3 )
ENDIF(${DEVICE_NAME} STREQUAL all)
INSTALL( DIRECTORY data/manual/ DESTINATION share/cr3/manual )
INSTALL( DIRECTORY ${CMAKE_BINARY_DIR}${CMAKE_DATA_DIR}/i18n/ DESTINATION share/locale
FILES_MATCHING PATTERN "*.mo" )
elseif ( ${GUI} STREQUAL CRGUI_QT )
FIND_PACKAGE( Qt4 REQUIRED )
INCLUDE(${QT_USE_FILE})
SET(CR3_SOURCES ${CR3_SOURCES} src/cr3qt.cpp)
SET (EXTRA_LIBS ${QT_LIBRARIES} ${STD_LIBS} )
SET(CR3_STYLES ${CR3_STYLES} data/fb3.css)
INSTALL( FILES ${CR3_STYLES} DESTINATION root/crengine)
INSTALL( DIRECTORY data/hyph/ DESTINATION root/crengine/hyph
FILES_MATCHING PATTERN "*.pdb" )
INSTALL( DIRECTORY data/hyph/ DESTINATION root/crengine/hyph
FILES_MATCHING PATTERN "*.pattern" )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/skins/default/ DESTINATION root/crengine/skin )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/keymaps/ DESTINATION root/crengine )
INSTALL( DIRECTORY data/manual/ DESTINATION root/crengine/manual )
FOREACH(LANGUAGE ${LANGUAGES})
SET(MO_FILE "${CMAKE_BINARY_DIR}/i18n/${LANGUAGE}/LC_MESSAGES/cr3.mo")
INSTALL(FILES ${MO_FILE} DESTINATION root/crengine/i18n RENAME ${LANGUAGE}.mo)
ENDFOREACH(LANGUAGE ${LANGUAGES})
elseif ( ${GUI} STREQUAL CRGUI_NANOX )
SET(CR3_SOURCES ${CR3_SOURCES} src/cr3nanox.cpp)
SET (EXTRA_LIBS nano-X pthread ${DBUS_LIBRARIES} )
if (ENABLE_DBUS_VIEWER_EVENTS)
SET (EXTRA_LIBS ${EXTRA_LIBS} ${DBUS_LIBRARIES} )
endif(ENABLE_DBUS_VIEWER_EVENTS)
INSTALL( FILES ${CR3_STYLES} DESTINATION root/crengine)
INSTALL( DIRECTORY data/hyph/ DESTINATION root/crengine/hyph
FILES_MATCHING PATTERN "*.pdb" )
INSTALL( DIRECTORY data/hyph/ DESTINATION root/crengine/hyph
FILES_MATCHING PATTERN "*.pattern" )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/skins/default/ DESTINATION root/crengine/skin )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/keymaps/ DESTINATION root/crengine )
INSTALL( DIRECTORY data/manual/ DESTINATION root/crengine/manual )
FOREACH(LANGUAGE ${LANGUAGES})
SET(MO_FILE "${CMAKE_BINARY_DIR}/i18n/${LANGUAGE}/LC_MESSAGES/cr3.mo")
INSTALL(FILES ${MO_FILE} DESTINATION root/crengine/i18n RENAME ${LANGUAGE}.mo)
ENDFOREACH(LANGUAGE ${LANGUAGES})
# INSTALL( DIRECTORY ${CMAKE_BINARY_DIR}/cr3gui/po/ DESTINATION root/crengine/i18n
# FILES_MATCHING PATTERN "*.mo" )
SET (CR3_BIN_DESTINATION root)
elseif ( ${GUI} STREQUAL CRGUI_JINKE_PLUGIN )
SET(CR3_SOURCES ${CR3_SOURCES} src/cr3jinke.cpp)
INSTALL( FILES ${CR3_STYLES} DESTINATION root/crengine)
INSTALL( DIRECTORY data/hyph/ DESTINATION root/crengine/hyph
FILES_MATCHING PATTERN "*.pdb" )
INSTALL( DIRECTORY data/hyph/ DESTINATION root/crengine/hyph
FILES_MATCHING PATTERN "*.pattern" )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/skins/default/ DESTINATION root/crengine/skin )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/keymaps/ DESTINATION root/crengine )
INSTALL( DIRECTORY data/manual/ DESTINATION root/crengine/manual )
FOREACH(LANGUAGE ${LANGUAGES})
SET(MO_FILE "${CMAKE_BINARY_DIR}/i18n/${LANGUAGE}/LC_MESSAGES/cr3.mo")
INSTALL(FILES ${MO_FILE} DESTINATION root/crengine/i18n RENAME ${LANGUAGE}.mo)
# INSTALL(FILES ${MO_FILE} DESTINATION root/crengine/i18n RENAME cr3_${LANGUAGE}.mo)
ENDFOREACH(LANGUAGE ${LANGUAGES})
# INSTALL( DIRECTORY ${CMAKE_BINARY_DIR}/cr3gui/po/ DESTINATION root/crengine/i18n
# FILES_MATCHING PATTERN "*.mo" )
SET (CR3_BIN_DESTINATION usr/lib)
elseif ( ${GUI} STREQUAL CRGUI_WIN32 )
SET(CR3_SOURCES ${CR3_SOURCES} src/cr3win.cpp)
INSTALL( FILES ${CR3_STYLES} DESTINATION crengine)
INSTALL( DIRECTORY data/hyph/ DESTINATION crengine/hyph
FILES_MATCHING PATTERN "*.pdb" )
INSTALL( DIRECTORY data/hyph/ DESTINATION crengine/hyph
FILES_MATCHING PATTERN "*.pattern" )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/skins/default/ DESTINATION crengine/skin )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/keymaps/ DESTINATION crengine )
INSTALL( DIRECTORY data/manual/ DESTINATION crengine/manual )
INSTALL( DIRECTORY ${CMAKE_BINARY_DIR}/cr3gui/po/ DESTINATION cr3/i18n
FILES_MATCHING PATTERN "*.mo" )
SET (CR3_BIN_DESTINATION .)
elseif (${GUI} STREQUAL CRGUI_PB)
# SET(CR3_SOURCES ${CR3_SOURCES} src/cr3pocketbook.cpp)
FIND_LIBRARY(INKVIEW_LIB inkview)
IF (INKVIEW_LIB)
IF (DEFINED POCKETBOOK_EMU_GTK)
FIND_PACKAGE (GTK2 REQUIRED)
FIND_PACKAGE (CURL REQUIRED)
ENDIF (DEFINED POCKETBOOK_EMU_GTK)
SET (EXTRA_LIBS ${INKVIEW_LIB} ${GTK2_LIBRARIES} ${CURL_LIBRARIES})
ELSE (INKVIEW_LIB)
message("libinkview library not found!")
ENDIF (INKVIEW_LIB)
INSTALL( FILES ${CR3_STYLES} DESTINATION system/share/cr3)
INSTALL( DIRECTORY data/hyph/ DESTINATION system/share/cr3/hyph
FILES_MATCHING PATTERN "*.pdb" )
INSTALL( DIRECTORY data/hyph/ DESTINATION system/share/cr3/hyph
FILES_MATCHING PATTERN "*.pattern" )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/skins/default/ DESTINATION system/share/cr3/skin )
INSTALL( DIRECTORY data/devices/${DEVICE_NAME}/keymaps/ DESTINATION system/share/cr3/keymaps )
INSTALL( DIRECTORY data/manual/ DESTINATION system/share/cr3/manual )
FOREACH(LANGUAGE ${LANGUAGES})
SET(MO_FILE "${CMAKE_BINARY_DIR}/i18n/${LANGUAGE}/LC_MESSAGES/cr3.mo")
INSTALL(FILES ${MO_FILE} DESTINATION system/share/cr3/i18n RENAME ${LANGUAGE}.mo)
ENDFOREACH(LANGUAGE ${LANGUAGES})
endif ( ${GUI} STREQUAL CRGUI_XCB )
if ( ${GUI} STREQUAL CRGUI_JINKE_PLUGIN )
ADD_LIBRARY(fb2 SHARED ${CR3_SOURCES})
TARGET_LINK_LIBRARIES(fb2 crengine tinydict ${EXTRA_LIBS} ${STD_LIBS})
if (DEFINED CMAKE_STRIP)
MESSAGE("Strip command: ${CMAKE_STRIP} ${CMAKE_BINARY_DIR}/cr3gui/libfb2.so" )
EXECUTE_PROCESS( COMMAND ${CMAKE_STRIP} ${CMAKE_BINARY_DIR}/cr3gui/libfb2.so )
endif (DEFINED CMAKE_STRIP)
INSTALL( TARGETS fb2 LIBRARY DESTINATION ${CR3_BIN_DESTINATION} )
elseif (${GUI} STREQUAL CRGUI_PB)
ADD_EXECUTABLE(cr3-pb.app ${CR3_SOURCES})
TARGET_LINK_LIBRARIES(cr3-pb.app crengine tinydict ${EXTRA_LIBS} ${STD_LIBS})
if (DEFINED CMAKE_STRIP)
MESSAGE("Strip command: ${CMAKE_STRIP} ${CMAKE_BINARY_DIR}/cr3gui/cr3-pb.app" )
EXECUTE_PROCESS( COMMAND ${CMAKE_STRIP} ${CMAKE_BINARY_DIR}/cr3gui/cr3-pb.app )
endif (DEFINED CMAKE_STRIP)
INSTALL( TARGETS cr3-pb.app RUNTIME DESTINATION ${CR3_BIN_DESTINATION} )
else()
ADD_EXECUTABLE(cr3 ${CR3_SOURCES})
TARGET_LINK_LIBRARIES(cr3 crengine tinydict ${EXTRA_LIBS} ${STD_LIBS})
if (DEFINED CMAKE_STRIP)
MESSAGE("Strip command: ${CMAKE_STRIP} ${CMAKE_BINARY_DIR}/cr3gui/cr3" )
EXECUTE_PROCESS( COMMAND ${CMAKE_STRIP} ${CMAKE_BINARY_DIR}/cr3gui/cr3 )
endif (DEFINED CMAKE_STRIP)
INSTALL( TARGETS cr3 RUNTIME DESTINATION ${CR3_BIN_DESTINATION} )
endif ( ${GUI} STREQUAL CRGUI_JINKE_PLUGIN )
if (${GUI} STREQUAL CRGUI_XCB)
SET(LOGOCNV_SOURCES src/logoconv.cpp)
ADD_EXECUTABLE(logocnv ${LOGOCNV_SOURCES})
TARGET_LINK_LIBRARIES(logocnv crengine ${STD_LIBS} ${EXTRA_LIBS})
endif (${GUI} STREQUAL CRGUI_XCB)