Skip to content

Commit 296185c

Browse files
Read version from VERSION file in CMake (rapidsai#14867)
Rather than hard-coding the RAPIDS version throughout CMake code, have a single CMake module that reads it from `VERSION` and provides it as a variable. Authors: - Kyle Edwards (https://github.com/KyleFromNVIDIA) Approvers: - Bradley Dice (https://github.com/bdice) - Robert Maynard (https://github.com/robertmaynard) - Jason Lowe (https://github.com/jlowe) - Charles Blackmon-Luca (https://github.com/charlesbluca) - Ray Douglass (https://github.com/raydouglass) - GALI PREM SAGAR (https://github.com/galipremsagar) URL: rapidsai#14867
1 parent 6f6e521 commit 296185c

File tree

8 files changed

+48
-51
lines changed

8 files changed

+48
-51
lines changed

ci/release/update-version.sh

-16
Original file line numberDiff line numberDiff line change
@@ -38,28 +38,12 @@ function sed_runner() {
3838
sed -i.bak ''"$1"'' $2 && rm -f ${2}.bak
3939
}
4040

41-
# cpp update
42-
sed_runner 's/'"VERSION ${CURRENT_SHORT_TAG}.*"'/'"VERSION ${NEXT_FULL_TAG}"'/g' cpp/CMakeLists.txt
43-
44-
# Python CMakeLists updates
45-
sed_runner 's/'"cudf_version .*)"'/'"cudf_version ${NEXT_FULL_TAG})"'/g' python/cudf/CMakeLists.txt
46-
sed_runner 's/'"cudf_kafka_version .*)"'/'"cudf_kafka_version ${NEXT_FULL_TAG})"'/g' python/cudf_kafka/CMakeLists.txt
47-
48-
# cpp libcudf_kafka update
49-
sed_runner 's/'"VERSION ${CURRENT_SHORT_TAG}.*"'/'"VERSION ${NEXT_FULL_TAG}"'/g' cpp/libcudf_kafka/CMakeLists.txt
50-
51-
# cpp cudf_jni update
52-
sed_runner 's/'"VERSION ${CURRENT_SHORT_TAG}.*"'/'"VERSION ${NEXT_FULL_TAG}"'/g' java/src/main/native/CMakeLists.txt
53-
5441
# Centralized version file update
5542
echo "${NEXT_FULL_TAG}" > VERSION
5643

5744
# Wheel testing script
5845
sed_runner "s/branch-.*/branch-${NEXT_SHORT_TAG}/g" ci/test_wheel_dask_cudf.sh
5946

60-
# rapids-cmake version
61-
sed_runner 's/'"branch-.*\/RAPIDS.cmake"'/'"branch-${NEXT_SHORT_TAG}\/RAPIDS.cmake"'/g' fetch_rapids.cmake
62-
6347
# cmake-format rapids-cmake definitions
6448
sed_runner 's/'"branch-.*\/cmake-format-rapids-cmake.json"'/'"branch-${NEXT_SHORT_TAG}\/cmake-format-rapids-cmake.json"'/g' ci/check_style.sh
6549

cpp/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
cmake_minimum_required(VERSION 3.26.4 FATAL_ERROR)
1616

17-
include(../fetch_rapids.cmake)
17+
include(../rapids_config.cmake)
1818
include(rapids-cmake)
1919
include(rapids-cpm)
2020
include(rapids-cuda)
@@ -26,7 +26,7 @@ rapids_cuda_init_architectures(CUDF)
2626

2727
project(
2828
CUDF
29-
VERSION 24.04.00
29+
VERSION "${RAPIDS_VERSION}"
3030
LANGUAGES C CXX CUDA
3131
)
3232
if(CMAKE_CUDA_COMPILER_ID STREQUAL "NVIDIA" AND CMAKE_CUDA_COMPILER_VERSION VERSION_LESS 11.5)

cpp/libcudf_kafka/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# =============================================================================
1414
cmake_minimum_required(VERSION 3.26.4 FATAL_ERROR)
1515

16-
include(../../fetch_rapids.cmake)
16+
include(../../rapids_config.cmake)
1717
include(rapids-cmake)
1818
include(rapids-cpm)
1919
include(rapids-cuda)
@@ -22,7 +22,7 @@ include(rapids-find)
2222

2323
project(
2424
CUDF_KAFKA
25-
VERSION 24.04.00
25+
VERSION "${RAPIDS_VERSION}"
2626
LANGUAGES CXX
2727
)
2828

fetch_rapids.cmake

-19
This file was deleted.

java/src/main/native/CMakeLists.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
# =============================================================================
1414
cmake_minimum_required(VERSION 3.26.4 FATAL_ERROR)
1515

16-
include(../../../../fetch_rapids.cmake)
16+
include(../../../../rapids_config.cmake)
1717
include(rapids-cmake)
1818
include(rapids-cuda)
1919
include(rapids-find)
@@ -28,7 +28,7 @@ rapids_cuda_init_architectures(CUDF_JNI)
2828

2929
project(
3030
CUDF_JNI
31-
VERSION 24.04.00
31+
VERSION "${RAPIDS_VERSION}"
3232
LANGUAGES C CXX CUDA
3333
)
3434

python/cudf/CMakeLists.txt

+3-5
Original file line numberDiff line numberDiff line change
@@ -14,15 +14,13 @@
1414

1515
cmake_minimum_required(VERSION 3.26.4 FATAL_ERROR)
1616

17-
set(cudf_version 24.04.00)
18-
19-
include(../../fetch_rapids.cmake)
17+
include(../../rapids_config.cmake)
2018
include(rapids-cuda)
2119
rapids_cuda_init_architectures(cudf-python)
2220

2321
project(
2422
cudf-python
25-
VERSION ${cudf_version}
23+
VERSION "${RAPIDS_VERSION}"
2624
LANGUAGES CXX CUDA
2725
)
2826

@@ -55,7 +53,7 @@ if(FIND_CUDF_CPP)
5553
include(../../cpp/cmake/thirdparty/get_arrow.cmake)
5654
endif()
5755

58-
find_package(cudf ${cudf_version} REQUIRED)
56+
find_package(cudf "${RAPIDS_VERSION}" REQUIRED)
5957

6058
# an installed version of libcudf doesn't provide the dlpack headers so we need to download dlpack
6159
# for the interop.pyx

python/cudf_kafka/CMakeLists.txt

+3-5
Original file line numberDiff line numberDiff line change
@@ -14,17 +14,15 @@
1414

1515
cmake_minimum_required(VERSION 3.26.4 FATAL_ERROR)
1616

17-
set(cudf_kafka_version 24.04.00)
18-
19-
include(../../fetch_rapids.cmake)
17+
include(../../rapids_config.cmake)
2018

2119
project(
2220
cudf-kafka-python
23-
VERSION ${cudf_kafka_version}
21+
VERSION "${RAPIDS_VERSION}"
2422
LANGUAGES CXX
2523
)
2624

27-
find_package(cudf_kafka ${cudf_kafka_version} REQUIRED)
25+
find_package(cudf_kafka "${RAPIDS_VERSION}" REQUIRED)
2826

2927
if(NOT cudf_kafka_FOUND)
3028
message(

rapids_config.cmake

+36
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# =============================================================================
2+
# Copyright (c) 2018-2024, NVIDIA CORPORATION.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5+
# in compliance with the License. You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software distributed under the License
10+
# is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11+
# or implied. See the License for the specific language governing permissions and limitations under
12+
# the License.
13+
# =============================================================================
14+
file(READ "${CMAKE_CURRENT_LIST_DIR}/VERSION" _rapids_version)
15+
if(_rapids_version MATCHES [[^([0-9][0-9])\.([0-9][0-9])\.([0-9][0-9])]])
16+
set(RAPIDS_VERSION_MAJOR "${CMAKE_MATCH_1}")
17+
set(RAPIDS_VERSION_MINOR "${CMAKE_MATCH_2}")
18+
set(RAPIDS_VERSION_PATCH "${CMAKE_MATCH_3}")
19+
set(RAPIDS_VERSION_MAJOR_MINOR "${RAPIDS_VERSION_MAJOR}.${RAPIDS_VERSION_MINOR}")
20+
set(RAPIDS_VERSION "${RAPIDS_VERSION_MAJOR}.${RAPIDS_VERSION_MINOR}.${RAPIDS_VERSION_PATCH}")
21+
else()
22+
string(REPLACE "\n" "\n " _rapids_version_formatted " ${_rapids_version}")
23+
message(
24+
FATAL_ERROR
25+
"Could not determine RAPIDS version. Contents of VERSION file:\n${_rapids_version_formatted}"
26+
)
27+
endif()
28+
29+
if(NOT EXISTS "${CMAKE_CURRENT_BINARY_DIR}/CUDF_RAPIDS-${RAPIDS_VERSION_MAJOR_MINOR}.cmake")
30+
file(
31+
DOWNLOAD
32+
"https://raw.githubusercontent.com/rapidsai/rapids-cmake/branch-${RAPIDS_VERSION_MAJOR_MINOR}/RAPIDS.cmake"
33+
"${CMAKE_CURRENT_BINARY_DIR}/CUDF_RAPIDS-${RAPIDS_VERSION_MAJOR_MINOR}.cmake"
34+
)
35+
endif()
36+
include("${CMAKE_CURRENT_BINARY_DIR}/CUDF_RAPIDS-${RAPIDS_VERSION_MAJOR_MINOR}.cmake")

0 commit comments

Comments
 (0)