-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathCMakeLists.txt
80 lines (72 loc) · 2.06 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
include(FetchContent)
FetchContent_Declare(
Corrosion
GIT_REPOSITORY https://github.com/corrosion-rs/corrosion.git
GIT_TAG v0.4.1
)
FetchContent_MakeAvailable(Corrosion)
# config build target: "Debug" or "Release"
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
set(COMPILE_FLAGS ${COMPILE_FLAGS} -g)
elseif(CMAKE_BUILD_TYPE STREQUAL "Release")
set(COMPILE_FLAGS ${COMPILE_FLAGS} -O3)
endif()
add_library(quickjs
libbf.c
cutils.c
libregexp.c
libunicode.c
core/string.c
core/function.c
core/memory.c
core/bytecode.c
core/object.c
core/exception.c
core/gc.c
core/malloc.c
core/shape.c
core/parser.c
core/conversion.c
core/runtime.c
core/module.c
core/ic.c
core/builtins/js-array.c
core/builtins/js-async-function.c
core/builtins/js-async-generator.c
core/builtins/js-atomics.c
core/builtins/js-big-num.c
core/builtins/js-boolean.c
core/builtins/js-date.c
core/builtins/js-function.c
core/builtins/js-generator.c
core/builtins/js-json.c
core/builtins/js-map.c
core/builtins/js-math.c
core/builtins/js-number.c
core/builtins/js-object.c
core/builtins/js-closures.c
core/builtins/js-operator.c
core/builtins/js-promise.c
core/builtins/js-proxy.c
core/builtins/js-reflect.c
core/builtins/js-regexp.c
core/builtins/js-string.c
core/builtins/js-symbol.c
core/builtins/js-typed-array.c
)
# create a custom target for including headers
add_custom_target(include_rust_c_bindings
COMMAND echo "include headers: ${PROJECT_SOURCE_DIR}/src/crates/target/include"
COMMAND include_directories(${PROJECT_SOURCE_DIR}/src/crates/target/include)
)
# build rust libraries
corrosion_import_crate(MANIFEST_PATH ${CMAKE_SOURCE_DIR}/src/crates/Cargo.toml)
target_link_libraries(quickjs quickjs_rs)
set(QUICKJS_VERSION STRING "0.1.0")
add_compile_options(${COMPILE_FLAGS})
target_compile_options(quickjs PUBLIC
-D_GNU_SOURCE
-DCONFIG_BIGNUM
-DCONFIG_VERSION=${\"QUICKJS_VERSION\"}
# -DDUMP_LEAKS # dump memory leaks
)