|
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 | 57 | subprocess.call(command, shell=True) |
135 | 58 | subprocess.call('doxygen {0}/build/docs/doxygen.cfg'.format(CPPINTEROP_ROOT), shell=True) |
136 | 59 | 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