cuda-target-environment: inherit cuda-gcc, update CMake support

* The CXX_FOR_CUDA variable is used to set CUDAHOSTCXX
* CMAKE_CUDA_ARCHITECTURES support is added

Signed-off-by: Matt Madison <matt@madison.systems>
This commit is contained in:
Matt Madison
2021-12-13 13:12:44 -08:00
committed by Matt Madison
parent 3fd8495094
commit 8660b9d3d0
3 changed files with 6 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
set(CUDA_TOOLKIT_ROOT_DIR "$ENV{OECORE_NATIVE_SYSROOT}/usr/local/cuda-$ENV{CUDA_VERSION}" CACHE PATH "" FORCE)
set(CUDA_TOOLKIT_TARGET_DIR "${CMAKE_SYSROOT}/usr/local/cuda-$ENV{CUDA_VERSION}" CACHE PATH "" FORCE)
set(CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES "${CUDA_TOOLKIT_ROOT_DIR}/include" "${CUDA_TOOLKIT_TARGET_DIR}/include" CACHE STRING "" FORCE)
set(CMAKE_CUDA_ARCHITECTURES "$ENV{CUDA_ARCHITECTURES}")
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SYSROOT}/usr/share/cmake/Modules")

View File

@@ -1,3 +1,4 @@
export CUDA_NVCC_ARCH_FLAGS="@CUDA_NVCC_ARCH_FLAGS@"
export CUDA_ARCHITECTURES="@CUDA_ARCHITECTURES@"
export CUDACXXARCHFLAGS="@ARCHFLAGS@"
export CUDAHOSTCXX="@COMPILER_CMD@"

View File

@@ -6,9 +6,11 @@ SRC_URI = "file://cuda_target.sh.in"
COMPATIBLE_MACHINE = "(cuda)"
inherit cuda-gcc
S = "${WORKDIR}"
COMPILER_CMD = "${@d.getVar('CXX').split()[0]}"
COMPILER_CMD = "${@d.getVar('CXX_FOR_CUDA').split()[0]}"
def arch_flags(d):
archflags = d.getVar('TARGET_CC_ARCH')
@@ -19,6 +21,7 @@ def arch_flags(d):
do_compile() {
sed -e"s!@CUDA_NVCC_ARCH_FLAGS@!${CUDA_NVCC_ARCH_FLAGS}!" \
-e"s!@ARCHFLAGS@!${@arch_flags(d)}!" \
-e"s!@CUDA_ARCHITECTURES@!${CUDA_ARCHITECTURE}!" \
-e"s!@COMPILER_CMD@!${COMPILER_CMD}!" ${S}/cuda_target.sh.in > ${B}/cuda_target.sh
}