aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/lightgbm
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/lightgbm
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/lightgbm')
-rw-r--r--vcpkg/ports/lightgbm/portfile.cmake34
-rw-r--r--vcpkg/ports/lightgbm/vcpkg.json35
-rw-r--r--vcpkg/ports/lightgbm/vcpkg_lightgbm_use_vcpkg_libs.patch66
3 files changed, 135 insertions, 0 deletions
diff --git a/vcpkg/ports/lightgbm/portfile.cmake b/vcpkg/ports/lightgbm/portfile.cmake
new file mode 100644
index 0000000..ce4f93c
--- /dev/null
+++ b/vcpkg/ports/lightgbm/portfile.cmake
@@ -0,0 +1,34 @@
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO microsoft/LightGBM
+ REF v${VERSION}
+ SHA512 f968f984a0881a5eadd898dded367b799b619e3cc80415dec8b623897e84d7e1e1034f20179125354b93759ea1b8a3e334cfa506427442810ef098bc93fd4634
+ PATCHES
+ vcpkg_lightgbm_use_vcpkg_libs.patch
+)
+
+vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS
+ FEATURES
+ gpu USE_GPU
+ openmp USE_OPENMP
+)
+
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
+ set(BUILD_STATIC_LIB "OFF")
+else()
+ set(BUILD_STATIC_LIB "ON")
+endif()
+
+vcpkg_cmake_configure(
+ SOURCE_PATH ${SOURCE_PATH}
+ OPTIONS
+ -DBUILD_STATIC_LIB=${BUILD_STATIC_LIB}
+ ${FEATURE_OPTIONS}
+)
+
+vcpkg_cmake_install()
+
+vcpkg_copy_tools(TOOL_NAMES lightgbm AUTO_CLEAN)
+
+file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
+vcpkg_install_copyright(FILE_LIST "${SOURCE_PATH}/LICENSE")
diff --git a/vcpkg/ports/lightgbm/vcpkg.json b/vcpkg/ports/lightgbm/vcpkg.json
new file mode 100644
index 0000000..0e8f3a7
--- /dev/null
+++ b/vcpkg/ports/lightgbm/vcpkg.json
@@ -0,0 +1,35 @@
+{
+ "name": "lightgbm",
+ "version": "4.5.0",
+ "description": [
+ "A fast, distributed, high performance gradient boosting (GBT, GBDT, GBRT, GBM or MART) framework based on decision tree algorithms.",
+ "Designed to be distributed and efficient and comes with faster training speeds, higher efficiency, lower memory usage and support of parallel, distributed, and GPU learning."
+ ],
+ "homepage": "https://github.com/microsoft/LightGBM",
+ "license": "Apache-2.0",
+ "supports": "!android & !osx & !uwp",
+ "dependencies": [
+ "eigen3",
+ "fast-double-parser",
+ "fmt",
+ {
+ "name": "vcpkg-cmake",
+ "host": true
+ }
+ ],
+ "default-features": [
+ "openmp"
+ ],
+ "features": {
+ "gpu": {
+ "description": "GPU support using Boost.Compute",
+ "dependencies": [
+ "boost-compute",
+ "opencl"
+ ]
+ },
+ "openmp": {
+ "description": "Support for multi-threading using OpenMP"
+ }
+ }
+}
diff --git a/vcpkg/ports/lightgbm/vcpkg_lightgbm_use_vcpkg_libs.patch b/vcpkg/ports/lightgbm/vcpkg_lightgbm_use_vcpkg_libs.patch
new file mode 100644
index 0000000..65f6954
--- /dev/null
+++ b/vcpkg/ports/lightgbm/vcpkg_lightgbm_use_vcpkg_libs.patch
@@ -0,0 +1,66 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3492289b..6284b6e0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -115,18 +115,17 @@ if(USE_SWIG)
+ endif()
+ endif()
+
+-set(EIGEN_DIR "${PROJECT_SOURCE_DIR}/external_libs/eigen")
+-include_directories(${EIGEN_DIR})
++find_package(Eigen3 CONFIG REQUIRED)
+
+ # See https://gitlab.com/libeigen/eigen/-/blob/master/COPYING.README
+ 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})
++find_package(fmt CONFIG REQUIRED)
++get_target_property(VCPKG_INCLUDE_DIR fmt::fmt INTERFACE_INCLUDE_DIRECTORIES)
++set(FMT_INCLUDE_DIR ${VCPKG_INCLUDE_DIR}/fmt)
+
+-set(FMT_INCLUDE_DIR "${PROJECT_SOURCE_DIR}/external_libs/fmt/include")
+-include_directories(${FMT_INCLUDE_DIR})
++find_path(FAST_DOUBLE_PARSER_INCLUDE_DIR fast_double_parser.h)
+
+ if(__BUILD_FOR_R)
+ find_package(LibR REQUIRED)
+@@ -181,15 +180,13 @@ if(USE_OPENMP)
+ endif()
+
+ if(USE_GPU)
+- set(BOOST_COMPUTE_HEADER_DIR ${PROJECT_SOURCE_DIR}/external_libs/compute/include)
+- include_directories(${BOOST_COMPUTE_HEADER_DIR})
+ find_package(OpenCL REQUIRED)
+ include_directories(${OpenCL_INCLUDE_DIRS})
+ message(STATUS "OpenCL include directory: " ${OpenCL_INCLUDE_DIRS})
+ if(WIN32)
+ set(Boost_USE_STATIC_LIBS ON)
+ endif()
+- find_package(Boost 1.56.0 COMPONENTS filesystem system REQUIRED)
++ find_package(Boost 1.56.0 COMPONENTS filesystem system compute REQUIRED)
+ if(WIN32)
+ # disable autolinking in boost
+ add_definitions(-DBOOST_ALL_NO_LIB)
+@@ -458,9 +455,11 @@ endif()
+
+ add_library(lightgbm_objs OBJECT ${SOURCES})
+
++target_link_libraries(lightgbm_objs PUBLIC Eigen3::Eigen fmt::fmt)
++
+ if(BUILD_CLI)
+ add_executable(lightgbm src/main.cpp src/application/application.cpp)
+- target_link_libraries(lightgbm PRIVATE lightgbm_objs)
++ target_link_libraries(lightgbm PRIVATE lightgbm_objs Eigen3::Eigen fmt::fmt)
+ endif()
+
+ set(API_SOURCES "src/c_api.cpp")
+@@ -471,6 +470,7 @@ if(__BUILD_FOR_R)
+ endif()
+
+ add_library(lightgbm_capi_objs OBJECT ${API_SOURCES})
++target_link_libraries(lightgbm_capi_objs PUBLIC Eigen3::Eigen fmt::fmt)
+
+ if(BUILD_STATIC_LIB)
+ add_library(_lightgbm STATIC)