This repository was archived by the owner on Mar 23, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
62 lines (55 loc) · 2.4 KB
/
CMakeLists.txt
File metadata and controls
62 lines (55 loc) · 2.4 KB
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
cmake_minimum_required(VERSION 4.2.0)
project(derkjs)
add_library(derkjs_impl)
target_sources(
derkjs_impl
PUBLIC FILE_SET derkjs_impl_modules
TYPE CXX_MODULES
FILES src/derkjs_impl/derkjs.ixx
src/derkjs_impl/frontend/lexicals.ixx
src/derkjs_impl/frontend/ast.ixx
src/derkjs_impl/frontend/parse.ixx
src/derkjs_impl/backend/bc_generate.ixx
src/derkjs_impl/backend/expr_gen.ixx
src/derkjs_impl/backend/stmt_gen.ixx
src/derkjs_impl/core/polyfills.ixx
src/derkjs_impl/core/driver.ixx
src/derkjs_impl/meta/enums.ixx
src/derkjs_impl/runtime/objects.ixx
src/derkjs_impl/runtime/boolean.ixx
src/derkjs_impl/runtime/number.ixx
src/derkjs_impl/runtime/object.ixx
src/derkjs_impl/runtime/arrays.ixx
src/derkjs_impl/runtime/callables.ixx
src/derkjs_impl/runtime/strings.ixx
src/derkjs_impl/runtime/value.ixx
src/derkjs_impl/runtime/bytecode.ixx
src/derkjs_impl/runtime/gc.ixx
src/derkjs_impl/runtime/context.ixx
src/derkjs_impl/runtime/op_handlers.ixx
src/derkjs_impl/runtime/vm.ixx
src/derkjs_impl/runtime/intrinsics/routines.ixx
src/derkjs_impl/runtime/intrinsics/conversions.ixx
src/derkjs_impl/runtime/intrinsics/boolean_natives.ixx
src/derkjs_impl/runtime/intrinsics/number_natives.ixx
src/derkjs_impl/runtime/intrinsics/string_natives.ixx
src/derkjs_impl/runtime/intrinsics/object_natives.ixx
src/derkjs_impl/runtime/intrinsics/array_natives.ixx
src/derkjs_impl/runtime/intrinsics/function_natives.ixx
)
add_executable(derkjs_tco src/main_tco.cpp)
if (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
message(NOTICE "Sanitizers are enabled for this ${CMAKE_BUILD_TYPE} build.")
target_link_options(derkjs_impl PRIVATE "-fsanitize=address")
endif()
if (DEFINED SETUP_USES_CLANG)
set_property(SOURCE src/derkjs_impl/runtime/vm.ixx APPEND PROPERTY COMPILE_OPTIONS "-foptimize-sibling-calls")
target_link_directories(derkjs_tco PUBLIC ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} PUBLIC ${MY_LLVM_LIBCXX_DIR})
else ()
message(WARNING "This project is mainly developed on Clang 21+ via macOS Homebrew. Build support on Linux distros may be wonky.")
target_link_directories(derkjs_tco PUBLIC ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif ()
target_link_libraries(derkjs_tco PUBLIC derkjs_impl)
message(NOTICE "Executable at: ./build/derkjs_tco")
# enable_testing()
# add_subdirectory(tests)