Skip to content

Commit

Permalink
Support build self-contained R package. (#340)
Browse files Browse the repository at this point in the history
* add scripts for build self-contain R-package in windows.

* add unix build.

* Update README.md
  • Loading branch information
guolinke committed Mar 10, 2017
1 parent 56b9844 commit b7e5f07
Show file tree
Hide file tree
Showing 6 changed files with 73 additions and 0 deletions.
2 changes: 2 additions & 0 deletions R-package/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,8 @@ You can also install directly from R using the repository with `devtools`:
devtools::install_github("Microsoft/LightGBM", subdir = "R-package")
```

If want to build the self-contained R package, you can run ```unix_build_package.sh```(for UNIX) or ```win_build_package.cmd ```(for Windows). Then use ```R CMD INSTALL lightgbm_0.1.tar.gz``` to install.


You can check quickly if your LightGBM R package is working by running the following:

Expand Down
12 changes: 12 additions & 0 deletions R-package/src/Makevars_fullcode
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# package root
PKGROOT=.

ENABLE_STD_THREAD=1
CXX_STD = CXX11

LGBM_RFLAGS = -DUSE_SOCKET

PKG_CPPFLAGS= -I$(PKGROOT)/include $(LGBM_RFLAGS) -Wno-deprecated-declarations
PKG_CXXFLAGS= $(SHLIB_OPENMP_CFLAGS) $(SHLIB_PTHREAD_FLAGS) -std=c++11
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS) $(SHLIB_PTHREAD_FLAGS)
OBJECTS = ./lightgbm-fullcode.o ./lightgbm_R.o
12 changes: 12 additions & 0 deletions R-package/src/Makevars_fullcode.win
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# package root
PKGROOT=.

ENABLE_STD_THREAD=1
CXX_STD = CXX11

LGBM_RFLAGS = -DUSE_SOCKET

PKG_CPPFLAGS= -I$(PKGROOT)/include $(LGBM_RFLAGS)
PKG_CXXFLAGS= $(SHLIB_OPENMP_CFLAGS) $(SHLIB_PTHREAD_FLAGS) -std=c++11
PKG_LIBS = $(SHLIB_OPENMP_CFLAGS) $(SHLIB_PTHREAD_FLAGS) -lws2_32 -liphlpapi
OBJECTS = ./lightgbm-fullcode.o ./lightgbm_R.o
37 changes: 37 additions & 0 deletions R-package/src/lightgbm-fullcode.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
// application
#include "./src/application/application.cpp"

// boosting
#include "./src/boosting/boosting.cpp"
#include "./src/boosting/gbdt.cpp"

// io
#include "./src/io/bin.cpp"
#include "./src/io/config.cpp"
#include "./src/io/dataset.cpp"
#include "./src/io/dataset_loader.cpp"
#include "./src/io/metadata.cpp"
#include "./src/io/parser.cpp"
#include "./src/io/tree.cpp"

// metric
#include "./src/metric/dcg_calculator.cpp"
#include "./src/metric/metric.cpp"

// network
#include "./src/network/linker_topo.cpp"
#include "./src/network/linkers_socket.cpp"
#include "./src/network/network.cpp"

// objective
#include "./src/objective/objective_function.cpp"

// treelearner
#include "./src/treelearner/data_parallel_tree_learner.cpp"
#include "./src/treelearner/feature_parallel_tree_learner.cpp"
#include "./src/treelearner/serial_tree_learner.cpp"
#include "./src/treelearner/tree_learner.cpp"
#include "./src/treelearner/voting_parallel_tree_learner.cpp"

// c_api
#include "./src/c_api.cpp"
5 changes: 5 additions & 0 deletions R-package/unix_build_package.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
cp ../include ./src/include -rf
cp ../src ./src/src -rf
rm ./src/Makevars
cp ./src/Makevars_fullcode ./src/Makevars -f
R CMD build --no-build-vignettes .
5 changes: 5 additions & 0 deletions R-package/win_build_package.cmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
xcopy ..\include src\include /e /i /y
xcopy ..\src src\src /e /i /y
del .\src\Makevars.win
copy .\src\Makevars_fullcode.win .\src\Makevars.win /y
R CMD build --no-build-vignettes .

0 comments on commit b7e5f07

Please sign in to comment.