@@ -22,8 +22,11 @@ option(ENABLE_LOGGING "Enable logging with google-glog library" ON)
22
22
option (BOOST_USE_CXX11 "Boost has been built with C++11 support" OFF )
23
23
option (BOOST_USE_SIGNALS2 "Boost use signals2 instead of signals" ON )
24
24
option (ENABLE_ASAN "Enable Address Sanitizer (Unix Only)" OFF )
25
+ option (INSTALL_PRIVATE_HEADERS "Install private headers (usually needed for externally built Rime plugins)" OFF )
26
+ option (ENABLE_EXTERNAL_PLUGINS "Enable loading of externally built Rime plugins (from directory set by RIME_PLUGINS_DIR variable)" OFF )
25
27
26
- set (rime_data_dir "/share/rime-data" CACHE STRING "Target directory for Rime data" )
28
+ set (RIME_DATA_DIR "${CMAKE_INSTALL_FULL_DATADIR} /rime-data" CACHE STRING "Target directory for Rime data" )
29
+ set (RIME_PLUGINS_DIR "${CMAKE_INSTALL_FULL_LIBDIR} /rime-plugins" CACHE STRING "Target directory for externally built Rime plugins" )
27
30
28
31
if (WIN32 )
29
32
set (ext ".exe" )
@@ -61,7 +64,7 @@ endif()
61
64
set (BOOST_COMPONENTS filesystem regex system )
62
65
63
66
if (BOOST_USE_SIGNALS2)
64
- add_definitions ( "-DBOOST_SIGNALS2" )
67
+ set (RIME_BOOST_SIGNALS2 1 )
65
68
else ()
66
69
set (BOOST_COMPONENTS ${BOOST_COMPONENTS} signals)
67
70
endif ()
@@ -89,7 +92,7 @@ if(ENABLE_LOGGING)
89
92
add_definitions (-DGOOGLE_GLOG_DLL_DECL=)
90
93
endif ()
91
94
92
- add_definitions (-DRIME_ENABLE_LOGGING )
95
+ set (RIME_ENABLE_LOGGING 1 )
93
96
94
97
endif ()
95
98
@@ -134,6 +137,11 @@ else()
134
137
message (WARNING "X11/keysym.h not found." )
135
138
endif ()
136
139
140
+ configure_file (
141
+ "${PROJECT_SOURCE_DIR} /src/rime/build_config.h.in"
142
+ "${PROJECT_BINARY_DIR} /src/rime/build_config.h" )
143
+
144
+ include_directories (${PROJECT_BINARY_DIR} /src)
137
145
include_directories (${PROJECT_SOURCE_DIR} /src)
138
146
include_directories (${PROJECT_SOURCE_DIR} /thirdparty/include )
139
147
link_directories (${PROJECT_SOURCE_DIR} /thirdparty/lib)
@@ -177,7 +185,8 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD|DragonFly|GNU")
177
185
set (exec_prefix "${CMAKE_INSTALL_PREFIX} " )
178
186
set (bindir "${CMAKE_INSTALL_FULL_BINDIR} " )
179
187
set (libdir "${CMAKE_INSTALL_FULL_LIBDIR} " )
180
- set (pkgdatadir "${CMAKE_INSTALL_PREFIX}${rime_data_dir} " )
188
+ set (pkgdatadir "${RIME_DATA_DIR} " )
189
+ set (pluginsdir "${RIME_PLUGINS_DIR} " )
181
190
set (includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR} " )
182
191
configure_file (
183
192
${PROJECT_SOURCE_DIR} /rime.pc.in
@@ -193,11 +202,23 @@ install(FILES cmake/RimeConfig.cmake
193
202
file (GLOB rime_public_header_files ${PROJECT_SOURCE_DIR} /src/*.h)
194
203
install (FILES ${rime_public_header_files}
195
204
DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} )
205
+ if (INSTALL_PRIVATE_HEADERS)
206
+ file (GLOB rime_private_header_files
207
+ ${PROJECT_SOURCE_DIR} /src/rime/*.h
208
+ ${PROJECT_BINARY_DIR} /src/rime/*.h)
209
+ install (FILES ${rime_private_header_files}
210
+ DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} /rime)
211
+ foreach (rime_private_header_files_dir algo config dict gear lever)
212
+ file (GLOB rime_private_header_files
213
+ ${PROJECT_SOURCE_DIR} /src/rime/${rime_private_header_files_dir} /*.h)
214
+ install (FILES ${rime_private_header_files}
215
+ DESTINATION ${CMAKE_INSTALL_FULL_INCLUDEDIR} /rime/${rime_private_header_files_dir} )
216
+ endforeach ()
217
+ endif ()
196
218
197
219
if (BUILD_DATA)
198
220
file (GLOB rime_preset_data_files ${PROJECT_SOURCE_DIR} /data/preset/*.yaml)
199
- install (FILES ${rime_preset_data_files}
200
- DESTINATION ${CMAKE_INSTALL_PREFIX}${rime_data_dir} )
221
+ install (FILES ${rime_preset_data_files} DESTINATION ${RIME_DATA_DIR} )
201
222
endif ()
202
223
203
224
if (BUILD_SHARED_LIBS )
@@ -227,6 +248,11 @@ if(BUILD_SHARED_LIBS AND BUILD_SEPARATE_LIBS AND rime_plugins_objs)
227
248
set (rime_plugins_library rime-plugins)
228
249
endif ()
229
250
251
+ add_definitions (-DRIME_PLUGINS_DIR="${RIME_PLUGINS_DIR} " )
252
+ if (ENABLE_EXTERNAL_PLUGINS)
253
+ add_definitions (-DRIME_ENABLE_EXTERNAL_PLUGINS)
254
+ endif ()
255
+
230
256
add_subdirectory (src)
231
257
232
258
if (BUILD_SHARED_LIBS )
0 commit comments