|
53 | 53 | command = 'mkdir {0}/build; cd {0}/build; cmake ../ -DClang_DIR=/usr/lib/llvm-16/build/lib/cmake/clang\
|
54 | 54 | -DLLVM_DIR=/usr/lib/llvm-16/build/lib/cmake/llvm -DCPPINTEROP_ENABLE_DOXYGEN=ON\
|
55 | 55 | -DCPPINTEROP_INCLUDE_DOCS=ON'.format(CPPINTEROP_ROOT)
|
| 56 | +command_emscripten = 'git clone https://github.com/emscripten-core/emsdk.git {0}/emsdk;\ |
| 57 | + {0}/emsdk/emsdk install 3.1.73;\ |
| 58 | + {0}/emsdk/emsdk activate 3.1.73;\ |
| 59 | + cd {0}/emsdk/;\ |
| 60 | + export PATH="{0}/emsdk/upstream/emscripten:$PATH";\ |
| 61 | + export SYSROOT_PATH={0}/emsdk/upstream/emscripten/cache/sysroot;\ |
| 62 | + git clone --depth=1 --branch release/20.x https://github.com/llvm/llvm-project.git {0}/llvm-project;\ |
| 63 | + cd {0}/llvm-project;\ |
| 64 | + git apply -v {0}/CppInterOp/patches/llvm/emscripten-clang20-*.patch\ |
| 65 | + mkdir {0}/llvm-project/native_build;\ |
| 66 | + cd {0}/llvm-project/native_build;\ |
| 67 | + cmake -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=host -DCMAKE_BUILD_TYPE=Release {0}/llvm-project/llvm;\ |
| 68 | + cmake --build . --target llvm-tblgen clang-tblgen --parallel $(nproc --all);\ |
| 69 | + export NATIVE_DIR={0}/llvm-project/native_build/bin/;\ |
| 70 | + mkdir {0}/llvm-project/build;\ |
| 71 | + cd {0}/llvm-project/build;\ |
| 72 | + emcmake cmake -DCMAKE_BUILD_TYPE=Release \ |
| 73 | + -DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \ |
| 74 | + -DLLVM_ENABLE_ASSERTIONS=ON \ |
| 75 | + -DLLVM_TARGETS_TO_BUILD="WebAssembly" \ |
| 76 | + -DLLVM_ENABLE_LIBEDIT=OFF \ |
| 77 | + -DLLVM_ENABLE_PROJECTS="clang;lld" \ |
| 78 | + -DLLVM_ENABLE_ZSTD=OFF \ |
| 79 | + -DLLVM_ENABLE_LIBXML2=OFF \ |
| 80 | + -DCLANG_ENABLE_STATIC_ANALYZER=OFF \ |
| 81 | + -DCLANG_ENABLE_ARCMT=OFF \ |
| 82 | + -DCLANG_ENABLE_BOOTSTRAP=OFF \ |
| 83 | + -DCMAKE_CXX_FLAGS="-Dwait4=__syscall_wait4" \ |
| 84 | + -DLLVM_INCLUDE_BENCHMARKS=OFF \ |
| 85 | + -DLLVM_INCLUDE_EXAMPLES=OFF \ |
| 86 | + -DLLVM_INCLUDE_TESTS=OFF \ |
| 87 | + -DLLVM_ENABLE_THREADS=OFF \ |
| 88 | + -DLLVM_BUILD_TOOLS=OFF \ |
| 89 | + -DLLVM_ENABLE_LIBPFM=OFF \ |
| 90 | + -DCLANG_BUILD_TOOLS=OFF \ |
| 91 | + -DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \ |
| 92 | + {0}/llvm-project/llvm;\ |
| 93 | + emmake make libclang -j $(nproc --all);\ |
| 94 | + emmake make clangInterpreter clangStaticAnalyzerCore -j $(nproc --all);\ |
| 95 | + emmake make lldWasm -j $(nproc --all);\ |
| 96 | + export LLVM_BUILD_DIR={0}/llvm-project/build;\ |
| 97 | + mkdir {0}/build_native;\ |
| 98 | + cd {0};\ |
| 99 | + micromamba create -f environment-wasm.yml --platform=emscripten-wasm32;\ |
| 100 | + micromamba activate CppInterOp-wasm;\ |
| 101 | + export PREFIX=$CONDA_PREFIX;\ |
| 102 | + export CMAKE_PREFIX_PATH=$PREFIX;\ |
| 103 | + export CMAKE_SYSTEM_PREFIX_PATH=$PREFIX;\ |
| 104 | + cd {0}/build_native;\ |
| 105 | + emcmake cmake -DCMAKE_BUILD_TYPE=Release \ |
| 106 | + -DLLVM_DIR=$LLVM_BUILD_DIR/lib/cmake/llvm \ |
| 107 | + -DLLD_DIR=$LLVM_BUILD_DIR/lib/cmake/lld \ |
| 108 | + -DClang_DIR=$LLVM_BUILD_DIR/lib/cmake/clang \ |
| 109 | + -DBUILD_SHARED_LIBS=ON \ |
| 110 | + -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ |
| 111 | + -DCMAKE_INSTALL_PREFIX=$PREFIX \ |
| 112 | + -DSYSROOT_PATH=$SYSROOT_PATH \ |
| 113 | + {0};\ |
| 114 | + emake make -j $(nproc --all) install;\ |
| 115 | + cd {0};\ |
| 116 | + git clone --depth=1 https://github.com/compiler-research/xeus-cpp.git {0}/xeus-cpp;\ |
| 117 | + mkdir {0}/xeus-cpp/build;\ |
| 118 | + cd {0}/xeus-cpp/build;\ |
| 119 | + emcmake cmake \ |
| 120 | + -DCMAKE_BUILD_TYPE=Release \ |
| 121 | + -DCMAKE_PREFIX_PATH=$PREFIX \ |
| 122 | + -DCMAKE_INSTALL_PREFIX=$PREFIX \ |
| 123 | + -DXEUS_CPP_EMSCRIPTEN_WASM_BUILD=ON \ |
| 124 | + -DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \ |
| 125 | + -DXEUS_CPP_RESOURCE_DIR=$LLVM_BUILD_DIR/lib/clang/$LLVM_VERSION \ |
| 126 | + -DSYSROOT_PATH=$SYSROOT_PATH \ |
| 127 | + {0}/xeus-cpp/;\ |
| 128 | + emmake make -j $(nproc --all) install;\ |
| 129 | + cd {0};\ |
| 130 | + micromamba create -n xeus-lite-host jupyterlite-core -c conda-forge;\ |
| 131 | + micromamba activate xeus-lite-host;\ |
| 132 | + python -m pip install jupyterlite-xeus jupyter_server;\ |
| 133 | + jupyter lite build --XeusAddon.prefix=$PREFIX --contents xeus-cpp/notebooks/xeus-cpp-lite-demo.ipynb --contents notebooks/smallpt.ipynb --contents notebooks/images/marie.png --contents notebooks/audio/audio.wav --output-dir $READTHEDOCS_OUTPUT/html/xeus-cpp; '.format(CPPINTEROP_ROOT) |
56 | 134 | subprocess.call(command, shell=True)
|
57 | 135 | subprocess.call('doxygen {0}/build/docs/doxygen.cfg'.format(CPPINTEROP_ROOT), shell=True)
|
| 136 | +subprocess.call('doxygen {0}/build/docs/doxygen.cfg'.format(CPPINTEROP_ROOT), shell=True) |
| 137 | +subprocess.call(command_emscripten.format(CPPINTEROP_ROOT), shell=True) |
0 commit comments