about summary refs log tree commit diff
path: root/CMakeLists.txt
blob: ec4947592b231754e6d4180a75791e213ac80cfc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
cmake_minimum_required(VERSION 3.5)
project(3cl VERSION 0.1 LANGUAGES C)

if (PROJECT_SOURCE_DIR STREQUAL PORJECT_BINARY_DIR)
    message(FATAL_ERROR "In-source builds are not allowed")
endif()

add_executable(
    "${PROJECT_NAME}"
    src/3cl.c
    src/instruction.c
    src/instruction/nop.c
    src/instruction/pushzero.c
    src/instruction/increment.c
    src/instruction/decrement.c
    src/instruction/add.c
    src/instruction/subtract.c
    src/instruction/reverse.c
    src/instruction/assign.c
    src/instruction/invalid.c
    src/main.c
    src/platform/getch.c
    src/readchar.c
    src/readfile.c
    src/stack.c
    src/utils.c
    src/variable.c
)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "")

set_target_properties("${PROJECT_NAME}" PROPERTIES C_STANDARD 11)
set_target_properties("${PROJECT_NAME}" PROPERTIES C_EXTENSIONS FALSE)

target_include_directories("${PROJECT_NAME}" PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include")