|
cmake_minimum_required(VERSION 3.0)
|
|
project(ink C)
|
|
|
|
set(CMAKE_C_STANDARD 90)
|
|
|
|
add_library(ink lib.c include/ink.h)
|
|
|
|
# Uncomment to disable the redundant arithmetic
|
|
# add_definitions(-DNOEXTRAARITHMETIC)
|
|
|
|
# Uncomment to disable array types
|
|
# add_definitions(-DNOARRAYLIB)
|
|
|
|
# Uncomment to disable string literal
|
|
# add_definitions(-DNOSTRINGLITERALS)
|
|
|
|
# Ensures the interpreter doesn't use the standard C library functions
|
|
# add_definitions(-DNOSTDLIB)
|
|
|
|
# Removes several checks to improve performance in cases where ink is used as a bytecode
|
|
# add_definitions(-DNOEXTRACHECKS)
|
|
|
|
add_definitions(-DINK_STEP_BATCH_COUNT=5)
|
|
|
|
add_executable(ink_exe main.c)
|
|
target_link_libraries(ink_exe PUBLIC ink)
|
|
target_include_directories(ink PUBLIC include)
|
|
|
|
if(MSVC)
|
|
target_compile_options(ink PRIVATE /W4 /WX)
|
|
else()
|
|
target_compile_options(ink PRIVATE -Wall -Wextra -Wpedantic -Werror)
|
|
endif()
|
|
|
|
# Benchmark is broken since the addition to coroutines
|
|
# add_executable(ink_bench bench.c)
|
|
# target_link_libraries(ink_bench PUBLIC ink)
|