diff --git a/cpp/scripts/run-cmake-format.sh b/cpp/scripts/run-cmake-format.sh deleted file mode 100755 index 676718c8a..000000000 --- a/cpp/scripts/run-cmake-format.sh +++ /dev/null @@ -1,83 +0,0 @@ -#!/bin/bash - -# Copyright (c) 2022-2025, NVIDIA CORPORATION. - -# copied from: https://github.com/rapidsai/rapids-cmake/blob/branch-25.02/ci/checks/run-cmake-format.sh -# -# This script is a wrapper for cmakelang that may be used with pre-commit. The -# wrapping is necessary because RAPIDS libraries split configuration for -# cmakelang linters between a local config file and a second config file that's -# shared across all of RAPIDS via rapids-cmake. We need a way to invoke CMake linting commands -# without causing pre-commit failures (which could block local commits or CI), -# while also being sufficiently flexible to allow users to maintain the config -# file independently of a build directory. -# -# This script provides the minimal functionality to enable those use cases. It -# searches in a number of predefined locations for the rapids-cmake config file -# and exits gracefully if the file is not found. If a user wishes to specify a -# config file at a nonstandard location, they may do so by setting the -# environment variable RAPIDS_CMAKE_FORMAT_FILE. -# -# This script can be invoked directly anywhere within the project repository. -# Alternatively, it may be invoked as a pre-commit hook via -# `pre-commit run (cmake-format)|(cmake-lint)`. -# -# Usage: -# bash run-cmake-format.sh {cmake-format,cmake-lint} infile [infile ...] - -status=0 -if [ -z ${CUSPATIAL_ROOT:+PLACEHOLDER} ]; then - CUSPATIAL_BUILD_DIR=$(git rev-parse --show-toplevel 2>&1)/cpp/build - status=$? -else - CUSPATIAL_BUILD_DIR=${CUSPATIAL_ROOT} -fi - -if ! [ ${status} -eq 0 ]; then - if [[ ${CUSPATIAL_BUILD_DIR} == *"not a git repository"* ]]; then - echo "This script must be run inside the cuspatial repository, or the CUSPATIAL_ROOT environment variable must be set." - else - echo "Script failed with unknown error attempting to determine project root:" - echo ${CUSPATIAL_BUILD_DIR} - fi - exit 1 -fi - -DEFAULT_FORMAT_FILE_LOCATIONS=( - "${CUSPATIAL_BUILD_DIR:-${HOME}}/_deps/rapids-cmake-src/cmake-format-rapids-cmake.json" -) - -if [ -z ${RAPIDS_CMAKE_FORMAT_FILE:+PLACEHOLDER} ]; then - for file_path in ${DEFAULT_FORMAT_FILE_LOCATIONS[@]}; do - if [ -f ${file_path} ]; then - RAPIDS_CMAKE_FORMAT_FILE=${file_path} - break - fi - done -fi - -if [ -z ${RAPIDS_CMAKE_FORMAT_FILE:+PLACEHOLDER} ]; then - echo "The rapids-cmake cmake-format configuration file was not found at any of the default search locations: " - echo "" - ( IFS=$'\n'; echo "${DEFAULT_FORMAT_FILE_LOCATIONS[*]}" ) - echo "" - echo "Try setting the environment variable RAPIDS_CMAKE_FORMAT_FILE to the path to the config file." - exit 0 -else - echo "Using format file ${RAPIDS_CMAKE_FORMAT_FILE}" -fi - -if [[ $1 == "cmake-format" ]]; then - cmake-format -i --config-files cpp/cmake/config.json ${RAPIDS_CMAKE_FORMAT_FILE} -- ${@:2} -elif [[ $1 == "cmake-lint" ]]; then - # Since the pre-commit hook is verbose, we have to be careful to only - # present cmake-lint's output (which is quite verbose) if we actually - # observe a failure. - OUTPUT=$(cmake-lint --config-files cpp/cmake/config.json ${RAPIDS_CMAKE_FORMAT_FILE} -- ${@:2}) - status=$? - - if ! [ ${status} -eq 0 ]; then - echo "${OUTPUT}" - fi - exit ${status} -fi diff --git a/java/src/main/native/CMakeLists.txt b/java/src/main/native/CMakeLists.txt index 5afbd5c46..1fe48b8ab 100755 --- a/java/src/main/native/CMakeLists.txt +++ b/java/src/main/native/CMakeLists.txt @@ -1,5 +1,5 @@ #============================================================================= -# Copyright (c) 2019-2025, NVIDIA CORPORATION. +# Copyright (c) 2019-2024, NVIDIA CORPORATION. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,10 +21,7 @@ include(../../../../rapids_config.cmake) # that just an oversight, or is there a reason not to include this here? rapids_cuda_init_architectures(CUSPATIAL_JNI) -project( - CUDF_JNI - VERSION 0.7.0 - LANGUAGES C CXX CUDA) +project(CUDF_JNI VERSION 0.7.0 LANGUAGES C CXX CUDA) ################################################################################################### # - build type ------------------------------------------------------------------------------------ @@ -44,45 +41,41 @@ set(CMAKE_CUDA_STANDARD 17) set(CMAKE_CUDA_STANDARD_REQUIRED ON) if(CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-error=deprecated-declarations") - - option(CMAKE_CXX11_ABI "Enable the GLIBCXX11 ABI" ON) - if(CMAKE_CXX11_ABI) - message(STATUS "CUDF: Enabling the GLIBCXX11 ABI") - else() - message(STATUS "CUDF: Disabling the GLIBCXX11 ABI") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -D_GLIBCXX_USE_CXX11_ABI=0") - endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror -Wno-error=deprecated-declarations") + + option(CMAKE_CXX11_ABI "Enable the GLIBCXX11 ABI" ON) + if(CMAKE_CXX11_ABI) + message(STATUS "CUDF: Enabling the GLIBCXX11 ABI") + else() + message(STATUS "CUDF: Disabling the GLIBCXX11 ABI") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0") + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Xcompiler -D_GLIBCXX_USE_CXX11_ABI=0") + endif() endif() #set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_60,code=sm_60 -gencode=arch=compute_61,code=sm_61") set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_60,code=sm_60") -set(CMAKE_CUDA_FLAGS - "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_70,code=compute_70" -) +set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -gencode=arch=compute_70,code=sm_70 -gencode=arch=compute_70,code=compute_70") # set warnings as errors # TODO: remove `no-maybe-uninitialized` used to suppress warnings in rmm::exec_policy -set(CMAKE_CUDA_FLAGS - "${CMAKE_CUDA_FLAGS} -Werror cross-execution-space-call -Xcompiler -Wall,-Werror,-Wno-error=deprecated-declarations" -) +set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -Werror cross-execution-space-call -Xcompiler -Wall,-Werror,-Wno-error=deprecated-declarations") # Option to enable line info in CUDA device compilation to allow introspection when profiling / memchecking -option(CMAKE_CUDA_LINEINFO - "Enable the -lineinfo option for nvcc (useful for cuda-memcheck / profiler" OFF) -if(CMAKE_CUDA_LINEINFO) - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") +option(CMAKE_CUDA_LINEINFO "Enable the -lineinfo option for nvcc (useful for cuda-memcheck / profiler" OFF) +if (CMAKE_CUDA_LINEINFO) + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -lineinfo") endif() # Debug options if(CMAKE_BUILD_TYPE MATCHES Debug) - message(STATUS "Building with debugging flags") - set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G -Xcompiler -rdynamic") + message(STATUS "Building with debugging flags") + set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} -G -Xcompiler -rdynamic") endif() -option(BUILD_TESTS "Configure CMake to build tests" ON) +option(BUILD_TESTS "Configure CMake to build tests" + ON) ################################################################################################### # - cudart options -------------------------------------------------------------------------------- @@ -91,10 +84,10 @@ option(BUILD_TESTS "Configure CMake to build tests" ON) option(CUDA_STATIC_RUNTIME "Statically link the CUDA runtime" OFF) if(CUDA_STATIC_RUNTIME) - message(STATUS "Enabling static linking of cudart") - set(CUDART_LIBRARY "cudart_static") + message(STATUS "Enabling static linking of cudart") + set(CUDART_LIBRARY "cudart_static") else() - set(CUDART_LIBRARY "cudart") + set(CUDART_LIBRARY "cudart") endif() ################################################################################################### @@ -109,82 +102,98 @@ include(CheckLibraryExists) ################################################################################################### # - Thrust/CUB/libcudacxx ------------------------------------------------------------------------------------ -find_path(LIBCUDACXX_INCLUDE "simt" HINTS "$ENV{CONDA_PREFIX}/include/libcudf/libcudacxx" - "$ENV{CUDF_HOME}/cpp/build/_deps/libcudacxx-src/include") +find_path(LIBCUDACXX_INCLUDE "simt" + HINTS "$ENV{CONDA_PREFIX}/include/libcudf/libcudacxx" + "$ENV{CUDF_HOME}/cpp/build/_deps/libcudacxx-src/include") message(STATUS "CUDACXX: LIBCUDACXX_INCLUDE set to ${LIBCUDACXX_INCLUDE}") ################################################################################################### # - RMM ------------------------------------------------------------------------------------------- -find_path(RMM_INCLUDE "rmm" HINTS "$ENV{CONDA_PREFIX}/include" "$ENV{CONDA_PREFIX}/include/rmm" - "$ENV{RMM_HOME}/include") +find_path(RMM_INCLUDE "rmm" + HINTS "$ENV{CONDA_PREFIX}/include" + "$ENV{CONDA_PREFIX}/include/rmm" + "$ENV{RMM_HOME}/include") -find_library(RMM_LIBRARY "rmm" HINTS "$ENV{CONDA_PREFIX}/lib" "$ENV{RMM_HOME}/build") +find_library(RMM_LIBRARY "rmm" + HINTS "$ENV{CONDA_PREFIX}/lib" + "$ENV{RMM_HOME}/build") message(STATUS "RMM: RMM_INCLUDE set to ${RMM_INCLUDE}") message(STATUS "RMM: RMM_LIBRARY set to ${RMM_LIBRARY}") add_library(rmm SHARED IMPORTED ${RMM_LIBRARY}) -if(RMM_INCLUDE AND RMM_LIBRARY) - set_target_properties(rmm PROPERTIES IMPORTED_LOCATION ${RMM_LIBRARY}) -endif(RMM_INCLUDE AND RMM_LIBRARY) +if (RMM_INCLUDE AND RMM_LIBRARY) + set_target_properties(rmm PROPERTIES IMPORTED_LOCATION ${RMM_LIBRARY}) +endif (RMM_INCLUDE AND RMM_LIBRARY) ################################################################################################### # - CUDF ------------------------------------------------------------------------------------------ -set(CUDF_INCLUDE "$ENV{CONDA_PREFIX}/include" "$ENV{CUDF_HOME}/java/src/main/native/include") +set(CUDF_INCLUDE "$ENV{CONDA_PREFIX}/include" + "$ENV{CUDF_HOME}/java/src/main/native/include") -find_library(CUDF_LIBRARY "cudf" HINTS "$ENV{CONDA_PREFIX}/lib" "$ENV{CUDF_HOME}/cpp/build") +find_library(CUDF_LIBRARY "cudf" + HINTS "$ENV{CONDA_PREFIX}/lib" + "$ENV{CUDF_HOME}/cpp/build") message(STATUS "CUDF: CUDF_INCLUDE set to ${CUDF_INCLUDE}") message(STATUS "CUDF: CUDF_LIBRARY set to ${CUDF_LIBRARY}") add_library(cudf SHARED IMPORTED ${CUDF_LIBRARY}) -if(CUDF_INCLUDE AND CUDF_LIBRARY) - set_target_properties(cudf PROPERTIES IMPORTED_LOCATION ${CUDF_LIBRARY}) -endif(CUDF_INCLUDE AND CUDF_LIBRARY) +if (CUDF_INCLUDE AND CUDF_LIBRARY) + set_target_properties(cudf PROPERTIES IMPORTED_LOCATION ${CUDF_LIBRARY}) +endif (CUDF_INCLUDE AND CUDF_LIBRARY) ################################################################################################### # - CUSPATIAL ------------------------------------------------------------------------------------------ set(CUSPATIAL_INCLUDE "$ENV{CUSPATIAL_HOME}/cpp/include") -find_library(CUSPATIAL_LIBRARY "cuspatial" HINTS "$ENV{CUSPATIAL_HOME}/cpp/build") +find_library(CUSPATIAL_LIBRARY "cuspatial" + HINTS "$ENV{CUSPATIAL_HOME}/cpp/build") message(STATUS "CUSPATIAL: CUSPATIAL_INCLUDE set to ${CUSPATIAL_INCLUDE}") message(STATUS "CUSPATIAL: CUSPATIAL_LIBRARY set to ${CUSPATIAL_LIBRARY}") add_library(cuspatial SHARED IMPORTED ${CUSPATIAL_LIBRARY}) -if(CUSPATIAL_INCLUDE AND CUSPATIAL_LIBRARY) - set_target_properties(cuspatial PROPERTIES IMPORTED_LOCATION ${CUSPATIAL_LIBRARY}) -endif(CUSPATIAL_INCLUDE AND CUSPATIAL_LIBRARY) +if (CUSPATIAL_INCLUDE AND CUSPATIAL_LIBRARY) + set_target_properties(cuspatial PROPERTIES IMPORTED_LOCATION ${CUSPATIAL_LIBRARY}) +endif (CUSPATIAL_INCLUDE AND CUSPATIAL_LIBRARY) ################################################################################################### # - find JNI ------------------------------------------------------------------------------------- find_package(JNI REQUIRED) if(JNI_FOUND) - message(STATUS "JDK with JNI in ${JNI_INCLUDE_DIRS}") + message(STATUS "JDK with JNI in ${JNI_INCLUDE_DIRS}") else() - message(FATAL_ERROR "JDK with JNI not found, please check your settings.") + message(FATAL_ERROR "JDK with JNI not found, please check your settings.") endif() ################################################################################################### # - include paths --------------------------------------------------------------------------------- -include_directories( - "${CMAKE_SOURCE_DIR}/include" "${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}" "${LIBCUDACXX_INCLUDE}" - "${RMM_INCLUDE}" "${CUDF_INCLUDE}" "${CUSPATIAL_INCLUDE}" "${JNI_INCLUDE_DIRS}") +include_directories("${CMAKE_SOURCE_DIR}/include" + "${CMAKE_CUDA_TOOLKIT_INCLUDE_DIRECTORIES}" + "${LIBCUDACXX_INCLUDE}" + "${RMM_INCLUDE}" + "${CUDF_INCLUDE}" + "${CUSPATIAL_INCLUDE}" + "${JNI_INCLUDE_DIRS}") ################################################################################################### # - library paths --------------------------------------------------------------------------------- -link_directories("${CMAKE_BINARY_DIR}/lib" "${CUSPATIAL_LIBRARY}") +link_directories("${CMAKE_BINARY_DIR}/lib" + "${CUSPATIAL_LIBRARY}") + ################################################################################################### # - library targets ------------------------------------------------------------------------------- -set(SOURCE_FILES "src/cuSpatialJni.cpp") +set(SOURCE_FILES + "src/cuSpatialJni.cpp") add_library(cuspatialjni SHARED ${SOURCE_FILES}) #Override RPATH for cuspatialjni @@ -195,16 +204,16 @@ SET_TARGET_PROPERTIES(cuspatialjni PROPERTIES BUILD_RPATH "\$ORIGIN") option(USE_NVTX "Build with NVTX support" ON) if(USE_NVTX) - message(STATUS "Using Nvidia Tools Extension") - find_library(NVTX_LIBRARY nvToolsExt PATH ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}) - target_link_libraries(cuspatialjni ${NVTX_LIBRARY}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_NVTX") + message(STATUS "Using Nvidia Tools Extension") + find_library(NVTX_LIBRARY nvToolsExt PATH ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}) + target_link_libraries(cuspatialjni ${NVTX_LIBRARY}) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DUSE_NVTX") endif() option(PER_THREAD_DEFAULT_STREAM "Build with per-thread default stream" OFF) if(PER_THREAD_DEFAULT_STREAM) - message(STATUS "Using per-thread default stream") - add_compile_definitions(CUDA_API_PER_THREAD_DEFAULT_STREAM) + message(STATUS "Using per-thread default stream") + add_compile_definitions(CUDA_API_PER_THREAD_DEFAULT_STREAM) endif() ###################################################################################################