Hallocy/CMakeLists.txt

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()