mirror of
https://github.com/ravenscroftj/turbopilot.git
synced 2024-10-01 01:06:01 -04:00
60 lines
1.7 KiB
CMake
60 lines
1.7 KiB
CMake
cmake_minimum_required (VERSION 3.0)
|
|
project(turbopilot VERSION 0.1.0)
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED true)
|
|
set(CMAKE_C_STANDARD 11)
|
|
set(CMAKE_C_STANDARD_REQUIRED true)
|
|
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|
find_package(Threads REQUIRED)
|
|
|
|
|
|
# option(BUILD_SHARED_LIBS "Build using shared libraries" OFF)
|
|
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS "on")
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
|
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
|
|
|
|
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "arm" OR ${CMAKE_SYSTEM_PROCESSOR} MATCHES "aarch64")
|
|
message(STATUS "ARM detected")
|
|
if (MSVC)
|
|
# TODO: arm msvc?
|
|
message(STATUS "ARM+MSVC= :( ")
|
|
else()
|
|
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv6")
|
|
# Raspberry Pi 1, Zero
|
|
add_compile_options(-mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access)
|
|
endif()
|
|
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7")
|
|
# Raspberry Pi 2
|
|
add_compile_options(-mfpu=neon-fp-armv8 -mfp16-format=ieee -mno-unaligned-access -funsafe-math-optimizations)
|
|
endif()
|
|
if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv8")
|
|
# Raspberry Pi 3, 4, Zero 2 (32-bit)
|
|
add_compile_options(-mfp16-format=ieee -mno-unaligned-access)
|
|
endif()
|
|
endif()
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
add_subdirectory(extern/ggml)
|
|
add_subdirectory(extern/argparse)
|
|
add_subdirectory(extern/spdlog)
|
|
|
|
if (GGML_STATIC)
|
|
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
|
SET(BUILD_SHARED_LIBS OFF)
|
|
SET(CMAKE_EXE_LINKER_FLAGS "-static")
|
|
|
|
# if(GGML_OPENBLAS)
|
|
# set(BLA_STATIC ON)
|
|
# endif()
|
|
endif()
|
|
|
|
|
|
add_subdirectory(src)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) |