Files
MrbWebLibre/packages/sqlite3_vec/android/CMakeLists.txt
T

78 lines
1.8 KiB
CMake

cmake_minimum_required(VERSION 3.10)
# Set the project name
project(sqlite_vec)
# Set default compiler if not provided
if(NOT CMAKE_C_COMPILER)
set(CMAKE_C_COMPILER gcc)
endif()
# Configure Android specific settings
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC")
include(FetchContent)
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0")
# cmake 3.24.0 added the `DOWNLOAD_EXTRACT_TIMESTAMP` and prints an ugly warning when
# the default is used, so override it to the recommended behavior.
# We can't really ask users to use a cmake that recent, so there's this if here.
FetchContent_Declare(
sqlite3
URL https://sqlite.org/2024/sqlite-autoconf-3470200.tar.gz
DOWNLOAD_EXTRACT_TIMESTAMP NEW
)
FetchContent_Declare(
vec0
URL https://github.com/asg017/sqlite-vec/archive/refs/tags/v0.1.7-alpha.2.tar.gz
DOWNLOAD_EXTRACT_TIMESTAMP NEW
)
else()
FetchContent_Declare(
sqlite3
URL https://sqlite.org/2024/sqlite-autoconf-3470200.tar.gz
)
FetchContent_Declare(
vec0
URL https://github.com/asg017/sqlite-vec/archive/refs/tags/v0.1.7-alpha.2.tar.gz
)
endif()
FetchContent_MakeAvailable(sqlite3)
FetchContent_MakeAvailable(vec0)
add_custom_command(
OUTPUT ${vec0_SOURCE_DIR}/sqlite-vec.h
COMMAND make sqlite-vec.h
WORKING_DIRECTORY ${vec0_SOURCE_DIR}
COMMENT "Building sqlite-vec.h with make"
)
add_custom_target(generate_vec_header
DEPENDS ${vec0_SOURCE_DIR}/sqlite-vec.h
)
add_library(vec0
SHARED
${vec0_SOURCE_DIR}/sqlite-vec.c
)
add_dependencies(vec0 generate_vec_header)
# Include directories
target_include_directories(vec0
PRIVATE
${vec0_SOURCE_DIR}
${sqlite3_SOURCE_DIR}
)
# Set compile options
target_compile_options(vec0
PRIVATE
-Wall
-Wextra
-O3
)