Skip to content

Commit

Permalink
Use c++ for vcpkg when CXX is nvc++
Browse files Browse the repository at this point in the history
  • Loading branch information
bernhardmgruber committed Aug 8, 2023
1 parent 48a0fa1 commit ebedd54
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -292,9 +292,26 @@ jobs:
fi
echo "CUDACXX is here: $CUDACXX"
CMAKE_EXTRA_ARGS=
CXX_FLAGS=${{ matrix.cxx_flags }}
if [ ${{ matrix.add_nvcpp_repo }} ]; then
# cmake (in some versions) passes some flags that nvc++ does not understand
CMAKE_EXTRA_ARGS='-DCMAKE_CXX_FLAGS=-noswitcherror'
# boost fails to compile with nvc++ during vcpkg install, so retarget to system c++ via triplet/toolchain
echo "
set(VCPKG_TARGET_ARCHITECTURE x64)
set(VCPKG_CRT_LINKAGE dynamic)
set(VCPKG_LIBRARY_LINKAGE static)
set(VCPKG_CMAKE_SYSTEM_NAME Linux)
set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE $(pwd)/toolchain.cmake)
" >> triplet.cmake
echo 'set(CMAKE_CXX_COMPILER c++ CACHE STRING "")' >> toolchain.cmake
CMAKE_EXTRA_ARGS='-DVCPKG_DEFAULT_TRIPLET=triplet -DVCPKG_OVERLAY_TRIPLETS=$(pwd)' VCPKG_DEFAULT_TRIPLET=triplet
CXX_FLAGS+=" -noswitcherror"
fi
Expand All @@ -308,9 +325,11 @@ jobs:
-Dalpaka_CXX_STANDARD=${{ matrix.cxx_std || '17' }} \
-DCMAKE_CUDA_COMPILER=$CUDACXX \
-DCMAKE_CUDA_HOST_COMPILER=$CXX \
-DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake
-DCMAKE_CXX_FLAGS="$CXX_FLAGS" \
-DCMAKE_CUDA_FLAGS="${{ matrix.cuda_flags }}" \
-DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake
-DCMAKE_TOOLCHAIN_FILE=$VCPKG_INSTALLATION_ROOT/scripts/buildsystems/vcpkg.cmake \
$CMAKE_EXTRA_ARGS
- name: build tests + examples
run: |
if [ ${{ matrix.add_oneapi_repo }} ]; then source /opt/intel/oneapi/setvars.sh; fi
Expand Down

0 comments on commit ebedd54

Please sign in to comment.