Skip to content

Commit 7a38391

Browse files
mcbartonvgvassilev
andcommitted
Modify cmake config to allow xeus-cpp build
Co-Authored-By: Vassil Vassilev <[email protected]>
1 parent 1334558 commit 7a38391

File tree

3 files changed

+45
-9
lines changed

3 files changed

+45
-9
lines changed

.github/workflows/ci.yml

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1233,7 +1233,7 @@ jobs:
12331233
-DCling_DIR=$LLVM_BUILD_DIR/tools/cling \
12341234
-DLLVM_DIR=$LLVM_BUILD_DIR/lib/cmake/llvm \
12351235
-DClang_DIR=$LLVM_BUILD_DIR/lib/cmake/clang \
1236-
-DBUILD_SHARED_LIBS=ON \
1236+
-DBUILD_SHARED_LIBS=OFF \
12371237
-DCODE_COVERAGE=${{ env.CODE_COVERAGE }} \
12381238
-DCMAKE_INSTALL_PREFIX=$PREFIX \
12391239
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \
@@ -1265,3 +1265,32 @@ jobs:
12651265
echo "CPPINTEROP_DIR=$CPPINTEROP_DIR" >> $GITHUB_ENV
12661266
echo "LLVM_BUILD_DIR=$LLVM_BUILD_DIR" >> $GITHUB_ENV
12671267
echo "CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH" >> $GITHUB_ENV
1268+
echo "PREFIX=$PREFIX" >> $GITHUB_ENV
1269+
1270+
- name: Build xeus-cpp
1271+
shell: bash -l {0}
1272+
run: |
1273+
emsdk activate 3.1.45
1274+
source $CONDA_EMSDK_DIR/emsdk_env.sh
1275+
micromamba activate CppInterOp-wasm
1276+
git clone https://github.com/alexander-penev/xeus-cpp.git
1277+
cd ./xeus-cpp
1278+
git checkout MergeXeusClangRepl
1279+
1280+
mkdir build
1281+
pushd build
1282+
1283+
export EMPACK_PREFIX=$MAMBA_ROOT_PREFIX/envs/CppInterOp-wasm-build
1284+
1285+
export CMAKE_PREFIX_PATH=${{ env.PREFIX }}
1286+
export CMAKE_SYSTEM_PREFIX_PATH=${{ env.PREFIX }}
1287+
1288+
emcmake cmake \
1289+
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
1290+
-DCMAKE_PREFIX_PATH=${{ env.PREFIX }} \
1291+
-DCMAKE_INSTALL_PREFIX=${{ env.PREFIX }} \
1292+
-DXEUS_CPP_EMSCRIPTEN_WASM_BUILD=ON \
1293+
-DCMAKE_FIND_ROOT_PATH_MODE_PACKAGE=ON \
1294+
-DCppInterOp_DIR="${{ env.CPPINTEROP_BUILD_DIR }}/lib/cmake/CppInterOp" \
1295+
..
1296+
EMCC_CFLAGS='-sERROR_ON_UNDEFINED_SYMBOLS=0' emmake make -j ${{ env.ncpus }}

cmake/CppInterOp/CppInterOpConfig.cmake.in

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,19 +10,20 @@ get_filename_component(CPPINTEROP_INSTALL_PREFIX "${CPPINTEROP_INSTALL_PREFIX}"
1010
include(CMakeSystemSpecificInformation)
1111

1212
### build/install workaround
13+
if (BUILD_SHARED_LIBS)
14+
set(__lib_suffix ${CMAKE_SHARED_LIBRARY_SUFFIX})
15+
set(__lib_prefix ${CMAKE_SHARED_LIBRARY_PREFIX})
16+
else()
17+
set(__lib_suffix ${CMAKE_STATIC_LIBRARY_SUFFIX})
18+
set(__lib_prefix ${CMAKE_STATIC_LIBRARY_PREFIX})
19+
endif(BUILD_SHARED_LIBS)
1320

1421
if (IS_DIRECTORY "${CPPINTEROP_INSTALL_PREFIX}/include")
1522
set(_include "${CPPINTEROP_INSTALL_PREFIX}/include")
16-
set(_libs "${CPPINTEROP_INSTALL_PREFIX}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}clangCppInterOp${CMAKE_SHARED_LIBRARY_SUFFIX}")
23+
set(_libs "${CPPINTEROP_INSTALL_PREFIX}/lib/${__lib_prefix}clangCppInterOp${__lib_suffix}")
1724
else()
1825
set(_include "@CMAKE_CURRENT_SOURCE_DIR@/include")
19-
set(_libs "@CMAKE_CURRENT_BINARY_DIR@/lib/${CMAKE_SHARED_LIBRARY_PREFIX}clangCppInterOp${CMAKE_SHARED_LIBRARY_SUFFIX}")
20-
endif()
21-
22-
if (IS_DIRECTORY "${CPPINTEROP_INSTALL_PREFIX}/lib/cmake/CppInterOp")
23-
set(_cmake "${CPPINTEROP_INSTALL_PREFIX}/lib/cmake/CppInterOp")
24-
else()
25-
set(_cmake "@CMAKE_CURRENT_SOURCE_DIR@/cmake/CppInterOp")
26+
set(_libs "@CMAKE_CURRENT_BINARY_DIR@/lib/${__lib_prefix}clangCppInterOp${__lib_suffix}")
2627
endif()
2728

2829
###

environment-wasm.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,9 @@ channels:
33
- https://repo.mamba.pm/emscripten-forge
44
dependencies:
55
- zlib
6+
- nlohmann_json
7+
- xeus-lite
8+
- xeus >=3.0.5,<4.0
9+
- xtl >=0.7,<0.8
10+
- cpp-argparse
11+
- pugixml

0 commit comments

Comments
 (0)