-
-
Notifications
You must be signed in to change notification settings - Fork 463
/
janet.cmake
68 lines (55 loc) · 1.96 KB
/
janet.cmake
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
################################
# Janet
################################
set(BUILD_WITH_JANET_DEFAULT TRUE)
option(BUILD_WITH_JANET "Janet Enabled" ${BUILD_WITH_JANET_DEFAULT})
message("BUILD_WITH_JANET: ${BUILD_WITH_JANET}")
if(BUILD_WITH_JANET)
if(MINGW)
find_program(GIT git)
get_filename_component(GIT_DIR ${GIT} DIRECTORY)
find_program(GITBASH bash PATHS "${GIT_DIR}/../bin" NO_DEFAULT_PATH)
if(NOT GITBASH)
message(FATAL_ERROR "Git Bash not found!")
endif()
add_custom_command(
OUTPUT ${THIRDPARTY_DIR}/janet/build/c/janet.c
COMMAND ${GITBASH} -c "CC=gcc mingw32-make build/c/janet.c"
WORKING_DIRECTORY ${THIRDPARTY_DIR}/janet/
)
elseif(WIN32)
add_custom_command(
OUTPUT ${THIRDPARTY_DIR}/janet/build/c/janet.c
COMMAND ./build_win.bat
WORKING_DIRECTORY ${THIRDPARTY_DIR}/janet/
)
else()
add_custom_command(
OUTPUT ${THIRDPARTY_DIR}/janet/build/c/janet.c
COMMAND make build/c/janet.c
WORKING_DIRECTORY ${THIRDPARTY_DIR}/janet/
)
endif()
set(JANET_SRC
${THIRDPARTY_DIR}/janet/build/c/janet.c
${CMAKE_SOURCE_DIR}/src/api/janet.c
${CMAKE_SOURCE_DIR}/src/api/parse_note.c
)
add_library(janet ${TIC_RUNTIME} ${JANET_SRC})
if(NOT BUILD_STATIC)
set_target_properties(janet PROPERTIES PREFIX "")
endif()
target_include_directories(janet
PRIVATE
${THIRDPARTY_DIR}/janet/src/include
${THIRDPARTY_DIR}/janet
${CMAKE_SOURCE_DIR}/build/janet
${CMAKE_SOURCE_DIR}/include
${CMAKE_SOURCE_DIR}/src
)
target_compile_definitions(janet INTERFACE TIC_BUILD_WITH_JANET=1)
if(BUILD_DEMO_CARTS)
list(APPEND DEMO_CARTS ${DEMO_CARTS_IN}/janetdemo.janet)
list(APPEND DEMO_CARTS ${DEMO_CARTS_IN}/bunny/janetmark.janet)
endif()
endif()