Mercurial > hg > orthanc-stone
comparison Applications/StoneWebViewer/WebAssembly/CMakeLists.txt @ 1549:a48ae10857b1
packaging of the WebAssembly module
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 13 Aug 2020 15:56:01 +0200 |
parents | 65eccce95882 |
children | b894072b9e2f |
comparison
equal
deleted
inserted
replaced
1548:65eccce95882 | 1549:a48ae10857b1 |
---|---|
9 # --------------------------------------------------------------- | 9 # --------------------------------------------------------------- |
10 set(USE_WASM ON CACHE BOOL "") | 10 set(USE_WASM ON CACHE BOOL "") |
11 | 11 |
12 set(EMSCRIPTEN_SET_LLVM_WASM_BACKEND ON CACHE BOOL "") | 12 set(EMSCRIPTEN_SET_LLVM_WASM_BACKEND ON CACHE BOOL "") |
13 | 13 |
14 set(WASM_FLAGS "-s WASM=1 -s FETCH=1") | 14 set(WASM_FLAGS "${WASM_FLAGS} -s WASM=1 -s FETCH=1") |
15 if (CMAKE_BUILD_TYPE STREQUAL "Debug") | 15 if (CMAKE_BUILD_TYPE STREQUAL "Debug") |
16 set(WASM_FLAGS "${WASM_FLAGS} -s SAFE_HEAP=1") | 16 set(WASM_FLAGS "${WASM_FLAGS} -s SAFE_HEAP=1") |
17 endif() | 17 endif() |
18 | 18 |
19 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${WASM_FLAGS}") | 19 set(WASM_LINKER_FLAGS "${WASM_LINKER_FLAGS} -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]'") |
20 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${WASM_FLAGS}") | 20 set(WASM_LINKER_FLAGS "${WASM_LINKER_FLAGS} -s ERROR_ON_UNDEFINED_SYMBOLS=1") |
21 | 21 set(WASM_LINKER_FLAGS "${WASM_LINKER_FLAGS} -s ASSERTIONS=1 -s DISABLE_EXCEPTION_CATCHING=0") |
22 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]'") | 22 set(WASM_LINKER_FLAGS "${WASM_LINKER_FLAGS} -s ALLOW_MEMORY_GROWTH=1 -s TOTAL_MEMORY=268435456") # 256MB + resize |
23 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s ERROR_ON_UNDEFINED_SYMBOLS=1") | 23 set(WASM_LINKER_FLAGS "${WASM_LINKER_FLAGS} -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1") |
24 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s ASSERTIONS=1 -s DISABLE_EXCEPTION_CATCHING=0") | |
25 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s ALLOW_MEMORY_GROWTH=1 -s TOTAL_MEMORY=268435456") # 256MB + resize | |
26 set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -s DISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1") | |
27 add_definitions( | 24 add_definitions( |
28 -DDISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 | 25 -DDISABLE_DEPRECATED_FIND_EVENT_TARGET_BEHAVIOR=1 |
29 ) | 26 ) |
27 | |
30 | 28 |
31 # Stone of Orthanc configuration | 29 # Stone of Orthanc configuration |
32 # --------------------------------------------------------------- | 30 # --------------------------------------------------------------- |
33 set(ALLOW_DOWNLOADS ON) | 31 set(ALLOW_DOWNLOADS ON) |
34 | 32 |
44 | 42 |
45 # this will set up the build system for Stone of Orthanc and will | 43 # this will set up the build system for Stone of Orthanc and will |
46 # populate the ORTHANC_STONE_SOURCES CMake variable | 44 # populate the ORTHANC_STONE_SOURCES CMake variable |
47 include(${ORTHANC_STONE_ROOT}/Resources/CMake/OrthancStoneConfiguration.cmake) | 45 include(${ORTHANC_STONE_ROOT}/Resources/CMake/OrthancStoneConfiguration.cmake) |
48 | 46 |
47 include_directories( | |
48 ${CMAKE_SOURCE_DIR}/../../../OrthancStone/Sources/ | |
49 ) | |
50 | |
49 if (CMAKE_BUILD_TYPE MATCHES Debug) | 51 if (CMAKE_BUILD_TYPE MATCHES Debug) |
50 # specific flags go here | 52 # specific flags go here |
51 elseif (CMAKE_BUILD_TYPE MATCHES RelWithDebInfo) | 53 elseif (CMAKE_BUILD_TYPE MATCHES RelWithDebInfo) |
52 # specific flags go here | 54 # specific flags go here |
53 elseif (CMAKE_BUILD_TYPE MATCHES Release) | 55 elseif (CMAKE_BUILD_TYPE MATCHES Release) |
55 else() | 57 else() |
56 message(FATAL_ERROR "CMAKE_BUILD_TYPE must match either Debug, RelWithDebInfo or Release" ) | 58 message(FATAL_ERROR "CMAKE_BUILD_TYPE must match either Debug, RelWithDebInfo or Release" ) |
57 endif() | 59 endif() |
58 | 60 |
59 ################################################################################ | 61 ################################################################################ |
60 | |
61 project(StoneWebViewer) | |
62 | 62 |
63 | 63 |
64 # Create the wrapper to call C++ from JavaScript | 64 # Create the wrapper to call C++ from JavaScript |
65 # --------------------------------------------------------------- | 65 # --------------------------------------------------------------- |
66 | 66 |
88 | 88 |
89 add_executable(StoneWebViewer | 89 add_executable(StoneWebViewer |
90 ${ORTHANC_STONE_SOURCES} | 90 ${ORTHANC_STONE_SOURCES} |
91 ${AUTOGENERATED_SOURCES} | 91 ${AUTOGENERATED_SOURCES} |
92 StoneWebViewer.cpp | 92 StoneWebViewer.cpp |
93 ) | |
94 | |
95 set_target_properties(StoneWebViewer | |
96 PROPERTIES | |
97 COMPILE_FLAGS "${WASM_FLAGS}" | |
98 LINK_FLAGS "${WASM_LINKER_FLAGS}" | |
93 ) | 99 ) |
94 | 100 |
95 # Make sure to have the wrapper generated | 101 # Make sure to have the wrapper generated |
96 add_dependencies(StoneWebViewer StoneWrapper) | 102 add_dependencies(StoneWebViewer StoneWrapper) |
97 | 103 |