Skip to content

Commit 1a21bc0

Browse files
authored
use cmake 4.0.1 (#240)
cmake 4.0 unsets CMAKE_OSX_SYSROOT CMP0157 splits swift compile and link
1 parent 5e49c7b commit 1a21bc0

File tree

4 files changed

+23
-17
lines changed

4 files changed

+23
-17
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
with:
4545
xcode-version: 16.2
4646

47-
- uses: lukka/get-cmake@v3.31.6
47+
- uses: lukka/get-cmake@v4.0.1
4848

4949
- uses: actions/setup-node@v4
5050
with:

CMakeLists.txt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.27)
1+
cmake_minimum_required(VERSION 4.0.1)
22

33
project(fcitx5-macos VERSION 0.2.1 LANGUAGES CXX Swift)
44

@@ -12,9 +12,15 @@ if(NOT CMAKE_OSX_ARCHITECTURES)
1212
set(CMAKE_OSX_ARCHITECTURES "${CMAKE_HOST_SYSTEM_PROCESSOR}")
1313
endif()
1414

15+
# Starting from cmake 4.0, CMAKE_OSX_SYSROOT defaults to empty.
16+
execute_process(COMMAND xcrun --sdk macosx --show-sdk-path
17+
OUTPUT_VARIABLE CMAKE_OSX_SYSROOT
18+
OUTPUT_STRIP_TRAILING_WHITESPACE
19+
)
1520
set(CMAKE_OSX_DEPLOYMENT_TARGET 13.3)
1621
set(F5M_TARGET "${CMAKE_OSX_ARCHITECTURES}-apple-macos${CMAKE_OSX_DEPLOYMENT_TARGET}")
17-
add_definitions(-target "${F5M_TARGET}")
22+
add_compile_options(-target "${F5M_TARGET}")
23+
add_link_options(-target "${F5M_TARGET}")
1824

1925
# Disallow InitializeSwift to execute link_directories which adds Xcode paths to rpath.
2026
set(SWIFT_LIBRARY_SEARCH_PATHS "")

src/CMakeLists.txt

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,17 +26,13 @@ if(VERBOSE_LOGGING)
2626
endif()
2727

2828
target_link_libraries(Fcitx5Objs
29-
SwiftyJSON
30-
SwiftFrontend
31-
SwiftNotify
3229
Fcitx5::Core
3330
keyboard
3431
webpanel
3532
beast
3633
macosfrontend
3734
notifications
3835
WebviewCandidateWindow
39-
Logging
4036
)
4137

4238
add_executable(Fcitx5
@@ -53,6 +49,7 @@ target_link_libraries(Fcitx5
5349
SwiftyJSON
5450
SwiftFrontend
5551
SwiftNotify
52+
Logging
5653
)
5754

5855
fcitx5_import_addons(Fcitx5

tests/CMakeLists.txt

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,38 @@
11
# Config and Option
2-
add_executable(config-swift testconfig.swift
2+
add_executable(ConfigSwift testconfig.swift
33
${PROJECT_SOURCE_DIR}/src/config/optionmodels.swift
44
${PROJECT_SOURCE_DIR}/src/config/config.swift
55
)
6-
target_link_libraries(config-swift Fcitx5Objs Logging SwiftyJSON)
7-
add_test(NAME config-swift COMMAND config-swift)
6+
target_compile_options(ConfigSwift PUBLIC
7+
"$<$<COMPILE_LANGUAGE:Swift>:-cxx-interoperability-mode=default>"
8+
)
9+
target_link_libraries(ConfigSwift Fcitx5Objs Logging SwiftyJSON SwiftFrontend)
10+
add_test(NAME ConfigSwift COMMAND ConfigSwift)
811

912
add_executable(config-cpp testconfig.cpp)
10-
target_link_libraries(config-cpp Fcitx5Objs)
13+
target_link_libraries(config-cpp Fcitx5Objs SwiftFrontend)
1114
fcitx5_import_addons(config-cpp
1215
REGISTRY_VARNAME getStaticAddon
1316
ADDONS keyboard
1417
)
1518
add_test(NAME config-cpp COMMAND config-cpp)
1619

1720
# CustomPhrase .plist parser
18-
add_executable(xml-parser testxmlparser.swift
21+
add_executable(XmlParser testxmlparser.swift
1922
${PROJECT_SOURCE_DIR}/src/config/xmlparser.swift
2023
)
21-
add_test(NAME xml-parser COMMAND xml-parser "${PROJECT_SOURCE_DIR}/tests/customphrase.plist")
24+
add_test(NAME XmlParser COMMAND XmlParser "${PROJECT_SOURCE_DIR}/tests/customphrase.plist")
2225

2326
add_executable(key-cpp testkey.cpp)
2427
target_link_libraries(key-cpp Keycode)
2528
add_test(NAME key-cpp COMMAND key-cpp)
2629

27-
add_executable(key-swift testkey.swift
30+
add_executable(KeySwift testkey.swift
2831
${PROJECT_SOURCE_DIR}/src/config/keycode.swift
2932
${PROJECT_SOURCE_DIR}/src/config/keyrecorder.swift
3033
)
31-
target_compile_options(key-swift PUBLIC
34+
target_compile_options(KeySwift PUBLIC
3235
"$<$<COMPILE_LANGUAGE:Swift>:-cxx-interoperability-mode=default>"
3336
)
34-
target_link_libraries(key-swift Keycode)
35-
add_test(NAME key-swift COMMAND key-swift)
37+
target_link_libraries(KeySwift Keycode)
38+
add_test(NAME KeySwift COMMAND KeySwift)

0 commit comments

Comments
 (0)