-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
59 lines (49 loc) · 2.02 KB
/
Copy pathCMakeLists.txt
File metadata and controls
59 lines (49 loc) · 2.02 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
cmake_minimum_required(VERSION 3.31)
project(MineWebClient)
set(CMAKE_CXX_STANDARD 26)
set(CMAKE_EXECUTABLE_SUFFIX ".html")
if(NOT CMAKE_TOOLCHAIN_FILE)
message(FATAL_ERROR "Emscripten toolchain not loaded!")
endif()
file(GLOB_RECURSE SOURCE_FILES "src/*.cpp" "src/*.hpp")
file(GLOB_RECURSE LIB_FILES "lib/*.cpp" "lib/*.hpp" "lib/*.h")
add_executable(MineWebClient ${SOURCE_FILES} ${LIB_FILES})
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Oz -fsanitize=undefined -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread -Oz -flto -fno-exceptions -fno-rtti")
target_link_options(MineWebClient PRIVATE
"SHELL:--shell-file ${CMAKE_SOURCE_DIR}/src/payload.html"
"SHELL:-s USE_WEBGL2=1"
"SHELL:-s MIN_WEBGL_VERSION=2"
"SHELL:-s MAX_WEBGL_VERSION=2"
"SHELL:-s WASM=1"
"SHELL:-s ALLOW_MEMORY_GROWTH=1"
"SHELL:-s EXPORTED_RUNTIME_METHODS=['ccall','cwrap']"
"SHELL:-s NO_EXIT_RUNTIME=1"
"SHELL:-s ASSERTIONS=1"
"SHELL:-s USE_GLFW=3"
"SHELL:-s USE_ZLIB=1"
"SHELL:-s STB_IMAGE=1"
"SHELL:-s FORCE_FILESYSTEM=1"
"SHELL:-s USE_PTHREADS=1"
"SHELL:-s ENVIRONMENT=web,worker"
"SHELL:-s PTHREAD_POOL_SIZE=4"
"SHELL:-s STACK_SIZE=16777216"
"SHELL:-s INITIAL_MEMORY=134217728"
"SHELL:-s EXPORTED_FUNCTIONS=['_main','_load_world','_input_char','_load_mod','_link_address']"
"SHELL:-s EXPORTED_RUNTIME_METHODS=['ccall']"
"SHELL:--use-port=contrib.lua"
"SHELL:--preload-file ${CMAKE_SOURCE_DIR}/assets@/assets"
# "SHELL:-s NO_DISABLE_EXCEPTION_CATCHING"
)
target_include_directories(MineWebClient PRIVATE
${EMSCRIPTEN_ROOT_PATH}/cache/sysroot/include
)
add_subdirectory("D:/MineWeb/MineWebServer"
"${CMAKE_BINARY_DIR}/server-build")
target_link_libraries(MineWebClient PRIVATE MineWebServer)
target_include_directories(MineWebClient PRIVATE "D:/MineWeb/MineWebServer")
target_link_libraries(MineWebClient PRIVATE
"-lGL"
"-lhtml5"
"-lwebsocket.js"
)