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
aac8e8f7
"vscode:/vscode.git/clone" did not exist on "6d825cd3a1ac6f886654f604e824f7823a259cb5"
Commit
aac8e8f7
authored
Aug 27, 2018
by
Ilya Matiach
Committed by
Guolin Ke
Aug 28, 2018
Browse files
Added LightGBM JAVA SWIG wrapper support for windows (#1599)
parent
21575cb2
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
34 additions
and
10 deletions
+34
-10
CMakeLists.txt
CMakeLists.txt
+34
-10
No files found.
CMakeLists.txt
View file @
aac8e8f7
...
...
@@ -49,11 +49,16 @@ if(USE_SWIG)
set
(
SWIG_MODULE_JAVA_LANGUAGE
"JAVA"
)
set
(
SWIG_MODULE_JAVA_SWIG_LANGUAGE_FLAG
"java"
)
set
(
CMAKE_SWIG_OUTDIR
"
${
CMAKE_CURRENT_BINARY_DIR
}
/java"
)
FILE
(
MAKE_DIRECTORY
"
${
CMAKE_CURRENT_BINARY_DIR
}
/com/microsoft/ml/lightgbm/linux/x86_64"
)
include_directories
(
Java_INCLUDE_DIRS
)
include_directories
(
JNI_INCLUDE_DIRS
)
include_directories
(
$ENV{JAVA_HOME}/include
)
if
(
WIN32
)
FILE
(
MAKE_DIRECTORY
"
${
CMAKE_CURRENT_BINARY_DIR
}
/com/microsoft/ml/lightgbm/windows/x86_64"
)
include_directories
(
$ENV{JAVA_HOME}/include/win32
)
else
()
FILE
(
MAKE_DIRECTORY
"
${
CMAKE_CURRENT_BINARY_DIR
}
/com/microsoft/ml/lightgbm/linux/x86_64"
)
include_directories
(
$ENV{JAVA_HOME}/include/linux
)
endif
()
endif
(
USE_SWIG
)
if
(
USE_R35
)
...
...
@@ -164,22 +169,41 @@ file(GLOB SOURCES
add_executable
(
lightgbm src/main.cpp
${
SOURCES
}
)
add_library
(
_lightgbm SHARED src/c_api.cpp src/lightgbm_R.cpp
${
SOURCES
}
)
if
(
MSVC
)
set_target_properties
(
_lightgbm PROPERTIES OUTPUT_NAME
"lib_lightgbm"
)
endif
(
MSVC
)
if
(
USE_SWIG
)
set_property
(
SOURCE swig/lightgbmlib.i PROPERTY CPLUSPLUS ON
)
LIST
(
APPEND swig_options -package com.microsoft.ml.lightgbm
)
set_property
(
SOURCE swig/lightgbmlib.i PROPERTY SWIG_FLAGS
"
${
swig_options
}
"
)
swig_add_module
(
_lightgbm_swig java swig/lightgbmlib.i
)
swig_link_libraries
(
_lightgbm_swig _lightgbm
)
# needed to ensure linux build does not have lib specified twice, eg liblib_lightgbm_swig
set_target_properties
(
_lightgbm_swig PROPERTIES PREFIX
""
)
# needed in latest version of cmake for VS and MINGW builds to ensure output dll has lib prefix
set_target_properties
(
_lightgbm_swig PROPERTIES OUTPUT_NAME
"lib_lightgbm_swig"
)
if
(
WIN32
)
if
(
MINGW OR CYGWIN
)
add_custom_command
(
TARGET _lightgbm_swig POST_BUILD
COMMAND
"
${
Java_JAVAC_EXECUTABLE
}
"
-d . java/*.java
COMMAND
"
${
CMAKE_COMMAND
}
"
-E copy_if_different
"
${
PROJECT_SOURCE_DIR
}
/lib_lightgbm.dll"
com/microsoft/ml/lightgbm/windows/x86_64
COMMAND
"
${
CMAKE_COMMAND
}
"
-E copy_if_different
"
${
PROJECT_SOURCE_DIR
}
/lib_lightgbm_swig.dll"
com/microsoft/ml/lightgbm/windows/x86_64
COMMAND
"
${
Java_JAR_EXECUTABLE
}
"
-cf lightgbmlib.jar com
)
else
()
add_custom_command
(
TARGET _lightgbm_swig POST_BUILD
COMMAND
"
${
Java_JAVAC_EXECUTABLE
}
"
-d . java/*.java
COMMAND cp
"
${
PROJECT_SOURCE_DIR
}
/Release/*.dll"
com/microsoft/ml/lightgbm/windows/x86_64
COMMAND
"
${
Java_JAR_EXECUTABLE
}
"
-cf lightgbmlib.jar com
)
endif
()
else
()
add_custom_command
(
TARGET _lightgbm_swig POST_BUILD
COMMAND
"
${
Java_JAVAC_EXECUTABLE
}
"
-d . java/*.java
COMMAND cp
"
${
PROJECT_SOURCE_DIR
}
/*.so"
com/microsoft/ml/lightgbm/linux/x86_64
COMMAND
"
${
Java_JAR_EXECUTABLE
}
"
-cf lightgbmlib.jar com
)
endif
()
endif
(
USE_SWIG
)
if
(
MSVC
)
set_target_properties
(
_lightgbm PROPERTIES OUTPUT_NAME
"lib_lightgbm"
)
endif
(
MSVC
)
if
(
USE_MPI
)
TARGET_LINK_LIBRARIES
(
lightgbm
${
MPI_CXX_LIBRARIES
}
)
TARGET_LINK_LIBRARIES
(
_lightgbm
${
MPI_CXX_LIBRARIES
}
)
...
...
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