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