Skip to content

Commit a04d48e

Browse files
committed
test
1 parent 99c7d96 commit a04d48e

2 files changed

Lines changed: 43 additions & 45 deletions

File tree

CMakeLists.txt

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,45 @@ endif()
4848

4949
set(LLAMA_CPP_ROOT ${CMAKE_SOURCE_DIR}/third_party/llama.cpp)
5050

51+
if(ARCHITECTURE MATCHES "android" AND ARCHITECTURE MATCHES "vulkan")
52+
# Derive triple from ANDROID_ABI
53+
if(ANDROID_ABI STREQUAL "arm64-v8a")
54+
set(ANDROID_ARCH_TRIPLE "aarch64-linux-android")
55+
elseif(ANDROID_ABI STREQUAL "armeabi-v7a")
56+
set(ANDROID_ARCH_TRIPLE "arm-linux-androideabi")
57+
elseif(ANDROID_ABI STREQUAL "x86_64")
58+
set(ANDROID_ARCH_TRIPLE "x86_64-linux-android")
59+
elseif(ANDROID_ABI STREQUAL "x86")
60+
set(ANDROID_ARCH_TRIPLE "i686-linux-android")
61+
else()
62+
message(FATAL_ERROR "Unknown ANDROID_ABI: ${ANDROID_ABI}")
63+
endif()
64+
65+
message(STATUS "ANDROID_ABI=${ANDROID_ABI}")
66+
message(STATUS "ANDROID_ARCH_TRIPLE=${ANDROID_ARCH_TRIPLE}")
67+
message(STATUS "CMAKE_SYSROOT=${CMAKE_SYSROOT}")
68+
69+
set(Vulkan_LIBRARY "${CMAKE_SYSROOT}/usr/lib/${ANDROID_ARCH_TRIPLE}/26/libvulkan.so")
70+
set(Vulkan_LIBRARY "${CMAKE_SYSROOT}/usr/lib/${ANDROID_ARCH_TRIPLE}/26/libvulkan.so" CACHE FILEPATH "" FORCE)
71+
set(Vulkan_FOUND TRUE)
72+
set(Vulkan_FOUND TRUE CACHE BOOL "" FORCE)
73+
set(Vulkan_VERSION "1.3.275")
74+
set(Vulkan_VERSION "1.3.275" CACHE STRING "" FORCE)
75+
set(Vulkan_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/third_party/Vulkan-Headers/include")
76+
set(Vulkan_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/third_party/Vulkan-Headers/include" CACHE PATH "" FORCE)
77+
78+
if(NOT EXISTS "${Vulkan_LIBRARY}")
79+
message(FATAL_ERROR "Vulkan stub not found at: ${Vulkan_LIBRARY}")
80+
endif()
81+
82+
find_program(Vulkan_GLSLC_EXECUTABLE
83+
NAMES glslc
84+
PATHS "/usr/bin" "/usr/local/bin"
85+
NO_CMAKE_SYSTEM_PATH)
86+
set(Vulkan_GLSLC_EXECUTABLE "${Vulkan_GLSLC_EXECUTABLE}" CACHE FILEPATH "" FORCE)
87+
endif()
88+
89+
5190
function(LLAMALIB_COMPILE_DEFS NAME)
5291
add_compile_definitions(${NAME} PRIVATE UNDREAMAI_EXPORTS)
5392
target_include_directories(${NAME} PRIVATE "${CMAKE_SOURCE_DIR}/include")
@@ -58,8 +97,9 @@ function(LLAMALIB_COMPILE_DEFS NAME)
5897
target_compile_definitions(${NAME} PRIVATE CPPHTTPLIB_OPENSSL_SUPPORT)
5998
target_link_libraries(${NAME} PRIVATE cpp-httplib OpenSSL::SSL OpenSSL::Crypto)
6099
endif()
61-
if(CMAKE_SYSTEM_NAME STREQUAL "Android")
100+
if(ARCHITECTURE MATCHES "android" AND ARCHITECTURE MATCHES "vulkan")
62101
target_link_options(${NAME} PRIVATE "-Wl,-z,max-page-size=16384")
102+
target_link_libraries(${NAME} PRIVATE "${Vulkan_LIBRARY}")
63103
endif()
64104
endfunction()
65105

third_party/CMakeLists.txt

Lines changed: 2 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -141,49 +141,6 @@ add_custom_target(generate_assets ALL DEPENDS ${GENERATED_HEADERS})
141141

142142
################################################ BUILD ################################################
143143

144-
if(ARCHITECTURE MATCHES "android")
145-
# Derive triple from ANDROID_ABI
146-
if(ANDROID_ABI STREQUAL "arm64-v8a")
147-
set(ANDROID_ARCH_TRIPLE "aarch64-linux-android")
148-
elseif(ANDROID_ABI STREQUAL "armeabi-v7a")
149-
set(ANDROID_ARCH_TRIPLE "arm-linux-androideabi")
150-
elseif(ANDROID_ABI STREQUAL "x86_64")
151-
set(ANDROID_ARCH_TRIPLE "x86_64-linux-android")
152-
elseif(ANDROID_ABI STREQUAL "x86")
153-
set(ANDROID_ARCH_TRIPLE "i686-linux-android")
154-
else()
155-
message(FATAL_ERROR "Unknown ANDROID_ABI: ${ANDROID_ABI}")
156-
endif()
157-
158-
message(STATUS "ANDROID_ABI=${ANDROID_ABI}")
159-
message(STATUS "ANDROID_ARCH_TRIPLE=${ANDROID_ARCH_TRIPLE}")
160-
message(STATUS "CMAKE_SYSROOT=${CMAKE_SYSROOT}")
161-
162-
if(ARCHITECTURE MATCHES "vulkan")
163-
set(_VULKAN_LIB "${CMAKE_SYSROOT}/usr/lib/${ANDROID_ARCH_TRIPLE}/26/libvulkan.so")
164-
message(STATUS "Vulkan_LIBRARY=${_VULKAN_LIB}")
165-
166-
if(NOT EXISTS "${_VULKAN_LIB}")
167-
message(FATAL_ERROR "Vulkan stub not found at: ${_VULKAN_LIB}")
168-
endif()
169-
170-
set(Vulkan_LIBRARY "${_VULKAN_LIB}")
171-
set(Vulkan_LIBRARY "${_VULKAN_LIB}" CACHE FILEPATH "" FORCE)
172-
set(Vulkan_FOUND TRUE)
173-
set(Vulkan_FOUND TRUE CACHE BOOL "" FORCE)
174-
set(Vulkan_VERSION "1.3.275")
175-
set(Vulkan_VERSION "1.3.275" CACHE STRING "" FORCE)
176-
set(Vulkan_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/third_party/Vulkan-Headers/include")
177-
set(Vulkan_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/third_party/Vulkan-Headers/include" CACHE PATH "" FORCE)
178-
179-
find_program(Vulkan_GLSLC_EXECUTABLE
180-
NAMES glslc
181-
PATHS "/usr/bin" "/usr/local/bin"
182-
NO_CMAKE_SYSTEM_PATH)
183-
set(Vulkan_GLSLC_EXECUTABLE "${Vulkan_GLSLC_EXECUTABLE}" CACHE FILEPATH "" FORCE)
184-
endif()
185-
endif()
186-
187144
execute_process(
188145
COMMAND git rev-list --count HEAD
189146
WORKING_DIRECTORY ${LLAMA_CPP_ROOT}
@@ -217,6 +174,7 @@ endif()
217174

218175
if(ARCHITECTURE MATCHES "android")
219176
if (TARGET ggml-vulkan)
220-
target_include_directories(ggml-vulkan PRIVATE ${CMAKE_SOURCE_DIR}/third_party/Vulkan-Headers/include)
177+
target_include_directories(ggml-vulkan PRIVATE ${Vulkan_INCLUDE_DIR})
178+
target_link_libraries(ggml-vulkan PRIVATE "${Vulkan_LIBRARY}")
221179
endif()
222180
endif()

0 commit comments

Comments
 (0)