Installation-Guide.rst 21.3 KB
Newer Older
1
2
3
Installation Guide
==================

4
Here is the guide for the build of LightGBM CLI version.
5

6
7
8
9
All instructions below are aimed to compile 64-bit version of LightGBM.
It is worth to compile 32-bit version only in very rare special cases of environmental limitations.
32-bit version is slow and untested, so use it on your own risk and don't forget to adjust some commands in this guide.

10
11
If you need to build a static library instead of a shared one, you can add ``-DBUILD_STATIC_LIB=ON`` to CMake flags.

Guolin Ke's avatar
Guolin Ke committed
12
13
14
15
Users who want to perform benchmarking can make LightGBM output time costs for different internal routines via adding ``-DUSE_TIMETAG=ON`` to CMake flags.

It is possible to build LightGBM in a debug mode. In this mode all compiler optimizations are disabled and LightGBM performs more checks internally. To enable debug mode you can add ``-DUSE_DEBUG=ON`` to CMake flags or choose ``Debug_*`` configuration (e.g. ``Debug_DLL``, ``Debug_mpi``) in Visual Studio depending on how you are building LightGBM.

16
17
For the build of Python-package and R-package, please refer to `Python-package`_ and `R-package`_ folders respectively.

18
Also you can download artifacts of the latest successful build in master branch (nightly builds): |download artifacts|.
19

20
21
22
23
.. contents:: **Contents**
    :depth: 1
    :local:
    :backlinks: none
24

25
26
27
Windows
~~~~~~~

28
29
30
31
On Windows LightGBM can be built using

- **Visual Studio**;

32
- **CMake** and **VS Build Tools**;
33
34

- **CMake** and **MinGW**.
35

36
37
Visual Studio (or VS Build Tools)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
38
39
40
41

With GUI
********

42
1. Install `Visual Studio`_ (2015 or newer).
43
44
45
46
47

2. Download `zip archive`_ and unzip it.

3. Go to ``LightGBM-master/windows`` folder.

48
4. Open ``LightGBM.sln`` file with **Visual Studio**, choose ``Release`` configuration and click ``BUILD`` -> ``Build Solution (Ctrl+Shift+B)``.
49

50
   If you have errors about **Platform Toolset**, go to ``PROJECT`` -> ``Properties`` -> ``Configuration Properties`` -> ``General`` and select the toolset installed on your machine.
51

52
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release`` folder.
53
54
55
56

From Command Line
*****************

57
1. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is already installed).
58
59
60
61
62

2. Run the following commands:

   .. code::

63
     git clone --recursive https://github.com/microsoft/LightGBM
64
65
66
     cd LightGBM
     mkdir build
     cd build
67
     cmake -A x64 ..
68
69
     cmake --build . --target ALL_BUILD --config Release

70
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
71

72
73
MinGW-w64
^^^^^^^^^
74
75
76
77
78
79
80

1. Install `Git for Windows`_, `CMake`_ and `MinGW-w64`_.

2. Run the following commands:

   .. code::

81
     git clone --recursive https://github.com/microsoft/LightGBM
82
83
84
85
86
87
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" ..
     mingw32-make.exe -j4

88
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
89

90
**Note**: You may need to run the ``cmake -G "MinGW Makefiles" ..`` one more time if you encounter the ``sh.exe was found in your PATH`` error.
91

92
93
It is recommended to use **Visual Studio** for its better multithreading efficiency in **Windows** for many-core systems
(see `Question 4 <./FAQ.rst#i-am-using-windows-should-i-use-visual-studio-or-mingw-for-compiling-lightgbm>`__ and `Question 8 <./FAQ.rst#cpu-usage-is-low-like-10-in-windows-when-using-lightgbm-on-very-large-datasets-with-many-core-systems>`__).
94
95

Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.
96

97
98
99
Linux
~~~~~

100
On Linux LightGBM can be built using **CMake** and **gcc** or **Clang**.
101

102
1. Install `CMake`_.
103

104
105
106
107
2. Run the following commands:

   .. code::

108
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
109
110
111
     mkdir build ; cd build
     cmake ..
     make -j4
112
113
114

**Note**: glibc >= 2.14 is required.

115
Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.
116

117
118
macOS
~~~~~
119

120
On macOS LightGBM can be installed using **Homebrew**, or can be built using **CMake** and **Apple Clang** or **gcc**.
121
122
123

Apple Clang
^^^^^^^^^^^
fanliwen's avatar
fanliwen committed
124

125
Only **Apple Clang** version 8.1 or higher is supported.
fanliwen's avatar
fanliwen committed
126

127
128
129
130
131
132
133
134
135
136
Install Using ``Homebrew``
**************************

.. code::

  brew install lightgbm

Build from GitHub
*****************

137
1. Install `CMake`_ (3.16 or higher):
Nikita Titov's avatar
Nikita Titov committed
138

139
   .. code::
Nikita Titov's avatar
Nikita Titov committed
140

141
     brew install cmake
fanliwen's avatar
fanliwen committed
142

143
2. Install **OpenMP**:
fanliwen's avatar
fanliwen committed
144
145
146
147

   .. code::

     brew install libomp
148
149
150
151
152

3. Run the following commands:

   .. code::

153
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
fanliwen's avatar
fanliwen committed
154
155
156
157
     mkdir build ; cd build
     cmake ..
     make -j4

158
159
gcc
^^^
160

161
1. Install `CMake`_ (3.2 or higher):
162

163
   .. code::
164

165
     brew install cmake
166

167
2. Install **gcc**:
168

169
   .. code::
170

171
172
173
174
175
176
     brew install gcc

3. Run the following commands:

   .. code::

177
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
178
179
180
181
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
     mkdir build ; cd build
     cmake ..
     make -j4
182

183
Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.
184

185
186
187
Docker
~~~~~~

188
Refer to `Docker folder <https://github.com/microsoft/LightGBM/tree/master/docker>`__.
189

190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
Build Threadless Version (not Recommended)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The default build version of LightGBM is based on OpenMP.
However, you can build the LightGBM without OpenMP support, but it is **strongly not recommended**.

Windows
^^^^^^^

On Windows version of LightGBM without OpenMP support can be built using

- **Visual Studio**;

- **CMake** and **VS Build Tools**;

- **CMake** and **MinGW**.

Visual Studio (or VS Build Tools)
*********************************

With GUI
--------

1. Install `Visual Studio`_ (2015 or newer).

2. Download `zip archive`_ and unzip it.

3. Go to ``LightGBM-master/windows`` folder.

4. Open ``LightGBM.sln`` file with **Visual Studio**.

5. Go to ``PROJECT`` -> ``Properties`` -> ``Configuration Properties`` -> ``C/C++`` -> ``Language`` and change the ``OpenMP Support`` property to ``No (/openmp-)``.

6. Get back to the project's main screen, then choose ``Release`` configuration and click ``BUILD`` -> ``Build Solution (Ctrl+Shift+B)``.

   If you have errors about **Platform Toolset**, go to ``PROJECT`` -> ``Properties`` -> ``Configuration Properties`` -> ``General`` and select the toolset installed on your machine.

227
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release`` folder.
228
229
230
231
232
233
234
235
236
237

From Command Line
-----------------

1. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is already installed).

2. Run the following commands:

   .. code::

238
     git clone --recursive https://github.com/microsoft/LightGBM
239
240
241
     cd LightGBM
     mkdir build
     cd build
242
     cmake -A x64 -DUSE_OPENMP=OFF ..
243
244
     cmake --build . --target ALL_BUILD --config Release

245
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
246
247
248
249
250
251
252
253
254
255

MinGW-w64
*********

1. Install `Git for Windows`_, `CMake`_ and `MinGW-w64`_.

2. Run the following commands:

   .. code::

256
     git clone --recursive https://github.com/microsoft/LightGBM
257
258
259
260
261
262
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" -DUSE_OPENMP=OFF ..
     mingw32-make.exe -j4

263
The ``.exe`` and ``.dll`` files will be in ``LightGBM/`` folder.
264
265
266
267
268
269
270
271
272
273
274
275
276
277

**Note**: You may need to run the ``cmake -G "MinGW Makefiles" -DUSE_OPENMP=OFF ..`` one more time if you encounter the ``sh.exe was found in your PATH`` error.

Linux
^^^^^

On Linux version of LightGBM without OpenMP support can be built using **CMake** and **gcc** or **Clang**.

1. Install `CMake`_.

2. Run the following commands:

   .. code::

278
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
     mkdir build ; cd build
     cmake -DUSE_OPENMP=OFF ..
     make -j4

**Note**: glibc >= 2.14 is required.

macOS
^^^^^

On macOS version of LightGBM without OpenMP support can be built using **CMake** and **Apple Clang** or **gcc**.

Apple Clang
***********

Only **Apple Clang** version 8.1 or higher is supported.

1. Install `CMake`_ (3.12 or higher):

   .. code::

     brew install cmake

2. Run the following commands:

   .. code::

305
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
     mkdir build ; cd build
     cmake -DUSE_OPENMP=OFF ..
     make -j4

gcc
***

1. Install `CMake`_ (3.2 or higher):

   .. code::

     brew install cmake

2. Install **gcc**:

   .. code::

     brew install gcc

3. Run the following commands:

   .. code::

329
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
330
331
332
333
334
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
     mkdir build ; cd build
     cmake -DUSE_OPENMP=OFF ..
     make -j4

335
336
337
Build MPI Version
~~~~~~~~~~~~~~~~~

338
339
The default build version of LightGBM is based on socket. LightGBM also supports MPI.
`MPI`_ is a high performance communication approach with `RDMA`_ support.
340
341
342
343
344
345

If you need to run a parallel learning application with high performance communication, you can build the LightGBM with MPI support.

Windows
^^^^^^^

346
347
348
349
On Windows MPI version of LightGBM can be built using

- **MS MPI** and **Visual Studio**;

350
- **MS MPI**, **CMake** and **VS Build Tools**.
351

352
353
354
With GUI
********

355
1. You need to install `MS MPI`_ first. Both ``msmpisdk.msi`` and ``msmpisetup.exe`` are needed.
356

357
2. Install `Visual Studio`_ (2015 or newer).
358
359
360
361
362

3. Download `zip archive`_ and unzip it.

4. Go to ``LightGBM-master/windows`` folder.

363
5. Open ``LightGBM.sln`` file with **Visual Studio**, choose ``Release_mpi`` configuration and click ``BUILD`` -> ``Build Solution (Ctrl+Shift+B)``.
364

365
   If you have errors about **Platform Toolset**, go to ``PROJECT`` -> ``Properties`` -> ``Configuration Properties`` -> ``General`` and select the toolset installed on your machine.
366

367
The ``.exe`` file will be in ``LightGBM-master/windows/x64/Release_mpi`` folder.
368
369
370
371

From Command Line
*****************

372
1. You need to install `MS MPI`_ first. Both ``msmpisdk.msi`` and ``msmpisetup.exe`` are needed.
373

374
2. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is already installed).
375
376
377
378
379

3. Run the following commands:

   .. code::

380
     git clone --recursive https://github.com/microsoft/LightGBM
381
382
383
     cd LightGBM
     mkdir build
     cd build
384
     cmake -A x64 -DUSE_MPI=ON ..
385
386
     cmake --build . --target ALL_BUILD --config Release

387
The ``.exe`` and ``.dll`` files will be in ``LightGBM/Release`` folder.
388

389
**Note**: Building MPI version by **MinGW** is not supported due to the miss of MPI library in it.
390
391
392
393

Linux
^^^^^

394
On Linux MPI version of LightGBM can be built using **Open MPI**, **CMake** and **gcc** or **Clang**.
395

396
1. Install `Open MPI`_.
397

398
2. Install `CMake`_.
399

400
401
402
403
3. Run the following commands:

   .. code::

404
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
405
406
407
     mkdir build ; cd build
     cmake -DUSE_MPI=ON ..
     make -j4
408
409
410

**Note**: glibc >= 2.14 is required.

411
412
macOS
^^^^^
413

414
On macOS MPI version of LightGBM can be built using **Open MPI**, **CMake** and **Apple Clang** or **gcc**.
415

416
417
Apple Clang
***********
418

419
Only **Apple Clang** version 8.1 or higher is supported.
420

421
1. Install `CMake`_ (3.16 or higher):
422

423
   .. code::
424

425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
     brew install cmake

2. Install **OpenMP**:

   .. code::

     brew install libomp

3. Install **Open MPI**:

   .. code::

     brew install open-mpi

4. Run the following commands:

   .. code::

443
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
     mkdir build ; cd build
     cmake -DUSE_MPI=ON ..
     make -j4

gcc
***

1. Install `CMake`_ (3.2 or higher):

   .. code::

     brew install cmake

2. Install **gcc**:

   .. code::

     brew install gcc

3. Install **Open MPI**:

   .. code::

     brew install open-mpi

4. Run the following commands:

   .. code::

473
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
474
475
476
477
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
     mkdir build ; cd build
     cmake -DUSE_MPI=ON ..
     make -j4
478
479
480
481
482
483
484

Build GPU Version
~~~~~~~~~~~~~~~~~

Linux
^^^^^

485
486
On Linux GPU version of LightGBM can be built using **OpenCL**, **Boost**, **CMake** and **gcc** or **Clang**.

487
488
The following dependencies should be installed before compilation:

489
-  **OpenCL** 1.2 headers and libraries, which is usually provided by GPU manufacture.
490

491
   The generic OpenCL ICD packages (for example, Debian package ``ocl-icd-libopencl1`` and ``ocl-icd-opencl-dev``) can also be used.
492

493
-  **libboost** 1.56 or later (1.61 or later is recommended).
494
495
496
497
498

   We use Boost.Compute as the interface to GPU, which is part of the Boost library since version 1.61. However, since we include the source code of Boost.Compute as a submodule, we only require the host has Boost 1.56 or later installed. We also use Boost.Align for memory allocation. Boost.Compute requires Boost.System and Boost.Filesystem to store offline kernel cache.

   The following Debian packages should provide necessary Boost libraries: ``libboost-dev``, ``libboost-system-dev``, ``libboost-filesystem-dev``.

499
-  **CMake** 3.2 or later.
500
501
502
503
504

To build LightGBM GPU version, run the following commands:

.. code::

505
  git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
506
507
  mkdir build ; cd build
  cmake -DUSE_GPU=1 ..
508
509
  # if you have installed NVIDIA CUDA to a customized location, you should specify paths to OpenCL headers and library like the following:
  # cmake -DUSE_GPU=1 -DOpenCL_LIBRARY=/usr/local/cuda/lib64/libOpenCL.so -DOpenCL_INCLUDE_DIR=/usr/local/cuda/include/ ..
510
511
512
513
514
  make -j4

Windows
^^^^^^^

515
On Windows GPU version of LightGBM can be built using **OpenCL**, **Boost**, **CMake** and **VS Build Tools** or **MinGW**.
516

517
If you use **MinGW**, the build procedure is similar to the build on Linux. Refer to `GPU Windows Compilation <./GPU-Windows.rst>`__ to get more details.
518

519
520
Following procedure is for the **MSVC** (Microsoft Visual C++) build.

521
1. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is installed).
522
523
524
525
526

2. Install **OpenCL** for Windows. The installation depends on the brand (NVIDIA, AMD, Intel) of your GPU card.

   - For running on Intel, get `Intel SDK for OpenCL`_.

527
   - For running on AMD, get AMD APP SDK.
528
529
530

   - For running on NVIDIA, get `CUDA Toolkit`_.

531
532
   Further reading and correspondence table: `GPU SDK Correspondence and Device Targeting Table <./GPU-Targets.rst>`__.

Nikita Titov's avatar
Nikita Titov committed
533
3. Install `Boost Binaries`_.
534

535
   **Note**: Match your Visual C++ version:
536
537
538
   
   Visual Studio 2015 -> ``msvc-14.0-64.exe``,

539
540
541
   Visual Studio 2017 -> ``msvc-14.1-64.exe``,

   Visual Studio 2019 -> ``msvc-14.2-64.exe``.
542
543
544
545
546

4. Run the following commands:

   .. code::

547
     git clone --recursive https://github.com/microsoft/LightGBM
548
549
550
     cd LightGBM
     mkdir build
     cd build
551
552
553
     cmake -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:/local/boost_1_63_0 -DBOOST_LIBRARYDIR=C:/local/boost_1_63_0/lib64-msvc-14.0 ..
     # if you have installed NVIDIA CUDA to a customized location, you should specify paths to OpenCL headers and library like the following:
     # cmake -A x64 -DUSE_GPU=1 -DBOOST_ROOT=C:/local/boost_1_63_0 -DBOOST_LIBRARYDIR=C:/local/boost_1_63_0/lib64-msvc-14.0 -DOpenCL_LIBRARY="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/lib/x64/OpenCL.lib" -DOpenCL_INCLUDE_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.0/include" ..
554
555
     cmake --build . --target ALL_BUILD --config Release

556
   **Note**: ``C:/local/boost_1_63_0`` and ``C:/local/boost_1_63_0/lib64-msvc-14.0`` are locations of your **Boost** binaries (assuming you've downloaded 1.63.0 version for Visual Studio 2015).
557
558
559
560

Docker
^^^^^^

561
Refer to `GPU Docker folder <https://github.com/microsoft/LightGBM/tree/master/docker/gpu>`__.
562

563
564
565
Build HDFS Version
~~~~~~~~~~~~~~~~~~

566
HDFS version of LightGBM was tested on CDH-5.14.4 cluster.
567
568
569
570

Linux
^^^^^

571
On Linux HDFS version of LightGBM can be built using **CMake** and **gcc**.
572

573
1. Install `CMake`_.
fanliwen's avatar
fanliwen committed
574
575
576
577
578

2. Run the following commands:

   .. code::

579
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
fanliwen's avatar
fanliwen committed
580
581
     mkdir build ; cd build
     cmake -DUSE_HDFS=ON ..
582
583
584
585
586
587
     # if you have installed HDFS to a customized location, you should specify paths to HDFS headers (hdfs.h) and library (libhdfs.so) like the following:
     # cmake \
     #   -DUSE_HDFS=ON \
     #   -DHDFS_LIB="/opt/cloudera/parcels/CDH-5.14.4-1.cdh5.14.4.p0.3/lib64/libhdfs.so" \
     #   -DHDFS_INCLUDE_DIR="/opt/cloudera/parcels/CDH-5.14.4-1.cdh5.14.4.p0.3/include/" \
     #   ..
fanliwen's avatar
fanliwen committed
588
589
     make -j4

590
591
592
Build Java Wrapper
~~~~~~~~~~~~~~~~~~

593
594
595
596
597
By the following instructions you can generate a JAR file containing the LightGBM `C API <./Development-Guide.rst#c-api>`__ wrapped by **SWIG**.

Windows
^^^^^^^

598
On Windows Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **VS Build Tools** or **MinGW**.
599

600
601
VS Build Tools
**************
602

603
1. Install `Git for Windows`_, `CMake`_ (3.8 or higher) and `VS Build Tools`_ (**VS Build Tools** is not needed if **Visual Studio** (2015 or newer) is already installed).
604
605
606
607
608
609
610

2. Install `SWIG`_ and **Java** (also make sure that ``JAVA_HOME`` is set properly).

3. Run the following commands:

   .. code::

611
     git clone --recursive https://github.com/microsoft/LightGBM
612
613
614
     cd LightGBM
     mkdir build
     cd build
615
     cmake -A x64 -DUSE_SWIG=ON ..
616
617
     cmake --build . --target ALL_BUILD --config Release

618
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/Release`` folder.
619
620
621
622
623
624
625
626
627
628
629
630

MinGW-w64
*********

1. Install `Git for Windows`_, `CMake`_ and `MinGW-w64`_.

2. Install `SWIG`_ and **Java** (also make sure that ``JAVA_HOME`` is set properly).

3. Run the following commands:

   .. code::

631
     git clone --recursive https://github.com/microsoft/LightGBM
632
633
634
635
636
637
     cd LightGBM
     mkdir build
     cd build
     cmake -G "MinGW Makefiles" -DUSE_SWIG=ON ..
     mingw32-make.exe -j4

638
The ``.jar`` file will be in ``LightGBM/build`` folder and the ``.dll`` files will be in ``LightGBM/`` folder.
639
640
641

**Note**: You may need to run the ``cmake -G "MinGW Makefiles" -DUSE_SWIG=ON ..`` one more time if you encounter the ``sh.exe was found in your PATH`` error.

642
643
644
It is recommended to use **VS Build Tools (Visual Studio)** for its better multithreading efficiency in **Windows** for many-core systems
(see `Question 4 <./FAQ.rst#i-am-using-windows-should-i-use-visual-studio-or-mingw-for-compiling-lightgbm>`__ and `Question 8 <./FAQ.rst#cpu-usage-is-low-like-10-in-windows-when-using-lightgbm-on-very-large-datasets-with-many-core-systems>`__).

645
646
647

Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.

648
649
650
Linux
^^^^^

651
On Linux Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **gcc** or **Clang**.
652

653
1. Install `CMake`_, `SWIG`_ and **Java** (also make sure that ``JAVA_HOME`` is set properly).
654

655
2. Run the following commands:
656

657
658
   .. code::

659
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
660
661
     mkdir build ; cd build
     cmake -DUSE_SWIG=ON ..
662
     make -j4
663

664
665
666
667
668
669
670
671
672
673
674
675
676
macOS
^^^^^

On macOS Java wrapper of LightGBM can be built using **Java**, **SWIG**, **CMake** and **Apple Clang** or **gcc**.

First, install `SWIG`_ and **Java** (also make sure that ``JAVA_HOME`` is set properly).
Then, either follow the **Apple Clang** or **gcc** installation instructions below.

Apple Clang
***********

Only **Apple Clang** version 8.1 or higher is supported.

677
1. Install `CMake`_ (3.16 or higher):
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692

   .. code::

     brew install cmake

2. Install **OpenMP**:

   .. code::

     brew install libomp

3. Run the following commands:

   .. code::

693
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
     mkdir build ; cd build
     cmake -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON ..
     make -j4

gcc
***

1. Install `CMake`_ (3.2 or higher):

   .. code::

     brew install cmake

2. Install **gcc**:

   .. code::

     brew install gcc

3. Run the following commands:

   .. code::

717
     git clone --recursive https://github.com/microsoft/LightGBM ; cd LightGBM
718
719
720
721
722
723
724
725
     export CXX=g++-7 CC=gcc-7  # replace "7" with version of gcc installed on your machine
     mkdir build ; cd build
     cmake -DUSE_SWIG=ON -DAPPLE_OUTPUT_DYLIB=ON ..
     make -j4

Also, you may want to read `gcc Tips <./gcc-Tips.rst>`__.


726
727
728
.. |download artifacts| image:: ./_static/images/artifacts-not-available.svg
   :target: https://lightgbm.readthedocs.io/en/latest/Installation-Guide.html

729
.. _Python-package: https://github.com/microsoft/LightGBM/tree/master/python-package
730

731
.. _R-package: https://github.com/microsoft/LightGBM/tree/master/R-package
732

733
.. _zip archive: https://github.com/microsoft/LightGBM/archive/master.zip
734

735
.. _Visual Studio: https://visualstudio.microsoft.com/downloads/
736
737
738
739
740

.. _Git for Windows: https://git-scm.com/download/win

.. _CMake: https://cmake.org/

741
.. _VS Build Tools: https://visualstudio.microsoft.com/downloads/
742
743
744
745
746
747
748

.. _MinGW-w64: https://mingw-w64.org/doku.php/download

.. _MPI: https://en.wikipedia.org/wiki/Message_Passing_Interface

.. _RDMA: https://en.wikipedia.org/wiki/Remote_direct_memory_access

749
.. _MS MPI: https://www.microsoft.com/en-us/download/details.aspx?id=100593
750
751
752
753
754
755
756

.. _Open MPI: https://www.open-mpi.org/

.. _Intel SDK for OpenCL: https://software.intel.com/en-us/articles/opencl-drivers

.. _CUDA Toolkit: https://developer.nvidia.com/cuda-downloads

Nikita Titov's avatar
Nikita Titov committed
757
.. _Boost Binaries: https://bintray.com/boostorg/release/boost-binaries/_latestVersion#files
758
759

.. _SWIG: http://www.swig.org/download.html