Skip to content

Commit 1b0d092

Browse files
authored
cmake : support build for iOS/tvOS (#3116)
* cmake : support build for iOS/tvOS * ci : add iOS/tvOS build into macOS-latest-cmake * ci : split ios/tvos jobs
1 parent 8a4ca9a commit 1b0d092

File tree

2 files changed

+63
-5
lines changed

2 files changed

+63
-5
lines changed

.github/workflows/build.yml

+56
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,62 @@ jobs:
197197
cd build
198198
ctest --verbose --timeout 900
199199
200+
macOS-latest-cmake-ios:
201+
runs-on: macos-latest
202+
203+
steps:
204+
- name: Clone
205+
id: checkout
206+
uses: actions/checkout@v1
207+
208+
- name: Dependencies
209+
id: depends
210+
continue-on-error: true
211+
run: |
212+
brew update
213+
214+
- name: Build
215+
id: cmake_build
216+
run: |
217+
sysctl -a
218+
mkdir build
219+
cd build
220+
cmake -G Xcode .. \
221+
-DLLAMA_BUILD_EXAMPLES=OFF \
222+
-DLLAMA_BUILD_TESTS=OFF \
223+
-DLLAMA_BUILD_SERVER=OFF \
224+
-DCMAKE_SYSTEM_NAME=iOS \
225+
-DCMAKE_OSX_DEPLOYMENT_TARGET=14.0
226+
cmake --build . --config Release
227+
228+
macOS-latest-cmake-tvos:
229+
runs-on: macos-latest
230+
231+
steps:
232+
- name: Clone
233+
id: checkout
234+
uses: actions/checkout@v1
235+
236+
- name: Dependencies
237+
id: depends
238+
continue-on-error: true
239+
run: |
240+
brew update
241+
242+
- name: Build
243+
id: cmake_build
244+
run: |
245+
sysctl -a
246+
mkdir build
247+
cd build
248+
cmake -G Xcode .. \
249+
-DLLAMA_BUILD_EXAMPLES=OFF \
250+
-DLLAMA_BUILD_TESTS=OFF \
251+
-DLLAMA_BUILD_SERVER=OFF \
252+
-DCMAKE_SYSTEM_NAME=tvOS \
253+
-DCMAKE_OSX_DEPLOYMENT_TARGET=14.0
254+
cmake --build . --config Release
255+
200256
windows-latest-cmake:
201257
runs-on: windows-latest
202258

CMakeLists.txt

+7-5
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ if (NOT MSVC)
476476
endif()
477477
endif()
478478

479-
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
479+
if ((${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm") OR (${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64"))
480480
message(STATUS "ARM detected")
481481
if (MSVC)
482482
# TODO: arm msvc?
@@ -578,10 +578,12 @@ endif()
578578
# RLIMIT_MEMLOCK came in BSD, is not specified in POSIX.1,
579579
# and on macOS its availability depends on enabling Darwin extensions
580580
# similarly on DragonFly, enabling BSD extensions is necessary
581-
if (CMAKE_SYSTEM_NAME MATCHES "Darwin")
582-
add_compile_definitions(_DARWIN_C_SOURCE)
583-
endif()
584-
if (CMAKE_SYSTEM_NAME MATCHES "DragonFly")
581+
if (
582+
CMAKE_SYSTEM_NAME MATCHES "Darwin" OR
583+
CMAKE_SYSTEM_NAME MATCHES "iOS" OR
584+
CMAKE_SYSTEM_NAME MATCHES "tvOS" OR
585+
CMAKE_SYSTEM_NAME MATCHES "DragonFly"
586+
)
585587
add_compile_definitions(_DARWIN_C_SOURCE)
586588
endif()
587589

0 commit comments

Comments
 (0)