Skip to content

Commit

Permalink
Add deprecation notice to passing "" to CMAKE_CUDA_ARCHITECTURES
Browse files Browse the repository at this point in the history
  • Loading branch information
robertmaynard committed Jan 20, 2023
1 parent 5c6e4d4 commit 9d1581d
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 0 deletions.
7 changes: 7 additions & 0 deletions rapids-cmake/cuda/detail/architectures_policy.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
2 changes: 2 additions & 0 deletions rapids-cmake/cuda/init_architectures.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
3 changes: 3 additions & 0 deletions testing/cuda/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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}")
Original file line number Diff line number Diff line change
@@ -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")

0 comments on commit 9d1581d

Please sign in to comment.