From 6e78e697f8e27d4bbf493a0ebd9134c3254a2ecd Mon Sep 17 00:00:00 2001 From: James Lamb Date: Fri, 3 May 2024 22:37:27 -0500 Subject: [PATCH] [c++] remove uses of '..' in headers (#6409) --- CMakeLists.txt | 20 +++++++++++++++++++- build-cran-package.sh | 16 +++------------- include/LightGBM/utils/common.h | 4 ++-- 3 files changed, 24 insertions(+), 16 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ad7e44067490..6ae40950d750 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -114,6 +114,12 @@ include_directories(${EIGEN_DIR}) add_definitions(-DEIGEN_MPL2_ONLY) add_definitions(-DEIGEN_DONT_PARALLELIZE) +set(FAST_DOUBLE_PARSER_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/external_libs/fast_double_parser/include") +include_directories(${FAST_DOUBLE_PARSER_INCLUDE_DIR}) + +set(FMT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/external_libs/fmt/include") +include_directories(${FMT_INCLUDE_DIR}) + if(__BUILD_FOR_R) find_package(LibR REQUIRED) message(STATUS "LIBR_EXECUTABLE: ${LIBR_EXECUTABLE}") @@ -702,5 +708,17 @@ install( ) if(INSTALL_HEADERS) - install(DIRECTORY ${LightGBM_HEADER_DIR}/LightGBM DESTINATION ${CMAKE_INSTALL_PREFIX}/include) + install( + DIRECTORY ${LightGBM_HEADER_DIR}/LightGBM + DESTINATION ${CMAKE_INSTALL_PREFIX}/include + ) + install( + FILES ${FAST_DOUBLE_PARSER_INCLUDE_DIR}/fast_double_parser.h + DESTINATION ${CMAKE_INSTALL_PREFIX}/include/LightGBM/utils + ) + install( + DIRECTORY ${FMT_INCLUDE_DIR}/ + DESTINATION ${CMAKE_INSTALL_PREFIX}/include/LightGBM/utils + FILES_MATCHING PATTERN "*.h" + ) endif() diff --git a/build-cran-package.sh b/build-cran-package.sh index 89c6606803c5..2ed2e6e9c4ca 100755 --- a/build-cran-package.sh +++ b/build-cran-package.sh @@ -76,12 +76,12 @@ fi cp \ external_libs/fast_double_parser/include/fast_double_parser.h \ - "${TEMP_R_DIR}/src/include/LightGBM" + "${TEMP_R_DIR}/src/include/LightGBM/utils" -mkdir -p "${TEMP_R_DIR}/src/include/LightGBM/fmt" +mkdir -p "${TEMP_R_DIR}/src/include/LightGBM/utils/fmt" cp \ external_libs/fmt/include/fmt/*.h \ - "${TEMP_R_DIR}/src/include/LightGBM/fmt/" + "${TEMP_R_DIR}/src/include/LightGBM/utils/fmt" # including only specific files from Eigen, to keep the R package # small and avoid redistributing code with licenses incompatible with @@ -155,16 +155,6 @@ cd "${TEMP_R_DIR}" done find . -name '*.h.bak' -o -name '*.hpp.bak' -o -name '*.cpp.bak' -exec rm {} \; - sed \ - -i.bak \ - -e 's/\.\..*fmt\/format\.h/LightGBM\/fmt\/format\.h/' \ - src/include/LightGBM/utils/common.h - - sed \ - -i.bak \ - -e 's/\.\..*fast_double_parser\.h/LightGBM\/fast_double_parser\.h/' \ - src/include/LightGBM/utils/common.h - # 'processx' is listed as a 'Suggests' dependency in DESCRIPTION # because it is used in install.libs.R, a file that is not # included in the CRAN distribution of the package diff --git a/include/LightGBM/utils/common.h b/include/LightGBM/utils/common.h index f38375fb7370..6c3ebf5d0096 100644 --- a/include/LightGBM/utils/common.h +++ b/include/LightGBM/utils/common.h @@ -30,8 +30,8 @@ #include #define FMT_HEADER_ONLY -#include "../../../external_libs/fast_double_parser/include/fast_double_parser.h" -#include "../../../external_libs/fmt/include/fmt/format.h" +#include "fast_double_parser.h" +#include "fmt/format.h" #ifdef _MSC_VER #include