-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
135 lines (108 loc) · 4.22 KB
/
CMakeLists.txt
File metadata and controls
135 lines (108 loc) · 4.22 KB
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
cmake_minimum_required(VERSION 4.3)
set(CMAKE_OSX_DEPLOYMENT_TARGET 13.3)
if(NOT CMAKE_OSX_ARCHITECTURES)
execute_process(COMMAND uname -m
OUTPUT_VARIABLE CMAKE_OSX_ARCHITECTURES
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
set(CMAKE_Swift_COMPILER_TARGET "${CMAKE_OSX_ARCHITECTURES}-apple-macos${CMAKE_OSX_DEPLOYMENT_TARGET}")
project(fcitx5-macos VERSION 0.3.3 LANGUAGES CXX Swift)
list(PREPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake")
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# On x86 /Library/Frameworks/Mono.framework will mess up libintl.
set(CMAKE_FIND_FRAMEWORK LAST)
# Starting from cmake 4.0, CMAKE_OSX_SYSROOT defaults to empty.
execute_process(COMMAND xcrun --sdk macosx --show-sdk-path
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT
OUTPUT_STRIP_TRAILING_WHITESPACE
)
add_compile_options(-target "${CMAKE_Swift_COMPILER_TARGET}")
add_link_options(-target "${CMAKE_Swift_COMPILER_TARGET}")
set(CMAKE_Swift_LANGUAGE_VERSION 6)
# Disallow InitializeSwift to execute link_directories which adds Xcode paths to rpath.
set(SWIFT_LIBRARY_SEARCH_PATHS "")
include(InitializeSwift)
include(AddSwift)
set(CMAKE_CXX_STANDARD 20)
set(FIND_ROOT_PATH "${PROJECT_BINARY_DIR}/usr")
set(PREBUILDER_INCLUDE_DIR "${FIND_ROOT_PATH}/include")
set(PREBUILDER_LIB_DIR "${FIND_ROOT_PATH}/lib")
set(PREBUILDER_SHARE_DIR "${FIND_ROOT_PATH}/share")
list(APPEND CMAKE_FIND_ROOT_PATH "${FIND_ROOT_PATH}")
set(ENV{PKG_CONFIG_SYSROOT_DIR} "${PROJECT_BINARY_DIR}")
set(ENV{PKG_CONFIG_PATH} "${PREBUILDER_LIB_DIR}/pkgconfig;${PREBUILDER_SHARE_DIR}/pkgconfig")
add_library(Libuv_static STATIC IMPORTED)
set_target_properties(Libuv_static PROPERTIES
IMPORTED_LOCATION "${PREBUILDER_LIB_DIR}/libuv.a"
INTERFACE_INCLUDE_DIRECTORIES "${PREBUILDER_INCLUDE_DIR}"
)
set(LIBUV_TARGET Libuv_static)
option(ENABLE_TESTING_ADDONS "" OFF)
option(ENABLE_TEST "" OFF)
option(ENABLE_COVERAGE "" OFF)
option(ENABLE_ENCHANT "" OFF)
option(ENABLE_X11 "" OFF)
option(ENABLE_WAYLAND "" OFF)
option(ENABLE_DBUS "" OFF)
option(ENABLE_DOC "" OFF)
option(ENABLE_SERVER "" OFF)
option(USE_SYSTEMD "" OFF)
option(ENABLE_XDGAUTOSTART "" OFF)
option(ENABLE_EMOJI "" OFF)
option(ENABLE_LIBUUID "" OFF)
option(ENABLE_ASAN "Enable Address Sanitizer" OFF)
if(ENABLE_ASAN)
include(AddressSanitizer)
endif()
set(APP_INSTALL_PATH "/Library/Input Methods")
set(CMAKE_INSTALL_PREFIX "${APP_INSTALL_PATH}/Fcitx5.app/Contents")
set(FCITX_INSTALL_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale")
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
# Reproducible
set(CMAKE_INSTALL_LIBDATADIR "${CMAKE_INSTALL_PREFIX}/lib")
# Override iso-codes paths and xkb default rules file
set(ISOCODES_ISO639_JSON "${CMAKE_INSTALL_PREFIX}/share/iso-codes/json/iso_639-3.json")
set(XKEYBOARDCONFIG_XKBBASE "${CMAKE_INSTALL_PREFIX}/share/xkeyboard-config-2")
set(XKEYBOARDCONFIG_DATADIR "${CMAKE_INSTALL_PREFIX}/share")
execute_process(COMMAND bash -c "git describe --long | awk -F- '{print $1}'"
OUTPUT_VARIABLE RECENT_TAG
OUTPUT_STRIP_TRAILING_WHITESPACE
)
execute_process(COMMAND bash -c "git describe --long | awk -F- '{print $2}'"
OUTPUT_VARIABLE RECENT_COMMITS
OUTPUT_STRIP_TRAILING_WHITESPACE
)
message(STATUS "Recent tag: ${RECENT_TAG}, commits since tag: ${RECENT_COMMITS}")
add_subdirectory(fcitx5)
add_subdirectory(deps)
add_subdirectory(logging)
set(WKWEBVIEW_PROTOCOL "fcitx")
set(WEBVIEW_WWW_PATH ".local/share/fcitx5/www")
include_directories(
fcitx5-webview/include
fcitx5-webview/webview
"${PREBUILDER_INCLUDE_DIR}" # nlohmann-json
)
add_subdirectory(keycode)
add_subdirectory(macosfrontend)
add_subdirectory(macosnotifications)
option(BUILD_PREVIEW "" OFF)
add_subdirectory(fcitx5-webview)
add_subdirectory(webpanel)
set(BUILD_SHARED_FCITX_ADDON OFF)
include(fcitx5/src/lib/fcitx-utils/Fcitx5Macros.cmake)
add_subdirectory(fcitx5-beast)
add_subdirectory(src)
set(FCITX5_AID_TARGETS macosfrontend notifications webpanel Fcitx5Objs)
fcitx5_add_i18n_definition(
LOCALE_INSTALL_DIR "${FCITX_INSTALL_LOCALEDIR}"
TARGETS "${FCITX5_AID_TARGETS}"
)
foreach(AID_TARGET IN LISTS FCITX5_AID_TARGETS)
target_compile_definitions(${AID_TARGET} PRIVATE -DFCITX_GETTEXT_DOMAIN=\"fcitx5-macos\")
endforeach()
add_subdirectory(assets)
add_subdirectory(po)
enable_testing()
add_subdirectory(tests)