Iony/CMakeLists.txt

27 lines
No EOL
890 B
CMake

cmake_minimum_required(VERSION 3.10)
project(Iony 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(Iony STATIC ${SRC_FILES})
add_executable(IonyTest ${PROJECT_SOURCE_DIR}/Tests/Main.c)
target_include_directories(IonyTest PRIVATE ${PROJECT_SOURCE_DIR}/Tests)
target_link_libraries(IonyTest Iony)
if (MSVC)
target_compile_options(Iony PRIVATE /W4 /Zl /GS- /kernel)
target_link_options(IonyTest PRIVATE /NODEFAULTLIB /ENTRY:_start)
target_link_libraries(Iony PRIVATE kernel32)
target_link_libraries(IonyTest PRIVATE kernel32)
else()
target_compile_options(Iony PRIVATE -Wall -Wextra -pedantic -ffreestanding -fno-builtin)
target_link_options(Iony PRIVATE -nostdlib)
target_link_options(IonyTest PRIVATE -nostdlib)
endif()