Skip to content

Commit 1d067bd

Browse files
brycelelbachalliepiper
authored andcommitted
Update the new multiconfig CMake setup to support Feta:
* Correctly set C++ langauge dialects for Feta. * Pass warning flags to Feta. Reviewed-by: Allison Vacanti <[email protected]>
1 parent de1c6b1 commit 1d067bd

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

CMakeLists.txt

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,44 @@ if (NOT "Feta" STREQUAL "${CMAKE_CUDA_COMPILER_ID}")
7474
set(CMAKE_CUDA_HOST_COMPILER "${CMAKE_CXX_COMPILER}")
7575
endif ()
7676

77+
# Temporary hacks to make Feta work; this requires you to define
78+
# `CMAKE_CUDA_COMPILER_ID=Feta` and `CMAKE_CUDA_COMPILER_FORCED`.
79+
if ("Feta" STREQUAL "${CMAKE_CUDA_COMPILER_ID}")
80+
cmake_minimum_required(VERSION 3.17)
81+
82+
set(CMAKE_CUDA_STANDARD_DEFAULT 03)
83+
84+
set(CMAKE_CUDA03_STANDARD_COMPILE_OPTION "-std=c++03")
85+
set(CMAKE_CUDA03_EXTENSION_COMPILE_OPTION "-std=c++03")
86+
set(CMAKE_CUDA03_STANDARD__HAS_FULL_SUPPORT TRUE)
87+
set_property(GLOBAL PROPERTY CMAKE_CUDA03_KNOWN_FEATURES)
88+
89+
set(CMAKE_CUDA11_STANDARD_COMPILE_OPTION "-std=c++11")
90+
set(CMAKE_CUDA11_EXTENSION_COMPILE_OPTION "-std=c++11")
91+
set(CMAKE_CUDA11_STANDARD__HAS_FULL_SUPPORT TRUE)
92+
set_property(GLOBAL PROPERTY CMAKE_CUDA11_KNOWN_FEATURES)
93+
94+
set(CMAKE_CUDA14_STANDARD_COMPILE_OPTION "-std=c++14")
95+
set(CMAKE_CUDA14_EXTENSION_COMPILE_OPTION "-std=c++14")
96+
set(CMAKE_CUDA14_STANDARD__HAS_FULL_SUPPORT TRUE)
97+
set_property(GLOBAL PROPERTY CMAKE_CUDA14_KNOWN_FEATURES)
98+
99+
set(CMAKE_CUDA17_STANDARD_COMPILE_OPTION "-std=c++17")
100+
set(CMAKE_CUDA17_EXTENSION_COMPILE_OPTION "-std=c++17")
101+
set(CMAKE_CUDA17_STANDARD__HAS_FULL_SUPPORT TRUE)
102+
set_property(GLOBAL PROPERTY CMAKE_CUDA17_KNOWN_FEATURES)
103+
104+
cmake_record_cuda_compile_features()
105+
106+
set(CMAKE_CUDA_COMPILE_FEATURES
107+
${CMAKE_CUDA03_COMPILE_FEATURES}
108+
${CMAKE_CUDA11_COMPILE_FEATURES}
109+
${CMAKE_CUDA14_COMPILE_FEATURES}
110+
${CMAKE_CUDA17_COMPILE_FEATURES}
111+
${CMAKE_CUDA20_COMPILE_FEATURES}
112+
)
113+
endif ()
114+
77115
thrust_configure_multiconfig()
78116
thrust_build_target_list()
79117

cmake/ThrustBuildCompilerTargets.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ function(thrust_build_compiler_targets)
116116
foreach (cxx_option IN LISTS cxx_compile_options)
117117
target_compile_options(thrust.compiler_interface INTERFACE
118118
$<$<COMPILE_LANGUAGE:CXX>:${cxx_option}>
119+
$<$<AND:$<COMPILE_LANGUAGE:CUDA>,$<CUDA_COMPILER_ID:Feta>>:${cxx_option}>
119120
# Only use -Xcompiler with NVCC, not Feta.
120121
#
121122
# CMake can't split genexs, so this can't be formatted better :(

0 commit comments

Comments
 (0)