This repository was archived by the owner on Jun 16, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
92 lines (73 loc) · 1.89 KB
/
CMakeLists.txt
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
cmake_minimum_required(VERSION 3.5)
project(decivm VERSION 0.0.1 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 11)
find_package(BISON REQUIRED)
find_package(FLEX REQUIRED)
BISON_TARGET(
IEC61131_PARSER src/iec61131.y
${CMAKE_CURRENT_BINARY_DIR}/iec61131.y.cpp
DEFINES_FILE ${CMAKE_CURRENT_BINARY_DIR}/iec61131.y.hpp
)
FLEX_TARGET(
IEC61131_SCANNER src/iec61131.l
${CMAKE_CURRENT_BINARY_DIR}/iec61131.l.cpp
)
ADD_FLEX_BISON_DEPENDENCY(IEC61131_SCANNER IEC61131_PARSER)
add_library(deci_scan_parse
${BISON_IEC61131_PARSER_OUTPUTS}
${FLEX_IEC61131_SCANNER_OUTPUTS}
)
target_include_directories(deci_scan_parse
PRIVATE include/ ${CMAKE_CURRENT_BINARY_DIR}
SYSTEM INTERFACE include/
)
add_library(deci
src/deci.cpp
src/value_t.cpp
src/vm_t.cpp
src/number_t.cpp
src/string_t.cpp
src/stack_t.cpp
src/program_t.cpp
src/reference_t.cpp
src/array_t.cpp
src/dictionary_t.cpp
src/compiler_t.cpp
src/ast_t.cpp
include/deci.hpp
include/deci/function_t.hpp
include/deci/vm_t.hpp
include/deci/number_t.hpp
include/deci/string_t.hpp
include/deci/func_lib.hpp
include/deci/value_t.hpp
include/deci/reference_t.hpp
include/deci/array_t.hpp
include/deci/dictionary_t.hpp
include/deci/compiler_t.hpp
include/deci/ast_t.hpp
)
target_link_libraries(deci PRIVATE
deci_scan_parse
)
target_include_directories(deci
PRIVATE include/ ${CMAKE_CURRENT_BINARY_DIR}
SYSTEM INTERFACE include/
)
target_compile_options(deci PRIVATE
$<$<CXX_COMPILER_ID:MSVC>:/W4>
$<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -pedantic -ggdb>
$<$<CXX_COMPILER_ID:Clang>:-Wall -Wextra -pedantic -ggdb>
)
add_executable(basic_test
test/basic_test.cpp
)
target_link_libraries(basic_test PRIVATE deci)
add_executable(values_test
test/values_test.cpp
)
target_link_libraries(values_test PRIVATE deci)
add_executable(compile_test
test/compile_test.cpp
)
target_link_libraries(compile_test PRIVATE deci)