28 lines
No EOL
1 KiB
CMake
28 lines
No EOL
1 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(Hallocy C)
|
|
|
|
set(CMAKE_C_STANDARD 11)
|
|
set(CMAKE_C_STANDARD_REQUIRED ON)
|
|
|
|
include_directories(${PROJECT_SOURCE_DIR}/Include)
|
|
file(GLOB_RECURSE SRC_FILES "${PROJECT_SOURCE_DIR}/Src/*.c")
|
|
|
|
add_library(Hallocy STATIC ${SRC_FILES})
|
|
add_executable(HallocyTest ${PROJECT_SOURCE_DIR}/Tests/Main.c)
|
|
|
|
target_include_directories(HallocyTest PRIVATE ${PROJECT_SOURCE_DIR}/Tests)
|
|
target_link_libraries(HallocyTest Hallocy)
|
|
|
|
if (MSVC)
|
|
target_compile_options(Hallocy PRIVATE /W4 /Zl)
|
|
else()
|
|
if (CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64")
|
|
target_compile_options(Hallocy PRIVATE -mavx512f -mavx512vl -march=native)
|
|
target_compile_options(HallocyTest PRIVATE -mavx512f -mavx512vl -march=native)
|
|
elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm")
|
|
target_compile_options(Hallocy PRIVATE -mfpu=neon)
|
|
target_compile_options(HallocyTest PRIVATE -mfpu=neon)
|
|
endif()
|
|
|
|
target_compile_options(Hallocy PRIVATE -Wall -Wextra -pedantic)
|
|
endif() |