[CI] address cmakelint warnings about whitespace (#9674)
This commit is contained in:
parent
53049b16b8
commit
eb562d3829
128
CMakeLists.txt
128
CMakeLists.txt
@ -8,7 +8,7 @@ cmake_policy(SET CMP0076 NEW)
|
|||||||
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
|
set(CMAKE_POLICY_DEFAULT_CMP0063 NEW)
|
||||||
cmake_policy(SET CMP0063 NEW)
|
cmake_policy(SET CMP0063 NEW)
|
||||||
|
|
||||||
if ((${CMAKE_VERSION} VERSION_GREATER 3.13) OR (${CMAKE_VERSION} VERSION_EQUAL 3.13))
|
if((${CMAKE_VERSION} VERSION_GREATER 3.13) OR (${CMAKE_VERSION} VERSION_EQUAL 3.13))
|
||||||
cmake_policy(SET CMP0077 NEW)
|
cmake_policy(SET CMP0077 NEW)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -86,91 +86,93 @@ option(PLUGIN_UPDATER_ONEAPI "DPC++ updater" OFF)
|
|||||||
option(ADD_PKGCONFIG "Add xgboost.pc into system." ON)
|
option(ADD_PKGCONFIG "Add xgboost.pc into system." ON)
|
||||||
|
|
||||||
#-- Checks for building XGBoost
|
#-- Checks for building XGBoost
|
||||||
if (USE_DEBUG_OUTPUT AND (NOT (CMAKE_BUILD_TYPE MATCHES Debug)))
|
if(USE_DEBUG_OUTPUT AND (NOT (CMAKE_BUILD_TYPE MATCHES Debug)))
|
||||||
message(SEND_ERROR "Do not enable `USE_DEBUG_OUTPUT' with release build.")
|
message(SEND_ERROR "Do not enable `USE_DEBUG_OUTPUT' with release build.")
|
||||||
endif()
|
endif()
|
||||||
if (USE_NCCL AND NOT (USE_CUDA))
|
if(USE_NCCL AND NOT (USE_CUDA))
|
||||||
message(SEND_ERROR "`USE_NCCL` must be enabled with `USE_CUDA` flag.")
|
message(SEND_ERROR "`USE_NCCL` must be enabled with `USE_CUDA` flag.")
|
||||||
endif()
|
endif()
|
||||||
if (USE_DEVICE_DEBUG AND NOT (USE_CUDA))
|
if(USE_DEVICE_DEBUG AND NOT (USE_CUDA))
|
||||||
message(SEND_ERROR "`USE_DEVICE_DEBUG` must be enabled with `USE_CUDA` flag.")
|
message(SEND_ERROR "`USE_DEVICE_DEBUG` must be enabled with `USE_CUDA` flag.")
|
||||||
endif()
|
endif()
|
||||||
if (BUILD_WITH_SHARED_NCCL AND (NOT USE_NCCL))
|
if(BUILD_WITH_SHARED_NCCL AND (NOT USE_NCCL))
|
||||||
message(SEND_ERROR "Build XGBoost with -DUSE_NCCL=ON to enable BUILD_WITH_SHARED_NCCL.")
|
message(SEND_ERROR "Build XGBoost with -DUSE_NCCL=ON to enable BUILD_WITH_SHARED_NCCL.")
|
||||||
endif()
|
endif()
|
||||||
if (JVM_BINDINGS AND R_LIB)
|
if(JVM_BINDINGS AND R_LIB)
|
||||||
message(SEND_ERROR "`R_LIB' is not compatible with `JVM_BINDINGS' as they both have customized configurations.")
|
message(SEND_ERROR "`R_LIB' is not compatible with `JVM_BINDINGS' as they both have customized configurations.")
|
||||||
endif()
|
endif()
|
||||||
if (R_LIB AND GOOGLE_TEST)
|
if(R_LIB AND GOOGLE_TEST)
|
||||||
message(WARNING "Some C++ unittests will fail with `R_LIB` enabled,
|
message(
|
||||||
as R package redirects some functions to R runtime implementation.")
|
WARNING
|
||||||
|
"Some C++ tests will fail with `R_LIB` enabled, as R package redirects some functions to R runtime implementation."
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
if (PLUGIN_RMM AND NOT (USE_CUDA))
|
if(PLUGIN_RMM AND NOT (USE_CUDA))
|
||||||
message(SEND_ERROR "`PLUGIN_RMM` must be enabled with `USE_CUDA` flag.")
|
message(SEND_ERROR "`PLUGIN_RMM` must be enabled with `USE_CUDA` flag.")
|
||||||
endif()
|
endif()
|
||||||
if (PLUGIN_RMM AND NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")))
|
if(PLUGIN_RMM AND NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")))
|
||||||
message(SEND_ERROR "`PLUGIN_RMM` must be used with GCC or Clang compiler.")
|
message(SEND_ERROR "`PLUGIN_RMM` must be used with GCC or Clang compiler.")
|
||||||
endif()
|
endif()
|
||||||
if (PLUGIN_RMM AND NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux"))
|
if(PLUGIN_RMM AND NOT (CMAKE_SYSTEM_NAME STREQUAL "Linux"))
|
||||||
message(SEND_ERROR "`PLUGIN_RMM` must be used with Linux.")
|
message(SEND_ERROR "`PLUGIN_RMM` must be used with Linux.")
|
||||||
endif()
|
endif()
|
||||||
if (ENABLE_ALL_WARNINGS)
|
if(ENABLE_ALL_WARNINGS)
|
||||||
if ((NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
|
if((NOT CMAKE_CXX_COMPILER_ID MATCHES "Clang") AND (NOT CMAKE_CXX_COMPILER_ID STREQUAL "GNU"))
|
||||||
message(SEND_ERROR "ENABLE_ALL_WARNINGS is only available for Clang and GCC.")
|
message(SEND_ERROR "ENABLE_ALL_WARNINGS is only available for Clang and GCC.")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
if (BUILD_STATIC_LIB AND (R_LIB OR JVM_BINDINGS))
|
if(BUILD_STATIC_LIB AND (R_LIB OR JVM_BINDINGS))
|
||||||
message(SEND_ERROR "Cannot build a static library libxgboost.a when R or JVM packages are enabled.")
|
message(SEND_ERROR "Cannot build a static library libxgboost.a when R or JVM packages are enabled.")
|
||||||
endif()
|
endif()
|
||||||
if (PLUGIN_FEDERATED)
|
if(PLUGIN_FEDERATED)
|
||||||
if (CMAKE_CROSSCOMPILING)
|
if(CMAKE_CROSSCOMPILING)
|
||||||
message(SEND_ERROR "Cannot cross compile with federated learning support")
|
message(SEND_ERROR "Cannot cross compile with federated learning support")
|
||||||
endif()
|
endif()
|
||||||
if (BUILD_STATIC_LIB)
|
if(BUILD_STATIC_LIB)
|
||||||
message(SEND_ERROR "Cannot build static lib with federated learning support")
|
message(SEND_ERROR "Cannot build static lib with federated learning support")
|
||||||
endif()
|
endif()
|
||||||
if (R_LIB OR JVM_BINDINGS)
|
if(R_LIB OR JVM_BINDINGS)
|
||||||
message(SEND_ERROR "Cannot enable federated learning support when R or JVM packages are enabled.")
|
message(SEND_ERROR "Cannot enable federated learning support when R or JVM packages are enabled.")
|
||||||
endif()
|
endif()
|
||||||
if (WIN32)
|
if(WIN32)
|
||||||
message(SEND_ERROR "Federated learning not supported for Windows platform")
|
message(SEND_ERROR "Federated learning not supported for Windows platform")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#-- Removed options
|
#-- Removed options
|
||||||
if (USE_AVX)
|
if(USE_AVX)
|
||||||
message(SEND_ERROR "The option `USE_AVX` is deprecated as experimental AVX features have been removed from XGBoost.")
|
message(SEND_ERROR "The option `USE_AVX` is deprecated as experimental AVX features have been removed from XGBoost.")
|
||||||
endif()
|
endif()
|
||||||
if (PLUGIN_LZ4)
|
if(PLUGIN_LZ4)
|
||||||
message(SEND_ERROR "The option `PLUGIN_LZ4` is removed from XGBoost.")
|
message(SEND_ERROR "The option `PLUGIN_LZ4` is removed from XGBoost.")
|
||||||
endif()
|
endif()
|
||||||
if (RABIT_BUILD_MPI)
|
if(RABIT_BUILD_MPI)
|
||||||
message(SEND_ERROR "The option `RABIT_BUILD_MPI` has been removed from XGBoost.")
|
message(SEND_ERROR "The option `RABIT_BUILD_MPI` has been removed from XGBoost.")
|
||||||
endif()
|
endif()
|
||||||
if (USE_S3)
|
if(USE_S3)
|
||||||
message(SEND_ERROR "The option `USE_S3` has been removed from XGBoost")
|
message(SEND_ERROR "The option `USE_S3` has been removed from XGBoost")
|
||||||
endif()
|
endif()
|
||||||
if (USE_AZURE)
|
if(USE_AZURE)
|
||||||
message(SEND_ERROR "The option `USE_AZURE` has been removed from XGBoost")
|
message(SEND_ERROR "The option `USE_AZURE` has been removed from XGBoost")
|
||||||
endif()
|
endif()
|
||||||
if (USE_HDFS)
|
if(USE_HDFS)
|
||||||
message(SEND_ERROR "The option `USE_HDFS` has been removed from XGBoost")
|
message(SEND_ERROR "The option `USE_HDFS` has been removed from XGBoost")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#-- Sanitizer
|
#-- Sanitizer
|
||||||
if (USE_SANITIZER)
|
if(USE_SANITIZER)
|
||||||
include(cmake/Sanitizer.cmake)
|
include(cmake/Sanitizer.cmake)
|
||||||
enable_sanitizers("${ENABLED_SANITIZERS}")
|
enable_sanitizers("${ENABLED_SANITIZERS}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_CUDA)
|
if(USE_CUDA)
|
||||||
set(USE_OPENMP ON CACHE BOOL "CUDA requires OpenMP" FORCE)
|
set(USE_OPENMP ON CACHE BOOL "CUDA requires OpenMP" FORCE)
|
||||||
# `export CXX=' is ignored by CMake CUDA.
|
# `export CXX=' is ignored by CMake CUDA.
|
||||||
set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})
|
set(CMAKE_CUDA_HOST_COMPILER ${CMAKE_CXX_COMPILER})
|
||||||
message(STATUS "Configured CUDA host compiler: ${CMAKE_CUDA_HOST_COMPILER}")
|
message(STATUS "Configured CUDA host compiler: ${CMAKE_CUDA_HOST_COMPILER}")
|
||||||
|
|
||||||
enable_language(CUDA)
|
enable_language(CUDA)
|
||||||
if (${CMAKE_CUDA_COMPILER_VERSION} VERSION_LESS 11.0)
|
if(${CMAKE_CUDA_COMPILER_VERSION} VERSION_LESS 11.0)
|
||||||
message(FATAL_ERROR "CUDA version must be at least 11.0!")
|
message(FATAL_ERROR "CUDA version must be at least 11.0!")
|
||||||
endif()
|
endif()
|
||||||
set(GEN_CODE "")
|
set(GEN_CODE "")
|
||||||
@ -180,7 +182,7 @@ if (USE_CUDA)
|
|||||||
find_package(CUDAToolkit REQUIRED)
|
find_package(CUDAToolkit REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND
|
if(FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND
|
||||||
((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR
|
((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR
|
||||||
(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
|
(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")
|
||||||
@ -188,10 +190,10 @@ endif()
|
|||||||
|
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
if (USE_OPENMP)
|
if(USE_OPENMP)
|
||||||
if (APPLE)
|
if(APPLE)
|
||||||
find_package(OpenMP)
|
find_package(OpenMP)
|
||||||
if (NOT OpenMP_FOUND)
|
if(NOT OpenMP_FOUND)
|
||||||
# Try again with extra path info; required for libomp 15+ from Homebrew
|
# Try again with extra path info; required for libomp 15+ from Homebrew
|
||||||
execute_process(COMMAND brew --prefix libomp
|
execute_process(COMMAND brew --prefix libomp
|
||||||
OUTPUT_VARIABLE HOMEBREW_LIBOMP_PREFIX
|
OUTPUT_VARIABLE HOMEBREW_LIBOMP_PREFIX
|
||||||
@ -205,31 +207,33 @@ if (USE_OPENMP)
|
|||||||
set(OpenMP_omp_LIBRARY ${HOMEBREW_LIBOMP_PREFIX}/lib/libomp.dylib)
|
set(OpenMP_omp_LIBRARY ${HOMEBREW_LIBOMP_PREFIX}/lib/libomp.dylib)
|
||||||
find_package(OpenMP REQUIRED)
|
find_package(OpenMP REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
else ()
|
else()
|
||||||
find_package(OpenMP REQUIRED)
|
find_package(OpenMP REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
#Add for IBM i
|
#Add for IBM i
|
||||||
if (${CMAKE_SYSTEM_NAME} MATCHES "OS400")
|
if(${CMAKE_SYSTEM_NAME} MATCHES "OS400")
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
|
||||||
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> -X64 qc <TARGET> <OBJECTS>")
|
set(CMAKE_CXX_ARCHIVE_CREATE "<CMAKE_AR> -X64 qc <TARGET> <OBJECTS>")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_NCCL)
|
if(USE_NCCL)
|
||||||
find_package(Nccl REQUIRED)
|
find_package(Nccl REQUIRED)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# dmlc-core
|
# dmlc-core
|
||||||
msvc_use_static_runtime()
|
msvc_use_static_runtime()
|
||||||
if (FORCE_SHARED_CRT)
|
if(FORCE_SHARED_CRT)
|
||||||
set(DMLC_FORCE_SHARED_CRT ON)
|
set(DMLC_FORCE_SHARED_CRT ON)
|
||||||
endif()
|
endif()
|
||||||
add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core)
|
add_subdirectory(${xgboost_SOURCE_DIR}/dmlc-core)
|
||||||
|
|
||||||
if (MSVC)
|
if(MSVC)
|
||||||
if (TARGET dmlc_unit_tests)
|
if(TARGET dmlc_unit_tests)
|
||||||
target_compile_options(dmlc_unit_tests PRIVATE
|
target_compile_options(
|
||||||
-D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE)
|
dmlc_unit_tests PRIVATE
|
||||||
|
-D_CRT_SECURE_NO_WARNINGS -D_CRT_SECURE_NO_DEPRECATE
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -241,19 +245,19 @@ add_subdirectory(${xgboost_SOURCE_DIR}/src)
|
|||||||
target_link_libraries(objxgboost PUBLIC dmlc)
|
target_link_libraries(objxgboost PUBLIC dmlc)
|
||||||
|
|
||||||
# Exports some R specific definitions and objects
|
# Exports some R specific definitions and objects
|
||||||
if (R_LIB)
|
if(R_LIB)
|
||||||
add_subdirectory(${xgboost_SOURCE_DIR}/R-package)
|
add_subdirectory(${xgboost_SOURCE_DIR}/R-package)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# This creates its own shared library `xgboost4j'.
|
# This creates its own shared library `xgboost4j'.
|
||||||
if (JVM_BINDINGS)
|
if(JVM_BINDINGS)
|
||||||
add_subdirectory(${xgboost_SOURCE_DIR}/jvm-packages)
|
add_subdirectory(${xgboost_SOURCE_DIR}/jvm-packages)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Plugin
|
# Plugin
|
||||||
add_subdirectory(${xgboost_SOURCE_DIR}/plugin)
|
add_subdirectory(${xgboost_SOURCE_DIR}/plugin)
|
||||||
|
|
||||||
if (PLUGIN_RMM)
|
if(PLUGIN_RMM)
|
||||||
find_package(rmm REQUIRED)
|
find_package(rmm REQUIRED)
|
||||||
|
|
||||||
# Patch the rmm targets so they reference the static cudart
|
# Patch the rmm targets so they reference the static cudart
|
||||||
@ -267,7 +271,7 @@ if (PLUGIN_RMM)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
#-- library
|
#-- library
|
||||||
if (BUILD_STATIC_LIB)
|
if(BUILD_STATIC_LIB)
|
||||||
add_library(xgboost STATIC)
|
add_library(xgboost STATIC)
|
||||||
else()
|
else()
|
||||||
add_library(xgboost SHARED)
|
add_library(xgboost SHARED)
|
||||||
@ -280,7 +284,7 @@ target_include_directories(xgboost
|
|||||||
#-- End shared library
|
#-- End shared library
|
||||||
|
|
||||||
#-- CLI for xgboost
|
#-- CLI for xgboost
|
||||||
if (BUILD_DEPRECATED_CLI)
|
if(BUILD_DEPRECATED_CLI)
|
||||||
add_executable(runxgboost ${xgboost_SOURCE_DIR}/src/cli_main.cc)
|
add_executable(runxgboost ${xgboost_SOURCE_DIR}/src/cli_main.cc)
|
||||||
target_link_libraries(runxgboost PRIVATE objxgboost)
|
target_link_libraries(runxgboost PRIVATE objxgboost)
|
||||||
target_include_directories(runxgboost
|
target_include_directories(runxgboost
|
||||||
@ -294,9 +298,9 @@ if (BUILD_DEPRECATED_CLI)
|
|||||||
xgboost_target_link_libraries(runxgboost)
|
xgboost_target_link_libraries(runxgboost)
|
||||||
xgboost_target_defs(runxgboost)
|
xgboost_target_defs(runxgboost)
|
||||||
|
|
||||||
if (KEEP_BUILD_ARTIFACTS_IN_BINARY_DIR)
|
if(KEEP_BUILD_ARTIFACTS_IN_BINARY_DIR)
|
||||||
set_output_directory(runxgboost ${xgboost_BINARY_DIR})
|
set_output_directory(runxgboost ${xgboost_BINARY_DIR})
|
||||||
else ()
|
else()
|
||||||
set_output_directory(runxgboost ${xgboost_SOURCE_DIR})
|
set_output_directory(runxgboost ${xgboost_SOURCE_DIR})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@ -309,38 +313,38 @@ foreach(target xgboost objxgboost dmlc)
|
|||||||
xgboost_target_defs(${target})
|
xgboost_target_defs(${target})
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
if (JVM_BINDINGS)
|
if(JVM_BINDINGS)
|
||||||
xgboost_target_properties(xgboost4j)
|
xgboost_target_properties(xgboost4j)
|
||||||
xgboost_target_link_libraries(xgboost4j)
|
xgboost_target_link_libraries(xgboost4j)
|
||||||
xgboost_target_defs(xgboost4j)
|
xgboost_target_defs(xgboost4j)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (KEEP_BUILD_ARTIFACTS_IN_BINARY_DIR)
|
if(KEEP_BUILD_ARTIFACTS_IN_BINARY_DIR)
|
||||||
set_output_directory(xgboost ${xgboost_BINARY_DIR}/lib)
|
set_output_directory(xgboost ${xgboost_BINARY_DIR}/lib)
|
||||||
else ()
|
else()
|
||||||
set_output_directory(xgboost ${xgboost_SOURCE_DIR}/lib)
|
set_output_directory(xgboost ${xgboost_SOURCE_DIR}/lib)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Ensure these two targets do not build simultaneously, as they produce outputs with conflicting names
|
# Ensure these two targets do not build simultaneously, as they produce outputs with conflicting names
|
||||||
if (BUILD_DEPRECATED_CLI)
|
if(BUILD_DEPRECATED_CLI)
|
||||||
add_dependencies(xgboost runxgboost)
|
add_dependencies(xgboost runxgboost)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
#-- Installing XGBoost
|
#-- Installing XGBoost
|
||||||
if (R_LIB)
|
if(R_LIB)
|
||||||
include(cmake/RPackageInstallTargetSetup.cmake)
|
include(cmake/RPackageInstallTargetSetup.cmake)
|
||||||
set_target_properties(xgboost PROPERTIES PREFIX "")
|
set_target_properties(xgboost PROPERTIES PREFIX "")
|
||||||
if (APPLE)
|
if(APPLE)
|
||||||
set_target_properties(xgboost PROPERTIES SUFFIX ".so")
|
set_target_properties(xgboost PROPERTIES SUFFIX ".so")
|
||||||
endif()
|
endif()
|
||||||
setup_rpackage_install_target(xgboost "${CMAKE_CURRENT_BINARY_DIR}/R-package-install")
|
setup_rpackage_install_target(xgboost "${CMAKE_CURRENT_BINARY_DIR}/R-package-install")
|
||||||
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/dummy_inst")
|
set(CMAKE_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/dummy_inst")
|
||||||
endif()
|
endif()
|
||||||
if (MINGW)
|
if(MINGW)
|
||||||
set_target_properties(xgboost PROPERTIES PREFIX "")
|
set_target_properties(xgboost PROPERTIES PREFIX "")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (BUILD_C_DOC)
|
if(BUILD_C_DOC)
|
||||||
include(cmake/Doc.cmake)
|
include(cmake/Doc.cmake)
|
||||||
run_doxygen()
|
run_doxygen()
|
||||||
endif()
|
endif()
|
||||||
@ -359,14 +363,14 @@ install(DIRECTORY ${xgboost_SOURCE_DIR}/include/xgboost
|
|||||||
# > in any export set.
|
# > in any export set.
|
||||||
#
|
#
|
||||||
# https://github.com/dmlc/xgboost/issues/6085
|
# https://github.com/dmlc/xgboost/issues/6085
|
||||||
if (BUILD_STATIC_LIB)
|
if(BUILD_STATIC_LIB)
|
||||||
if (BUILD_DEPRECATED_CLI)
|
if(BUILD_DEPRECATED_CLI)
|
||||||
set(INSTALL_TARGETS xgboost runxgboost objxgboost dmlc)
|
set(INSTALL_TARGETS xgboost runxgboost objxgboost dmlc)
|
||||||
else()
|
else()
|
||||||
set(INSTALL_TARGETS xgboost objxgboost dmlc)
|
set(INSTALL_TARGETS xgboost objxgboost dmlc)
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
if (BUILD_DEPRECATED_CLI)
|
if(BUILD_DEPRECATED_CLI)
|
||||||
set(INSTALL_TARGETS xgboost runxgboost)
|
set(INSTALL_TARGETS xgboost runxgboost)
|
||||||
else()
|
else()
|
||||||
set(INSTALL_TARGETS xgboost)
|
set(INSTALL_TARGETS xgboost)
|
||||||
@ -400,7 +404,7 @@ install(
|
|||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/xgboost)
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/xgboost)
|
||||||
|
|
||||||
#-- Test
|
#-- Test
|
||||||
if (GOOGLE_TEST)
|
if(GOOGLE_TEST)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
# Unittests.
|
# Unittests.
|
||||||
add_executable(testxgboost)
|
add_executable(testxgboost)
|
||||||
@ -420,7 +424,7 @@ if (GOOGLE_TEST)
|
|||||||
${xgboost_SOURCE_DIR}/tests/cli/machine.conf.in
|
${xgboost_SOURCE_DIR}/tests/cli/machine.conf.in
|
||||||
${xgboost_BINARY_DIR}/tests/cli/machine.conf
|
${xgboost_BINARY_DIR}/tests/cli/machine.conf
|
||||||
@ONLY)
|
@ONLY)
|
||||||
if (BUILD_DEPRECATED_CLI)
|
if(BUILD_DEPRECATED_CLI)
|
||||||
add_test(
|
add_test(
|
||||||
NAME TestXGBoostCLI
|
NAME TestXGBoostCLI
|
||||||
COMMAND runxgboost ${xgboost_BINARY_DIR}/tests/cli/machine.conf
|
COMMAND runxgboost ${xgboost_BINARY_DIR}/tests/cli/machine.conf
|
||||||
@ -437,7 +441,7 @@ endif()
|
|||||||
msvc_use_static_runtime()
|
msvc_use_static_runtime()
|
||||||
|
|
||||||
# Add xgboost.pc
|
# Add xgboost.pc
|
||||||
if (ADD_PKGCONFIG)
|
if(ADD_PKGCONFIG)
|
||||||
configure_file(${xgboost_SOURCE_DIR}/cmake/xgboost.pc.in ${xgboost_BINARY_DIR}/xgboost.pc @ONLY)
|
configure_file(${xgboost_SOURCE_DIR}/cmake/xgboost.pc.in ${xgboost_BINARY_DIR}/xgboost.pc @ONLY)
|
||||||
|
|
||||||
install(
|
install(
|
||||||
|
|||||||
@ -1,14 +1,15 @@
|
|||||||
function (run_doxygen)
|
function(run_doxygen)
|
||||||
find_package(Doxygen REQUIRED)
|
find_package(Doxygen REQUIRED)
|
||||||
|
|
||||||
if (NOT DOXYGEN_DOT_FOUND)
|
if(NOT DOXYGEN_DOT_FOUND)
|
||||||
message(FATAL_ERROR "Command `dot` not found. Please install graphviz.")
|
message(FATAL_ERROR "Command `dot` not found. Please install graphviz.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
configure_file(
|
configure_file(
|
||||||
${xgboost_SOURCE_DIR}/doc/Doxyfile.in
|
${xgboost_SOURCE_DIR}/doc/Doxyfile.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
|
||||||
add_custom_target( doc_doxygen ALL
|
add_custom_target(
|
||||||
|
doc_doxygen ALL
|
||||||
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile
|
||||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
COMMENT "Generate C APIs documentation."
|
COMMENT "Generate C APIs documentation."
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
function (find_prefetch_intrinsics)
|
function(find_prefetch_intrinsics)
|
||||||
include(CheckCXXSourceCompiles)
|
include(CheckCXXSourceCompiles)
|
||||||
check_cxx_source_compiles("
|
check_cxx_source_compiles("
|
||||||
#include <xmmintrin.h>
|
#include <xmmintrin.h>
|
||||||
|
|||||||
@ -12,7 +12,7 @@ macro(enable_sanitizer sanitizer)
|
|||||||
elseif(${sanitizer} MATCHES "thread")
|
elseif(${sanitizer} MATCHES "thread")
|
||||||
find_package(TSan)
|
find_package(TSan)
|
||||||
set(SAN_COMPILE_FLAGS "${SAN_COMPILE_FLAGS} -fsanitize=thread")
|
set(SAN_COMPILE_FLAGS "${SAN_COMPILE_FLAGS} -fsanitize=thread")
|
||||||
if (TSan_FOUND)
|
if(TSan_FOUND)
|
||||||
link_libraries(${TSan_LIBRARY})
|
link_libraries(${TSan_LIBRARY})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -33,16 +33,16 @@ macro(enable_sanitizers SANITIZERS)
|
|||||||
# Check sanitizers compatibility.
|
# Check sanitizers compatibility.
|
||||||
# Idealy, we should use if(san IN_LIST SANITIZERS) ... endif()
|
# Idealy, we should use if(san IN_LIST SANITIZERS) ... endif()
|
||||||
# But I haven't figure out how to make it work.
|
# But I haven't figure out how to make it work.
|
||||||
foreach ( _san ${SANITIZERS} )
|
foreach( _san ${SANITIZERS} )
|
||||||
string(TOLOWER ${_san} _san)
|
string(TOLOWER ${_san} _san)
|
||||||
if (_san MATCHES "thread")
|
if(_san MATCHES "thread")
|
||||||
if (${_use_other_sanitizers})
|
if(${_use_other_sanitizers})
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
"thread sanitizer is not compatible with ${_san} sanitizer.")
|
"thread sanitizer is not compatible with ${_san} sanitizer.")
|
||||||
endif()
|
endif()
|
||||||
set(_use_thread_sanitizer 1)
|
set(_use_thread_sanitizer 1)
|
||||||
else ()
|
else()
|
||||||
if (${_use_thread_sanitizer})
|
if(${_use_thread_sanitizer})
|
||||||
message(FATAL_ERROR
|
message(FATAL_ERROR
|
||||||
"${_san} sanitizer is not compatible with thread sanitizer.")
|
"${_san} sanitizer is not compatible with thread sanitizer.")
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -78,7 +78,7 @@ function(set_default_configuration_release)
|
|||||||
set(CMAKE_CONFIGURATION_TYPES Release CACHE STRING "" FORCE)
|
set(CMAKE_CONFIGURATION_TYPES Release CACHE STRING "" FORCE)
|
||||||
elseif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
elseif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||||
message(STATUS "Setting build type to 'Release' as none was specified.")
|
message(STATUS "Setting build type to 'Release' as none was specified.")
|
||||||
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE )
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "Choose the type of build." FORCE)
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
@ -90,9 +90,9 @@ function(format_gencode_flags flags out)
|
|||||||
endif()
|
endif()
|
||||||
# Set up architecture flags
|
# Set up architecture flags
|
||||||
if(NOT flags)
|
if(NOT flags)
|
||||||
if (CUDA_VERSION VERSION_GREATER_EQUAL "11.8")
|
if(CUDA_VERSION VERSION_GREATER_EQUAL "11.8")
|
||||||
set(flags "50;60;70;80;90")
|
set(flags "50;60;70;80;90")
|
||||||
elseif (CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
|
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "11.0")
|
||||||
set(flags "50;60;70;80")
|
set(flags "50;60;70;80")
|
||||||
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
|
elseif(CUDA_VERSION VERSION_GREATER_EQUAL "10.0")
|
||||||
set(flags "35;50;60;70")
|
set(flags "35;50;60;70")
|
||||||
@ -103,7 +103,7 @@ function(format_gencode_flags flags out)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
|
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
|
||||||
cmake_policy(SET CMP0104 NEW)
|
cmake_policy(SET CMP0104 NEW)
|
||||||
list(GET flags -1 latest_arch)
|
list(GET flags -1 latest_arch)
|
||||||
list(TRANSFORM flags APPEND "-real")
|
list(TRANSFORM flags APPEND "-real")
|
||||||
@ -133,17 +133,17 @@ function(xgboost_set_cuda_flags target)
|
|||||||
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${OpenMP_CXX_FLAGS}>
|
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${OpenMP_CXX_FLAGS}>
|
||||||
$<$<COMPILE_LANGUAGE:CUDA>:-Xfatbin=-compress-all>)
|
$<$<COMPILE_LANGUAGE:CUDA>:-Xfatbin=-compress-all>)
|
||||||
|
|
||||||
if (USE_PER_THREAD_DEFAULT_STREAM)
|
if(USE_PER_THREAD_DEFAULT_STREAM)
|
||||||
target_compile_options(${target} PRIVATE
|
target_compile_options(${target} PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:CUDA>:--default-stream per-thread>)
|
$<$<COMPILE_LANGUAGE:CUDA>:--default-stream per-thread>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
|
if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.18")
|
||||||
set_property(TARGET ${target} PROPERTY CUDA_ARCHITECTURES ${CMAKE_CUDA_ARCHITECTURES})
|
set_property(TARGET ${target} PROPERTY CUDA_ARCHITECTURES ${CMAKE_CUDA_ARCHITECTURES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (FORCE_COLORED_OUTPUT)
|
if(FORCE_COLORED_OUTPUT)
|
||||||
if (FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND
|
if(FORCE_COLORED_OUTPUT AND (CMAKE_GENERATOR STREQUAL "Ninja") AND
|
||||||
((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR
|
((CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR
|
||||||
(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
|
(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")))
|
||||||
target_compile_options(${target} PRIVATE
|
target_compile_options(${target} PRIVATE
|
||||||
@ -151,7 +151,7 @@ function(xgboost_set_cuda_flags target)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_DEVICE_DEBUG)
|
if(USE_DEVICE_DEBUG)
|
||||||
target_compile_options(${target} PRIVATE
|
target_compile_options(${target} PRIVATE
|
||||||
$<$<AND:$<CONFIG:DEBUG>,$<COMPILE_LANGUAGE:CUDA>>:-G;-src-in-ptx>)
|
$<$<AND:$<CONFIG:DEBUG>,$<COMPILE_LANGUAGE:CUDA>>:-G;-src-in-ptx>)
|
||||||
else()
|
else()
|
||||||
@ -159,7 +159,7 @@ function(xgboost_set_cuda_flags target)
|
|||||||
$<$<COMPILE_LANGUAGE:CUDA>:-lineinfo>)
|
$<$<COMPILE_LANGUAGE:CUDA>:-lineinfo>)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_NVTX)
|
if(USE_NVTX)
|
||||||
target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_NVTX=1)
|
target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_NVTX=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -169,7 +169,7 @@ function(xgboost_set_cuda_flags target)
|
|||||||
${xgboost_SOURCE_DIR}/gputreeshap
|
${xgboost_SOURCE_DIR}/gputreeshap
|
||||||
${CUDAToolkit_INCLUDE_DIRS})
|
${CUDAToolkit_INCLUDE_DIRS})
|
||||||
|
|
||||||
if (MSVC)
|
if(MSVC)
|
||||||
target_compile_options(${target} PRIVATE
|
target_compile_options(${target} PRIVATE
|
||||||
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/utf-8>)
|
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=/utf-8>)
|
||||||
endif()
|
endif()
|
||||||
@ -182,11 +182,11 @@ function(xgboost_set_cuda_flags target)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
macro(xgboost_link_nccl target)
|
macro(xgboost_link_nccl target)
|
||||||
if (BUILD_STATIC_LIB)
|
if(BUILD_STATIC_LIB)
|
||||||
target_include_directories(${target} PUBLIC ${NCCL_INCLUDE_DIR})
|
target_include_directories(${target} PUBLIC ${NCCL_INCLUDE_DIR})
|
||||||
target_compile_definitions(${target} PUBLIC -DXGBOOST_USE_NCCL=1)
|
target_compile_definitions(${target} PUBLIC -DXGBOOST_USE_NCCL=1)
|
||||||
target_link_libraries(${target} PUBLIC ${NCCL_LIBRARY})
|
target_link_libraries(${target} PUBLIC ${NCCL_LIBRARY})
|
||||||
else ()
|
else()
|
||||||
target_include_directories(${target} PRIVATE ${NCCL_INCLUDE_DIR})
|
target_include_directories(${target} PRIVATE ${NCCL_INCLUDE_DIR})
|
||||||
target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_NCCL=1)
|
target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_NCCL=1)
|
||||||
target_link_libraries(${target} PRIVATE ${NCCL_LIBRARY})
|
target_link_libraries(${target} PRIVATE ${NCCL_LIBRARY})
|
||||||
@ -200,7 +200,7 @@ macro(xgboost_target_properties target)
|
|||||||
CXX_STANDARD_REQUIRED ON
|
CXX_STANDARD_REQUIRED ON
|
||||||
POSITION_INDEPENDENT_CODE ON)
|
POSITION_INDEPENDENT_CODE ON)
|
||||||
|
|
||||||
if (HIDE_CXX_SYMBOLS)
|
if(HIDE_CXX_SYMBOLS)
|
||||||
#-- Hide all C++ symbols
|
#-- Hide all C++ symbols
|
||||||
set_target_properties(${target} PROPERTIES
|
set_target_properties(${target} PROPERTIES
|
||||||
C_VISIBILITY_PRESET hidden
|
C_VISIBILITY_PRESET hidden
|
||||||
@ -209,7 +209,7 @@ macro(xgboost_target_properties target)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ENABLE_ALL_WARNINGS)
|
if(ENABLE_ALL_WARNINGS)
|
||||||
target_compile_options(${target} PUBLIC
|
target_compile_options(${target} PUBLIC
|
||||||
$<IF:$<COMPILE_LANGUAGE:CUDA>,
|
$<IF:$<COMPILE_LANGUAGE:CUDA>,
|
||||||
-Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Wno-expansion-to-defined,
|
-Xcompiler=-Wall -Xcompiler=-Wextra -Xcompiler=-Wno-expansion-to-defined,
|
||||||
@ -222,7 +222,7 @@ macro(xgboost_target_properties target)
|
|||||||
$<$<AND:$<CXX_COMPILER_ID:MSVC>,$<COMPILE_LANGUAGE:CXX>>:/MP>
|
$<$<AND:$<CXX_COMPILER_ID:MSVC>,$<COMPILE_LANGUAGE:CXX>>:/MP>
|
||||||
$<$<AND:$<NOT:$<CXX_COMPILER_ID:MSVC>>,$<COMPILE_LANGUAGE:CXX>>:-funroll-loops>)
|
$<$<AND:$<NOT:$<CXX_COMPILER_ID:MSVC>>,$<COMPILE_LANGUAGE:CXX>>:-funroll-loops>)
|
||||||
|
|
||||||
if (MSVC)
|
if(MSVC)
|
||||||
target_compile_options(${target} PRIVATE
|
target_compile_options(${target} PRIVATE
|
||||||
$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:/utf-8>
|
$<$<NOT:$<COMPILE_LANGUAGE:CUDA>>:/utf-8>
|
||||||
-D_CRT_SECURE_NO_WARNINGS
|
-D_CRT_SECURE_NO_WARNINGS
|
||||||
@ -230,72 +230,72 @@ macro(xgboost_target_properties target)
|
|||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (WIN32 AND MINGW)
|
if(WIN32 AND MINGW)
|
||||||
target_compile_options(${target} PUBLIC -static-libstdc++)
|
target_compile_options(${target} PUBLIC -static-libstdc++)
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# Custom definitions used in xgboost.
|
# Custom definitions used in xgboost.
|
||||||
macro(xgboost_target_defs target)
|
macro(xgboost_target_defs target)
|
||||||
if (NOT ${target} STREQUAL "dmlc") # skip dmlc core for custom logging.
|
if(NOT ${target} STREQUAL "dmlc") # skip dmlc core for custom logging.
|
||||||
target_compile_definitions(${target}
|
target_compile_definitions(${target}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
-DDMLC_LOG_CUSTOMIZE=1
|
-DDMLC_LOG_CUSTOMIZE=1
|
||||||
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:_MWAITXINTRIN_H_INCLUDED>)
|
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:_MWAITXINTRIN_H_INCLUDED>)
|
||||||
endif()
|
endif()
|
||||||
if (USE_DEBUG_OUTPUT)
|
if(USE_DEBUG_OUTPUT)
|
||||||
target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_DEBUG_OUTPUT=1)
|
target_compile_definitions(${target} PRIVATE -DXGBOOST_USE_DEBUG_OUTPUT=1)
|
||||||
endif()
|
endif()
|
||||||
if (XGBOOST_MM_PREFETCH_PRESENT)
|
if(XGBOOST_MM_PREFETCH_PRESENT)
|
||||||
target_compile_definitions(${target}
|
target_compile_definitions(${target}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
-DXGBOOST_MM_PREFETCH_PRESENT=1)
|
-DXGBOOST_MM_PREFETCH_PRESENT=1)
|
||||||
endif()
|
endif()
|
||||||
if (XGBOOST_BUILTIN_PREFETCH_PRESENT)
|
if(XGBOOST_BUILTIN_PREFETCH_PRESENT)
|
||||||
target_compile_definitions(${target}
|
target_compile_definitions(${target}
|
||||||
PRIVATE
|
PRIVATE
|
||||||
-DXGBOOST_BUILTIN_PREFETCH_PRESENT=1)
|
-DXGBOOST_BUILTIN_PREFETCH_PRESENT=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (PLUGIN_RMM)
|
if(PLUGIN_RMM)
|
||||||
target_compile_definitions(objxgboost PUBLIC -DXGBOOST_USE_RMM=1)
|
target_compile_definitions(objxgboost PUBLIC -DXGBOOST_USE_RMM=1)
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
# handles dependencies
|
# handles dependencies
|
||||||
macro(xgboost_target_link_libraries target)
|
macro(xgboost_target_link_libraries target)
|
||||||
if (BUILD_STATIC_LIB)
|
if(BUILD_STATIC_LIB)
|
||||||
target_link_libraries(${target} PUBLIC Threads::Threads ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${target} PUBLIC Threads::Threads ${CMAKE_THREAD_LIBS_INIT})
|
||||||
else()
|
else()
|
||||||
target_link_libraries(${target} PRIVATE Threads::Threads ${CMAKE_THREAD_LIBS_INIT})
|
target_link_libraries(${target} PRIVATE Threads::Threads ${CMAKE_THREAD_LIBS_INIT})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_OPENMP)
|
if(USE_OPENMP)
|
||||||
if (BUILD_STATIC_LIB)
|
if(BUILD_STATIC_LIB)
|
||||||
target_link_libraries(${target} PUBLIC OpenMP::OpenMP_CXX)
|
target_link_libraries(${target} PUBLIC OpenMP::OpenMP_CXX)
|
||||||
else()
|
else()
|
||||||
target_link_libraries(${target} PRIVATE OpenMP::OpenMP_CXX)
|
target_link_libraries(${target} PRIVATE OpenMP::OpenMP_CXX)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_CUDA)
|
if(USE_CUDA)
|
||||||
xgboost_set_cuda_flags(${target})
|
xgboost_set_cuda_flags(${target})
|
||||||
target_link_libraries(${target} PUBLIC CUDA::cudart_static)
|
target_link_libraries(${target} PUBLIC CUDA::cudart_static)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (PLUGIN_RMM)
|
if(PLUGIN_RMM)
|
||||||
target_link_libraries(${target} PRIVATE rmm::rmm)
|
target_link_libraries(${target} PRIVATE rmm::rmm)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_NCCL)
|
if(USE_NCCL)
|
||||||
xgboost_link_nccl(${target})
|
xgboost_link_nccl(${target})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (USE_NVTX)
|
if(USE_NVTX)
|
||||||
target_link_libraries(${target} PRIVATE CUDA::nvToolsExt)
|
target_link_libraries(${target} PRIVATE CUDA::nvToolsExt)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MINGW)
|
if(MINGW)
|
||||||
target_link_libraries(${target} PRIVATE wsock32 ws2_32)
|
target_link_libraries(${target} PRIVATE wsock32 ws2_32)
|
||||||
endif()
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
function (write_version)
|
function(write_version)
|
||||||
message(STATUS "xgboost VERSION: ${xgboost_VERSION}")
|
message(STATUS "xgboost VERSION: ${xgboost_VERSION}")
|
||||||
configure_file(
|
configure_file(
|
||||||
${xgboost_SOURCE_DIR}/cmake/version_config.h.in
|
${xgboost_SOURCE_DIR}/cmake/version_config.h.in
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
if (NVML_LIBRARY)
|
if(NVML_LIBRARY)
|
||||||
unset(NVML_LIBRARY CACHE)
|
unset(NVML_LIBRARY CACHE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@ -35,17 +35,17 @@
|
|||||||
#
|
#
|
||||||
# This module assumes that the user has already called find_package(CUDA)
|
# This module assumes that the user has already called find_package(CUDA)
|
||||||
|
|
||||||
if (NCCL_LIBRARY)
|
if(NCCL_LIBRARY)
|
||||||
if(NOT USE_NCCL_LIB_PATH)
|
if(NOT USE_NCCL_LIB_PATH)
|
||||||
# Don't cache NCCL_LIBRARY to enable switching between static and shared.
|
# Don't cache NCCL_LIBRARY to enable switching between static and shared.
|
||||||
unset(NCCL_LIBRARY CACHE)
|
unset(NCCL_LIBRARY CACHE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (BUILD_WITH_SHARED_NCCL)
|
if(BUILD_WITH_SHARED_NCCL)
|
||||||
# libnccl.so
|
# libnccl.so
|
||||||
set(NCCL_LIB_NAME nccl)
|
set(NCCL_LIB_NAME nccl)
|
||||||
else ()
|
else()
|
||||||
# libnccl_static.a
|
# libnccl_static.a
|
||||||
set(NCCL_LIB_NAME nccl_static)
|
set(NCCL_LIB_NAME nccl_static)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -3,7 +3,7 @@ find_package(xgboost REQUIRED)
|
|||||||
|
|
||||||
# xgboost is built as static libraries, all cxx dependencies need to be linked into the
|
# xgboost is built as static libraries, all cxx dependencies need to be linked into the
|
||||||
# executable.
|
# executable.
|
||||||
if (XGBOOST_BUILD_STATIC_LIB)
|
if(XGBOOST_BUILD_STATIC_LIB)
|
||||||
enable_language(CXX)
|
enable_language(CXX)
|
||||||
# find again for those cxx libraries.
|
# find again for those cxx libraries.
|
||||||
find_package(xgboost REQUIRED)
|
find_package(xgboost REQUIRED)
|
||||||
|
|||||||
@ -4,7 +4,7 @@ find_package(xgboost REQUIRED)
|
|||||||
|
|
||||||
# xgboost is built as static libraries, all cxx dependencies need to be linked into the
|
# xgboost is built as static libraries, all cxx dependencies need to be linked into the
|
||||||
# executable.
|
# executable.
|
||||||
if (XGBOOST_BUILD_STATIC_LIB)
|
if(XGBOOST_BUILD_STATIC_LIB)
|
||||||
enable_language(CXX)
|
enable_language(CXX)
|
||||||
# find again for those cxx libraries.
|
# find again for those cxx libraries.
|
||||||
find_package(xgboost REQUIRED)
|
find_package(xgboost REQUIRED)
|
||||||
|
|||||||
@ -4,14 +4,14 @@ list(APPEND JVM_SOURCES
|
|||||||
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j/src/native/xgboost4j.cpp
|
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j/src/native/xgboost4j.cpp
|
||||||
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j-gpu/src/native/xgboost4j-gpu.cpp)
|
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j-gpu/src/native/xgboost4j-gpu.cpp)
|
||||||
|
|
||||||
if (USE_CUDA)
|
if(USE_CUDA)
|
||||||
list(APPEND JVM_SOURCES
|
list(APPEND JVM_SOURCES
|
||||||
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j-gpu/src/native/xgboost4j-gpu.cu)
|
${PROJECT_SOURCE_DIR}/jvm-packages/xgboost4j-gpu/src/native/xgboost4j-gpu.cu)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(xgboost4j SHARED ${JVM_SOURCES} ${XGBOOST_OBJ_SOURCES})
|
add_library(xgboost4j SHARED ${JVM_SOURCES} ${XGBOOST_OBJ_SOURCES})
|
||||||
|
|
||||||
if (ENABLE_ALL_WARNINGS)
|
if(ENABLE_ALL_WARNINGS)
|
||||||
target_compile_options(xgboost4j PUBLIC -Wall -Wextra)
|
target_compile_options(xgboost4j PUBLIC -Wall -Wextra)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@ -1,8 +1,8 @@
|
|||||||
if (PLUGIN_DENSE_PARSER)
|
if(PLUGIN_DENSE_PARSER)
|
||||||
target_sources(objxgboost PRIVATE ${xgboost_SOURCE_DIR}/plugin/dense_parser/dense_libsvm.cc)
|
target_sources(objxgboost PRIVATE ${xgboost_SOURCE_DIR}/plugin/dense_parser/dense_libsvm.cc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (PLUGIN_UPDATER_ONEAPI)
|
if(PLUGIN_UPDATER_ONEAPI)
|
||||||
add_library(oneapi_plugin OBJECT
|
add_library(oneapi_plugin OBJECT
|
||||||
${xgboost_SOURCE_DIR}/plugin/updater_oneapi/regression_obj_oneapi.cc
|
${xgboost_SOURCE_DIR}/plugin/updater_oneapi/regression_obj_oneapi.cc
|
||||||
${xgboost_SOURCE_DIR}/plugin/updater_oneapi/predictor_oneapi.cc)
|
${xgboost_SOURCE_DIR}/plugin/updater_oneapi/predictor_oneapi.cc)
|
||||||
@ -18,7 +18,7 @@ if (PLUGIN_UPDATER_ONEAPI)
|
|||||||
CXX_STANDARD 17
|
CXX_STANDARD 17
|
||||||
CXX_STANDARD_REQUIRED ON
|
CXX_STANDARD_REQUIRED ON
|
||||||
POSITION_INDEPENDENT_CODE ON)
|
POSITION_INDEPENDENT_CODE ON)
|
||||||
if (USE_OPENMP)
|
if(USE_OPENMP)
|
||||||
find_package(OpenMP REQUIRED)
|
find_package(OpenMP REQUIRED)
|
||||||
target_link_libraries(oneapi_plugin PUBLIC OpenMP::OpenMP_CXX)
|
target_link_libraries(oneapi_plugin PUBLIC OpenMP::OpenMP_CXX)
|
||||||
endif()
|
endif()
|
||||||
@ -29,6 +29,6 @@ if (PLUGIN_UPDATER_ONEAPI)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Add the Federate Learning plugin if enabled.
|
# Add the Federate Learning plugin if enabled.
|
||||||
if (PLUGIN_FEDERATED)
|
if(PLUGIN_FEDERATED)
|
||||||
add_subdirectory(federated)
|
add_subdirectory(federated)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@ -6,9 +6,9 @@ set(RABIT_SOURCES
|
|||||||
${CMAKE_CURRENT_LIST_DIR}/src/allreduce_base.cc
|
${CMAKE_CURRENT_LIST_DIR}/src/allreduce_base.cc
|
||||||
${CMAKE_CURRENT_LIST_DIR}/src/rabit_c_api.cc)
|
${CMAKE_CURRENT_LIST_DIR}/src/rabit_c_api.cc)
|
||||||
|
|
||||||
if (RABIT_MOCK)
|
if(RABIT_MOCK)
|
||||||
list(APPEND RABIT_SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/engine_mock.cc)
|
list(APPEND RABIT_SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/engine_mock.cc)
|
||||||
else ()
|
else()
|
||||||
list(APPEND RABIT_SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/engine.cc)
|
list(APPEND RABIT_SOURCES ${CMAKE_CURRENT_LIST_DIR}/src/engine.cc)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@ -11,7 +11,7 @@ set_source_files_properties(
|
|||||||
PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
|
PROPERTIES SKIP_UNITY_BUILD_INCLUSION ON)
|
||||||
target_sources(objxgboost PRIVATE ${RABIT_SOURCES})
|
target_sources(objxgboost PRIVATE ${RABIT_SOURCES})
|
||||||
|
|
||||||
if (USE_CUDA)
|
if(USE_CUDA)
|
||||||
file(GLOB_RECURSE CUDA_SOURCES *.cu *.cuh)
|
file(GLOB_RECURSE CUDA_SOURCES *.cu *.cuh)
|
||||||
target_sources(objxgboost PRIVATE ${CUDA_SOURCES})
|
target_sources(objxgboost PRIVATE ${CUDA_SOURCES})
|
||||||
endif()
|
endif()
|
||||||
@ -22,7 +22,7 @@ target_include_directories(objxgboost
|
|||||||
${xgboost_SOURCE_DIR}/dmlc-core/include
|
${xgboost_SOURCE_DIR}/dmlc-core/include
|
||||||
${xgboost_SOURCE_DIR}/rabit/include)
|
${xgboost_SOURCE_DIR}/rabit/include)
|
||||||
|
|
||||||
if (LOG_CAPI_INVOCATION)
|
if(LOG_CAPI_INVOCATION)
|
||||||
target_compile_definitions(objxgboost PRIVATE -DLOG_CAPI_INVOCATION=1)
|
target_compile_definitions(objxgboost PRIVATE -DLOG_CAPI_INVOCATION=1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
if (USE_DMLC_GTEST)
|
if(USE_DMLC_GTEST)
|
||||||
if (NOT TARGET gtest)
|
if(NOT TARGET gtest)
|
||||||
message(FATAL_ERROR "USE_DMLC_GTEST=ON but dmlc-core didn't bundle gtest")
|
message(FATAL_ERROR "USE_DMLC_GTEST=ON but dmlc-core didn't bundle gtest")
|
||||||
endif()
|
endif()
|
||||||
set(GTEST_LIBRARIES gtest)
|
set(GTEST_LIBRARIES gtest)
|
||||||
@ -8,17 +8,17 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
file(GLOB_RECURSE TEST_SOURCES "*.cc")
|
file(GLOB_RECURSE TEST_SOURCES "*.cc")
|
||||||
|
|
||||||
if (USE_CUDA)
|
if(USE_CUDA)
|
||||||
file(GLOB_RECURSE CUDA_TEST_SOURCES "*.cu")
|
file(GLOB_RECURSE CUDA_TEST_SOURCES "*.cu")
|
||||||
list(APPEND TEST_SOURCES ${CUDA_TEST_SOURCES})
|
list(APPEND TEST_SOURCES ${CUDA_TEST_SOURCES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
file(GLOB_RECURSE ONEAPI_TEST_SOURCES "plugin/*_oneapi.cc")
|
file(GLOB_RECURSE ONEAPI_TEST_SOURCES "plugin/*_oneapi.cc")
|
||||||
if (NOT PLUGIN_UPDATER_ONEAPI)
|
if(NOT PLUGIN_UPDATER_ONEAPI)
|
||||||
list(REMOVE_ITEM TEST_SOURCES ${ONEAPI_TEST_SOURCES})
|
list(REMOVE_ITEM TEST_SOURCES ${ONEAPI_TEST_SOURCES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (PLUGIN_FEDERATED)
|
if(PLUGIN_FEDERATED)
|
||||||
target_include_directories(testxgboost PRIVATE ${xgboost_SOURCE_DIR}/plugin/federated)
|
target_include_directories(testxgboost PRIVATE ${xgboost_SOURCE_DIR}/plugin/federated)
|
||||||
target_link_libraries(testxgboost PRIVATE federated_client)
|
target_link_libraries(testxgboost PRIVATE federated_client)
|
||||||
else()
|
else()
|
||||||
@ -28,7 +28,7 @@ endif()
|
|||||||
|
|
||||||
target_sources(testxgboost PRIVATE ${TEST_SOURCES} ${xgboost_SOURCE_DIR}/plugin/example/custom_obj.cc)
|
target_sources(testxgboost PRIVATE ${TEST_SOURCES} ${xgboost_SOURCE_DIR}/plugin/example/custom_obj.cc)
|
||||||
|
|
||||||
if (USE_CUDA AND PLUGIN_RMM)
|
if(USE_CUDA AND PLUGIN_RMM)
|
||||||
find_package(CUDA)
|
find_package(CUDA)
|
||||||
target_include_directories(testxgboost PRIVATE ${CUDA_INCLUDE_DIRS})
|
target_include_directories(testxgboost PRIVATE ${CUDA_INCLUDE_DIRS})
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user