Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
tianlh
LightGBM-DCU
Commits
4536f435
"vscode:/vscode.git/clone" did not exist on "187135051572bafa57f4a0ed25d4bca348dedb8d"
Unverified
Commit
4536f435
authored
May 27, 2023
by
James Lamb
Committed by
GitHub
May 27, 2023
Browse files
add CMakeLists options to disable building CLI, installing headers (#5880)
parent
d47006f4
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
54 additions
and
11 deletions
+54
-11
.ci/test.sh
.ci/test.sh
+18
-3
CMakeLists.txt
CMakeLists.txt
+35
-7
python-package/setup.py
python-package/setup.py
+1
-1
No files found.
.ci/test.sh
View file @
4536f435
...
...
@@ -198,7 +198,12 @@ if [[ $TASK == "gpu" ]]; then
if
[[
$METHOD
==
"pip"
]]
;
then
cd
$BUILD_DIRECTORY
&&
sh ./build-python.sh sdist
||
exit
-1
sh
$BUILD_DIRECTORY
/.ci/check_python_dists.sh
$BUILD_DIRECTORY
/dist
||
exit
-1
pip
install
--user
$BUILD_DIRECTORY
/dist/lightgbm-
$LGB_VER
.tar.gz
-v
--install-option
=
--gpu
||
exit
-1
pip
install
\
--user
\
-v
\
--install-option
=
--gpu
\
$BUILD_DIRECTORY
/dist/lightgbm-
$LGB_VER
.tar.gz
\
||
exit
-1
pytest
$BUILD_DIRECTORY
/tests/python_package_test
||
exit
-1
exit
0
elif
[[
$METHOD
==
"wheel"
]]
;
then
...
...
@@ -221,7 +226,12 @@ elif [[ $TASK == "cuda" ]]; then
if
[[
$METHOD
==
"pip"
]]
;
then
cd
$BUILD_DIRECTORY
&&
sh ./build-python.sh sdist
||
exit
-1
sh
$BUILD_DIRECTORY
/.ci/check_python_dists.sh
$BUILD_DIRECTORY
/dist
||
exit
-1
pip
install
--user
$BUILD_DIRECTORY
/dist/lightgbm-
$LGB_VER
.tar.gz
-v
--install-option
=
--cuda
||
exit
-1
pip
install
\
--user
\
-v
\
--install-option
=
--cuda
\
$BUILD_DIRECTORY
/dist/lightgbm-
$LGB_VER
.tar.gz
\
||
exit
-1
pytest
$BUILD_DIRECTORY
/tests/python_package_test
||
exit
-1
exit
0
elif
[[
$METHOD
==
"wheel"
]]
;
then
...
...
@@ -239,7 +249,12 @@ elif [[ $TASK == "mpi" ]]; then
if
[[
$METHOD
==
"pip"
]]
;
then
cd
$BUILD_DIRECTORY
&&
sh ./build-python.sh sdist
||
exit
-1
sh
$BUILD_DIRECTORY
/.ci/check_python_dists.sh
$BUILD_DIRECTORY
/dist
||
exit
-1
pip
install
--user
$BUILD_DIRECTORY
/dist/lightgbm-
$LGB_VER
.tar.gz
-v
--install-option
=
--mpi
||
exit
-1
pip
install
\
--user
\
-v
\
--install-option
=
--mpi
\
$BUILD_DIRECTORY
/dist/lightgbm-
$LGB_VER
.tar.gz
\
||
exit
-1
pytest
$BUILD_DIRECTORY
/tests/python_package_test
||
exit
-1
exit
0
elif
[[
$METHOD
==
"wheel"
]]
;
then
...
...
CMakeLists.txt
View file @
4536f435
...
...
@@ -15,8 +15,11 @@ set(
"Semicolon separated list of sanitizer names, e.g., 'address;leak'. \
Supported sanitizers are address, leak, undefined and thread."
)
option
(
BUILD_CLI
"Build the 'lightbgm' command-line interface in addition to lib_lightgbm"
ON
)
option
(
BUILD_CPP_TEST
"Build C++ tests with Google Test"
OFF
)
option
(
BUILD_STATIC_LIB
"Build static library"
OFF
)
option
(
INSTALL_HEADERS
"Install headers to CMAKE_INSTALL_PREFIX (e.g. '/usr/local/include')"
ON
)
option
(
__BUILD_FOR_PYTHON
"Set to ON if building lib_lightgbm for use with the Python package"
OFF
)
option
(
__BUILD_FOR_R
"Set to ON if building lib_lightgbm for use with the R package"
OFF
)
option
(
__INTEGRATE_OPENCL
"Set to ON if building LightGBM with the OpenCL ICD Loader and its dependencies included"
OFF
)
...
...
@@ -55,6 +58,14 @@ if(__INTEGRATE_OPENCL)
message
(
STATUS
"Building library with integrated OpenCL components"
)
endif
()
if
(
__BUILD_FOR_PYTHON OR __BUILD_FOR_R
)
# the Python and R package don't require the CLI
set
(
BUILD_CLI OFF
)
# installing the R and Python package shouldn't place LightGBM's headers
# outside of where the package is installed
set
(
INSTALL_HEADERS OFF
)
endif
()
if
(
CMAKE_CXX_COMPILER_ID STREQUAL
"GNU"
)
if
(
CMAKE_CXX_COMPILER_VERSION VERSION_LESS
"4.8.2"
)
message
(
FATAL_ERROR
"Insufficient gcc version"
)
...
...
@@ -421,8 +432,10 @@ endif()
add_library
(
lightgbm_objs OBJECT
${
SOURCES
}
)
add_executable
(
lightgbm src/main.cpp src/application/application.cpp
)
target_link_libraries
(
lightgbm PRIVATE lightgbm_objs
)
if
(
BUILD_CLI
)
add_executable
(
lightgbm src/main.cpp src/application/application.cpp
)
target_link_libraries
(
lightgbm PRIVATE lightgbm_objs
)
endif
()
set
(
API_SOURCES
"src/c_api.cpp"
)
# Only build the R part of the library if building for
...
...
@@ -544,19 +557,25 @@ if(USE_CUDA)
# each target that contains or depends on cuda source.
set_target_properties
(
lightgbm_objs PROPERTIES CUDA_ARCHITECTURES OFF
)
set_target_properties
(
_lightgbm PROPERTIES CUDA_ARCHITECTURES OFF
)
if
(
BUILD_CLI
)
set_target_properties
(
lightgbm PROPERTIES CUDA_ARCHITECTURES OFF
)
endif
()
set_target_properties
(
lightgbm_objs PROPERTIES CUDA_SEPARABLE_COMPILATION ON
)
# Device linking is not supported for object libraries.
# Thus we have to specify them on final targets.
if
(
BUILD_CLI
)
set_target_properties
(
lightgbm PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON
)
endif
()
set_target_properties
(
_lightgbm PROPERTIES CUDA_RESOLVE_DEVICE_SYMBOLS ON
)
# histograms are list of object libraries. Linking object library to other
# object libraries only gets usage requirements, the linked objects won't be
# used. Thus we have to call target_link_libraries on final targets here.
if
(
BUILD_CLI
)
target_link_libraries
(
lightgbm PRIVATE
${
histograms
}
)
endif
()
target_link_libraries
(
_lightgbm PRIVATE
${
histograms
}
)
endif
()
...
...
@@ -619,11 +638,20 @@ if(BUILD_CPP_TEST)
target_link_libraries
(
testlightgbm PRIVATE lightgbm_objs lightgbm_capi_objs GTest::GTest
)
endif
()
if
(
BUILD_CLI
)
install
(
TARGETS lightgbm
RUNTIME DESTINATION
${
CMAKE_INSTALL_PREFIX
}
/bin
)
endif
()
install
(
TARGETS
lightgbm
_lightgbm
TARGETS _lightgbm
RUNTIME DESTINATION
${
CMAKE_INSTALL_PREFIX
}
/bin
LIBRARY DESTINATION
${
CMAKE_INSTALL_PREFIX
}
/lib
ARCHIVE DESTINATION
${
CMAKE_INSTALL_PREFIX
}
/lib
)
install
(
DIRECTORY
${
LightGBM_HEADER_DIR
}
/LightGBM DESTINATION
${
CMAKE_INSTALL_PREFIX
}
/include
)
if
(
INSTALL_HEADERS
)
install
(
DIRECTORY
${
LightGBM_HEADER_DIR
}
/LightGBM DESTINATION
${
CMAKE_INSTALL_PREFIX
}
/include
)
endif
()
python-package/setup.py
View file @
4536f435
...
...
@@ -91,7 +91,7 @@ def compile_cpp(
logger
.
info
(
"Starting to compile the library."
)
cmake_cmd
=
[
"cmake"
,
str
(
CURRENT_DIR
/
"compile"
)]
cmake_cmd
=
[
"cmake"
,
str
(
CURRENT_DIR
/
"compile"
)
,
"-D__BUILD_FOR_PYTHON=ON"
]
if
integrated_opencl
:
use_gpu
=
False
cmake_cmd
.
append
(
"-D__INTEGRATE_OPENCL=ON"
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment