-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
92 lines (69 loc) · 2.09 KB
/
CMakeLists.txt
File metadata and controls
92 lines (69 loc) · 2.09 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
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 FATAL_ERROR)
project(TypeScriptXX
LANGUAGES CXX
)
# --- Import tools ----
include(../cmake/tools.cmake)
# ---- Dependencies ----
include(../cmake/CPM.cmake)
CPMAddPackage(
NAME cxxopts
GITHUB_REPOSITORY jarro2783/cxxopts
VERSION 2.2.0
OPTIONS
"CXXOPTS_BUILD_EXAMPLES NO"
"CXXOPTS_BUILD_TESTS NO"
)
CPMAddPackage(
NAME FileWatcher
GIT_TAG ee0b97efd206282ef8bb4b9c10c90c941de4a52b
GITHUB_REPOSITORY apetrone/simplefilewatcher
)
if (FileWatcher_ADDED)
file (GLOB FileWatcherSources ${FileWatcher_SOURCE_DIR}/source/*.cpp)
add_library(FileWatcher ${FileWatcherSources})
target_include_directories(FileWatcher PUBLIC ${FileWatcher_SOURCE_DIR}/include)
install(
TARGETS FileWatcher
ARCHIVE DESTINATION lib
)
endif()
CPMAddPackage(
NAME Greeter
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/..
)
CPMAddPackage(
NAME TypeScriptXXDeclarations
SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../declarations
)
CPMAddPackage(
NAME LuaGlue
VERSION 1.1.1
GITHUB_REPOSITORY TheLartians/LuaGlue
)
# ---- Create standalone executable ----
file(GLOB sources CONFIGURE_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/source/*.cpp)
add_executable(TypeScriptXX ${sources})
set_target_properties(TypeScriptXX PROPERTIES
CXX_STANDARD 17
OUTPUT_NAME "TypeScriptXX"
)
target_link_libraries(TypeScriptXX Greeter LuaGlue cxxopts FileWatcher)
# ---- Create typescript declarations ----
add_custom_command(
OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/../typescript/cpplib.d.ts
DEPENDS TypeScriptXXDeclarations
COMMAND TypeScriptXXDeclarations > ${CMAKE_CURRENT_SOURCE_DIR}/../typescript/cpplib.d.ts
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..
COMMENT "update typescript declarations"
)
# ---- Compile typescript code ----
include(../cmake/TranspileTypeScript.cmake)
TranspileTypeScript(
NAME TypeScriptXX
DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..
RESULT ${CMAKE_CURRENT_SOURCE_DIR}/../dist/lua
COMMAND build:lua
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../typescript/cpplib.d.ts
)
add_custom_target(BuildTypeScript ALL DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../dist/lua)