mirror of
				https://github.com/ggml-org/llama.cpp.git
				synced 2025-10-31 08:51:55 +00:00 
			
		
		
		
	Fix visionOS build and add CI (#12415)
* ci: add visionOS build workflow Add a new GitHub Actions workflow for building on visionOS with CMake and Xcode. * ggml: Define _DARWIN_C_SOURCE for visionOS to fix missing u_xxx typedefs * ci: remove define hacks for u_xxx system types --------- Co-authored-by: Giovanni Petrantoni <7008900+sinkingsugar@users.noreply.github.com>
This commit is contained in:
		
							
								
								
									
										29
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								.github/workflows/build.yml
									
									
									
									
										vendored
									
									
								
							| @@ -676,6 +676,35 @@ jobs: | |||||||
|             -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml |             -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml | ||||||
|           cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO |           cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO | ||||||
|  |  | ||||||
|  |   macOS-latest-cmake-visionos: | ||||||
|  |     runs-on: macos-latest | ||||||
|  |  | ||||||
|  |     steps: | ||||||
|  |       - name: Clone | ||||||
|  |         id: checkout | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |  | ||||||
|  |       - name: Dependencies | ||||||
|  |         id: depends | ||||||
|  |         continue-on-error: true | ||||||
|  |         run: | | ||||||
|  |           brew update | ||||||
|  |  | ||||||
|  |       - name: Build | ||||||
|  |         id: cmake_build | ||||||
|  |         run: | | ||||||
|  |           sysctl -a | ||||||
|  |           cmake -B build -G Xcode \ | ||||||
|  |             -DGGML_METAL_USE_BF16=ON \ | ||||||
|  |             -DGGML_METAL_EMBED_LIBRARY=ON \ | ||||||
|  |             -DLLAMA_BUILD_EXAMPLES=OFF \ | ||||||
|  |             -DLLAMA_BUILD_TESTS=OFF \ | ||||||
|  |             -DLLAMA_BUILD_SERVER=OFF \ | ||||||
|  |             -DCMAKE_SYSTEM_NAME=visionOS \ | ||||||
|  |             -DCMAKE_OSX_DEPLOYMENT_TARGET=1.0 \ | ||||||
|  |             -DCMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM=ggml | ||||||
|  |           cmake --build build --config Release -j $(sysctl -n hw.logicalcpu) -- CODE_SIGNING_ALLOWED=NO | ||||||
|  |  | ||||||
|   macOS-latest-swift: |   macOS-latest-swift: | ||||||
|     runs-on: macos-latest |     runs-on: macos-latest | ||||||
|  |  | ||||||
|   | |||||||
| @@ -432,8 +432,8 @@ cmake -B build-visionos -G Xcode \ | |||||||
|     -DCMAKE_SYSTEM_NAME=visionOS \ |     -DCMAKE_SYSTEM_NAME=visionOS \ | ||||||
|     -DCMAKE_OSX_SYSROOT=xros \ |     -DCMAKE_OSX_SYSROOT=xros \ | ||||||
|     -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=xros \ |     -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=xros \ | ||||||
|     -DCMAKE_C_FLAGS="-D_XOPEN_SOURCE=700 -Du_int=unsigned\ int -Du_char=unsigned\ char -Du_short=unsigned\ short ${COMMON_C_FLAGS}" \ |     -DCMAKE_C_FLAGS="-D_XOPEN_SOURCE=700 ${COMMON_C_FLAGS}" \ | ||||||
|     -DCMAKE_CXX_FLAGS="-D_XOPEN_SOURCE=700 -Du_int=unsigned\ int -Du_char=unsigned\ char -Du_short=unsigned\ short ${COMMON_CXX_FLAGS}" \ |     -DCMAKE_CXX_FLAGS="-D_XOPEN_SOURCE=700 ${COMMON_CXX_FLAGS}" \ | ||||||
|     -S . |     -S . | ||||||
| cmake --build build-visionos --config Release -- -quiet | cmake --build build-visionos --config Release -- -quiet | ||||||
|  |  | ||||||
| @@ -445,8 +445,8 @@ cmake -B build-visionos-sim -G Xcode \ | |||||||
|     -DCMAKE_SYSTEM_NAME=visionOS \ |     -DCMAKE_SYSTEM_NAME=visionOS \ | ||||||
|     -DCMAKE_OSX_SYSROOT=xrsimulator \ |     -DCMAKE_OSX_SYSROOT=xrsimulator \ | ||||||
|     -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=xrsimulator \ |     -DCMAKE_XCODE_ATTRIBUTE_SUPPORTED_PLATFORMS=xrsimulator \ | ||||||
|     -DCMAKE_C_FLAGS="-D_XOPEN_SOURCE=700 -Du_int=unsigned\ int -Du_char=unsigned\ char -Du_short=unsigned\ short ${COMMON_C_FLAGS}" \ |     -DCMAKE_C_FLAGS="-D_XOPEN_SOURCE=700 ${COMMON_C_FLAGS}" \ | ||||||
|     -DCMAKE_CXX_FLAGS="-D_XOPEN_SOURCE=700 -Du_int=unsigned\ int -Du_char=unsigned\ char -Du_short=unsigned\ short ${COMMON_CXX_FLAGS}" \ |     -DCMAKE_CXX_FLAGS="-D_XOPEN_SOURCE=700 ${COMMON_CXX_FLAGS}" \ | ||||||
|     -S . |     -S . | ||||||
| cmake --build build-visionos-sim --config Release -- -quiet | cmake --build build-visionos-sim --config Release -- -quiet | ||||||
|  |  | ||||||
|   | |||||||
| @@ -325,6 +325,10 @@ if (CMAKE_SYSTEM_NAME MATCHES "Android") | |||||||
|     target_link_libraries(ggml-base PRIVATE dl) |     target_link_libraries(ggml-base PRIVATE dl) | ||||||
| endif() | endif() | ||||||
|  |  | ||||||
|  | if(CMAKE_SYSTEM_NAME MATCHES "visionOS") | ||||||
|  |     target_compile_definitions(ggml-base PUBLIC _DARWIN_C_SOURCE) | ||||||
|  | endif() | ||||||
|  |  | ||||||
| if (BUILD_SHARED_LIBS) | if (BUILD_SHARED_LIBS) | ||||||
|     foreach (target ggml-base ggml) |     foreach (target ggml-base ggml) | ||||||
|         set_target_properties(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON) |         set_target_properties(${target} PROPERTIES POSITION_INDEPENDENT_CODE ON) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Guus Waals
					Guus Waals