From 8660b9d3d09c74a3d90b0d9ed3e83ca3fad58f68 Mon Sep 17 00:00:00 2001 From: Matt Madison Date: Mon, 13 Dec 2021 13:12:44 -0800 Subject: [PATCH] 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 --- recipes-devtools/cuda/cuda-environment/cuda_toolchain.cmake | 1 + .../cuda/cuda-target-environment/cuda_target.sh.in | 1 + recipes-devtools/cuda/cuda-target-environment_1.0.bb | 5 ++++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/recipes-devtools/cuda/cuda-environment/cuda_toolchain.cmake b/recipes-devtools/cuda/cuda-environment/cuda_toolchain.cmake index dc1d7d5c..5730bfcb 100644 --- a/recipes-devtools/cuda/cuda-environment/cuda_toolchain.cmake +++ b/recipes-devtools/cuda/cuda-environment/cuda_toolchain.cmake @@ -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") diff --git a/recipes-devtools/cuda/cuda-target-environment/cuda_target.sh.in b/recipes-devtools/cuda/cuda-target-environment/cuda_target.sh.in index 1efc8c2d..e3ce3612 100644 --- a/recipes-devtools/cuda/cuda-target-environment/cuda_target.sh.in +++ b/recipes-devtools/cuda/cuda-target-environment/cuda_target.sh.in @@ -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@" diff --git a/recipes-devtools/cuda/cuda-target-environment_1.0.bb b/recipes-devtools/cuda/cuda-target-environment_1.0.bb index c55d961d..a4989e0c 100644 --- a/recipes-devtools/cuda/cuda-target-environment_1.0.bb +++ b/recipes-devtools/cuda/cuda-target-environment_1.0.bb @@ -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 }