doc: Add build tutorial for Unix/Linux
This commit is contained in:
parent
00c9d1f184
commit
f013972d8b
1
deps/CMakeLists.txt
vendored
1
deps/CMakeLists.txt
vendored
@ -6,6 +6,7 @@
|
||||
# All the dependencies are installed in a `destdir` directory in the root of the build directory,
|
||||
# in a traditional Unix-style prefix structure. The destdir can be used directly by CMake
|
||||
# when building Slic3r - to do this, set the CMAKE_PREFIX_PATH to ${destdir}/usr/local.
|
||||
# Warning: On UNIX/Linux, you also need to set -DSLIC3R_STATIC=1 when building Slic3r.
|
||||
#
|
||||
# For better clarity of console output, it's recommended to _not_ use a parallelized build
|
||||
# for the top-level command, ie. use `make -j 1` or `ninja -j 1` to force single-threaded top-level
|
||||
|
66
doc/How to build - Linux et al.md
Normal file
66
doc/How to build - Linux et al.md
Normal file
@ -0,0 +1,66 @@
|
||||
|
||||
# Building Slic3r PE on UNIX/Linux
|
||||
|
||||
Slic3r PE uses the CMake build system and requires several dependencies.
|
||||
The dependencies can be listed in `deps/deps-linux.cmake`, although they don't necessarily need to be as recent
|
||||
as the versions listed - generally versions available on conservative Linux distros such as Debian stable or CentOS should suffice.
|
||||
|
||||
Perl is not required any more.
|
||||
|
||||
In a typical situaction, one would open a command line, go to the Slic3r sources, create a directory called `build` or similar,
|
||||
`cd` into it and call:
|
||||
|
||||
cmake ..
|
||||
make -jN
|
||||
|
||||
where `N` is the number of CPU cores available.
|
||||
|
||||
Additional CMake flags may be applicable as explained below.
|
||||
|
||||
### Dependenciy resolution
|
||||
|
||||
By default Slic3r looks for dependencies the default way CMake looks for them, ie. in default system locations.
|
||||
On Linux this will typically make Slic3r depend on dynamically loaded libraries from the system, however, Slic3r can be told
|
||||
to specifically look for static libraries with the `SLIC3R_STATIC` flag passed to cmake:
|
||||
|
||||
cmake .. -DSLIC3R_STATIC=1
|
||||
|
||||
Additionally, Slic3r can be built in a static manner mostly independent of the system libraries with a dependencies bundle
|
||||
created using CMake script in the `deps` directory (these are not interconnected with the rest of the CMake scripts).
|
||||
|
||||
Note: We say _mostly independent_ because it's still expected the system will provide some transitive dependencies, such as GTK for wxWidgets.
|
||||
|
||||
To do this, go to the `deps` directory, create a `build` subdirectory (or the like) and use:
|
||||
|
||||
cmake .. -DDESTDIR=<target destdir>
|
||||
|
||||
where the target destdir is a directory of your choosing where the dependencies will be installed.
|
||||
You can also omit the `DESTDIR` option to use the default, in that case the `destdir` will be created inside the `build` directory where `cmake` is run.
|
||||
|
||||
To pass the destdir path to the top-level Slic3r CMake script, use the `CMAKE_PREFIX_PATH` option along with turning on `SLIC3R_STATIC`:
|
||||
|
||||
cmake .. -DSLIC3R_STATIC=1 -DCMAKE_PREFIX_PATH=<path to destdir>/usr/local
|
||||
|
||||
Note that `/usr/local` needs to be appended to the destdir path and also the prefix path should be absolute.
|
||||
|
||||
**Warning**: Once the dependency bundle is installed in a destdir, the destdir cannot be moved elsewhere.
|
||||
This is because wxWidgets hardcode the installation path.
|
||||
|
||||
### Build variant
|
||||
|
||||
By default Scli3r builds the release variant.
|
||||
To create a debug build, use the following CMake flag:
|
||||
|
||||
-DCMAKE_BUILD_TYPE=Debug
|
||||
|
||||
### Installation
|
||||
|
||||
In runtime, Slic3r needs a way to access its resource files. By default, it looks for a `resources` directory relative to its binary.
|
||||
|
||||
If you instead wnat Slic3r installed in a structure according to the Filesystem Hierarchy Standard, use the `SLIC3R_FHS` flag
|
||||
|
||||
cmake .. -DSLIC3R_FHS=1
|
||||
|
||||
This will make Slic3r look for a fixed-location `share/slic3r-prusa3d` directory instead (note that the location becomes hardcoded).
|
||||
|
||||
You can then use the `make install` target to install Slic3r.
|
Loading…
Reference in New Issue
Block a user