26 lines
883 B
CMake
26 lines
883 B
CMake
cmake_minimum_required(VERSION 3.15)
|
|
project(ke C) # Specify C language explicitly
|
|
|
|
set(CMAKE_C_STANDARD 99)
|
|
set(KE_VERSION "1.0.10")
|
|
|
|
set(CMAKE_C_FLAGS "-Wall -Wextra -pedantic -Wshadow -Werror -std=c99 -g")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_DEFAULT_SOURCE -D_XOPEN_SOURCE")
|
|
|
|
# Optionally enable AddressSanitizer (ASan)
|
|
option(ENABLE_ASAN "Enable AddressSanitizer for builds" OFF)
|
|
|
|
if (ENABLE_ASAN)
|
|
message(STATUS "ASan enabled")
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
|
# Ensure the sanitizer is linked too (especially important on some platforms)
|
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|
|
endif()
|
|
|
|
|
|
# Add executable
|
|
add_executable(ke main.c)
|
|
|
|
# Define KE_VERSION for use in C code (e.g., #define KE_VERSION)
|
|
target_compile_definitions(ke PRIVATE KE_VERSION="ke version ${KE_VERSION}")
|