Building LuxCoreRender (legacy): Difference between revisions
Line 173: | Line 173: | ||
cmake -DOSX_DEPENDENCY_ROOT=$DEPS_SOURCE -DCMAKE_BUILD_TYPE=Release .. | cmake -DOSX_DEPENDENCY_ROOT=$DEPS_SOURCE -DCMAKE_BUILD_TYPE=Release .. | ||
make</pre> | make</pre> | ||
==== Xcode ==== | ==== Xcode ==== |
Revision as of 00:18, 17 December 2020
Windows
See the Readme file here: https://github.com/LuxCoreRender/WindowsCompile
Linux
Static link environment
A static link environment is used to create binaries for releases. Most libraries that LuxCore depends on are embedded into the LuxCore executables.
First Run
On a recent Ubuntu (e.g. 19.10), you can compile LuxCore with the following commands:
sudo apt install git git clone https://github.com/LuxCoreRender/LinuxCompile.git cd LinuxCompile ./first_run.sh
To test LuxCoreUI, you can now start it:
cd target-64-sse2/LuxCore-opencl/ ./luxcoreui ./scenes/cornell/cornell.cfg
Updating
To update to the latest sources, use standard git commands:
cd LuxCore-opencl git pull # Go back to LinuxCompile folder and compile cd .. ./build-64-sse2 LuxCore-opencl 5
Recompiling
In case you update the LuxCore repository (by using git pull), re-run the last stage (5) of the build script:
./build-64-sse2 LuxCore-opencl 5
In case you edit any source files and want to recompile quickly, go to the LuxCore sources directory and run make:
cd LuxCore-opencl make -j8
(-j<n> specifies number of threads for the compilation process)
The compiled binaries are in LuxCore-opencl/bin/, the compiled libraries (e.g. pyluxcore.so) are in LuxCore-opencl/lib/
Ubuntu 14.04 LTS (Dynamic linking)
Dynamic link builds are only used for developing/debugging, not for release builds.
# Install deps sudo apt-get update sudo apt-get install git cmake g++ flex bison libbz2-dev libopenimageio-dev libtiff5-dev libpng12-dev libgtk-3-dev libopenexr-dev libgl1-mesa-dev python3-dev python3-pip # Compile Boost wget https://sourceforge.net/projects/boost/files/boost/1.56.0/boost_1_56_0.tar.gz tar zxvf boost_1_56_0.tar.gz cd boost_1_56_0 ./bootstrap.sh --with-python=/usr/bin/python3 ./b2 -j 8 install --prefix=`pwd`/../boost_1_56_0-bin cd .. export LD_LIBRARY_PATH=`pwd`/boost_1_56_0-bin/lib:$LD_LIBRARY_PATH # Install Embree wget https://github.com/embree/embree/releases/download/v2.17.1/embree-2.17.1.x86_64.linux.tar.gz tar zxvf embree-2.17.1.x86_64.linux.tar.gz export LD_LIBRARY_PATH=`pwd`/embree-2.17.1.x86_64.linux/lib:$LD_LIBRARY_PATH # Install Pillow sudo pip3 install pillow # Compile LuxCore git clone https://github.com/LuxCoreRender/LuxCore.git cd LuxCore cmake -D BOOST_SEARCH_PATH=`pwd`/../boost_1_56_0-bin -D EMBREE_SEARCH_PATH=`pwd`/../embree-2.17.1.x86_64.linux -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.4m.so -DPYTHON_INCLUDE_DIR=/usr/include/python3.4m -DPYTHON_INCLUDE_DIR2=/usr/include/python3.4m . make -j 8
Ubuntu 16.04 LTS (Dynamic linking)
Dynamic link builds are only used for developing/debugging, not for release builds.
# Install deps sudo apt-get update sudo apt-get install git cmake g++ flex bison libbz2-dev libopenimageio-dev libtiff5-dev libpng12-dev libgtk-3-dev libopenexr-dev libgl1-mesa-dev python3-dev python3-pip libboost-all-dev # Install Embree wget https://github.com/embree/embree/releases/download/v2.17.1/embree-2.17.1.x86_64.linux.tar.gz tar zxvf embree-2.17.1.x86_64.linux.tar.gz export LD_LIBRARY_PATH=`pwd`/embree-2.17.1.x86_64.linux/lib:$LD_LIBRARY_PATH # Install Pillow sudo pip3 install pillow # To have Python v3.x in pyluxcore.so sudo rm /usr/lib/x86_64-linux-gnu/libboost_python.so sudo ln -s /usr/lib/x86_64-linux-gnu/libboost_python-py35.so /usr/lib/x86_64-linux-gnu/libboost_python.so # Compile LuxCore git clone https://github.com/LuxCoreRender/LuxCore.git cd LuxCore export CMAKE_PREFIX_PATH=/usr/lib/x86_64-linux-gnu:/usr/include/x86_64-linux-gnu cmake -D EMBREE_SEARCH_PATH=`pwd`/../embree-2.17.1.x86_64.linux -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.5m.so -DPYTHON_INCLUDE_DIR=/usr/include/python3.5m . make -j 8
NOTE: Default Boost version in Ubuntu 16.04LTS is v1.58. Any serialization related feature will not work with standard version v1.56.
MacOs 10.13 +
Install build environment
Install latest Xcode and Command Line Tools for your OS version.
Install Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Install brew stuff and python3
brew install pyenv cmake bison gnu-sed gnu-tar xz libtool autoconf automake ispc PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH" PATH="/usr/local/opt/gnu-tar/libexec/gnubin:$PATH" pyenv init eval "$(pyenv init -)” env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.7.4 pyenv global 3.7.4 pip install numpy pip install pillow pip install pyside2
For CUDA builds on MacOS 10.13 only install cuda toolkit.
Compile Dependencies
pyenv shell 3.7.4 git clone https://github.com/LuxCoreRender/MacOSCompileDeps.git cd MacOSCompileDeps ./cut_deps_release
This will leave you with a MacDistFiles.tar.gz .
Compile LuxCore
git clone https://github.com/LuxCoreRender/LuxCore.git cd LuxCore
Copy MacDistFiles.tar.gz to LuxCore root and unpack. Just double-click. or
tar xzf MacDistFiles.tar.gz
Now do
cmake
export PATH="/usr/local/opt/bison/bin:/usr/local/bin:$PATH" DEPS_SOURCE=`pwd`/macos mkdir build cd build cmake -DOSX_DEPENDENCY_ROOT=$DEPS_SOURCE -DCMAKE_BUILD_TYPE=Release .. make
Xcode
export PATH="/usr/local/opt/bison/bin:/usr/local/bin:$PATH" DEPS_SOURCE=`pwd`/macos mkdir build cd build cmake -G Xcode -DOSX_DEPENDENCY_ROOT=$DEPS_SOURCE -DCMAKE_BUILD_TYPE=Release ..
use
-DLUXRAYS_DISABLE_OPENCL=1
for non OpenCL build
and
-DLUXRAYS_ENABLE_OPENCL=1 -DLUXRAYS_ENABLE_CUDA=1
for CUDA builds.( 10.13 HighSierra only )
Open Xcode project and compile.
Make bundle
run
./scripts/macos/pack_lux_osx.sh
or for XCode build
./scripts/macos/pack_lux_osx_xcode.sh
from LuxCore root.
This should end up with a distributable .dmg.
Have fun and good luck.
Contributing
If you want to contribute to LuxCore development or just submit a quick patch, the easiest way to start is to fork the repository on github.
You can then edit your fork, commit your changes and send us a pull request.
If you continue to contribute, we will eventually give you direct access to the repositories.