Mercurial > hg > orthanc-stone
comparison Applications/StoneWebViewer/WebAssembly/CMakeLists.txt @ 1912:7947565ed2b7
use Python 3 for clang if available
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sun, 20 Mar 2022 17:53:12 +0100 |
parents | 1cfd602de69d |
children | 9c52c0376ad7 |
comparison
equal
deleted
inserted
replaced
1911:898774b4e02d | 1912:7947565ed2b7 |
---|---|
29 | 29 |
30 # Configuration of the Emscripten compiler for WebAssembly target | 30 # Configuration of the Emscripten compiler for WebAssembly target |
31 # --------------------------------------------------------------- | 31 # --------------------------------------------------------------- |
32 set(USE_WASM ON CACHE BOOL "") | 32 set(USE_WASM ON CACHE BOOL "") |
33 | 33 |
34 set(WASM_FLAGS "${WASM_FLAGS} -s WASM=1 -s FETCH=1 -s ASSERTIONS=1 -s DISABLE_EXCEPTION_CATCHING=0") | 34 # "-Wno-unused-command-line-argument" is used to avoid annoying |
35 # warnings about setting WASM, FETCH and ASSERTIONS, which was | |
36 # required for earlier versions of emsdk: | |
37 # https://groups.google.com/g/emscripten-discuss/c/VX4enWfadUE | |
38 set(WASM_FLAGS "${WASM_FLAGS} -s WASM=1 -s FETCH=1 -s ASSERTIONS=1 -s DISABLE_EXCEPTION_CATCHING=0 -Wno-unused-command-line-argument") | |
39 | |
35 if (CMAKE_BUILD_TYPE STREQUAL "Debug") | 40 if (CMAKE_BUILD_TYPE STREQUAL "Debug") |
36 set(WASM_FLAGS "${WASM_FLAGS} -s SAFE_HEAP=1") | 41 set(WASM_FLAGS "${WASM_FLAGS} -s SAFE_HEAP=1") |
37 endif() | 42 endif() |
38 | 43 |
39 set(WASM_LINKER_FLAGS "${WASM_LINKER_FLAGS} -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]'") | 44 set(WASM_LINKER_FLAGS "${WASM_LINKER_FLAGS} -s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]'") |
94 # --------------------------------------------------------------- | 99 # --------------------------------------------------------------- |
95 | 100 |
96 set(LIBCLANG "libclang-4.0.so.1" CACHE PATH "Version of clang to generate the code model") | 101 set(LIBCLANG "libclang-4.0.so.1" CACHE PATH "Version of clang to generate the code model") |
97 set(STONE_WRAPPER ${CMAKE_CURRENT_BINARY_DIR}/stone.js) | 102 set(STONE_WRAPPER ${CMAKE_CURRENT_BINARY_DIR}/stone.js) |
98 | 103 |
104 include(FindPython3 OPTIONAL RESULT_VARIABLE HAS_CMAKE_PYTHON3) | |
105 if (HAS_CMAKE_PYTHON3 STREQUAL "NOTFOUND" OR | |
106 NOT Python3_FOUND) | |
107 # CMake <= 3.12 or Python 3 not available: Fallback to Python 2.7 | |
108 set(CLANG_PYTHON_EXECUTABLE ${PYTHON_EXECUTABLE}) | |
109 else() | |
110 set(CLANG_PYTHON_EXECUTABLE ${Python3_EXECUTABLE}) | |
111 endif() | |
112 | |
99 add_custom_command( | 113 add_custom_command( |
100 COMMAND | 114 COMMAND |
101 ${PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/ParseWebAssemblyExports.py --libclang=${LIBCLANG} ${CMAKE_SOURCE_DIR}/StoneWebViewer.cpp > ${STONE_WRAPPER} | 115 ${CLANG_PYTHON_EXECUTABLE} ${CMAKE_SOURCE_DIR}/ParseWebAssemblyExports.py --libclang=${LIBCLANG} ${CMAKE_SOURCE_DIR}/StoneWebViewer.cpp > ${STONE_WRAPPER} |
102 DEPENDS | 116 DEPENDS |
103 ${CMAKE_SOURCE_DIR}/StoneWebViewer.cpp | 117 ${CMAKE_SOURCE_DIR}/StoneWebViewer.cpp |
104 ${CMAKE_SOURCE_DIR}/ParseWebAssemblyExports.py | 118 ${CMAKE_SOURCE_DIR}/ParseWebAssemblyExports.py |
105 OUTPUT | 119 OUTPUT |
106 ${STONE_WRAPPER} | 120 ${STONE_WRAPPER} |