|
1 | 1 | diff --git a/CMakeLists.txt b/CMakeLists.txt |
2 | | -index ae1d14b7..5d03df35 100644 |
| 2 | +index 59e012d8..48dca4c0 100644 |
3 | 3 | --- a/CMakeLists.txt |
4 | 4 | +++ b/CMakeLists.txt |
5 | | -@@ -1,2 +1,2 @@ |
6 | | --cmake_minimum_required(VERSION 3.24.0) |
7 | | -+cmake_minimum_required(VERSION 3.22.1) |
8 | | - project(libchewing LANGUAGES C) |
9 | | -@@ -216,8 +216,6 @@ if(WITH_RUST) |
10 | | - list(APPEND ALL_INC ${INC_DIR}/chewing_rs.h) |
11 | | - endif() |
12 | | - |
13 | | --add_subdirectory(doc) |
14 | | --add_subdirectory(data) |
| 5 | +@@ -77,7 +77,7 @@ corrosion_import_crate(MANIFEST_PATH Cargo.toml CRATES chewing_capi) |
15 | 6 | if(BUILD_TESTING) |
16 | | - add_subdirectory(tests) |
| 7 | + corrosion_import_crate(MANIFEST_PATH Cargo.toml CRATES chewing_testhelper) |
17 | 8 | endif() |
18 | | -@@ -228,14 +226,20 @@ add_library(common OBJECT |
| 9 | +-corrosion_import_crate(MANIFEST_PATH Cargo.toml CRATES chewing-cli) |
| 10 | ++corrosion_add_target_rustflags(chewing_capi "--remap-path-prefix=${PROJECT_SOURCE_DIR}=.") |
19 | 11 |
|
20 | | - src/porting_layer/src/asprintf.c |
21 | | - ) |
22 | | -+target_compile_options(common PRIVATE |
23 | | -+ "-ffile-prefix-map=${CMAKE_SOURCE_DIR}=." |
24 | | -+) |
25 | | - target_compile_definitions(common PRIVATE |
26 | | -- CHEWING_DATADIR=\"${CMAKE_INSTALL_FULL_DATADIR}/libchewing\" |
27 | | -+ CHEWING_DATADIR=\"./libchewing\" |
| 12 | + if(WITH_SQLITE3) |
| 13 | + corrosion_set_features(chewing_capi FEATURES sqlite) |
| 14 | +@@ -191,7 +191,7 @@ target_include_directories(libchewing |
28 | 15 | ) |
29 | 16 |
|
30 | | - add_library(libchewing ${ALL_INC} src/chewing.c) |
31 | | - set_target_properties(libchewing PROPERTIES LINKER_LANGUAGE C) |
32 | | -+target_compile_options(libchewing PRIVATE |
33 | | -+ "-ffile-prefix-map=${CMAKE_SOURCE_DIR}=." |
34 | | -+) |
35 | | - target_compile_definitions(libchewing PRIVATE |
36 | | -- CHEWING_DATADIR=\"${CMAKE_INSTALL_FULL_DATADIR}/libchewing\" |
37 | | -+ CHEWING_DATADIR=\"./libchewing\" |
| 17 | + corrosion_set_env_vars(chewing_capi |
| 18 | +- CHEWING_DATADIR=${CMAKE_INSTALL_FULL_DATADIR}/libchewing |
| 19 | ++ CHEWING_DATADIR="./libchewing" |
38 | 20 | ) |
39 | | - if(NOT WITH_RUST) |
40 | | - target_sources(common PRIVATE |
41 | | -@@ -288,6 +292,9 @@ if(NOT WITH_RUST) |
42 | | - ${SRC_DIR}/userphrase-hash.c |
43 | | - ) |
44 | | - endif() |
45 | | -+ target_compile_options(userphrase PRIVATE |
46 | | -+ "-ffile-prefix-map=${CMAKE_SOURCE_DIR}=." |
47 | | -+ ) |
48 | | - target_link_libraries(libchewing |
49 | | - PRIVATE common |
50 | | - PRIVATE userphrase) |
| 21 | + target_link_libraries(libchewing PRIVATE chewing_capi) |
| 22 | + target_link_libraries(chewing_capi INTERFACE ${SQLite3_LIBRARIES}) |
| 23 | +@@ -239,15 +239,17 @@ else() |
| 24 | + ) |
| 25 | + endif() |
| 26 | + |
| 27 | +-install(FILES ${ALL_INC} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/chewing) |
| 28 | ++install(FILES ${ALL_INC} DESTINATION include/chewing) |
| 29 | + install(FILES ${PROJECT_BINARY_DIR}/chewing.pc |
| 30 | +- DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) |
| 31 | +-install(TARGETS libchewing |
| 32 | ++ DESTINATION lib/pkgconfig) |
| 33 | ++install(TARGETS chewing_capi |
| 34 | + EXPORT libchewingTargets |
| 35 | +- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 36 | +- INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} |
| 37 | +- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} |
| 38 | +- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 39 | ++ ARCHIVE DESTINATION lib |
| 40 | ++ INCLUDES DESTINATION include |
| 41 | ++ LIBRARY DESTINATION lib |
| 42 | ++ RUNTIME DESTINATION bin) |
| 43 | ++install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libchewing_capi.a |
| 44 | ++ DESTINATION lib) |
| 45 | + |
| 46 | + if(BUILD_DATA) |
| 47 | + install( |
| 48 | +@@ -261,7 +263,6 @@ if(BUILD_DATA) |
| 49 | + ) |
| 50 | + endif() |
| 51 | + |
| 52 | +-install(IMPORTED_RUNTIME_ARTIFACTS chewing-cli DESTINATION ${CMAKE_INSTALL_BINDIR}) |
| 53 | + |
| 54 | + # generate CMake Config files |
| 55 | + include(CMakePackageConfigHelpers) |
| 56 | +diff --git a/Cargo.toml b/Cargo.toml |
| 57 | +index d546d772..448f6b1d 100644 |
| 58 | +--- a/Cargo.toml |
| 59 | ++++ b/Cargo.toml |
| 60 | +@@ -41,10 +41,10 @@ tempfile = "3.10.1" |
| 61 | + |
| 62 | + [profile.release] |
| 63 | + lto = true |
| 64 | +-opt-level = 3 |
| 65 | ++opt-level = "s" |
| 66 | + panic = "abort" |
| 67 | + codegen-units = 1 |
| 68 | +-debug = true |
| 69 | ++debug = false |
| 70 | + |
| 71 | + [package.metadata.docs.rs] |
| 72 | + features = ["sqlite"] |
| 73 | +diff --git a/capi/Cargo.toml b/capi/Cargo.toml |
| 74 | +index 517dd9e2..12fefb9e 100644 |
| 75 | +--- a/capi/Cargo.toml |
| 76 | ++++ b/capi/Cargo.toml |
| 77 | +@@ -7,7 +7,7 @@ rust-version = "1.88" |
| 78 | + edition = "2024" |
| 79 | + |
| 80 | + [lib] |
| 81 | +-crate-type = ["rlib", "staticlib"] |
| 82 | ++crate-type = ["staticlib"] |
| 83 | + |
| 84 | + [dependencies] |
| 85 | + chewing = { version = "0.11.0", path = ".." } |
0 commit comments