diff --git a/rapids-cmake/cuda/detail/architectures_policy.cmake b/rapids-cmake/cuda/detail/architectures_policy.cmake index 5fdc5b2e3..063b7a933 100644 --- a/rapids-cmake/cuda/detail/architectures_policy.cmake +++ b/rapids-cmake/cuda/detail/architectures_policy.cmake @@ -50,6 +50,13 @@ function(rapids_cuda_architectures_policy called_from mode_variable) ) endif() endif() + if(value STREQUAL "") + set(new_value "NATIVE") + rapids_cmake_policy(DEPRECATED_IN 23.02 + REMOVED_IN 23.06 + MESSAGE "Usage of `""` as value for `CMAKE_CUDA_ARCHITECTURES` has been deprecated, use `NATIVE` instead." + ) + endif() set(${mode_variable} ${new_value} PARENT_SCOPE) endfunction() diff --git a/rapids-cmake/cuda/init_architectures.cmake b/rapids-cmake/cuda/init_architectures.cmake index 9be27a520..75ddacd77 100644 --- a/rapids-cmake/cuda/init_architectures.cmake +++ b/rapids-cmake/cuda/init_architectures.cmake @@ -84,6 +84,8 @@ function(rapids_cuda_init_architectures project_name) rapids_cuda_architectures_policy(FROM_INIT cuda_arch_mode) elseif(CMAKE_CUDA_ARCHITECTURES STREQUAL "" OR CMAKE_CUDA_ARCHITECTURES STREQUAL "NATIVE") set(cuda_arch_mode "NATIVE") + set(deprecated_cuda_arch_mode "") + rapids_cuda_architectures_policy(FROM_INIT deprecated_cuda_arch_mode) elseif(NOT (DEFINED ENV{CUDAARCHS} OR DEFINED CMAKE_CUDA_ARCHITECTURES)) set(cuda_arch_mode "RAPIDS") endif() diff --git a/testing/cuda/CMakeLists.txt b/testing/cuda/CMakeLists.txt index 1cb680070..4540a319b 100644 --- a/testing/cuda/CMakeLists.txt +++ b/testing/cuda/CMakeLists.txt @@ -45,3 +45,6 @@ set(deprecated_message "rapids-cmake policy [deprecated=23.02 removed=23.06]: Us add_cmake_config_test( init_arch-all-via-env-deprecated.cmake SHOULD_FAIL "${deprecated_message}") add_cmake_config_test( init_arch-all-deprecated.cmake SHOULD_FAIL "${deprecated_message}") add_cmake_config_test( set_arch-all-deprecated.cmake SHOULD_FAIL "${deprecated_message}") + +set(deprecated_message "rapids-cmake policy [deprecated=23.02 removed=23.06]: Usage of `""`") +add_cmake_config_test( init_arch-native-via-empty-str-deprecated SHOULD_FAIL "${deprecated_message}") diff --git a/testing/cuda/init_arch-native-via-empty-str-deprecated/CMakeLists.txt b/testing/cuda/init_arch-native-via-empty-str-deprecated/CMakeLists.txt new file mode 100644 index 000000000..7ac77b07a --- /dev/null +++ b/testing/cuda/init_arch-native-via-empty-str-deprecated/CMakeLists.txt @@ -0,0 +1,34 @@ +#============================================================================= +# Copyright (c) 2021, NVIDIA CORPORATION. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +#============================================================================= +include(${rapids-cmake-dir}/cuda/init_architectures.cmake) + +cmake_minimum_required(VERSION 3.23.1) + +set(CMAKE_CUDA_ARCHITECTURES "") +set(CMAKE_ERROR_DEPRECATED ON) + +rapids_cuda_init_architectures(rapids-project) +project(rapids-project LANGUAGES CUDA) + +if(NOT DEFINED CMAKE_CUDA_ARCHITECTURES) + message(FATAL_ERROR "rapids_cuda_init_architectures didn't init CUDA_ARCHITECTURES") +endif() + +if(CMAKE_CUDA_ARCHITECTURES STREQUAL "") + message(FATAL_ERROR "rapids_cuda_init_architectures didn't init CUDA_ARCHITECTURES") +endif() + +include("${rapids-cmake-testing-dir}/cuda/validate-cuda-native.cmake")