Compile on Linux/pl: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Created page with "Teraz zainstaluj Python 3.11. Obejmuje to znaczącą zmianę w sposobie inicjalizacji Pythona podczas uruchamiania programu. W rezultacie FreeCAD nie znajduje OpenCamLib, co oznacza, że narzędzia Powierzchnia 3D i Linia poziomu nie są dostępne w środowisku pracy CAM. Zostało to naprawione w gałęzi master 20 marca 2024 r. ([https://github.com/FreeCAD/FreeCAD/pull/13059 Pull request #13059]).")
 
(268 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<languages/>
<languages/>


{{Docnav
{{Docnav/pl
|[[Compile_on_Windows|Compile on Windows]]
|[[Compile_on_Windows/pl|Kompilacja w systemie Windows]]
|[[Compile_on_MacOS|Compile on MacOS]]
|[[Compile_on_MacOS/pl|Kompilacja w systemie MacOS]]
}}
}}


{{VeryImportantMessage|There is an experimental FreeCAD Docker container that is being tested for FreeCAD development. Read more about it at [[Compile on Docker]]}}
{{VeryImportantMessage|Istnieje eksperymentalny kontener FreeCAD Docker, który jest testowany pod kątem rozwoju FreeCAD. Przeczytaj więcej na ten temat na stronie [[Compile_on_Docker/pl|Kompilacja w Docker]]}}


{{TOCright}}
{{TOCright}}


== Overview ==
<span id="Overview"></span>
==Informacje ogólne==


W ostatnich dystrybucjach Linuksa FreeCAD jest ogólnie łatwy do zbudowania, ponieważ wszystkie zależności są zwykle dostarczane przez menedżera pakietów. Zasadniczo obejmuje 3 kroki:
On recent linux distributions, FreeCAD is generally easy to build, since all dependencies are usually provided by the package manager. It basically involves 3 steps:
# Getting the FreeCAD source code
# Pobierz kod źródłowy FreeCAD.
# Pobierz zależności lub pakiety, od których zależy FreeCAD.
# Getting the dependencies or packages that FreeCAD depends on
# Configure with {{incode|cmake}} and compile with {{incode|make}}
# Skonfiguruj za pomocą {{incode|cmake}} i skompiluj za pomocą {{incode|make}}.


Poniżej znajdziesz szczegółowe wyjaśnienia całego procesu, niektóre [[#Skrypty_automatycznej_kompilacji|skrypty do kompilacji]] oraz szczegóły, które możesz napotkać. Jeśli znajdziesz w poniższym tekście coś błędnego lub nieaktualnego ''(dystrybucje Linuksa często się zmieniają)'', lub jeśli używasz dystrybucji, której nie ma na liście, przedyskutuj ten problem na [https://forum.freecadweb.org/index.php forum] i pomóż nam go poprawić.
Below, you'll find detailed explanations of the whole process, some [[#Automatic build scripts|build scripts]], and particularities you might encounter. If you find anything wrong or out of date in the text below (Linux distributions change often), or if you use a distribution which is not listed, discuss the issue in the [https://forum.freecadweb.org/index.php forum], and help us correct it.


[[File:FreeCAD_source_compilation_workflow.svg|800px]]
[[File:FreeCAD_source_compilation_workflow.svg|800px]]


{{Caption|General workflow to compile FreeCAD from source. The third party dependencies must be in the system, as well as the FreeCAD source code itself. CMake configures the system so that with a single make instruction the entire project is compiled.}}
{{Caption|Ogólny proces kompilacji programu FreeCAD z kodu źródłowego. Zależności stron trzecich muszą znajdować się w systemie, podobnie jak sam kod źródłowy FreeCAD. CMake konfiguruje system tak, aby za pomocą jednej instrukcji make cały projekt został skompilowany.}}


<span id="Getting_the_source"></span>
== Getting the source ==
==Pobieranie kodu źródłowego==


<span id="Git"></span>
=== Git ===
===Git===


The best way to get the code is to clone the read-only [https://github.com/FreeCAD/FreeCAD Git repository]. For this you need the {{incode|git}} program which can be easily installed in most Linux distributions. It can also be obtained from the [http://git-scm.com/ official website].
Najlepszym sposobem uzyskania kodu jest sklonowanie repozytorium tylko do odczytu [https://github.com/FreeCAD/FreeCAD Git]. Do tego celu potrzebny jest program {{incode|git}}, który można łatwo zainstalować w większości dystrybucji Linuksa. Można go również uzyskać z [http://git-scm.com/ oficjalnej strony].


Program Git można zainstalować za pomocą następującego polecenia:
Git can be installed via the following command:


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 35: Line 38:
}}
}}


The following command will place a copy of the latest version of the FreeCAD source code in a new directory called {{incode|freecad-source}}.
Poniższe polecenie umieści kopię najnowszej wersji kodu źródłowego programu FreeCAD w nowym katalogu o nazwie {{incode|freecad-source}}.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
git clone https://github.com/FreeCAD/FreeCAD.git freecad-source
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git freecad-source
}}
}}


Więcej informacji na temat używania środowiska Git i wnoszenia kodu do projektu można znaleźć na stronie [[Source_code_management/pl|Zarządzanie kodem źródłowym]].
For more information on using Git and contributing code to the project, see [[Source code management|Source code management]].


<span id="Source_archive"></span>
=== Source archive ===
===Archiwum źródeł===


Alternatively you can download the source as an [https://github.com/FreeCAD/FreeCAD/releases/latest archive], a {{incode|.zip}} or {{incode|.tar.gz}} file, and unpack it in the desired directory.
Alternatywnie można pobrać źródło w postaci [https://github.com/FreeCAD/FreeCAD/releases/latest archiwów], pliku {{incode|.zip}} lub {{incode|.tar.gz}}, a następnie rozpakować je w wybranym katalogu.


<span id="Getting_the_dependencies"></span>
== Getting the dependencies ==
==Pobranie zależności==


Aby skompilować FreeCAD musisz zainstalować wymagane zależności wymienione w dokumencie [[Third_Party_Libraries/pl|biblioteki zewnętrzne]]. Pakiety, które zawierają te zależności są wymienione poniżej dla różnych dystrybucji Linuksa. Proszę zauważyć, że nazwy i dostępność bibliotek zależą od konkretnej dystrybucji; jeśli dystrybucja jest stara, niektóre pakiety mogą być niedostępne lub mieć inną nazwę. W takim przypadku należy zajrzeć do sekcji [[Compile_on_Linux/pl#Dystrybucje_starsze_i_niekonwencjonalne|starsze i niekonwencjonalne dystrybucje]] poniżej.
To compile FreeCAD you have to install the requisite dependencies mentioned in [[Third Party Libraries|Third Party Libraries]]; the packages that contain these dependencies are listed below for different Linux distributions. Please note that the names and availability of the libraries will depend on your particular distribution; if your distribution is old, some packages may be unavailable of have a different name. In this case, look in the [[#Older and non-conventional distributions|older and non-conventional distributions]] section below.


Gdy masz już zainstalowane wszystkie zależności, przejdź do sekcji [[Compile_on_Linux/pl#Kompilacja_programu|kompilacja programu]].
Once you have all the dependencies installed, proceed to [[#Compile_FreeCAD|compile FreeCAD]].


Należy pamiętać, że kod źródłowy programu FreeCAD ma rozmiar około 500 MB; może on być trzykrotnie większy, jeśli sklonujesz repozytorium Git z całą historią modyfikacji. Pobranie wszystkich zależności może wymagać pobrania 500 MB lub więcej nowych plików. Kiedy te pliki zostaną rozpakowane, mogą wymagać 1500 MB lub więcej miejsca. Należy również pamiętać, że proces kompilacji może wygenerować do 1500 MB dodatkowych plików, ponieważ system kopiuje i modyfikuje cały kod źródłowy. Dlatego przed przystąpieniem do kompilacji należy upewnić się, że na dysku twardym jest wystarczająco dużo wolnego miejsca, co najmniej 4 GB.
Please note that FreeCAD's source code is around 500 MB in size; it may be three times as big if you clone the Git repository with its entire modification history. Getting all dependencies may require downloading 500 MB or more of new files; when these files are unpacked they may require 1500 MB or more in space. Also beware that the compilation process may generate up to 1500 MB of additional files as the system copies and modifies the entire source code. Therefore, be sure you have enough free space in your hard drive, at least 4 GB, when attempting compilation.


<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Debian_and_Ubuntu"></span>
=== Debian and Ubuntu ===
===Debian oraz Ubuntu===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


On Debian-based systems (Debian, Ubuntu, Mint, etc.) it is quite easy to get all needed dependencies installed. Most of the libraries are available via {{incode|apt}} or the Synaptic package manager.
W systemach opartych na Debianie ''(Ubuntu, Mint itd.)'' dość łatwo jest zainstalować wszystkie potrzebne zależności. Większość bibliotek jest dostępna za pośrednictwem {{incode|apt}} lub menedżera pakietów Synaptic.


Jeśli zainstalowałeś już FreeCAD z oficjalnych repozytoriów, możesz zainstalować jego zależności za pomocą tej jednej linijki kodu w terminalu:
If you already installed FreeCAD from the official repositories, you can install its build dependencies with this single line of code in a terminal:


{{Code|code=
{{Code|code=
Line 69: Line 75:
}}
}}


Jednakże, jeśli wersja FreeCAD w repozytoriach jest stara, zależności mogą być niewłaściwe do skompilowania najnowszej wersji programu FreeCAD. Dlatego należy sprawdzić, czy zostały zainstalowane następujące pakiety.
However, if the version of FreeCAD in the repositories is old, the dependencies may be the wrong ones to compile a recent version of FreeCAD. Therefore, please verify that you have installed the following packages.


Pakiety te są niezbędne do pomyślnego przeprowadzenia jakiejkolwiek kompilacji:
These packages are essential for any sort of compilation to succeed:
*{{incode|build-essential}}, installs the C and C++ compilers, the C development libraries, and the {{incode|make}} program.
*{{incode|build-essential}}, instaluje kompilatory C i C++, biblioteki programistyczne C oraz program {{incode|make}}.
*{{incode|cmake}}, essential tool to configure the source of FreeCAD. You may also wish to install {{incode|cmake-gui}} and {{incode|cmake-curses-gui}} for a graphical option.
*{{incode|cmake}}, niezbędne narzędzie do konfiguracji źródeł programu FreeCAD. Możesz również zainstalować {{incode|cmake-gui}} i {{incode|cmake-curses-gui}}, aby uzyskać opcję graficzną.
*{{incode|libtool}}, essential tools to produce shared libraries.
*{{incode|libtool}}, podstawowe narzędzia do tworzenia bibliotek współdzielonych.
*{{incode|lsb-release}}, the standard base reporting utility is normally already installed in a Debian system, and allows you to programmatically distinguish between a pure Debian installation or a variant, such as Ubuntu or Linux Mint. Do not remove this package, as many other system packages may depend on it.
*{{incode|lsb-release}}, standardowe narzędzie do raportowania bazy danych jest zwykle już zainstalowane w systemie Debian i pozwala na programowe rozróżnienie między czystą instalacją Debiana a jego odmianą, taką jak Ubuntu czy Linux Mint. Nie należy usuwać tego pakietu, ponieważ wiele innych pakietów systemowych może od niego zależeć.


Kompilacja programu FreeCAD wykorzystuje język Python, jest on także używany w czasie pracy jako język skryptowy. Jeśli używasz dystrybucji opartej na Debianie, interpreter Python jest zazwyczaj już zainstalowany.
Compilation of FreeCAD uses the Python language, and it's also used at runtime as a scripting language. If you are using a Debian based distribution the Python interpreter is normally already installed.
*{{incode|python3}}
*{{incode|python3}}
*{{incode|swig}}, the tool that creates interfaces between C++ code and Python.
*{{incode|swig}}, narzędzie, które tworzy interfejsy między kodem C++ a Python.


Please check that you have Python 3 installed. Python 2 was obsoleted in 2019, so new development in FreeCAD is not tested with this version of the language.
Sprawdź, czy masz zainstalowany Python 3. Python 2 został wycofany z użycia w 2019 r, więc nowe środowiska w programie FreeCAD nie testowane z wersją języka.


Konieczne jest zainstalowanie bibliotek Boost:
The Boost libraries need to be installed:


*{{incode|libboost-dev}}
*{{incode|libboost-dev}}
Line 96: Line 102:
*{{incode|libboost-thread-dev}}
*{{incode|libboost-thread-dev}}


Konieczne jest zainstalowanie bibliotek Coin:
The Coin libraries need to be installed:
*{{incode|libcoin80-dev}}, for Debian Jessie, Stretch, Ubuntu 16.04 to 18.10, or
*{{incode|libcoin80-dev}}, dla Debian Jessie, Stretch, Ubuntu 16.04 do 18.10, lub
*{{incode|libcoin-dev}}, for Debian Buster, Ubuntu 19.04 and newer, as well as for Ubuntu 18.04/18.10 with the [[Installing_on_Linux#Official_Ubuntu_repository|freecad-stable/freecad-daily PPAs]] added to your software sources.
*{{incode|libcoin-dev}}, dla Debiana Buster, Ubuntu 19.04 i nowszych, a także dla Ubuntu 18.04/18.10 z [[Installing_on_Linux/pl#Wersja_stabilna_PPA|freecad-stable/freecad-daily PPAs]] dodane do źródeł oprogramowania.


Kilka bibliotek zajmujących się matematyką, powierzchniami triangulowanymi, sortowaniem, siatkami, obrazowaniem komputerowym, projekcjami kartograficznymi, wizualizacją 3D, systemem okien X11, parsowaniem XML i odczytywaniem plików Zip:
Several libraries that deal with mathematics, triangulated surfaces, sorting, meshes, computer vision, cartographic projections, 3D visualization, the X11 Window system, XML parsing, and Zip file reading:


*{{incode|libeigen3-dev}}
*{{incode|libeigen3-dev}}
Line 112: Line 118:
*{{incode|libx11-dev}}
*{{incode|libx11-dev}}
*{{incode|libxerces-c-dev}}
*{{incode|libxerces-c-dev}}
*{{incode|libyaml-cpp-dev}}
*{{incode|libzipios++-dev}}
*{{incode|libzipios++-dev}}


<div class="mw-collapsible mw-collapsed" style="background-color:#e0e0e0">
<div class="mw-collapsible mw-collapsed" style="background-color:#e0e0e0">


<span id="Python_2_and_Qt4"></span>
==== Python 2 and Qt4 ====
===Python 2 oraz Qt4===


This is not recommended for newer installations as both Python 2 and Qt4 are obsolete. As of version 0.20, FreeCAD no longer supports them.
Nie jest to zalecane w przypadku nowszych instalacji, ponieważ zarówno Python 2, jak i Qt4 przestarzałe. Od wersji 0.20 FreeCAD nie obsługuje ich już.


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


To compile FreeCAD for Debian Jessie, Stretch, Ubuntu 16.04, using Python 2 and Qt4, install the following dependencies.
Aby skompilować FreeCAD dla Debiana Jessie, Stretch, Ubuntu 16.04, używając Pythona 2 i Qt4, należy zainstalować następujące zależności.


*{{incode|qt4-dev-tools}}
*{{incode|qt4-dev-tools}}
Line 140: Line 148:
</div>
</div>


<span id="Python_3_and_Qt5"></span>
==== Python 3 and Qt5 ====
===Python 3 oraz Qt5===


To compile FreeCAD for Debian Buster, Ubuntu 19.04 and newer, as well as Ubuntu 18.04/18.10 with the [[Installing_on_Linux#Official_Ubuntu_repository|freecad-stable/freecad-daily PPAs]] added to your software sources, install the following dependencies.
Aby skompilować FreeCAD dla Debiana Buster, Ubuntu 19.04 i nowszych oraz Ubuntu 18.04/18.10 z [[Installing_on_Linux#Official_Ubuntu_repository|freecad-stable/freecad-daily PPAs]] dodanymi do źródeł oprogramowania, zainstaluj następujące zależności.


*{{incode|qtbase5-dev}}
*{{incode|qtbase5-dev}}
Line 149: Line 158:
*{{incode|libqt5opengl5-dev}}
*{{incode|libqt5opengl5-dev}}
*{{incode|libqt5svg5-dev}}
*{{incode|libqt5svg5-dev}}
*{{incode|libqt5webkit5-dev}} or {{incode|qtwebengine5-dev}}
*{{incode|qtwebengine5-dev}}
*{{incode|libqt5xmlpatterns5-dev}}
*{{incode|libqt5xmlpatterns5-dev}}
*{{incode|libqt5x11extras5-dev}}
*{{incode|libqt5x11extras5-dev}}
Line 158: Line 167:
*{{incode|python3-dev}}
*{{incode|python3-dev}}
*{{incode|python3-matplotlib}}
*{{incode|python3-matplotlib}}
*{{incode|python3-packaging}}
*{{incode|python3-pivy}}
*{{incode|python3-pivy}}
*{{incode|python3-ply}}
*{{incode|python3-ply}}
Line 165: Line 175:
*{{incode|python3-pyside2.qtwidgets}}
*{{incode|python3-pyside2.qtwidgets}}
*{{incode|python3-pyside2.qtnetwork}}
*{{incode|python3-pyside2.qtnetwork}}
*{{incode|python3-pyside2.qtwebengine}}
*{{incode|python3-pyside2.qtwebenginecore}}
*{{incode|python3-pyside2.qtwebenginewidgets}}
*{{incode|python3-pyside2.qtwebchannel}}
*{{incode|python3-pyside2uic}}
*{{incode|python3-pyside2uic}}


<span id="OpenCascade_kernel"></span>
==== OpenCascade kernel ====
====kernel OpenCascade====


Jądro OpenCascade jest podstawową biblioteką graficzną służącą do tworzenia kształtów 3D. Istnieje w wersji oficjalnej OCCT oraz w wersji społecznościowej OCE. Wersja społecznościowa nie jest już zalecana, ponieważ jest przestarzała.
The OpenCascade kernel is the core graphics library to create 3D shapes. It exists in an official version OCCT, and a community version OCE. The community version is no longer recommended, as it's outdated.


For Debian Buster and Ubuntu 18.10 and newer, as well as Ubuntu 18.04 with the [[Installing_on_Linux#Official_Ubuntu_repository|freecad-stable/freecad-daily PPAs]] added to your software sources, install the official packages.
W przypadku Debiana Buster i Ubuntu 18.10 i nowszych, a także Ubuntu 18.04 z [[Installing_on_Linux#Official_Ubuntu_repository|freecad-stable/freecad-daily PPAs]] dodanymi do źródeł oprogramowania, należy zainstalować oficjalne pakiety.


*{{incode|libocct*-dev}}
*{{incode|libocct*-dev}}
Line 183: Line 198:
*{{incode|occt-draw}}
*{{incode|occt-draw}}


For Debian Jessie, Stretch, Ubuntu 16.04 and newer, install the community edition packages.
W przypadku Debiana Jessie, Stretch, Ubuntu 16.04 i nowszych należy zainstalować pakiety edycji społecznościowej.


*{{incode|liboce*-dev}}
*{{incode|liboce*-dev}}
Line 193: Line 208:
*{{incode|oce-draw}}
*{{incode|oce-draw}}


You may install the libraries individually, or using asterisk expansion. Change {{incode|occ}} for {{incode|oce}} if you want to install the community libraries.
Biblioteki można instalować pojedynczo lub przy użyciu rozszerzenia asterisk. Zmień {{incode|occ}} na {{incode|oce}}, jeśli chcesz zainstalować biblioteki społecznościowe.


{{Code|code=
{{Code|code=
Line 199: Line 214:
}}
}}


<span id="Optional_packages"></span>
==== Optional packages ====
====Pakiety opcjonalne====


Opcjonalnie można również zainstalować te dodatkowe pakiety:
Optionally you can also install these extra packages:
* {{incode|libsimage-dev}}, to make Coin support additional image file formats.
* {{incode|libsimage-dev}}, aby Coin obsługiwał dodatkowe formaty plików graficznych.
* {{incode|doxygen}} and {{incode|libcoin-doc}} (or {{incode|libcoin80-doc}} for older systems), if you intend to generate source code documentation.
* {{incode|doxygen}} i {{incode|libcoin-doc}} ''(lub {{incode|libcoin80-doc}} dla starszych systemów)'', jeśli chcesz generować dokumentację kodu źródłowego.
* {{incode|libspnav-dev}}, for [[3D input devices|3D input devices]] support, like the 3Dconnexion "Space Navigator" or "Space Pilot".
* {{incode|libspnav-dev}}, dla obsługi [[3D_input_devices/pl|maniopulatorów przestrzennych]], takich jak "Space Navigator" lub "Space Pilot" firmy 3Dconnexion.
* {{incode|checkinstall}}, if you intend to register your installed files into your system's package manager, so you can uninstall it later.
* {{incode|checkinstall}}, jeśli chcesz zarejestrować zainstalowane pliki w systemowym menedżerze pakietów, aby móc je później odinstalować.
* {{incode|python3-markdown}}, for Addon Manager to display Markdown-formatted README.md files natively.
* {{incode|python3-git}}, for Addon Manager to use git to fetch and update workbenches and macros.


<span id="Single_command_for_Python_3_and_Qt5"></span>
==== Single command for Python 3 and Qt5 ====
==== Pojedyncze polecenie dla środowisk Python 3 i Qt5 ====


Requires Pyside2 available in Debian buster and the [[Installing_on_Linux#Official_Ubuntu_repository|freecad-stable/freecad-daily PPAs]].
Wymaga Pyside2 dostępnego w Debian buster oraz [[Installing_on_Linux/pl#Wersja_stabilna_PPA|freecad-stable/freecad-daily PPA]].


{{Code|code=
{{Code|lang=bash|code=
sudo apt install cmake cmake-gui libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside2-dev libqt5opengl5-dev libqt5svg5-dev libqt5webkit5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev libshiboken2-dev libspnav-dev libvtk7-dev libx11-dev libxerces-c-dev libzipios++-dev occt-draw pyside2-tools python3-dev python3-matplotlib python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtsvg python3-pyside2.qtwidgets python3-pyside2.qtnetwork python3-markdown python3-git python3-pyside2uic qtbase5-dev qttools5-dev swig
sudo apt install cmake cmake-gui libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside2-dev libqt5opengl5-dev libqt5svg5-dev qtwebengine5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev libshiboken2-dev libspnav-dev libvtk7-dev libx11-dev libxerces-c-dev libzipios++-dev occt-draw pyside2-tools python3-dev python3-matplotlib python3-packaging python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtsvg python3-pyside2.qtwidgets python3-pyside2.qtnetwork python3-pyside2.qtwebengine python3-pyside2.qtwebenginecore python3-pyside2.qtwebenginewidgets python3-pyside2.qtwebchannel python3-markdown python3-git python3-pyside2uic qtbase5-dev qttools5-dev swig libyaml-cpp-dev
}}
}}


NOTE: On some versions of Ubuntu and some versions of Qt, you will get an error that python3-pyside2uic cannot be found -- on those systems you can safely omit it. On Ubuntu 20.04 you will need to add {{incode|pyqt5-dev-tools}}. More information can be found in [https://forum.freecadweb.org/viewtopic.php?t=51324 this forum discussion].
UWAGA: W niektórych wersjach Ubuntu i niektórych wersjach Qt pojawi się błąd, że nie udało się znaleźć pakietu python3-pyside2uic - w tych systemach można go bezpiecznie pominąć. W Ubuntu 20.04 trzeba będzie dodać {{incode|pyqt5-dev-tools}}. Więcej informacji można znaleźć na stronie [https://forum.freecadweb.org/viewtopic.php?t=51324 this dyskusja na forum].


<div class="mw-collapsible mw-collapsed" style="background-color:#e0e0e0">
<div class="mw-collapsible mw-collapsed" style="background-color:#e0e0e0">


<span id="Single_command_for_Python_2_and_Qt4"></span>
==== Single command for Python 2 and Qt4 ====
====Pojedyncze polecenie dla środowisk Python 2 i Qt4====


Nie jest to zalecane w przypadku nowszych instalacji, ponieważ zarówno Python 2, jak i Qt4 są przestarzałe.
This is not recommended for newer installations as both Python 2 and Qt4 are obsolete.


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


{{Code|code=
{{Code|lang=bash|code=
sudo apt install cmake debhelper dh-exec dh-python libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin80-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libshiboken-dev libspnav-dev libvtk6-dev libx11-dev libxerces-c-dev libzipios++-dev lsb-release occt-draw pyside-tools python-dev python-matplotlib python-pivy python-ply swig
sudo apt install cmake debhelper dh-exec dh-python libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin80-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libshiboken-dev libspnav-dev libvtk6-dev libx11-dev libxerces-c-dev libzipios++-dev lsb-release occt-draw pyside-tools python-dev python-matplotlib python-pivy python-ply swig
}}
}}


Ubuntu 16.04 users please see also the compilation discussion in the forum: [http://forum.freecadweb.org/viewtopic.php?f=4&t=16292 Compile on Linux (Kubuntu): CMake can't find VTK].
Użytkowników Ubuntu 16.04 prosimy o zapoznanie się również z dyskusją na temat kompilacji na forum: [http://forum.freecadweb.org/viewtopic.php?f=4&t=16292 Compile on Linux (Kubuntu): CMake can't find VTK].


</div>
</div>
Line 240: Line 256:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Raspberry_Pi"></span>
=== Raspberry Pi ===
===Raspberry Pi===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
Follow the same steps as in Debian and Ubuntu.
Wykonaj te same kroki, co w przypadku dystrybucji Debian i Ubuntu.


Zgłaszane są problemy podczas próby kompilacji w systemie v przy użyciu Pythona 3 i Qt5, ale kombinacja Pythona 3 i Qt4 wydaje się działać ze starszymi wersjami programu FreeCAD ''(z drobnymi problemami)''.
There are problems reported when trying to compile in Raspbian with Python 3 and Qt5, but the combination Python 3 and Qt4 seems to work for older versions of FreeCAD.


W przypadku nowszych wersji ''(od 0.20)'' programu FreeCAD kompilacja z Py3/Qt5 powiedzie się, jeśli zainstalowanym systemem operacyjnym jest Raspberry Pi OS 64-bit lub Ubuntu 20.04.
For newer versions of FreeCAD the compilation with Py3/Qt5 is successful if the operating system installed is Ubuntu 20.04.


Z powodu różnych problemów z Qt, w Ubuntu 20.04 nie będzie można znaleźć normalnych narzędzi PySide.
Due to different issues with Qt, in this version the normal PySide tools won't be found.
{{Code|lang=bash|code=
{{Code|lang=bash|code=
E: Unable to locate package python3-pyside2uic
E: Unable to locate package python3-pyside2uic
}}
}}


W tym przypadku możemy zainstalować pakiety z PyQt i utworzyć dowiązania symboliczne do potrzebnych narzędzi.
In this case, we can install the packages from PyQt and create symbolic links to the needed tools.
{{Code|lang=bash|code=
{{Code|lang=bash|code=
sudo apt-get install pyqt5-dev
sudo apt-get install pyqt5-dev
Line 263: Line 280:
}}
}}


Teraz można przystąpić do kompilacji.
Now compilation may proceed.
{{Code|lang=bash|code=
{{Code|lang=bash|code=
cd freecad-build/
cd freecad-build/
Line 270: Line 287:
}}
}}


The {{incode|-j}} option to {{incode|make}} should not be more than 3 because the Raspberry Pi has limited memory. It will take several hours to compile, so it is better to do it overnight.
Opcja {{incode|-j}} w poleceniu {{incode|make}} nie powinna mieć parametru powyżej 3, ponieważ Raspberry Pi ma ograniczoną pamięć. Kompilacja zajmie kilka godzin, więc lepiej zrobić to w nocy.


More information, [https://forum.freecadweb.org/viewtopic.php?f=42&t=37458&start=160#p396652 FreeCAD and Raspberry Pi 4].
Więcej informacji, [https://forum.freecadweb.org/viewtopic.php?f=42&t=37458&start=160#p396652 FreeCAD i Raspberry Pi 4].
</div>
</div>
</div>
</div>
Line 278: Line 295:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


=== Fedora ===
<span id="Fedora"></span>
===Fedora===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
W cmake dystrybuowanym przez Fedorę 34/35 jest błąd, który powoduje, że cmake nie znajduje bibliotek opencascade. Można to łatwo naprawić, wprowadzając jedną drobną zmianę do głównego poziomu pliku cmake programu opencascade zainstalowanego na Fedorze. Szczegóły tutaj:
https://bugzilla.redhat.com/show_bug.cgi?id=2083568.


W górnej części pliku {{FileName|OpenCASCADEConfig.cmake}} zmień następujący wiersz, aby użyć {{Incode|REAL_PATH()}}. Usuwa to błąd wprowadzony przez użycie linka symbolicznego z {{Incode|/lib}} do {{Incode|/usr/lib}} w Fedorze, co powodowało błąd w cmake.
You need the following packages :


Ten plik jest zwykle instalowany w {{FileName|/usr/lib64/cmake/opencascade/OpenCASCADEConfig.cmake}}.
<!--<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">-->
*gcc-c++ (or possibly another C++ compiler?)
*cmake
*doxygen
*swig
*gettext
*dos2unix
*desktop-file-utils
*libXmu-devel
*freeimage-devel
*mesa-libGLU-devel
*OCE-devel
*python
*python-devel
*python-pyside-devel
*pyside-tools
*boost-devel
*tbb-devel
*eigen3-devel
*qt-devel
*qt-webkit-devel
*qt5-qtxmlpatterns
*qt5-qttools-static
*ode-devel
*xerces-c
*xerces-c-devel
*opencv-devel
*smesh-devel
*Coin3
*Coin3-devel


{{Code|lang=bash|code=
(April 2021, Coin4 and Coin4-devel are available)
get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)
(if coin2 is the latest available for your version of Fedora, use packages from http://www.zultron.com/rpm-repo/)
}}


zmień to na:
*SoQt-devel
*freetype
*freetype-devel
*vtk
*med
*med-devel
<!--</div>-->


{{Code|lang=bash|code=
And optionally :
file (REAL_PATH ${OpenCASCADE_INSTALL_PREFIX} OpenCASCADE_INSTALL_PREFIX)
}}


Tę trywialną zmianę należy wprowadzić w katalogu kompilacji po uruchomieniu cmake i niepowodzeniu. Ponowne uruchomienie cmake spowoduje prawidłowe wykrycie bibliotek OCCT w normalny sposób.
<!--<div style="column-count:2;-moz-column-count:2;-webkit-column-count:2">-->


==== Fedora38/39 ====
*libspnav-devel (for 3Dconnexion devices support like the Space Navigator or Space Pilot)

*python3-pivy ( https://bugzilla.redhat.com/show_bug.cgi?id=458975 Pivy is not mandatory but needed for the Draft Workbench)
Teraz zainstaluj Python 3.11. Obejmuje to znaczącą zmianę w sposobie inicjalizacji Pythona podczas uruchamiania programu. W rezultacie FreeCAD nie znajduje OpenCamLib, co oznacza, że narzędzia [[CAM_Surface/pl|Powierzchnia 3D]] i [[CAM_Waterline/pl|Linia poziomu]] nie są dostępne w środowisku pracy [[CAM_Workbench/pl|CAM]]. Zostało to naprawione w gałęzi master 20 marca 2024 r. ([https://github.com/FreeCAD/FreeCAD/pull/13059 Pull request #13059]).
*python3-markdown (for the Addon Manager to display native markdown)

*python3-git (for the Addon Manager to use git to checkout and update workbenches and macros)
Potrzebne są następujące pakiety:

*{{Incode|gcc-c++}} (or possibly another C++ compiler?)
*{{Incode|cmake}}
*{{Incode|doxygen}}
*{{Incode|swig}}
*{{Incode|gettext}}
*{{Incode|dos2unix}}
*{{Incode|desktop-file-utils}}
*{{Incode|libXmu-devel}}
*{{Incode|freeimage-devel}}
*{{Incode|mesa-libGLU-devel}}
*{{Incode|opencascade-devel}}
*{{Incode|openmpi-devel}}
*{{Incode|python3}}
*{{Incode|python3-devel}}
*{{Incode|python3-pyside2}}
*{{Incode|python3-pyside2-devel}}
*{{Incode|pyside2-tools}}
*{{Incode|boost-devel}}
*{{Incode|tbb-devel}}
*{{Incode|eigen3-devel}}
*{{Incode|qt-devel}}
*{{Incode|qt5-qtwebengine-devel}}
*{{Incode|qt5-qtxmlpatterns}}
*{{Incode|qt5-qtxmlpatterns-devel}}
*{{Incode|qt5-qtsvg-devel}}
*{{Incode|qt5-qttools-static}}
*{{Incode|ode-devel}}
*{{Incode|xerces-c}}
*{{Incode|xerces-c-devel}}
*{{Incode|opencv-devel}}
*{{Incode|smesh-devel}}
*{{Incode|Coin3}}
*{{Incode|Coin3-devel}}
*{{Incode|yaml-cpp}}

''(kwiecień 2021, Coin4 i Coin4-devel są dostępne)''
''(jeśli coin2 jest najnowszą dostępną wersją dla twojej wersji Fedory, użyj pakietów z http://www.zultron.com/rpm-repo/)''

*{{Incode|SoQt-devel}}
*{{Incode|freetype}}
*{{Incode|freetype-devel}}
*{{Incode|vtk}}
*{{Incode|vtk-devel}}
*{{Incode|med}}
*{{Incode|med-devel}}

I opcjonalnie:

*{{Incode|libspnav-devel}} ''(do obsługi urządzeń 3Dconnexion, takich jak Space Navigator czy Space Pilot)'',
*{{Incode|python3-pivy}} ''(https://bugzilla.redhat.com/show_bug.cgi?id=458975 Pivy nie jest obowiązkowy, ale jest wymagany dla środowiska Rysunek Roboczy)'',
*{{Incode|python3-markdown}} ''(aby Menadżer dodatków natywny markdown)'',
*{{Incode|python3-GitPython}} ''(aby Menadżer dodatków używał repozytorium Git do sprawdzania i aktualizowania środowisk pracy i makrodefinicji)''.

Aby zainstalować wszystkie zależności naraz ''(testowane w systemie Fedorze 36 oraz 37)'':

{{Code|lang=bash|code=
sudo dnf install gcc-c++ cmake doxygen swig gettext dos2unix desktop-file-utils libXmu-devel freeimage-devel mesa-libGLU-devel opencascade-devel openmpi-devel python3 python3-devel python3-pyside2 python3-pyside2-devel pyside2-tools boost-devel tbb-devel eigen3-devel qt-devel qt5-qtwebengine-devel qt5-qtxmlpatterns qt5-qtxmlpatterns-devel qt5-qtsvg-devel qt5-qttools-static ode-devel xerces-c xerces-c-devel opencv-devel smesh-devel Coin3 Coin3-devel SoQt-devel freetype freetype-devel vtk vtk-devel med med-devel libspnav-devel python3-pivy python3-markdown python3-GitPython yaml-cpp
}}


</div>
</div>
Line 339: Line 387:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


=== Gentoo ===
<span id="Gentoo"></span>
===Gentoo===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


Easiest way to check which packages are needed to compile FreeCAD is to check via portage:
Najprostszym sposobem sprawdzenia, które pakiety potrzebne do skompilowania programu FreeCAD, jest sprawdzenie ich przez portage:


<tt>emerge -pv freecad</tt>
<tt>emerge -pv freecad</tt>


Powinno to spowodować wyświetlenie listy dodatkowych pakietów, które należy zainstalować w systemie.
This should give a nice list of extra packages that you need installed on your system.


If FreeCAD is not available on portage, it is available on the [https://github.com/waebbl/waebbl-gentoo waebbl overlay]. The issue tracker on the waebbl overlay Github may help guide through some issues you may come across. The overlay provides <tt>freecad-9999</tt>, which you can choose to compile, or simply use to get the dependencies.
Gdy FreeCAD nie jest dostępny przez portage, jest dostępny na repozytorium [https://github.com/waebbl/waebbl-gentoo waebbl overlay]. Narzędzie do śledzenia problemów na nakładce waebbl Github może pomóc w rozwiązaniu niektórych z nich. Nakładka zapewnia szeroki licznik <tt>freecad-9999</tt>, dzięki temu możesz wybrać potrzebny numer do skompilowania lub po prostu użyć do pobrania zależności.


<tt>layman -a waebbl</tt>
<tt>layman -a waebbl</tt>
Line 357: Line 406:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


=== openSUSE ===
<span id="openSUSE"></span>
===openSUSE===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


==== Tumbleweed ====
<span id="Tumbleweed"></span>
====Tumbleweed====


The following commands will install the packages required for building FreeCAD with Qt5 and Python 3.
Następujące polecenia zainstalują pakiety wymagane do zbudowania FreeCAD z Qt5 i środowiskiem Python 3.


{{Code|code=
{{Code|code=
zypper in --no-recommends -t pattern devel_C_C++ devel_qt5
zypper in --no-recommends -t pattern devel_C_C++ devel_qt5


zypper in libqt5-qtbase-devel libqt5-qtsvg-devel libqt5-qttools-devel boost-devel swig libboost_program_options-devel libboost_mpi_python3-devel libboost_system-devel libboost_program_options-devel libboost_regex-devel libboost_python3-devel libboost_thread-devel libboost_system-devel libboost_headers-devel libboost_graph-devel python3 python3-devel python3-matplotlib python3-matplotlib-qt5 python3-pyside2 python3-pyside2-devel python3-pivy gcc gcc-fortran cmake occt-devel libXi-devel opencv-devel libxerces-c-devel Coin-devel SoQt-devel freetype2-devel eigen3-devel libode6 vtk-devel libmed-devel hdf5-openmpi-devel openmpi2-devel netgen-devel freeglut-devel libspnav-devel f2c doxygen dos2unix glew-devel
zypper in libqt5-qtbase-devel libqt5-qtsvg-devel libqt5-qttools-devel boost-devel swig libboost_program_options-devel libboost_mpi_python3-devel libboost_system-devel libboost_program_options-devel libboost_regex-devel libboost_python3-devel libboost_thread-devel libboost_system-devel libboost_headers-devel libboost_graph-devel python3 python3-devel python3-matplotlib python3-matplotlib-qt5 python3-pyside2 python3-pyside2-devel python3-pivy gcc gcc-fortran cmake occt-devel libXi-devel opencv-devel libxerces-c-devel Coin-devel SoQt-devel freetype2-devel eigen3-devel libode6 vtk-devel libmed-devel hdf5-openmpi-devel openmpi2-devel netgen-devel freeglut-devel libspnav-devel f2c doxygen dos2unix glew-devel yaml-cpp
}}
}}


The following command will install Qt Creator and the GNU Project Debugger.
Następujące polecenie zainstaluje program Qt Creator i GNU Project Debugger.


{{Code|code=zypper in libqt5-creator gdb}}
{{Code|code=zypper in libqt5-creator gdb}}


If any packages are missing, then you can check the Tumbleweed [https://build.opensuse.org/package/view_file/openSUSE:Factory/FreeCAD/FreeCAD.spec "FreeCAD.spec"] file on the [https://build.opensuse.org/package/show/openSUSE:Factory/FreeCAD Open Build Service].
Jeśli brakuje jakichś pakietów, można sprawdzić plik Tumbleweed [https://build.opensuse.org/package/view_file/openSUSE:Factory/FreeCAD/FreeCAD.spec "FreeCAD.spec"] na stronie [https://build.opensuse.org/package/show/openSUSE:Factory/FreeCAD Open Build Service].


Also, check to see if there are any patches you need to apply (such as [https://build.opensuse.org/package/view_file/openSUSE:Factory/FreeCAD/0001-find-openmpi2-include-files.patch 0001-find-openmpi2-include-files.patch]).
Należy również sprawdzić, czy nie ma jakichś poprawek, które należy zastosować (np. [https://build.opensuse.org/package/view_file/openSUSE:Factory/FreeCAD/0001-find-openmpi2-include-files.patch 0001-find-openmpi2-include-files.patch]).


<span id="Leap"></span>
==== Leap ====
====Leap====


If there is a difference between the available packages on Tumbleweed and Leap, then you can read the Leap [https://build.opensuse.org/package/view_file/openSUSE:Leap:15.0/FreeCAD/FreeCAD.spec "FreeCAD.spec"] file on the [https://build.opensuse.org/ Open Build Service] to determine the required packages.
Jeśli istnieje różnica między pakietami dostępnymi w programach Tumbleweed i Leap, można przeczytać plik [https://build.opensuse.org/package/view_file/openSUSE:Leap:15.0/FreeCAD/FreeCAD.spec "FreeCAD.spec"] programu Leap w [https://build.opensuse.org/ Open Build Service], aby określić wymagane pakiety.


See [https://forum.freecadweb.org/viewtopic.php?f=4&t=49726 piano_jonas unofficial "Compile On openSUSE" guide].
Zobacz poradnik [https://forum.freecadweb.org/viewtopic.php?f=4&t=49726 piano_jonas unnofficial "Compile On openSUSE"].


</div>
</div>
Line 389: Line 441:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Arch_Linux"></span>
=== Arch Linux ===
===Arch Linux===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


Potrzebne będą następujące biblioteki z oficjalnych repozytoriów:
You will need the following libraries from the official repositories:


*boost
*{{incode|boost}}
*{{incode|cmake}}
*curl
*{{incode|coin}}
*desktop-file-utils
*{{incode|curl}}
*glew
*{{incode|desktop-file-utils}}
*hicolor-icon-theme
*{{incode|eigen}}
*jsoncpp
*{{incode|gcc-fortran}}
*libspnav
*{{incode|git}}
*opencascade
*{{incode|glew}}
*shiboken2
*{{incode|hicolor-icon-theme}}
*xerces-c
*{{incode|jsoncpp}}
*pyside2
*{{incode|libspnav}}
*python-matplotlib
*{{incode|med}}
*python-netcdf4
*{{incode|nlohmann-json}}
*qt5-svg
*{{incode|opencascade}}
*qt5-webkit
*{{incode|pyside2-tools}}
*qt5-webengine
*{{incode|pyside2}}
*cmake
*{{incode|python-matplotlib}}
*eigen
*{{incode|python-netcdf4}}
*git
*{{incode|python-packaging}}
*gcc-fortran
*{{incode|python-pivy}}
*pyside2-tools
*{{incode|qt5-svg}}
*swig
*qt5-tools
*{{incode|qt5-tools}}
*{{incode|qt5-webengine}}
*shared-mime-info
*{{incode|shared-mime-info}}
*coin
*{{incode|shiboken2}}
*python-pivy
*{{incode|swig}}
*med
*{{incode|utf8cpp}}
*{{incode|verdict}}
*{{incode|xerces-c}}
*{{incode|yaml-cpp}}


{{Code|code=
{{Code|code=
sudo pacman -S boost curl desktop-file-utils glew hicolor-icon-theme jsoncpp libspnav opencascade shiboken2 xerces-c pyside2 python-matplotlib python-netcdf4 qt5-svg qt5-webkit qt5-webengine cmake eigen git gcc-fortran pyside2-tools swig qt5-tools shared-mime-info coin python-pivy med
sudo pacman -S --needed boost cmake coin curl desktop-file-utils eigen gcc-fortran git glew hicolor-icon-theme jsoncpp libspnav med nlohmann-json opencascade pyside2-tools pyside2 python-matplotlib python-netcdf4 python-packaging python-pivy qt5-svg qt5-tools qt5-webengine shared-mime-info shiboken2 swig utf8cpp xerces-c yaml-cpp
}}
}}

Note: Since version 5.0.1 of the {{incode|openmpi}} package the binary {{incode|libmpi_cxx.so}} stopped being shipped, this breaks the compilation with the current CMake process. To fix this you need to downgrade the package, see [https://forum.freecad.org/viewtopic.php?t=85207 this forum post].

<!--T:139-->
<!--T:139-->
</div>
</div>
Line 432: Line 492:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Older_and_non-conventional_distributions"></span>
=== Older and non-conventional distributions ===
===Dystrybucje starsze i niekonwencjonalne===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


Dla innych dystrybucji mamy bardzo mało informacji zwrotnych od użytkowników, więc znalezienie potrzebnych pakietów może być trudniejsze.
On other distributions, we have very few feedback from users, so it might be harder to find the required packages.


Try first locating the required libraries mentioned in [[Third Party Libraries|third party libraries]] in your package manager. Beware that some of them might have a slightly different package name; search for {{incode|name}}, but also {{incode|libname}}, {{incode|name-dev}}, {{incode|name-devel}}, and similar. If that is not possible try compiling those libraries yourself.
Spróbuj najpierw znaleźć wymagane biblioteki wymienione w [[Third_Party_Libraries/pl|bibliotekach zewnętrznych]] w swoim menedżerze pakietów. Zwróć uwagę, że niektóre z nich mogą mieć nieco inną nazwę pakietu. Szukaj według {{incode|name}}, ale także {{incode|libname}}, {{incode|name-dev}}, {{incode|name-devel}} i podobnych. Jeśli to nie jest możliwe, spróbuj skompilować te biblioteki samodzielnie.


FreeCAD requires the GNU g++ compiler version equal or above 3.0.0, as FreeCAD is mostly written in C++. During the compilation some Python scripts are executed, so the Python interpreter has to work properly. To avoid any linker problems it is also a good idea to have the library paths in the {{incode|LD_LIBRARY_PATH}} variable or in the {{incode|ld.so.conf}} file. This is already done in modern Linux distributions, but may need to be set in older ones.
FreeCAD wymaga kompilatora GNU g++ w wersji nie mniejszej niż 3.0.0, ponieważ FreeCAD jest napisany głównie w języku C++. Podczas kompilacji wykonywane niektóre skrypty Pythona, więc interpreter Python musi działać prawidłowo. Aby uniknąć problemów z linkerem, dobrze jest umieścić ścieżki dostępu do bibliotek w zmiennej {{incode|LD_LIBRARY_PATH}} lub w pliku {{incode|ld.so.conf}}. W nowoczesnych dystrybucjach Linuksa jest to już zrobione, ale w starszych może być konieczne ustawienie tej zmiennej


</div>
</div>
</div>
</div>


<span id="Pivy"></span>
=== Pivy ===
===Pivy===


[[Pivy|Pivy]] (Python wrappers to Coin3d) is not needed to build FreeCAD or to start it, but it is needed as a runtime dependency by the [[Draft_Workbench|Draft Workbench]]. If you are not going to use this workbench, you won't need Pivy. However, do notice that the Draft Workbench is used internally by other workbenches, like [[Arch Workbench|Arch]] and [[BIM Workbench|BIM]], so Pivy needs to be installed to use these workbenches as well.
[[Pivy/pl|Pivy]] ''(pakiet Pythona do Coin3d)'' nie jest potrzebny do zbudowania programu FreeCAD ani do jego uruchomienia, ale jest wymagany jako zależność runtime przez [[Draft_Workbench/pl|Rysunek Roboczy]]. Jeśli nie zamierzasz używać tego środowiska pracy, nie będziesz potrzebował Pivy. Należy jednak pamiętać, że środowisko pracy Rysunek Roboczy jest używane wewnętrznie przez inne środowiska pracy, takie jak [[Arch_Workbench/pl|Architektura]] i [[BIM_Workbench/pl|BIM]], więc Pivy jest wymagane do korzystania z tych narzędzi.


By November 2015 the obsolete version of Pivy included with the FreeCAD source code will no longer compile on many systems. This isn't a big problem as normally you should get Pivy from your distribution's package manager; if you cannot find Pivy, you may have to compile it yourself, see [[Extra_python_modules#Pivy|Pivy compilation instructions]].
W listopadzie 2015 roku przestarzała wersja Pivy dołączona do kodu źródłowego FreeCAD nie będzie już kompilowana na wielu systemach. Nie jest to duży problem, ponieważ zazwyczaj powinieneś pobrać Pivy z menedżera pakietów swojej dystrybucji; jeśli nie możesz znaleźć Pivy, być może będziesz musiał skompilować go samodzielnie, zobacz [[Extra_python_modules/pl#Pivy|Instrukcje kompilacji Pivy]].


<span id="Debug_symbols"></span>
=== Debug symbols ===
===Symbole debugowania===


In order to troubleshoot crashes in FreeCAD, it is useful to have the debug symbols of important dependency libraries such as Qt. For this, try installing the dependency packages that end with {{incode|-dbg}}, {{incode|-dbgsym}}, {{incode|-debuginfo}} or similar, depending on your Linux distribution.
W celu rozwiązywania problemów z awariami w programie FreeCAD, warto wprowadzić symbole debugowania ważnych bibliotek zależnych, takich jak Qt. W tym celu spróbuj zainstalować pakiety zależności, których nazwy kończą się na {{incode|-dbg}}, {{incode|-dbgsym}}, {{incode|-debuginfo}} lub podobne, w zależności od dystrybucji Linuksa.


For Ubuntu, you may have to enable special repositories to be able to see and install these debug packages with the package manager. See [https://wiki.ubuntu.com/Debug_Symbol_Packages Debug Symbol Packages] for more information.
Dla Ubuntu, może być konieczne włączenie specjalnych repozytoriów, aby móc zobaczyć i zainstalować te pakiety debugowania za pomocą menedżera pakietów. Zapoznaj się ze stroną [https://wiki.ubuntu.com/Debug_Symbol_Packages Debug Symbol Packages], aby uzyskać więcej informacji.


<span id="Compile_FreeCAD"></span>
== Compile FreeCAD ==
==Kompilacja programu==


{{VeryImportantMessage|Compiling against Python 2 and Qt4 is no longer well supported, and as of 0.20 is no longer supported at all. You should compile against Python 3 and Qt5. 0.20 requires at least Python3.6 and Qt 5.9.}}
{{VeryImportantMessage|Kompilacja FreeCAD 0.20 wymaga co najmniej Python 3.6 i Qt 5.9.}}


FreeCAD używa CMake jako głównego systemu kompilacji, ponieważ jest on dostępny we wszystkich głównych systemach operacyjnych. Kompilacja za pomocą CMake jest zazwyczaj bardzo prosta i przebiega w dwóch krokach.
FreeCAD uses CMake as its main build system, as it's available on all major operating systems. Compiling with CMake is usually very simple and happens in two steps.


# CMake checks that every needed program and library is present on your system, and generates a {{incode|Makefile}} that is configured for the second step. FreeCAD has several configuration options to choose from, but it comes with sensible defaults. Some alternatives are detailed below.
# CMake sprawdza, czy wszystkie potrzebne programy i biblioteki obecne w systemie, a następnie generuje plik {{incode|Makefile}}, który jest skonfigurowany do drugiego kroku. FreeCAD ma kilka opcji konfiguracyjnych do wyboru, ale posiada rozsądne ustawienia domyślne. Poniżej opisano kilka alternatywnych rozwiązań.
# The compilation itself, which is done with the program {{incode|make}}, which generates the FreeCAD executables.
# Sama kompilacja, która jest wykonywana przez program {{incode|make}}, który generuje pliki wykonywalne programu FreeCAD.


Ponieważ FreeCAD jest dużą aplikacją, kompilacja całego kodu źródłowego może zająć od 10 minut do godziny, w zależności od wydajności Twojego procesora i liczby rdzeni procesora użytych do kompilacji.
Since FreeCAD is a large application, compiling the entire source code can take anywhere from 10 minutes to one hour, depending on your CPU and the number of CPU cores used for compilation.


<span id="Building"></span>
You can build the code either in or out of the source directory. Out-of-source building is generally the best option.
===Kompilacja===


Do kompilacji wystarczy utworzyć katalog kompilacji {{incode|build}}. Następnie z tego katalogu kompilacji wskaż {{incode|cmake}} do odpowiedniego folderu źródłowego. Możesz użyć {{incode|cmake-gui}} lub {{incode|ccmake}} zamiast {{incode|cmake}} w poniższych instrukcjach. Gdy {{incode|cmake}} zakończy konfigurację środowiska, użyj {{incode|make}} by rozpocząć właściwą kompilację.
=== Out-of-source build ===

Building in a separate folder is more convenient than building in the same directory where the source code is located as every time you update the source code CMake can intelligently determine which files have changed, and recompile only what is needed. This is very useful when testing different Git branches as you don't confuse the build system.

To build out-of-source, simply create a build directory, {{incode|freecad-build}}, distinct from your FreeCAD source folder, {{incode|freecad-source}}; then from this build directory point {{incode|cmake}} to the right source folder. You can use {{incode|cmake-gui}} or {{incode|ccmake}} instead of {{incode|cmake}} in the instructions below as well. Once {{incode|cmake}} finishes configuring the environment, use {{incode|make}} to start the actual compilation.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
mkdir freecad-build
# from your freecad source folder:
cd freecad-build
mkdir build
cd build
cmake ../freecad-source
cmake ../
make -j$(nproc --ignore=2)
make -j$(nproc --ignore=2)
}}
}}


Opcja {{incode|-j}} programu {{incode|make}} kontroluje, ile zadań (plików) jest kompilowanych równolegle. Program {{incode|nproc}} wypisuje liczbę rdzeni procesora w twoim systemie. Używając go razem z opcją {{incode|-j}} możesz wybrać przetwarzanie tylu plików, ile masz rdzeni, aby przyspieszyć ogólną kompilację programu. W powyższym przykładzie, użyje on wszystkich rdzeni w systemie z wyjątkiem dwóch. Dzięki temu Twój komputer będzie mógł być wykorzystany do innych celów, podczas gdy kompilacja będzie przebiegać w tle. Plik wykonywalny programu FreeCAD pojawi się ostatecznie w katalogu {{incode|build/bin}}. Zobacz także stronę [[Compiling_(Speeding_up)/pl|Kompilacja ''(przyspieszamy)'']], aby poprawić szybkość kompilacji.
Note: if you are compiling the 0.19 release branch, you must explicitly specify that you are compiling with Qt5 and Python 3 -- replace the cMake command above with:
{{Code|lang=bash|code=
cmake ../freecad-source -DBUILD_QT5=ON -DPYTHON_EXECUTABLE=/usr/bin/python3
}}


<span id="Resolving_cmake_issues"></span>
The {{incode|-j}} option of {{incode|make}} controls how many jobs (files) are compiled in parallel. The {{incode|nproc}} program prints the number of CPU cores in your system; by using it together with the {{incode|-j}} option you can choose to process as many files as you have cores, in order to speed up overall compilation of the program. In the example above, it will use all cores in your system except two; this will keep your computer responsive for other uses while compilation proceeds in the background. The FreeCAD executable will eventually appear in the {{incode|freecad-build/bin}} directory. See also [[Compiling_(Speeding_up)|Compiling (speeding up)]] to improve compilation speed.
===Rozwiązywanie problemów z cmake===


Jeśli już wcześniej wykonałeś kompilacjęi utknąłeś na zależności, która nie została rozpoznana lub nie można jej rozwiązać, spróbuj wykonać następujące czynności:
=== Resolving cmake issues ===


* Usuń zawartość katalogu kompilacji przed ponownym uruchomieniem cmake. FreeCAD jest szybko zmieniającym się celem, możesz natknąć się na zbuforowane informacje cmake, które wskazują na starszą wersję niż ta, której może użyć nowy serwer repozytorium. Wyczyszczenie pamięci podręcznej może pozwolić cmake odzyskać i rozpoznać wersję, której rzeczywiście potrzebujesz.
If you have done an out-of-source build before and get stuck on a dependency that is not recognized or can't seem to be resolved, try the following:


* Jeśli {{incode|cmake}} skarży się na brak konkretnego pliku, użyj narzędzia takiego jak {{incode|apt-file search}} lub jego odpowiednika w innych systemach pakietów, aby dowiedzieć się, do jakiego pakietu należy ten plik i zainstalować go. Pamiętaj, że prawdopodobnie będziesz potrzebował wersji {{incode|-dev}} pakietu, która zawiera pliki nagłówkowe lub konfiguracyjne wymagane do korzystania z pakietu przez FreeCAD.
* Delete the contents of the build directory before running cmake again. FreeCAD is a rapidly moving target, you may be tripping over cached cmake information that points at an older version than the new repository head can use. Clearing the cache may allow cmake to recover and recognize the version you actually need.


<span id="Compiling_against_GNU_libc_2.34_and_later"></span>
* If cmake complains about missing a specific file, use a tool such as "apt-file search", or its equivalent in other package systems, to discover what package that file belongs to and install it. Bear in mind that you are likely to need the -dev version of the package that carries header or config files files required for FreeCAD to use the package.
===Kompilacja z GNU libc 2.34 i nowszymi===


GNU libc 2.34 wprowadza zmianę w bibliotece, która może spowodować, że kompilacja w niektórych systemach Linux nie powiedzie się powodując następujący błąd:
=== In-source building ===


{{Code|lang=bash|code=
In-source builds are fine if you want to compile a version of FreeCAD quickly, and don't intend to update the source code often. In this case, you can remove the compiled program and the source just by deleting a single folder.
No rule to make target '/usr/lib/x86_64-linux-gnu/libdl.so
}}


Aby temu zaradzić, należy ręcznie utworzyć dowiązanie symboliczne z ''(pustego teraz)'' systemowego libdl.so.* do miejsca, w którym kompilator mówi, że szuka tego pliku. Na przykład (jeśli faktycznie zainstalowaną kopią libdl.so w systemie jest /usr/lib/x86_64-linux-gnu/libdl.so.2):
Change to the source directory, and point {{incode|cmake}} to the present directory (denoted by a single point):


{{Code|lang=bash|code=
{{Code|lang=bash|code=
sudo ln -s /usr/lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so
cd freecad-source
cmake . -DBUILD_QT5=ON -DPYTHON_EXECUTABLE=/usr/bin/python3
make -j$(nproc --ignore=2)
}}
}}


Dostosuj to polecenie do struktury swojego systemu, wyszukując libdl.so* i umieszczając je w odpowiedniej lokalizacji.
The FreeCAD executable will then reside in the {{incode|freecad-source/bin}} directory.


<span id="How_to_repair_your_source_code_directory"></span>
=== How to repair your source code directory ===
===Jak naprawić swój katalog z kodem źródłowym===


Jeśli przypadkowo wykonałeś kompilację wewnątrz katalogu z kodem źródłowym lub dodałeś niepotrzebne pliki i chcesz przywrócić jego zawartość tylko do oryginalnego kodu źródłowego, możesz wykonać następujące czynności.
If you accidentally performed a compilation inside the source code directory, or added strange files, and would like to restore the contents to only the original source code, you can perform the following steps.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 522: Line 584:
}}
}}


The first line clears the {{incode|.gitignore}} file. This ensures that the following clean and reset commands will affect everything in the directory and will not ignore items matching the expressions in {{incode|.gitignore}}. The second line deletes all files and directories that are not tracked by the git repository; then the last command will reset any changes to tracked files, including the first command which cleared the {{incode|.gitignore}} file.
Pierwszy wiersz usuwa zawartość pliku {{incode|.gitignore}}. Zapewnia to, że kolejne polecenia clean i reset będą dotyczyły wszystkiego w katalogu i nie będą ignorowały elementów pasujących do wyrażeń z {{incode|.gitignore}}. Druga linia usuwa wszystkie pliki i katalogi, które nie śledzone przez repozytorium git. Następnie ostatnia komenda resetuje wszelkie zmiany w śledzonych plikach, w tym pierwszą komendę, która wyczyściła plik {{incode|.gitignore}}.


Jeśli nie wyczyścisz katalogu źródłowego, kolejne uruchomienia {{incode|cmake}} mogą nie wychwycić nowych opcji systemu, jeśli kod ulegnie zmianie.
If you do not clear the source directory, subsequent runs of {{incode|cmake}} may not capture new options to the system if the code changes.


=== Configuration ===
<span id="Configuration"></span>
===Konfiguracja===


By passing different options to {{incode|cmake}}, you can change how FreeCAD is compiled. The syntax is as follows.
Przekazując różne opcje do {{incode|cmake}}, możesz zmienić sposób, w jaki FreeCAD jest kompilowany. Składnia jest następująca.


{{Code|code=
{{Code|code=
Line 534: Line 597:
}}
}}


Where {{incode|$SOURCE_DIR}} is the directory that contains the source code. The {{incode|<type>}} may be omitted in most cases. The space after the {{incode|-D}} option may also be omitted.
Gdzie {{incode|$SOURCE_DIR}} jest katalogiem zawierającym kod źródłowy. Opcję {{incode|<type>}} można w większości przypadków pominąć. Można też pominąć spację po opcji {{incode|-D}}.


Na przykład, aby uniknąć kompilacji środowiska [[FEM_Workbench/pl|MES]]:
For example, to avoid building the [[FEM Workbench|FEM Workbench]]:


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 543: Line 606:
}}
}}


All possible variables are listed in the {{incode|InitializeFreeCADBuildOptions.cmake}} file, located in the {{incode|cMake/FreeCAD_Helpers}} directory. In this file, search for the word {{incode|option}} to get to the variables that can be set, and see their default values.
Wszystkie możliwe zmienne wymienione w pliku {{incode|InitializeFreeCADBuildOptions.cmake}}, znajdującym się w katalogu {{incode|cMake/FreeCAD_Helpers}}. W pliku tym należy wyszukać słowo {{incode|option}}, aby przejść do zmiennych, które można ustawić, i przejrzeć ich wartości domyślne.


<!--Do not remove the <pre> </pre> tags-->
<!--Do not remove the <pre> </pre> tags-->
Line 559: Line 622:
<!--Do not remove the <pre> </pre> tags-->
<!--Do not remove the <pre> </pre> tags-->


Alternatywnie można użyć polecenia {{incode|cmake -LH}}, aby wyświetlić listę bieżącej konfiguracji, a więc wszystkich zmiennych, które można zmienić. Można również zainstalować i użyć {{incode|cmake-gui}}, aby uruchomić interfejs graficzny pokazujący wszystkie zmienne, które można modyfikować. W następnych sekcjach wymienimy niektóre z ważniejszych opcji, których możesz chcieć użyć.
Alternatively, use the command {{incode|cmake -LH}} to list the current configuration, and thus all variables that can be changed. You may also install and use {{incode|cmake-gui}} to launch a graphical interface showing all the variables that can be modified. In the next sections we list some of the more relevant options that you may want to use.


<span id="For_a_Debug_build"></span>
==== For a Debug build ====
====Dla debugowania kompilacji====


Create a {{incode|Debug}} build to troubleshoot crashes in FreeCAD. Beware that with this build the [[Sketcher_Workbench|Sketcher]] becomes very slow with complex sketches.
Utwórz kompilację {{incode|Debug}} do rozwiązywania problemów z awariami w programie FreeCAD. Zwróć uwagę, że w tej wersji kompilacji środowisko pracy [[Sketcher_Workbench/pl|Szkicownik]] przy złożonych szkicach staje się bardzo powolne.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
cmake -DBUILD_QT5=ON -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Debug ../freecad-source
cmake -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Debug ../freecad-source
}}
}}


<span id="For_a_Release_build"></span>
==== For a Release build ====
====Dla kompilacji Wydania====


Create a {{incode|Release}} build to test code that doesn't crash. A {{incode|Release}} build will run much faster than a {{incode|Debug}} build.
Utwórz kompilację {{incode|Release}}, aby przetestować kod, który nie ulega awarii. Kompilacja {{incode|Release}} będzie działać znacznie szybciej niż kompilacja {{incode|Debug}}.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
cmake -DBUILD_QT5=ON -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Release ../freecad-source
cmake -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Release ../freecad-source
}}
}}


<span id="Building_against_Python_3_and_Qt5"></span>
==== Building against Python 3 and Qt5 ====
====Kompilacja w oparciu o Python 3 i Qt5====


Wsparcie dla środowiska Python 2 i Qt4 zostało wycofane w FreeCAD 0.20 i nie jest konieczne wyraźne włączenie Qt5 i Python 3, jeśli kompilujemy najnowsze wersje. Obsługa Qt6 jest obecnie w fazie rozwoju i jeszcze nie działa. Jeśli nie planujesz pomagać w migracji Qt6, parametr FREECAD_QT_VERSION powinien być ustawiony na wartość "Auto" ''(domyślnie)'' lub jawnie na "5".
By default, FreeCAD 0.19 and earlier build for Python 2 and Qt4. Since these two packages are obsolete, it is better to build for Python 3 and Qt5. Support for Python 2 and Qt4 has been removed in FreeCAD 0.20 and it is not necessary to explicitly enable Qt5 and Python 3 if compiling the latest development versions.


dla wersji 0.20_dev oraz 0.21_dev:
In a modern Linux distribution you only need to provide two variables specifying the use of Qt5, and the path to the Python interpreter.

For 0.19:
{{Code|lang=bash|code=
cmake -DBUILD_QT5=ON -DPYTHON_EXECUTABLE=/usr/bin/python3 ../freecad-source
}}

For 0.20_dev:
{{Code|lang=bash|code=
{{Code|lang=bash|code=
cmake ../freecad-source
cmake ../freecad-source
}}
}}


Note that when switching between 0.19 and the 0.20 builds, it may be necessary to delete CMakeCache.txt prior to running cmake.
Należy pamiętać, że przy przechodzeniu między kompilacją 0.20 i 0.21_dev może być konieczne usunięcie pliku CMakeCache.txt przed uruchomieniem cmake.


<span id="Building_for_a_specific_Python_version"></span>
==== Building for a specific Python version ====
====Kompilacja dla określonej wersji Pythona====


If the default {{incode|python}} executable in your system is a symbolic link to Python 2, {{incode|cmake}} will try to configure FreeCAD for this version. You can choose another version of Python by giving the path to a specific executable:
Jeśli domyślny plik wykonywalny {{incode|python}} w Twoim systemie jest dowiązaniem symbolicznym do Pythona 2, {{incode|cmake}} będzie próbował skonfigurować FreeCAD dla tej wersji. Musisz wybrać inną wersję środowiska Python, podając ścieżkę do konkretnego pliku wykonywalnego:


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 603: Line 663:
}}
}}


Jeśli to nie zadziała, być może trzeba będzie zdefiniować dodatkowe zmienne wskazujące na żądane biblioteki Python i katalogi include:
If that doesn't work, you may have to define additional variables pointing to the desired Python libraries and include directories:


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 613: Line 673:
}}
}}


It is possible to have several independent versions of Python in the same system, so the locations and version numbers of your Python files will depend on your particular Linux distribution. Use {{incode|python3 -V}} to display the version of Python that you are using currently; only the first two numbers are necessary; for example, if the result is {{incode|Python 3.6.8}}, you need to specify the directories that relate to the 3.6 version. If you don't know the right directories, try searching for them with the {{incode|locate}} command.
Możliwe jest posiadanie kilku niezależnych wersji Python w tym samym systemie, dlatego lokalizacja i numery wersji plików Python będą zależały od konkretnej dystrybucji Linuksa. Użyj {{incode|python3 -V}}, aby wyświetlić wersję Python, której aktualnie używasz. Istotne tylko dwie pierwsze liczby. Na przykład, jeśli wynikiem jest {{incode|Python 3.6.8}}, musisz podać katalogi, które odnoszą się do wersji 3.6. Jeśli nie znasz odpowiednich katalogów, spróbuj poszukać ich za pomocą polecenia {{incode|locate}}.


{{Code|code=
{{Code|code=
Line 619: Line 679:
}}
}}


You may use {{incode|python3 -m site}} in a terminal to determine the {{incode|site-packages}} directory, or {{incode|dist-packages}} for Debian systems.
Możesz użyć {{incode|python3 -m site}} w terminalu, aby określić katalog {{incode|site-packages}} lub {{incode|dist-packages}} dla systemów Debian.

Niektóre komponenty FreeCAD, takie jak PySide, próbują automatycznie wykryć najnowszą wersję Pythona zainstalowaną w systemie, co może się nie udać, jeśli jest ona inna niż podana powyżej. Dodanie następującej opcji cMake może rozwiązać ten problem:

{{Code|lang=bash|code=
-DPython3_FIND_STRATEGY=LOCATION
}}


<span id="Building_with_Qt_Creator_against_Python_3_and_Qt5"></span>
==== Building with Qt Creator against Python 3 and Qt5 ====
====Kompilacja za pomocą Qt Creator + Python 3 i Qt5====


1. Launch Qt Creator.
1. Uruchom Qt Creator.


2. Click on {{MenuCommand|Open Project}}.
2. Kliknij przycisk {{MenuCommand|Otwórz Projekt}}.


3. Navigate to the directory where the source code is, {{incode|freecad-source/}}, and choose the topmost {{incode|CMakeLists.txt}} file.
3. Przejdź do katalogu, w którym znajduje się kod źródłowy, {{incode|freecad-source/}}, i wybierz najwyżej położony plik {{incode|CMakeLists.txt}}.


4. Wybranie pliku spowoduje automatyczne uruchomienie na nim programu {{incode|cmake}}, ale może się to nie powieść, jeśli odpowiednie opcje nie zostaną poprawnie ustawione.
4. By selecting the file, it will automatically run {{incode|cmake}} on it, but it may fail if the appropriate options aren't correctly set.


5. Go to {{MenuCommand|Projects → Build & Run → Imported Kit → Build → Build Settings → CMake}}. Set the appropriate build directory, {{incode|freecad-build/}}.
5. Przejdź do {{MenuCommand|Projects → Build & Run → Imported Kit → Build → Build Settings → CMake}}. Ustaw odpowiedni katalog kompilacji, {{incode|build/}}.


6. Set the appropriate variables in the Key-Value dialog, of types {{incode|String}} and {{incode|Bool}}.
6. Ustaw odpowiednie zmienne w oknie dialogowym Key-Value, typu {{incode|String}} i {{incode|Bool}}.
{{Code|code=
{{Code|code=
PYTHON_EXECUTABLE=/usr/bin/python3
PYTHON_EXECUTABLE=/usr/bin/python3
BUILD_QT5=ON
}}
}}


7. If the variables do not load the project correctly, you may have to go to {{MenuCommand|Projects → Manage Kits → Kits → Default (or Imported Kit or similar) → CMake Configuration}}.
7. Jeżeli zmienne nie załadują projektu poprawnie, być może będziesz musiał przejść do {{MenuCommand|Projects → Manage Kits → Kits → Default (lub Imported Kit lub podobne) → CMake Configuration}}.
Następnie naciśnij przycisk {{Button|Change}} i dodaj odpowiednią konfigurację, jak opisano powyżej. Być może trzeba będzie dodać więcej zmiennych dotyczących ścieżek dla środowiska Python, jeśli systemowy Python nie zostanie znaleziony.
Then press {{Button|Change}}, and add the appropriate configuration as described above. You may have to add more variables about the Python paths, if the system Python is not found.
{{Code|code=
{{Code|code=
PYTHON_EXECUTABLE:STRING=/usr/bin/python3.7
PYTHON_EXECUTABLE:STRING=/usr/bin/python3.7
Line 646: Line 712:
PYTHON_LIBRARY:STRING=/usr/lib/x86_64-linux-gnu/libpython3.7m.so
PYTHON_LIBRARY:STRING=/usr/lib/x86_64-linux-gnu/libpython3.7m.so
PYTHON_PACKAGES_PATH:STRING=/usr/lib/python3.7/site-packages
PYTHON_PACKAGES_PATH:STRING=/usr/lib/python3.7/site-packages
BUILD_QT5:BOOL=ON
}}
}}


7.1. Press {{Button|Apply}}, then {{Button|OK}}.
7.1. Naciśnij przycisk {{Button|Apply}}, a następnie {{Button|OK}}.


7.2. Make sure the rest of the options are correctly set, for example, {{MenuCommand|Qt version}} should be a present version installed in the system, like {{incode|Qt 5.9.5 in PATH (qt5)}}.
7.2. Upewnij się, że pozostałe opcje prawidłowo ustawione, na przykład {{MenuCommand|Qt version}} powinno być aktualną wersją zainstalowaną w systemie, taką jak {{incode|Qt 5.9.5 w PATH (qt5)}}.


Press {{Button|Apply}}, then {{Button|OK}} to close the configuration.
Naciśnij {{Button|Apply}}, a następnie {{Button|OK}}, aby zamknąć konfigurację.


The {{incode|cmake}} program should run automatically again, and it should fill the entire Key-Value dialog with all the variables that can be configured.
Program {{incode|cmake}} powinien ponownie uruchomić się automatycznie i wypełnić całe okno dialogowe Key-Value wszystkimi zmiennymi, które można skonfigurować.


8. Go to {{MenuCommand|Projects → Build & Run → Imported Kit → Run → Run Settings → Run → Run Configuration}} and choose {{incode|FreeCADMain}} to compile the graphical version of FreeCAD, or {{incode|FreeCADMainCMD}} to compile only the command line version.
8. Przejdź do {{MenuCommand|Projects → Build & Run → Imported Kit → Run → Run Settings → Run → Run Configuration}} i wybierz {{incode|FreeCADMain}}, aby skompilować graficzną wersję FreeCAD, lub {{incode|FreeCADMainCMD}}, aby skompilować wersję wiersza poleceń.


9. Finally, go to the menu {{MenuCommand|Build → Build Project "FreeCAD"}}. If this is a new compilation, it should take several minutes, inclusive hours, depending on the number of processors that you have available.
9. Na koniec przejdź do menu {{MenuCommand|Build → Build Project "FreeCAD"}}. Jeśli jest to nowa kompilacja, powinna ona potrwać kilka minut, a nawet godzin, w zależności od liczby dostępnych procesorów.


<span id="Qt_designer_plugin"></span>
==== Qt designer plugin ====
====Wtyczka Qt designer====


If you want to develop Qt code for FreeCAD, you'll need the Qt Designer plugin that provides all custom widgets of FreeCAD.
Jeśli chcesz opracować kod Qt dla programu FreeCAD, będziesz potrzebował wtyczki Qt Designer, która zapewnia wszystkie niestandardowe widżety programu FreeCAD.


Go into an auxiliary directory of the source code, the run {{incode|qmake}} with the indicated project file to create a {{incode|Makefile}}; then run {{incode|make}} to compile the plugin.
Przejdź do katalogu pomocniczego z kodem źródłowym, uruchom {{incode|qmake}} ze wskazanym plikiem projektu, aby utworzyć plik {{incode|Makefile}}. Mastępnie uruchom {{incode|make}}, aby skompilować wtyczkę.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 673: Line 739:
}}
}}


If you are compiling for Qt5, make sure the {{incode|qmake}} binary is the one for this version, so that the resulting {{incode|Makefile}} contains the necessary information for Qt5.
Jeśli kompilujesz dla Qt5, upewnij się, że binarka {{incode|qmake}} jest dla tej wersji, aby wynikowy plik {{incode|Makefile}} zawierał niezbędne informacje dla Qt5.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 681: Line 747:
}}
}}


where {{incode|$QT_DIR}} is the directory that stores Qt binary libraries, for example, {{incode|/usr/lib/x86_64-linux-gnu/qt5}}.
gdzie {{incode|$QT_DIR}} to katalog, w którym przechowywane biblioteki binarne Qt, na przykład {{incode|/usr/lib/x86_64-linux-gnu/qt5}}.


The library created is {{incode|libFreeCAD_widgets.so}}, which needs to be copied to {{incode|$QT_DIR/plugins/designer}}.
Utworzona biblioteka to {{incode|libFreeCAD_widgets.so}}, którą należy skopiować do {{incode|$QT_DIR/plugins/designer}}.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 689: Line 755:
}}
}}


<span id="External_or_internal_Pivy"></span>
==== External or internal Pivy ====
====Pivy zewnętrzne lub wewnętrzne====


Previously, a version of Pivy was included in the source code of FreeCAD (internal). If you wanted to use your system's copy of Pivy (external), you needed to use <code>-DFREECAD_USE_EXTERNAL_PIVY=1</code>.
Wcześniej wersja Pivy była zawarta w kodzie źródłowym FreeCAD ''(wewnętrznym)''. Jeśli chcesz użyć systemowej kopii Pivy ''(zewnętrznej)'', musisz użyć <code>-DFREECAD_USE_EXTERNAL_PIVY=1</code>.


Using external Pivy became the default during development of FreeCAD 0.16, therefore this option does not need to be set manually anymore.
Użycie zewnętrznego Pivy stało się domyślne podczas tworzenia FreeCAD 0.16, dlatego tej opcji nie trzeba już ustawiać samodzielnie.


<span id="Doxygen_documentation"></span>
==== Doxygen documentation ====
====Dokumentacja Doxygen====


Jeśli masz zainstalowany program Doxygen, możesz zbudować dokumentację kodu źródłowego. Przeczytaj stronę [[Source_documentation/pl|dokumentacja dla źródeł]], aby uzyskać instrukcje.
If you have Doxygen installed you can build the source code documentation. See [[source documentation]] for instructions.


<span id="Additional_documentation"></span>
=== Additional documentation ===
===Dokumentacja dodatkowa===


Kod źródłowy programu FreeCAD jest bardzo obszerny, a za pomocą CMake można skonfigurować wiele opcji. Nauczenie się pełnego wykorzystania CMake może być przydatne do wybrania odpowiednich opcji dla twoich szczególnych potrzeb.
The source code of FreeCAD is very extensive, and with CMake it's possible to configure many options. Learning to use CMake fully may be useful to choose the right options for your particular needs.
* [https://cmake.org/documentation/ CMake Reference Documentation] by Kitware.
* [https://cmake.org/documentation/ CMake Reference Documentation] autorstwa Kitware.
* [https://preshing.com/20170511/how-to-build-a-cmake-based-project/ How to Build a CMake-Based Project] (blog) by Preshing on programming.
* [https://preshing.com/20170511/how-to-build-a-cmake-based-project/ How to Build a CMake-Based Project] ''(blog)'' autorstwa Preshinga na temat programowania.
* [https://preshing.com/20170522/learn-cmakes-scripting-language-in-15-minutes/ Learn CMake's Scripting Language in 15 Minutes] (blog) by Preshing on programming.
* [https://preshing.com/20170522/learn-cmakes-scripting-language-in-15-minutes/ Learn CMake's Scripting Language in 15 Minutes] ''(blog)'' autorstwa Preshinga na temat programowania.


<span id="Making_a_debian_package"></span>
=== Making a debian package ===
===Tworzenie paczki Debian===


Jeśli planujesz zbudować pakiet systemu Debian ze źródeł, musisz najpierw zainstalować wybrane pakiety:
If you plan to build a Debian package out of the sources you need to install certain packages first:


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 714: Line 784:
}}
}}


Go to the FreeCAD directory and call
Przejdź do katalogu FreeCAD i wywołaj


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 720: Line 790:
}}
}}


Once the package is built, you can use {{incode|lintian}} to check if the package contains errors
Po zbudowaniu pakietu można użyć polecenia {{incode|lintian}}, aby sprawdzić, czy pakiet zawiera błędy


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 726: Line 796:
}}
}}


<span id="*.deb_package_with_checkinstall"></span>
== Updating the source code ==
==== Pakiety *.deb z checkinstall ====


Skrypt Debiana {{incode|checkinstall}} pozwala na stworzenie pakietu *.deb, który może być zainstalowany i usunięty za pomocą standardowych poleceń {{incode|dpkg}}. Może wymagać wcześniejszej instalacji ''(na Ubuntu użyj {{incode|sudo apt install checkinstall}})''. Jest on interaktywny i pyta o wymagane informacje podając użyteczne domyślne ustawienia. W trakcie procesu pakiet jest instalowany i tworzony jest plik *.deb oraz archiwum zapasowe.
The CMake system allows you to intelligently update the source code, and only recompile what has changed, making subsequent compilations faster.


Dobrym pomysłem jest zdefiniowanie nazwy i krótkiego opisu dla pakietu. Nazwa musi być wpisana, aby ponownie go odinstalować, a opis będzie wyszczególniony przez {{incode|dpkg -l}}. Domyślna użyta nazwa "build" nie jest zbyt informacyjna.
Move to the location where the FreeCAD source code was first downloaded, and pull the new code:

Przykład:

{{Code|lang=bash|code=
cd freecad-source/build
cmake ..
make
sudo checkinstall # e.g. name=freecad-test1
}}

Wynikiem jest plik *.deb w folderze build. Skrypt {{incode|checkinstall}} domyślnie zainstaluje ten build. W ten sposób można go zainstalować lub odinstalować:

{{Code|lang=bash|code=
cd freecad-source/build
ls <nowiki>|</nowiki> grep freecad
freecad-test1_20220814-1_amd64.deb
sudo dpkg -i freecad-test1_20220814-1_amd64.deb # install
dkpg -l <nowiki>|</nowiki> grep freecad # find by name
sudo dpkg -r freecad-test1 # uninstall by name
}}

<span id="Updating_the_source_code"></span>
==Aktualizacja kodu źródłowego==

System CMake pozwala na inteligentne aktualizowanie kodu źródłowego i rekompilowanie tylko tego, co uległo zmianie, dzięki czemu kolejne kompilacje przebiegają szybciej.

Przejdź do lokalizacji, w której po raz pierwszy został pobrany kod źródłowy programu FreeCAD, i pobierz nowy kod:


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 737: Line 835:
}}
}}


Then move into the build directory where the code was compiled initially, and run {{incode|cmake}} specifying the present directory (denoted by a dot); then trigger the re-compilation with {{incode|make}}.
Następnie należy przejść do katalogu build, w którym kod został pierwotnie skompilowany, i uruchomić {{incode|cmake}}, podając obecny katalog ''(oznaczony kropką)''. Po czym wywołać ponowną kompilację za pomocą {{incode|make}}.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 745: Line 843:
}}
}}


<span id="Uninstalling_the_source_code"></span>
== Troubleshooting ==
==Odinstalowanie kodu źródłowego==


W przypadku, gdy skompilowany kod źródłowy został zainstalowany za pomocą polecenia {{incode|sudo make install}} ''(dla dystrybucji Debian)'' pliki zostały skopiowane do folderu {{FileName|/usr/local}} w kilku podfolderach. Do deinstalacji można użyć pliku {{FileName|install_manifest.txt}}. Został on utworzony w folderze build podczas kompilacji i zawiera wszystkie zainstalowane pliki. Tak długo jak ten plik istnieje, pakiet może zostać odinstalowany.
=== For 64 bit systems ===


{{Code|lang=bash|code=
When building FreeCAD for 64-bit there is a known issue with the OpenCASCADE (OCCT) 64-bit package. To get FreeCAD running properly you might need to run the {{incode|configure}} script and set additional {{incode|CXXFLAGS}}:
cd freecad-source/freecad-build
xargs sudo rm < install_manifest.txt
}}

<span id="Troubleshooting"></span>
==Rozwiązywanie problemów==

<span id="For_64_bit_systems"></span>
===W systemach 64bit===

Podczas kompilacji programu FreeCAD dla 64-bitów występuje znany problem z 64-bitowym pakietem OpenCASCADE (OCCT). Aby FreeCAD działał poprawnie, może być konieczne uruchomienie skryptu {{incode|configure}} i ustawienie dodatkowych {{incode|CXXFLAGS}}:


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 755: Line 865:
}}
}}


For Debian based systems this option is not needed when using the pre-built OpenCASCADE packages because these ones set the proper {{incode|CXXFLAGS}} internally.
W systemach opartych na Debianie opcja ta nie jest potrzebna, gdy używamy gotowych pakietów OpenCASCADE, ponieważ te ustawiają wewnętrznie właściwe {{incode|CXXFLAGS}}.


<span id="Automatic_build_scripts"></span>
== Automatic build scripts ==
==Skrypty automatycznej kompilacji==


Tutaj znajdziesz wszystko, czego potrzebujesz, aby zbudować kompletny program FreeCAD. Jest to podejście oparte na jednym skrypcie i działa na świeżo zainstalowanej dystrybucji Linuksa. Polecenia poproszą o podanie hasła roota w celu zainstalowania pakietów i nowych repozytoriów online. Skrypty te powinny działać w wersjach 32- i 64-bitowych. Zostały napisane dla różnych wersji, ale prawdopodobnie będą działać także na nowszych wersjach z większymi zmianami lub bez nich.
Here is all what you need for a complete build of FreeCAD. It's a one-script-approach and works on a freshly installed Linux distribution. The commands will ask for the root password for installation of packages and new online repositories. These scripts should run on 32 and 64 bit versions. They are written for different versions, but are also likely to run on a later version with or without major changes.


If you have such a script for your preferred distribution, please discuss it on the [https://forum.freecadweb.org/viewforum.php?f=21&sid=e3c22dca9da076fefb56b1d5c5fb3134 FreeCAD forum] so we can incorporate it.
Jeśli masz taki skrypt dla swojej preferowanej dystrybucji, omów go na forum [https://forum.freecadweb.org/viewforum.php?f=21&sid=e3c22dca9da076fefb56b1d5c5fb3134 FreeCAD], abyśmy mogli go uwzględnić.


<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


=== Ubuntu ===
<span id="Ubuntu"></span>
===Ubuntu===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


These scripts provide a reliable way to install the correct set of dependencies required to build and run FreeCAD on Ubuntu. They make use of the Ubuntu personal package archives (PPA), and should work on any version of Ubuntu targeted by the PPA. The [https://launchpad.net/~freecad-maintainers/+archive/ubuntu/freecad-daily freecad-daily] PPA targets recent versions of Ubuntu, while the [https://launchpad.net/~freecad-maintainers/+archive/ubuntu/freecad-stable freecad-stable] PPA targets officially supported versions of Ubuntu.
Skrypty te zapewniają niezawodny sposób na zainstalowanie prawidłowego zestawu zależności wymaganych do zbudowania i uruchomienia programu FreeCAD w systemie Ubuntu. Wykorzystują one osobiste archiwa pakietów Ubuntu (PPA) i powinny działać na każdej wersji Ubuntu, dla której przeznaczone jest PPA. Wersja [https://launchpad.net/~freecad-maintainers/+archive/ubuntu/freecad-daily freecad-daily] PPA jest przeznaczona dla najnowszych wersji Ubuntu, podczas gdy [https://launchpad.net/~freecad-maintainers/+archive/ubuntu/freecad-stable freecad-stable] PPA jest przeznaczone dla oficjalnie wspieranych wersji Ubuntu.


This script installs the daily compiled snapshot of FreeCAD and its dependencies. It adds the daily repository, gets the dependencies to build this version, and installs the required packages. Afterwards it proceeds to pull the source code into a particular directory, creates a build directory and changes into it, configures the compilation environment with {{incode|cmake}}, and finally builds the entire program with {{incode|make}}. Save the script to a file, make it executable, and run it, but don't use {{incode|sudo}}; superuser privileges will be asked only for selected commands.
Ten skrypt instaluje codziennie kompilowaną wersję FreeCAD i jego zależności. Dodaje codzienne repozytorium, pobiera zależności potrzebne do zbudowania tej wersji i instaluje wymagane pakiety. Następnie zaciąga kod źródłowy do określonego katalogu, tworzy katalog build i wprowadza do niego zmiany, konfiguruje środowisko kompilacji za pomocą {{incode|cmake}}, a na koniec buduje cały program za pomocą {{incode|make}}. Zapisz skrypt do pliku, uczyń go wykonywalnym i uruchom go, ale nie używaj {{incode|sudo}}. Uprawnienia superużytkownika będą wymagane tylko dla wybranych poleceń.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 779: Line 891:
sudo apt-get install freecad-daily
sudo apt-get install freecad-daily


git clone https://github.com/FreeCAD/FreeCAD.git freecad-source
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git freecad-source
mkdir freecad-build
mkdir freecad-build
cd freecad-build
cd freecad-build
cmake -DBUILD_QT5=ON -DPYTHON_EXECUTABLE=/usr/bin/python3 -DFREECAD_USE_PYBIND11=ON ../freecad-source
cmake -DPYTHON_EXECUTABLE=/usr/bin/python3 -DFREECAD_USE_PYBIND11=ON ../freecad-source
make -j$(nproc --ignore=2)
make -j$(nproc --ignore=2)
}}
}}


Jeśli chcesz, możesz odinstalować prekompilowaną wersję programu FreeCAD ({{incode|freecad-daily}}), pozostawiając zależności na miejscu, jednak pozostawienie zainstalowanego pakietu pozwoli menedżerowi pakietów na aktualizowanie jego zależności. Jest to szczególnie przydatne, jeśli zamierzasz śledzić rozwój programu FreeCAD i stale aktualizować oraz kompilować źródła z repozytorium Git.
If you wish, you can uninstall the pre-compiled version of FreeCAD ({{incode|freecad-daily}}) while leaving the dependencies in place, however, leaving this package installed will allow the package manager to keep its dependencies up to date as well; this is mostly useful if you intend to follow the development of FreeCAD, and constantly update and compile the sources from the Git repository.


Poprzedni skrypt zakłada, że chcesz skompilować najnowszą wersję programu FreeCAD, więc używasz "codziennego" repozytorium, aby uzyskać zależności. Zamiast tego możesz jednak pobrać zależności kompilacji ze "stabilnej" wersji dla aktualnego wydania Ubuntu. W takim przypadku należy zastąpić górną część poprzedniego skryptu następującymi instrukcjami. W przypadku Ubuntu 12.04 należy pominąć {{incode|--enable-source}} w poleceniu.
The previous script assumes that you want to compile the latest version of FreeCAD, so you are using the "daily" repository to get the dependencies. However, you can instead get the build dependencies of the "stable" version for your current Ubuntu release. If this is the case, replace the top part of the previous script with the following instructions. For Ubuntu 12.04, omit {{incode|--enable-source}} from the command.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 798: Line 910:
}}
}}


Once you install the {{incode|freecad}} package from the {{incode|freecad-stable}} repository, it will supersede the FreeCAD executable that is available from the Universe Ubuntu repository. The executable will be named simply {{incode|freecad}}, and not {{incode|freecad-stable}}.
Po zainstalowaniu pakietu {{incode|freecad}} z repozytorium {{incode|freecad-stable}}, zastąpi on plik wykonywalny FreeCAD, który jest dostępny w repozytorium Universe Ubuntu. Plik wykonywalny będzie się nazywał po prostu {{incode|freecad}}, a nie {{incode|freecad-stable}}.


</div>
</div>
Line 804: Line 916:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


=== openSUSE ===
<span id="openSUSE"></span>
===openSUSE===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


No external Repositories are needed to compile FreeCAD. However, there is an imcompatability with python3-devel which needs to be removed. FreeCAD can be compiled from GIT
Do kompilacji programu FreeCAD nie potrzebne żadne zewnętrzne repozytoria. Istnieje jednak niezgodność z python3-devel, która musi zostać usunięta. FreeCAD może być skompilowany z GIT.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 821: Line 934:
# get the source
# get the source
git clone https://github.com/FreeCAD/FreeCAD.git free-cad
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git free-cad
# Now you will have a subfolder in this location called free-cad. It contains the source
# Now you will have a subfolder in this location called free-cad. It contains the source
Line 840: Line 953:
}}
}}


Ponieważ używasz Git, następnym razem, gdy będziesz chciał skompilować, nie musisz wszystkiego klonować, wystarczy, pobierzesz i skompilujesz ponownie:
Since you are using git, next time you wish to compile you do not have to clone everything, just pull from git and compile once more


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 874: Line 987:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Debian_Squeeze"></span>
=== Debian Squeeze ===
===Debian Squeeze===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">
Line 889: Line 1,003:
# checkout the latest source
# checkout the latest source
git clone https://github.com/FreeCAD/FreeCAD.git freecad
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git freecad
# go to source dir
# go to source dir
Line 909: Line 1,023:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Fedora_27/28/29"></span>
=== Fedora 27/28/29 ===
===Fedora 27/28/29===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


Posted by user [[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=3666 PrzemoF]] in the forum.
Wysłane przez użytkownika [[http://forum.freecadweb.org/memberlist.php?mode=viewprofile&u=3666 PrzemoF]] na forum.


{{Code|lang=bash|code=
{{Code|lang=bash|code=
Line 943: Line 1,058:
mkdir $MAIN_DIR <nowiki>||</nowiki> { echo "~/$MAIN_DIR already exist. Quitting.."; exit; }
mkdir $MAIN_DIR <nowiki>||</nowiki> { echo "~/$MAIN_DIR already exist. Quitting.."; exit; }
cd $MAIN_DIR
cd $MAIN_DIR
git clone https://github.com/FreeCAD/FreeCAD.git
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git
mkdir $BUILD_DIR <nowiki>||</nowiki> { echo "~/$BUILD_DIR already exist. Quitting.."; exit; }
mkdir $BUILD_DIR <nowiki>||</nowiki> { echo "~/$BUILD_DIR already exist. Quitting.."; exit; }
cd $BUILD_DIR
cd $BUILD_DIR
Line 954: Line 1,069:
<div class="mw-collapsible mw-collapsed toccolours">
<div class="mw-collapsible mw-collapsed toccolours">


<span id="Arch_using_AUR"></span>
=== Arch using AUR ===
===Arch using AUR===


<div class="mw-collapsible-content">
<div class="mw-collapsible-content">


[https://aur.archlinux.org/ Arch User Repository (AUR)] is a collection user made recipes to build packages which are not officially supported by distribution maintainers / community. They are usually safe. You can see who maintain the package and for how long he did. It is recommended to check construction files. Also non open source software are available in this area even if maintained by the official owning company.
[https://aur.archlinux.org/ Arch User Repository (AUR)] to zbiór stworzonych przez użytkowników receptur do kompilacji pakietów, które nie oficjalnie wspierane przez opiekunów dystrybucji / społeczność. Zazwyczaj one bezpieczne. Możesz zobaczyć kto i jak długo opiekował się danym pakietem. Zalecane jest sprawdzenie plików konstrukcyjnych. W tym obszarze dostępne jest także oprogramowanie nie będące oprogramowaniem open source, nawet jeśli jest utrzymywane przez oficjalną firmę będącą właścicielem.


Wymagania wstępne: Git
Prerequisite : git


Kroki do wykonania:
Steps :
#Open a terminal. Optionally create a directory eg. {{incode | mkdir git}}. Optionally change directory eg. {{incode|cd git}}.
#Otwórz terminal. Opcjonalnie utwórz katalog, np. {{incode | mkdir git}}. Opcjonalnie zmień katalog np. {{incode|cd git}}.
#Clone the AUR repository : {{incode|git clone http://aur.archlinux.org/packages/freecad-git}}
#Sklonuj repozytorium AUR : {{incode|git clone https://aur.archlinux.org/freecad-git.git}}.
#Enter AUR repository folder : {{incode|cd freecad-git}}
#Wejdź do katalogu repozytorium AUR : {{incode|cd freecad-git}}.
#Compile using [https://wiki.archlinux.org/index.php/Makepkg Arch makepkg] : {{incode|makepkg -s}}. The -s or --syncdeps flag will also install required dependencies.
#Kompiluj używając [https://wiki.archlinux.org/index.php/Makepkg Arch makepkg] : {{incode|makepkg -s}}. Flaga -s lub --syncdeps zainstaluje również wymagane zależności.
#Install created package : {{incode|makepkg --install}} or double click on the pkgname-pkgver.pkg.tar.xz inside your file browser.
#Instaluj utworzony pakiet: {{incode|makepkg --install}} lub kliknij dwukrotnie na pkgname-pkgver.pkg.tar.xz w przeglądarce plików.


To update FreeCAD to latest build just repeat from step 3. Update AUR repo when there is some breaking change in the recipe or new features using {{incode|git checkout -f}} inside the folder.
Aby zaktualizować FreeCAD do najnowszej wersji, powtórz kroki z punktu 3. Zaktualizuj repo AUR, gdy w przepisie pojawią się jakieś zmiany lub nowe funkcje, używając {{incode|git checkout -f}} wewnątrz folderu.
</div>
</div>




{{Docnav
{{Docnav/pl
|[[Compile_on_Windows|Compile on Windows]]
|[[Compile_on_Windows/pl|Kompilacja w systemie Windows]]
|[[Compile_on_MacOS|Compile on MacOS]]
|[[Compile_on_MacOS/pl|Kompilacja w systemie MacOS]]
}}
}}



Latest revision as of 16:29, 29 March 2024

Istnieje eksperymentalny kontener FreeCAD Docker, który jest testowany pod kątem rozwoju FreeCAD. Przeczytaj więcej na ten temat na stronie Kompilacja w Docker

Informacje ogólne

W ostatnich dystrybucjach Linuksa FreeCAD jest ogólnie łatwy do zbudowania, ponieważ wszystkie zależności są zwykle dostarczane przez menedżera pakietów. Zasadniczo obejmuje 3 kroki:

  1. Pobierz kod źródłowy FreeCAD.
  2. Pobierz zależności lub pakiety, od których zależy FreeCAD.
  3. Skonfiguruj za pomocą cmake i skompiluj za pomocą make.

Poniżej znajdziesz szczegółowe wyjaśnienia całego procesu, niektóre skrypty do kompilacji oraz szczegóły, które możesz napotkać. Jeśli znajdziesz w poniższym tekście coś błędnego lub nieaktualnego (dystrybucje Linuksa często się zmieniają), lub jeśli używasz dystrybucji, której nie ma na liście, przedyskutuj ten problem na forum i pomóż nam go poprawić.

Ogólny proces kompilacji programu FreeCAD z kodu źródłowego. Zależności stron trzecich muszą znajdować się w systemie, podobnie jak sam kod źródłowy FreeCAD. CMake konfiguruje system tak, aby za pomocą jednej instrukcji make cały projekt został skompilowany.

Pobieranie kodu źródłowego

Git

Najlepszym sposobem uzyskania kodu jest sklonowanie repozytorium tylko do odczytu Git. Do tego celu potrzebny jest program git, który można łatwo zainstalować w większości dystrybucji Linuksa. Można go również uzyskać z oficjalnej strony.

Program Git można zainstalować za pomocą następującego polecenia:

sudo apt install git

Poniższe polecenie umieści kopię najnowszej wersji kodu źródłowego programu FreeCAD w nowym katalogu o nazwie freecad-source.

git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git freecad-source

Więcej informacji na temat używania środowiska Git i wnoszenia kodu do projektu można znaleźć na stronie Zarządzanie kodem źródłowym.

Archiwum źródeł

Alternatywnie można pobrać źródło w postaci archiwów, pliku .zip lub .tar.gz, a następnie rozpakować je w wybranym katalogu.

Pobranie zależności

Aby skompilować FreeCAD musisz zainstalować wymagane zależności wymienione w dokumencie biblioteki zewnętrzne. Pakiety, które zawierają te zależności są wymienione poniżej dla różnych dystrybucji Linuksa. Proszę zauważyć, że nazwy i dostępność bibliotek zależą od konkretnej dystrybucji; jeśli dystrybucja jest stara, niektóre pakiety mogą być niedostępne lub mieć inną nazwę. W takim przypadku należy zajrzeć do sekcji starsze i niekonwencjonalne dystrybucje poniżej.

Gdy masz już zainstalowane wszystkie zależności, przejdź do sekcji kompilacja programu.

Należy pamiętać, że kod źródłowy programu FreeCAD ma rozmiar około 500 MB; może on być trzykrotnie większy, jeśli sklonujesz repozytorium Git z całą historią modyfikacji. Pobranie wszystkich zależności może wymagać pobrania 500 MB lub więcej nowych plików. Kiedy te pliki zostaną rozpakowane, mogą wymagać 1500 MB lub więcej miejsca. Należy również pamiętać, że proces kompilacji może wygenerować do 1500 MB dodatkowych plików, ponieważ system kopiuje i modyfikuje cały kod źródłowy. Dlatego przed przystąpieniem do kompilacji należy upewnić się, że na dysku twardym jest wystarczająco dużo wolnego miejsca, co najmniej 4 GB.

Debian oraz Ubuntu

W systemach opartych na Debianie (Ubuntu, Mint itd.) dość łatwo jest zainstalować wszystkie potrzebne zależności. Większość bibliotek jest dostępna za pośrednictwem apt lub menedżera pakietów Synaptic.

Jeśli zainstalowałeś już FreeCAD z oficjalnych repozytoriów, możesz zainstalować jego zależności za pomocą tej jednej linijki kodu w terminalu:

sudo apt build-dep freecad

Jednakże, jeśli wersja FreeCAD w repozytoriach jest stara, zależności mogą być niewłaściwe do skompilowania najnowszej wersji programu FreeCAD. Dlatego należy sprawdzić, czy zostały zainstalowane następujące pakiety.

Pakiety te są niezbędne do pomyślnego przeprowadzenia jakiejkolwiek kompilacji:

  • build-essential, instaluje kompilatory C i C++, biblioteki programistyczne C oraz program make.
  • cmake, niezbędne narzędzie do konfiguracji źródeł programu FreeCAD. Możesz również zainstalować cmake-gui i cmake-curses-gui, aby uzyskać opcję graficzną.
  • libtool, podstawowe narzędzia do tworzenia bibliotek współdzielonych.
  • lsb-release, standardowe narzędzie do raportowania bazy danych jest zwykle już zainstalowane w systemie Debian i pozwala na programowe rozróżnienie między czystą instalacją Debiana a jego odmianą, taką jak Ubuntu czy Linux Mint. Nie należy usuwać tego pakietu, ponieważ wiele innych pakietów systemowych może od niego zależeć.

Kompilacja programu FreeCAD wykorzystuje język Python, jest on także używany w czasie pracy jako język skryptowy. Jeśli używasz dystrybucji opartej na Debianie, interpreter Python jest zazwyczaj już zainstalowany.

  • python3
  • swig, narzędzie, które tworzy interfejsy między kodem C++ a Python.

Sprawdź, czy masz zainstalowany Python 3. Python 2 został wycofany z użycia w 2019 r, więc nowe środowiska w programie FreeCAD nie są testowane z tą wersją języka.

Konieczne jest zainstalowanie bibliotek Boost:

  • libboost-dev
  • libboost-date-time-dev
  • libboost-filesystem-dev
  • libboost-graph-dev
  • libboost-iostreams-dev
  • libboost-program-options-dev
  • libboost-python-dev
  • libboost-regex-dev
  • libboost-serialization-dev
  • libboost-thread-dev

Konieczne jest zainstalowanie bibliotek Coin:

  • libcoin80-dev, dla Debian Jessie, Stretch, Ubuntu 16.04 do 18.10, lub
  • libcoin-dev, dla Debiana Buster, Ubuntu 19.04 i nowszych, a także dla Ubuntu 18.04/18.10 z freecad-stable/freecad-daily PPAs dodane do źródeł oprogramowania.

Kilka bibliotek zajmujących się matematyką, powierzchniami triangulowanymi, sortowaniem, siatkami, obrazowaniem komputerowym, projekcjami kartograficznymi, wizualizacją 3D, systemem okien X11, parsowaniem XML i odczytywaniem plików Zip:

  • libeigen3-dev
  • libgts-bin
  • libgts-dev
  • libkdtree++-dev
  • libmedc-dev
  • libopencv-dev or libcv-dev
  • libproj-dev
  • libvtk7-dev or libvtk6-dev
  • libx11-dev
  • libxerces-c-dev
  • libyaml-cpp-dev
  • libzipios++-dev

Python 2 oraz Qt4

Nie jest to zalecane w przypadku nowszych instalacji, ponieważ zarówno Python 2, jak i Qt4 są przestarzałe. Od wersji 0.20 FreeCAD nie obsługuje ich już.

Aby skompilować FreeCAD dla Debiana Jessie, Stretch, Ubuntu 16.04, używając Pythona 2 i Qt4, należy zainstalować następujące zależności.

  • qt4-dev-tools
  • libqt4-dev
  • libqt4-opengl-dev
  • libqtwebkit-dev
  • libshiboken-dev
  • libpyside-dev
  • pyside-tools
  • python-dev
  • python-matplotlib
  • python-pivy
  • python-ply
  • python-pyside

Python 3 oraz Qt5

Aby skompilować FreeCAD dla Debiana Buster, Ubuntu 19.04 i nowszych oraz Ubuntu 18.04/18.10 z freecad-stable/freecad-daily PPAs dodanymi do źródeł oprogramowania, zainstaluj następujące zależności.

  • qtbase5-dev
  • qttools5-dev
  • qt5-default (if compiling 0.20 on a machine that still has Qt4)
  • libqt5opengl5-dev
  • libqt5svg5-dev
  • qtwebengine5-dev
  • libqt5xmlpatterns5-dev
  • libqt5x11extras5-dev
  • libpyside2-dev
  • libshiboken2-dev
  • pyside2-tools
  • pyqt5-dev-tools
  • python3-dev
  • python3-matplotlib
  • python3-packaging
  • python3-pivy
  • python3-ply
  • python3-pyside2.qtcore
  • python3-pyside2.qtgui
  • python3-pyside2.qtsvg
  • python3-pyside2.qtwidgets
  • python3-pyside2.qtnetwork
  • python3-pyside2.qtwebengine
  • python3-pyside2.qtwebenginecore
  • python3-pyside2.qtwebenginewidgets
  • python3-pyside2.qtwebchannel
  • python3-pyside2uic

kernel OpenCascade

Jądro OpenCascade jest podstawową biblioteką graficzną służącą do tworzenia kształtów 3D. Istnieje w wersji oficjalnej OCCT oraz w wersji społecznościowej OCE. Wersja społecznościowa nie jest już zalecana, ponieważ jest przestarzała.

W przypadku Debiana Buster i Ubuntu 18.10 i nowszych, a także Ubuntu 18.04 z freecad-stable/freecad-daily PPAs dodanymi do źródeł oprogramowania, należy zainstalować oficjalne pakiety.

  • libocct*-dev
    • libocct-data-exchange-dev
    • libocct-draw-dev
    • libocct-foundation-dev
    • libocct-modeling-algorithms-dev
    • libocct-modeling-data-dev
    • libocct-ocaf-dev
    • libocct-visualization-dev
  • occt-draw

W przypadku Debiana Jessie, Stretch, Ubuntu 16.04 i nowszych należy zainstalować pakiety edycji społecznościowej.

  • liboce*-dev
    • liboce-foundation-dev
    • liboce-modeling-dev
    • liboce-ocaf-dev
    • liboce-ocaf-lite-dev
    • liboce-visualization-dev
  • oce-draw

Biblioteki można instalować pojedynczo lub przy użyciu rozszerzenia asterisk. Zmień occ na oce, jeśli chcesz zainstalować biblioteki społecznościowe.

sudo apt install libocct*-dev

Pakiety opcjonalne

Opcjonalnie można również zainstalować te dodatkowe pakiety:

  • libsimage-dev, aby Coin obsługiwał dodatkowe formaty plików graficznych.
  • doxygen i libcoin-doc (lub libcoin80-doc dla starszych systemów), jeśli chcesz generować dokumentację kodu źródłowego.
  • libspnav-dev, dla obsługi maniopulatorów przestrzennych, takich jak "Space Navigator" lub "Space Pilot" firmy 3Dconnexion.
  • checkinstall, jeśli chcesz zarejestrować zainstalowane pliki w systemowym menedżerze pakietów, aby móc je później odinstalować.

Pojedyncze polecenie dla środowisk Python 3 i Qt5

Wymaga Pyside2 dostępnego w Debian buster oraz freecad-stable/freecad-daily PPA.

sudo apt install cmake cmake-gui libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside2-dev libqt5opengl5-dev libqt5svg5-dev qtwebengine5-dev libqt5x11extras5-dev libqt5xmlpatterns5-dev libshiboken2-dev libspnav-dev libvtk7-dev libx11-dev libxerces-c-dev libzipios++-dev occt-draw pyside2-tools python3-dev python3-matplotlib python3-packaging python3-pivy python3-ply python3-pyside2.qtcore python3-pyside2.qtgui python3-pyside2.qtsvg python3-pyside2.qtwidgets python3-pyside2.qtnetwork python3-pyside2.qtwebengine python3-pyside2.qtwebenginecore python3-pyside2.qtwebenginewidgets python3-pyside2.qtwebchannel python3-markdown python3-git python3-pyside2uic qtbase5-dev qttools5-dev swig libyaml-cpp-dev

UWAGA: W niektórych wersjach Ubuntu i niektórych wersjach Qt pojawi się błąd, że nie udało się znaleźć pakietu python3-pyside2uic - w tych systemach można go bezpiecznie pominąć. W Ubuntu 20.04 trzeba będzie dodać pyqt5-dev-tools. Więcej informacji można znaleźć na stronie this dyskusja na forum.

Pojedyncze polecenie dla środowisk Python 2 i Qt4

Nie jest to zalecane w przypadku nowszych instalacji, ponieważ zarówno Python 2, jak i Qt4 są przestarzałe.

sudo apt install cmake debhelper dh-exec dh-python libboost-date-time-dev libboost-dev libboost-filesystem-dev libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev libboost-python-dev libboost-regex-dev libboost-serialization-dev libboost-thread-dev libcoin80-dev libeigen3-dev libgts-bin libgts-dev libkdtree++-dev libmedc-dev libocct-data-exchange-dev libocct-ocaf-dev libocct-visualization-dev libopencv-dev libproj-dev libpyside-dev libqt4-dev libqt4-opengl-dev libqtwebkit-dev libshiboken-dev libspnav-dev libvtk6-dev libx11-dev libxerces-c-dev libzipios++-dev lsb-release occt-draw pyside-tools python-dev python-matplotlib python-pivy python-ply swig

Użytkowników Ubuntu 16.04 prosimy o zapoznanie się również z dyskusją na temat kompilacji na forum: Compile on Linux (Kubuntu): CMake can't find VTK.

Raspberry Pi

Wykonaj te same kroki, co w przypadku dystrybucji Debian i Ubuntu.

Zgłaszane są problemy podczas próby kompilacji w systemie v przy użyciu Pythona 3 i Qt5, ale kombinacja Pythona 3 i Qt4 wydaje się działać ze starszymi wersjami programu FreeCAD (z drobnymi problemami).

W przypadku nowszych wersji (od 0.20) programu FreeCAD kompilacja z Py3/Qt5 powiedzie się, jeśli zainstalowanym systemem operacyjnym jest Raspberry Pi OS 64-bit lub Ubuntu 20.04.

Z powodu różnych problemów z Qt, w Ubuntu 20.04 nie będzie można znaleźć normalnych narzędzi PySide.

E: Unable to locate package python3-pyside2uic

W tym przypadku możemy zainstalować pakiety z PyQt i utworzyć dowiązania symboliczne do potrzebnych narzędzi.

sudo apt-get install pyqt5-dev
sudo apt-get install pyqt5-dev-tools
cd /usr/bin/
ln -s pyrcc5 pyside2-rcc
ln -s pyuic5 pyside2-uic

Teraz można przystąpić do kompilacji.

cd freecad-build/
cmake ../freecad-source -DBUILD_QT5=ON -DPYTHON_EXECUTABLE=/usr/bin/python3 -DUSE_PYBIND11=ON
make -j2

Opcja -j w poleceniu make nie powinna mieć parametru powyżej 3, ponieważ Raspberry Pi ma ograniczoną pamięć. Kompilacja zajmie kilka godzin, więc lepiej zrobić to w nocy.

Więcej informacji, FreeCAD i Raspberry Pi 4.

Fedora

W cmake dystrybuowanym przez Fedorę 34/35 jest błąd, który powoduje, że cmake nie znajduje bibliotek opencascade. Można to łatwo naprawić, wprowadzając jedną drobną zmianę do głównego poziomu pliku cmake programu opencascade zainstalowanego na Fedorze. Szczegóły tutaj: https://bugzilla.redhat.com/show_bug.cgi?id=2083568.

W górnej części pliku OpenCASCADEConfig.cmake zmień następujący wiersz, aby użyć REAL_PATH(). Usuwa to błąd wprowadzony przez użycie linka symbolicznego z /lib do /usr/lib w Fedorze, co powodowało błąd w cmake.

Ten plik jest zwykle instalowany w /usr/lib64/cmake/opencascade/OpenCASCADEConfig.cmake.

get_filename_component (OpenCASCADE_INSTALL_PREFIX "${OpenCASCADE_INSTALL_PREFIX}" PATH)

zmień to na:

file (REAL_PATH ${OpenCASCADE_INSTALL_PREFIX} OpenCASCADE_INSTALL_PREFIX)

Tę trywialną zmianę należy wprowadzić w katalogu kompilacji po uruchomieniu cmake i niepowodzeniu. Ponowne uruchomienie cmake spowoduje prawidłowe wykrycie bibliotek OCCT w normalny sposób.

Fedora38/39

Teraz zainstaluj Python 3.11. Obejmuje to znaczącą zmianę w sposobie inicjalizacji Pythona podczas uruchamiania programu. W rezultacie FreeCAD nie znajduje OpenCamLib, co oznacza, że narzędzia Powierzchnia 3D i Linia poziomu nie są dostępne w środowisku pracy CAM. Zostało to naprawione w gałęzi master 20 marca 2024 r. (Pull request #13059).

Potrzebne są następujące pakiety:

  • gcc-c++ (or possibly another C++ compiler?)
  • cmake
  • doxygen
  • swig
  • gettext
  • dos2unix
  • desktop-file-utils
  • libXmu-devel
  • freeimage-devel
  • mesa-libGLU-devel
  • opencascade-devel
  • openmpi-devel
  • python3
  • python3-devel
  • python3-pyside2
  • python3-pyside2-devel
  • pyside2-tools
  • boost-devel
  • tbb-devel
  • eigen3-devel
  • qt-devel
  • qt5-qtwebengine-devel
  • qt5-qtxmlpatterns
  • qt5-qtxmlpatterns-devel
  • qt5-qtsvg-devel
  • qt5-qttools-static
  • ode-devel
  • xerces-c
  • xerces-c-devel
  • opencv-devel
  • smesh-devel
  • Coin3
  • Coin3-devel
  • yaml-cpp

(kwiecień 2021, Coin4 i Coin4-devel są dostępne) (jeśli coin2 jest najnowszą dostępną wersją dla twojej wersji Fedory, użyj pakietów z http://www.zultron.com/rpm-repo/)

  • SoQt-devel
  • freetype
  • freetype-devel
  • vtk
  • vtk-devel
  • med
  • med-devel

I opcjonalnie:

  • libspnav-devel (do obsługi urządzeń 3Dconnexion, takich jak Space Navigator czy Space Pilot),
  • python3-pivy (https://bugzilla.redhat.com/show_bug.cgi?id=458975 Pivy nie jest obowiązkowy, ale jest wymagany dla środowiska Rysunek Roboczy),
  • python3-markdown (aby Menadżer dodatków natywny markdown),
  • python3-GitPython (aby Menadżer dodatków używał repozytorium Git do sprawdzania i aktualizowania środowisk pracy i makrodefinicji).

Aby zainstalować wszystkie zależności naraz (testowane w systemie Fedorze 36 oraz 37):

sudo dnf install gcc-c++ cmake doxygen swig gettext dos2unix desktop-file-utils libXmu-devel freeimage-devel mesa-libGLU-devel opencascade-devel openmpi-devel python3 python3-devel python3-pyside2 python3-pyside2-devel pyside2-tools boost-devel tbb-devel eigen3-devel qt-devel qt5-qtwebengine-devel qt5-qtxmlpatterns qt5-qtxmlpatterns-devel qt5-qtsvg-devel qt5-qttools-static ode-devel xerces-c xerces-c-devel opencv-devel smesh-devel Coin3 Coin3-devel SoQt-devel freetype freetype-devel vtk vtk-devel med med-devel libspnav-devel python3-pivy python3-markdown python3-GitPython yaml-cpp

Gentoo

Najprostszym sposobem sprawdzenia, które pakiety są potrzebne do skompilowania programu FreeCAD, jest sprawdzenie ich przez portage:

emerge -pv freecad

Powinno to spowodować wyświetlenie listy dodatkowych pakietów, które należy zainstalować w systemie.

Gdy FreeCAD nie jest dostępny przez portage, jest dostępny na repozytorium waebbl overlay. Narzędzie do śledzenia problemów na nakładce waebbl Github może pomóc w rozwiązaniu niektórych z nich. Nakładka zapewnia szeroki licznik freecad-9999, dzięki temu możesz wybrać potrzebny numer do skompilowania lub po prostu użyć do pobrania zależności.

layman -a waebbl

openSUSE

Tumbleweed

Następujące polecenia zainstalują pakiety wymagane do zbudowania FreeCAD z Qt5 i środowiskiem Python 3.

zypper in --no-recommends -t pattern devel_C_C++ devel_qt5

zypper in libqt5-qtbase-devel libqt5-qtsvg-devel libqt5-qttools-devel boost-devel swig libboost_program_options-devel libboost_mpi_python3-devel libboost_system-devel libboost_program_options-devel libboost_regex-devel libboost_python3-devel libboost_thread-devel libboost_system-devel libboost_headers-devel libboost_graph-devel python3 python3-devel python3-matplotlib python3-matplotlib-qt5 python3-pyside2 python3-pyside2-devel python3-pivy gcc gcc-fortran cmake occt-devel libXi-devel opencv-devel libxerces-c-devel Coin-devel SoQt-devel freetype2-devel eigen3-devel libode6 vtk-devel libmed-devel hdf5-openmpi-devel openmpi2-devel netgen-devel freeglut-devel libspnav-devel f2c doxygen dos2unix glew-devel yaml-cpp

Następujące polecenie zainstaluje program Qt Creator i GNU Project Debugger.

zypper in libqt5-creator gdb

Jeśli brakuje jakichś pakietów, można sprawdzić plik Tumbleweed "FreeCAD.spec" na stronie Open Build Service.

Należy również sprawdzić, czy nie ma jakichś poprawek, które należy zastosować (np. 0001-find-openmpi2-include-files.patch).

Leap

Jeśli istnieje różnica między pakietami dostępnymi w programach Tumbleweed i Leap, można przeczytać plik "FreeCAD.spec" programu Leap w Open Build Service, aby określić wymagane pakiety.

Zobacz poradnik piano_jonas unnofficial "Compile On openSUSE".

Arch Linux

Potrzebne będą następujące biblioteki z oficjalnych repozytoriów:

  • boost
  • cmake
  • coin
  • curl
  • desktop-file-utils
  • eigen
  • gcc-fortran
  • git
  • glew
  • hicolor-icon-theme
  • jsoncpp
  • libspnav
  • med
  • nlohmann-json
  • opencascade
  • pyside2-tools
  • pyside2
  • python-matplotlib
  • python-netcdf4
  • python-packaging
  • python-pivy
  • qt5-svg
  • qt5-tools
  • qt5-webengine
  • shared-mime-info
  • shiboken2
  • swig
  • utf8cpp
  • verdict
  • xerces-c
  • yaml-cpp
sudo pacman -S --needed boost cmake coin curl desktop-file-utils eigen gcc-fortran git glew hicolor-icon-theme jsoncpp libspnav med nlohmann-json opencascade pyside2-tools pyside2 python-matplotlib python-netcdf4 python-packaging python-pivy qt5-svg qt5-tools qt5-webengine shared-mime-info shiboken2 swig utf8cpp xerces-c yaml-cpp

Note: Since version 5.0.1 of the openmpi package the binary libmpi_cxx.so stopped being shipped, this breaks the compilation with the current CMake process. To fix this you need to downgrade the package, see this forum post.

Dystrybucje starsze i niekonwencjonalne

Dla innych dystrybucji mamy bardzo mało informacji zwrotnych od użytkowników, więc znalezienie potrzebnych pakietów może być trudniejsze.

Spróbuj najpierw znaleźć wymagane biblioteki wymienione w bibliotekach zewnętrznych w swoim menedżerze pakietów. Zwróć uwagę, że niektóre z nich mogą mieć nieco inną nazwę pakietu. Szukaj według name, ale także libname, name-dev, name-devel i podobnych. Jeśli to nie jest możliwe, spróbuj skompilować te biblioteki samodzielnie.

FreeCAD wymaga kompilatora GNU g++ w wersji nie mniejszej niż 3.0.0, ponieważ FreeCAD jest napisany głównie w języku C++. Podczas kompilacji wykonywane są niektóre skrypty Pythona, więc interpreter Python musi działać prawidłowo. Aby uniknąć problemów z linkerem, dobrze jest umieścić ścieżki dostępu do bibliotek w zmiennej LD_LIBRARY_PATH lub w pliku ld.so.conf. W nowoczesnych dystrybucjach Linuksa jest to już zrobione, ale w starszych może być konieczne ustawienie tej zmiennej

Pivy

Pivy (pakiet Pythona do Coin3d) nie jest potrzebny do zbudowania programu FreeCAD ani do jego uruchomienia, ale jest wymagany jako zależność runtime przez Rysunek Roboczy. Jeśli nie zamierzasz używać tego środowiska pracy, nie będziesz potrzebował Pivy. Należy jednak pamiętać, że środowisko pracy Rysunek Roboczy jest używane wewnętrznie przez inne środowiska pracy, takie jak Architektura i BIM, więc Pivy jest wymagane do korzystania z tych narzędzi.

W listopadzie 2015 roku przestarzała wersja Pivy dołączona do kodu źródłowego FreeCAD nie będzie już kompilowana na wielu systemach. Nie jest to duży problem, ponieważ zazwyczaj powinieneś pobrać Pivy z menedżera pakietów swojej dystrybucji; jeśli nie możesz znaleźć Pivy, być może będziesz musiał skompilować go samodzielnie, zobacz Instrukcje kompilacji Pivy.

Symbole debugowania

W celu rozwiązywania problemów z awariami w programie FreeCAD, warto wprowadzić symbole debugowania ważnych bibliotek zależnych, takich jak Qt. W tym celu spróbuj zainstalować pakiety zależności, których nazwy kończą się na -dbg, -dbgsym, -debuginfo lub podobne, w zależności od dystrybucji Linuksa.

Dla Ubuntu, może być konieczne włączenie specjalnych repozytoriów, aby móc zobaczyć i zainstalować te pakiety debugowania za pomocą menedżera pakietów. Zapoznaj się ze stroną Debug Symbol Packages, aby uzyskać więcej informacji.

Kompilacja programu

Kompilacja FreeCAD 0.20 wymaga co najmniej Python 3.6 i Qt 5.9.

FreeCAD używa CMake jako głównego systemu kompilacji, ponieważ jest on dostępny we wszystkich głównych systemach operacyjnych. Kompilacja za pomocą CMake jest zazwyczaj bardzo prosta i przebiega w dwóch krokach.

  1. CMake sprawdza, czy wszystkie potrzebne programy i biblioteki są obecne w systemie, a następnie generuje plik Makefile, który jest skonfigurowany do drugiego kroku. FreeCAD ma kilka opcji konfiguracyjnych do wyboru, ale posiada rozsądne ustawienia domyślne. Poniżej opisano kilka alternatywnych rozwiązań.
  2. Sama kompilacja, która jest wykonywana przez program make, który generuje pliki wykonywalne programu FreeCAD.

Ponieważ FreeCAD jest dużą aplikacją, kompilacja całego kodu źródłowego może zająć od 10 minut do godziny, w zależności od wydajności Twojego procesora i liczby rdzeni procesora użytych do kompilacji.

Kompilacja

Do kompilacji wystarczy utworzyć katalog kompilacji build. Następnie z tego katalogu kompilacji wskaż cmake do odpowiedniego folderu źródłowego. Możesz użyć cmake-gui lub ccmake zamiast cmake w poniższych instrukcjach. Gdy cmake zakończy konfigurację środowiska, użyj make by rozpocząć właściwą kompilację.

# from your freecad source folder:
mkdir build
cd build
cmake ../
make -j$(nproc --ignore=2)

Opcja -j programu make kontroluje, ile zadań (plików) jest kompilowanych równolegle. Program nproc wypisuje liczbę rdzeni procesora w twoim systemie. Używając go razem z opcją -j możesz wybrać przetwarzanie tylu plików, ile masz rdzeni, aby przyspieszyć ogólną kompilację programu. W powyższym przykładzie, użyje on wszystkich rdzeni w systemie z wyjątkiem dwóch. Dzięki temu Twój komputer będzie mógł być wykorzystany do innych celów, podczas gdy kompilacja będzie przebiegać w tle. Plik wykonywalny programu FreeCAD pojawi się ostatecznie w katalogu build/bin. Zobacz także stronę Kompilacja (przyspieszamy), aby poprawić szybkość kompilacji.

Rozwiązywanie problemów z cmake

Jeśli już wcześniej wykonałeś kompilacjęi utknąłeś na zależności, która nie została rozpoznana lub nie można jej rozwiązać, spróbuj wykonać następujące czynności:

  • Usuń zawartość katalogu kompilacji przed ponownym uruchomieniem cmake. FreeCAD jest szybko zmieniającym się celem, możesz natknąć się na zbuforowane informacje cmake, które wskazują na starszą wersję niż ta, której może użyć nowy serwer repozytorium. Wyczyszczenie pamięci podręcznej może pozwolić cmake odzyskać i rozpoznać wersję, której rzeczywiście potrzebujesz.
  • Jeśli cmake skarży się na brak konkretnego pliku, użyj narzędzia takiego jak apt-file search lub jego odpowiednika w innych systemach pakietów, aby dowiedzieć się, do jakiego pakietu należy ten plik i zainstalować go. Pamiętaj, że prawdopodobnie będziesz potrzebował wersji -dev pakietu, która zawiera pliki nagłówkowe lub konfiguracyjne wymagane do korzystania z pakietu przez FreeCAD.

Kompilacja z GNU libc 2.34 i nowszymi

GNU libc 2.34 wprowadza zmianę w bibliotece, która może spowodować, że kompilacja w niektórych systemach Linux nie powiedzie się powodując następujący błąd:

No rule to make target '/usr/lib/x86_64-linux-gnu/libdl.so

Aby temu zaradzić, należy ręcznie utworzyć dowiązanie symboliczne z (pustego teraz) systemowego libdl.so.* do miejsca, w którym kompilator mówi, że szuka tego pliku. Na przykład (jeśli faktycznie zainstalowaną kopią libdl.so w systemie jest /usr/lib/x86_64-linux-gnu/libdl.so.2):

sudo ln -s /usr/lib/x86_64-linux-gnu/libdl.so.2 /usr/lib/x86_64-linux-gnu/libdl.so

Dostosuj to polecenie do struktury swojego systemu, wyszukując libdl.so* i umieszczając je w odpowiedniej lokalizacji.

Jak naprawić swój katalog z kodem źródłowym

Jeśli przypadkowo wykonałeś kompilację wewnątrz katalogu z kodem źródłowym lub dodałeś niepotrzebne pliki i chcesz przywrócić jego zawartość tylko do oryginalnego kodu źródłowego, możesz wykonać następujące czynności.

> .gitignore
git clean -df
git reset --hard HEAD

Pierwszy wiersz usuwa zawartość pliku .gitignore. Zapewnia to, że kolejne polecenia clean i reset będą dotyczyły wszystkiego w katalogu i nie będą ignorowały elementów pasujących do wyrażeń z .gitignore. Druga linia usuwa wszystkie pliki i katalogi, które nie są śledzone przez repozytorium git. Następnie ostatnia komenda resetuje wszelkie zmiany w śledzonych plikach, w tym pierwszą komendę, która wyczyściła plik .gitignore.

Jeśli nie wyczyścisz katalogu źródłowego, kolejne uruchomienia cmake mogą nie wychwycić nowych opcji systemu, jeśli kod ulegnie zmianie.

Konfiguracja

Przekazując różne opcje do cmake, możesz zmienić sposób, w jaki FreeCAD jest kompilowany. Składnia jest następująca.

cmake -D <var>:<type>=<value> $SOURCE_DIR

Gdzie $SOURCE_DIR jest katalogiem zawierającym kod źródłowy. Opcję <type> można w większości przypadków pominąć. Można też pominąć spację po opcji -D.

Na przykład, aby uniknąć kompilacji środowiska MES:

cmake -D BUILD_FEM:BOOL=OFF ../freecad-source
cmake -DBUILD_FEM=OFF ../freecad-source

Wszystkie możliwe zmienne są wymienione w pliku InitializeFreeCADBuildOptions.cmake, znajdującym się w katalogu cMake/FreeCAD_Helpers. W pliku tym należy wyszukać słowo option, aby przejść do zmiennych, które można ustawić, i przejrzeć ich wartości domyślne.

# ==============================================================================
# =================   All the options for the build process    =================
# ==============================================================================

option(BUILD_FORCE_DIRECTORY "The build directory must be different to the source directory." OFF)
option(BUILD_GUI "Build FreeCAD Gui. Otherwise you have only the command line and the Python import module." ON)
option(FREECAD_USE_EXTERNAL_ZIPIOS "Use system installed zipios++ instead of the bundled." OFF)
option(FREECAD_USE_EXTERNAL_SMESH "Use system installed smesh instead of the bundled." OFF)
...

Alternatywnie można użyć polecenia cmake -LH, aby wyświetlić listę bieżącej konfiguracji, a więc wszystkich zmiennych, które można zmienić. Można również zainstalować i użyć cmake-gui, aby uruchomić interfejs graficzny pokazujący wszystkie zmienne, które można modyfikować. W następnych sekcjach wymienimy niektóre z ważniejszych opcji, których możesz chcieć użyć.

Dla debugowania kompilacji

Utwórz kompilację Debug do rozwiązywania problemów z awariami w programie FreeCAD. Zwróć uwagę, że w tej wersji kompilacji środowisko pracy Szkicownik przy złożonych szkicach staje się bardzo powolne.

cmake -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Debug ../freecad-source

Dla kompilacji Wydania

Utwórz kompilację Release, aby przetestować kod, który nie ulega awarii. Kompilacja Release będzie działać znacznie szybciej niż kompilacja Debug.

cmake -DPYTHON_EXECUTABLE=/usr/bin/python3 -DCMAKE_BUILD_TYPE=Release ../freecad-source

Kompilacja w oparciu o Python 3 i Qt5

Wsparcie dla środowiska Python 2 i Qt4 zostało wycofane w FreeCAD 0.20 i nie jest konieczne wyraźne włączenie Qt5 i Python 3, jeśli kompilujemy najnowsze wersje. Obsługa Qt6 jest obecnie w fazie rozwoju i jeszcze nie działa. Jeśli nie planujesz pomagać w migracji Qt6, parametr FREECAD_QT_VERSION powinien być ustawiony na wartość "Auto" (domyślnie) lub jawnie na "5".

dla wersji 0.20_dev oraz 0.21_dev:

cmake ../freecad-source

Należy pamiętać, że przy przechodzeniu między kompilacją 0.20 i 0.21_dev może być konieczne usunięcie pliku CMakeCache.txt przed uruchomieniem cmake.

Kompilacja dla określonej wersji Pythona

Jeśli domyślny plik wykonywalny python w Twoim systemie jest dowiązaniem symbolicznym do Pythona 2, cmake będzie próbował skonfigurować FreeCAD dla tej wersji. Musisz wybrać inną wersję środowiska Python, podając ścieżkę do konkretnego pliku wykonywalnego:

cmake -DPYTHON_EXECUTABLE=/usr/bin/python3 ../freecad-source

Jeśli to nie zadziała, być może trzeba będzie zdefiniować dodatkowe zmienne wskazujące na żądane biblioteki Python i katalogi include:

cmake -DPYTHON_EXECUTABLE=/usr/bin/python3.6 \
    -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m \
    -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so \
    -DPYTHON_PACKAGES_PATH=/usr/lib/python3.6/site-packages/ \
    ../freecad-source

Możliwe jest posiadanie kilku niezależnych wersji Python w tym samym systemie, dlatego lokalizacja i numery wersji plików Python będą zależały od konkretnej dystrybucji Linuksa. Użyj python3 -V, aby wyświetlić wersję Python, której aktualnie używasz. Istotne są tylko dwie pierwsze liczby. Na przykład, jeśli wynikiem jest Python 3.6.8, musisz podać katalogi, które odnoszą się do wersji 3.6. Jeśli nie znasz odpowiednich katalogów, spróbuj poszukać ich za pomocą polecenia locate.

locate python3.6

Możesz użyć python3 -m site w terminalu, aby określić katalog site-packages lub dist-packages dla systemów Debian.

Niektóre komponenty FreeCAD, takie jak PySide, próbują automatycznie wykryć najnowszą wersję Pythona zainstalowaną w systemie, co może się nie udać, jeśli jest ona inna niż podana powyżej. Dodanie następującej opcji cMake może rozwiązać ten problem:

-DPython3_FIND_STRATEGY=LOCATION

Kompilacja za pomocą Qt Creator + Python 3 i Qt5

1. Uruchom Qt Creator.

2. Kliknij przycisk Otwórz Projekt.

3. Przejdź do katalogu, w którym znajduje się kod źródłowy, freecad-source/, i wybierz najwyżej położony plik CMakeLists.txt.

4. Wybranie pliku spowoduje automatyczne uruchomienie na nim programu cmake, ale może się to nie powieść, jeśli odpowiednie opcje nie zostaną poprawnie ustawione.

5. Przejdź do Projects → Build & Run → Imported Kit → Build → Build Settings → CMake. Ustaw odpowiedni katalog kompilacji, build/.

6. Ustaw odpowiednie zmienne w oknie dialogowym Key-Value, typu String i Bool.

PYTHON_EXECUTABLE=/usr/bin/python3

7. Jeżeli zmienne nie załadują projektu poprawnie, być może będziesz musiał przejść do Projects → Manage Kits → Kits → Default (lub Imported Kit lub podobne) → CMake Configuration. Następnie naciśnij przycisk Change i dodaj odpowiednią konfigurację, jak opisano powyżej. Być może trzeba będzie dodać więcej zmiennych dotyczących ścieżek dla środowiska Python, jeśli systemowy Python nie zostanie znaleziony.

PYTHON_EXECUTABLE:STRING=/usr/bin/python3.7
PYTHON_INCLUDE_DIR:STRING=/usr/include/python3.7m
PYTHON_LIBRARY:STRING=/usr/lib/x86_64-linux-gnu/libpython3.7m.so
PYTHON_PACKAGES_PATH:STRING=/usr/lib/python3.7/site-packages

7.1. Naciśnij przycisk Apply, a następnie OK.

7.2. Upewnij się, że pozostałe opcje są prawidłowo ustawione, na przykład Qt version powinno być aktualną wersją zainstalowaną w systemie, taką jak Qt 5.9.5 w PATH (qt5).

Naciśnij Apply, a następnie OK, aby zamknąć konfigurację.

Program cmake powinien ponownie uruchomić się automatycznie i wypełnić całe okno dialogowe Key-Value wszystkimi zmiennymi, które można skonfigurować.

8. Przejdź do Projects → Build & Run → Imported Kit → Run → Run Settings → Run → Run Configuration i wybierz FreeCADMain, aby skompilować graficzną wersję FreeCAD, lub FreeCADMainCMD, aby skompilować wersję wiersza poleceń.

9. Na koniec przejdź do menu Build → Build Project "FreeCAD". Jeśli jest to nowa kompilacja, powinna ona potrwać kilka minut, a nawet godzin, w zależności od liczby dostępnych procesorów.

Wtyczka Qt designer

Jeśli chcesz opracować kod Qt dla programu FreeCAD, będziesz potrzebował wtyczki Qt Designer, która zapewnia wszystkie niestandardowe widżety programu FreeCAD.

Przejdź do katalogu pomocniczego z kodem źródłowym, uruchom qmake ze wskazanym plikiem projektu, aby utworzyć plik Makefile. Mastępnie uruchom make, aby skompilować wtyczkę.

cd freecad-source/src/Tools/plugins/widget
qmake plugin.pro
make

Jeśli kompilujesz dla Qt5, upewnij się, że binarka qmake jest tą dla tej wersji, aby wynikowy plik Makefile zawierał niezbędne informacje dla Qt5.

cd freecad-source/src/Tools/plugins/widget
$QT_DIR/bin/qmake plugin.pro
make

gdzie $QT_DIR to katalog, w którym przechowywane są biblioteki binarne Qt, na przykład /usr/lib/x86_64-linux-gnu/qt5.

Utworzona biblioteka to libFreeCAD_widgets.so, którą należy skopiować do $QT_DIR/plugins/designer.

sudo cp libFreeCAD_widgets.so $QT_DIR/plugins/designer

Pivy zewnętrzne lub wewnętrzne

Wcześniej wersja Pivy była zawarta w kodzie źródłowym FreeCAD (wewnętrznym). Jeśli chcesz użyć systemowej kopii Pivy (zewnętrznej), musisz użyć -DFREECAD_USE_EXTERNAL_PIVY=1.

Użycie zewnętrznego Pivy stało się domyślne podczas tworzenia FreeCAD 0.16, dlatego tej opcji nie trzeba już ustawiać samodzielnie.

Dokumentacja Doxygen

Jeśli masz zainstalowany program Doxygen, możesz zbudować dokumentację kodu źródłowego. Przeczytaj stronę dokumentacja dla źródeł, aby uzyskać instrukcje.

Dokumentacja dodatkowa

Kod źródłowy programu FreeCAD jest bardzo obszerny, a za pomocą CMake można skonfigurować wiele opcji. Nauczenie się pełnego wykorzystania CMake może być przydatne do wybrania odpowiednich opcji dla twoich szczególnych potrzeb.

Tworzenie paczki Debian

Jeśli planujesz zbudować pakiet systemu Debian ze źródeł, musisz najpierw zainstalować wybrane pakiety:

sudo apt install dh-make devscripts lintian

Przejdź do katalogu FreeCAD i wywołaj

debuild

Po zbudowaniu pakietu można użyć polecenia lintian, aby sprawdzić, czy pakiet zawiera błędy

lintian freecad-package.deb

Pakiety *.deb z checkinstall

Skrypt Debiana checkinstall pozwala na stworzenie pakietu *.deb, który może być zainstalowany i usunięty za pomocą standardowych poleceń dpkg. Może wymagać wcześniejszej instalacji (na Ubuntu użyj sudo apt install checkinstall). Jest on interaktywny i pyta o wymagane informacje podając użyteczne domyślne ustawienia. W trakcie procesu pakiet jest instalowany i tworzony jest plik *.deb oraz archiwum zapasowe.

Dobrym pomysłem jest zdefiniowanie nazwy i krótkiego opisu dla pakietu. Nazwa musi być wpisana, aby ponownie go odinstalować, a opis będzie wyszczególniony przez dpkg -l. Domyślna użyta nazwa "build" nie jest zbyt informacyjna.

Przykład:

cd freecad-source/build
cmake ..
make
sudo checkinstall                                  # e.g. name=freecad-test1

Wynikiem jest plik *.deb w folderze build. Skrypt checkinstall domyślnie zainstaluje ten build. W ten sposób można go zainstalować lub odinstalować:

cd freecad-source/build
ls | grep freecad
        freecad-test1_20220814-1_amd64.deb
sudo dpkg -i freecad-test1_20220814-1_amd64.deb   # install
dkpg -l | grep freecad                            # find by name
sudo dpkg -r freecad-test1                        # uninstall by name

Aktualizacja kodu źródłowego

System CMake pozwala na inteligentne aktualizowanie kodu źródłowego i rekompilowanie tylko tego, co uległo zmianie, dzięki czemu kolejne kompilacje przebiegają szybciej.

Przejdź do lokalizacji, w której po raz pierwszy został pobrany kod źródłowy programu FreeCAD, i pobierz nowy kod:

cd freecad-source
git pull

Następnie należy przejść do katalogu build, w którym kod został pierwotnie skompilowany, i uruchomić cmake, podając obecny katalog (oznaczony kropką). Po czym wywołać ponowną kompilację za pomocą make.

cd ../freecad-build
cmake .
make -j$(nproc --ignore=2)

Odinstalowanie kodu źródłowego

W przypadku, gdy skompilowany kod źródłowy został zainstalowany za pomocą polecenia sudo make install (dla dystrybucji Debian) pliki zostały skopiowane do folderu /usr/local w kilku podfolderach. Do deinstalacji można użyć pliku install_manifest.txt. Został on utworzony w folderze build podczas kompilacji i zawiera wszystkie zainstalowane pliki. Tak długo jak ten plik istnieje, pakiet może zostać odinstalowany.

cd freecad-source/freecad-build
xargs sudo rm < install_manifest.txt

Rozwiązywanie problemów

W systemach 64bit

Podczas kompilacji programu FreeCAD dla 64-bitów występuje znany problem z 64-bitowym pakietem OpenCASCADE (OCCT). Aby FreeCAD działał poprawnie, może być konieczne uruchomienie skryptu configure i ustawienie dodatkowych CXXFLAGS:

./configure CXXFLAGS="-D_OCC64"

W systemach opartych na Debianie opcja ta nie jest potrzebna, gdy używamy gotowych pakietów OpenCASCADE, ponieważ te ustawiają wewnętrznie właściwe CXXFLAGS.

Skrypty automatycznej kompilacji

Tutaj znajdziesz wszystko, czego potrzebujesz, aby zbudować kompletny program FreeCAD. Jest to podejście oparte na jednym skrypcie i działa na świeżo zainstalowanej dystrybucji Linuksa. Polecenia poproszą o podanie hasła roota w celu zainstalowania pakietów i nowych repozytoriów online. Skrypty te powinny działać w wersjach 32- i 64-bitowych. Zostały napisane dla różnych wersji, ale prawdopodobnie będą działać także na nowszych wersjach z większymi zmianami lub bez nich.

Jeśli masz taki skrypt dla swojej preferowanej dystrybucji, omów go na forum FreeCAD, abyśmy mogli go uwzględnić.

Ubuntu

Skrypty te zapewniają niezawodny sposób na zainstalowanie prawidłowego zestawu zależności wymaganych do zbudowania i uruchomienia programu FreeCAD w systemie Ubuntu. Wykorzystują one osobiste archiwa pakietów Ubuntu (PPA) i powinny działać na każdej wersji Ubuntu, dla której przeznaczone jest PPA. Wersja freecad-daily PPA jest przeznaczona dla najnowszych wersji Ubuntu, podczas gdy freecad-stable PPA jest przeznaczone dla oficjalnie wspieranych wersji Ubuntu.

Ten skrypt instaluje codziennie kompilowaną wersję FreeCAD i jego zależności. Dodaje codzienne repozytorium, pobiera zależności potrzebne do zbudowania tej wersji i instaluje wymagane pakiety. Następnie zaciąga kod źródłowy do określonego katalogu, tworzy katalog build i wprowadza do niego zmiany, konfiguruje środowisko kompilacji za pomocą cmake, a na koniec buduje cały program za pomocą make. Zapisz skrypt do pliku, uczyń go wykonywalnym i uruchom go, ale nie używaj sudo. Uprawnienia superużytkownika będą wymagane tylko dla wybranych poleceń.

#!/bin/sh
sudo add-apt-repository --enable-source ppa:freecad-maintainers/freecad-daily && sudo apt-get update
sudo apt-get build-dep freecad-daily
sudo apt-get install freecad-daily

git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git freecad-source
mkdir freecad-build
cd freecad-build
cmake -DPYTHON_EXECUTABLE=/usr/bin/python3 -DFREECAD_USE_PYBIND11=ON ../freecad-source
make -j$(nproc --ignore=2)

Jeśli chcesz, możesz odinstalować prekompilowaną wersję programu FreeCAD (freecad-daily), pozostawiając zależności na miejscu, jednak pozostawienie zainstalowanego pakietu pozwoli menedżerowi pakietów na aktualizowanie jego zależności. Jest to szczególnie przydatne, jeśli zamierzasz śledzić rozwój programu FreeCAD i stale aktualizować oraz kompilować źródła z repozytorium Git.

Poprzedni skrypt zakłada, że chcesz skompilować najnowszą wersję programu FreeCAD, więc używasz "codziennego" repozytorium, aby uzyskać zależności. Zamiast tego możesz jednak pobrać zależności kompilacji ze "stabilnej" wersji dla aktualnego wydania Ubuntu. W takim przypadku należy zastąpić górną część poprzedniego skryptu następującymi instrukcjami. W przypadku Ubuntu 12.04 należy pominąć --enable-source w poleceniu.

#!/bin/sh
sudo add-apt-repository --enable-source ppa:freecad-maintainers/freecad-stable && sudo apt-get update
sudo apt-get build-dep freecad
sudo apt-get install libqt5xmlpatterns5-dev   # Needed for 0.20; should go away on next packaging update 
sudo apt-get install freecad

Po zainstalowaniu pakietu freecad z repozytorium freecad-stable, zastąpi on plik wykonywalny FreeCAD, który jest dostępny w repozytorium Universe Ubuntu. Plik wykonywalny będzie się nazywał po prostu freecad, a nie freecad-stable.

openSUSE

Do kompilacji programu FreeCAD nie są potrzebne żadne zewnętrzne repozytoria. Istnieje jednak niezgodność z python3-devel, która musi zostać usunięta. FreeCAD może być skompilowany z GIT.

# install needed packages for development
sudo zypper install gcc cmake OpenCASCADE-devel libXerces-c-devel \
python-devel libqt4-devel python-qt4 Coin-devel SoQt-devel boost-devel \
libode-devel libQtWebKit-devel libeigen3-devel gcc-fortran git swig
 
# create new dir, and go into it
mkdir FreeCAD-Compiled 
cd FreeCAD-Compiled
 
# get the source
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git free-cad
 
# Now you will have a subfolder in this location called free-cad. It contains the source
 
# make another dir for compilation, and go into it
mkdir FreeCAD-Build1
cd FreeCAD-Build1 
 
# build configuration 
cmake ../free-cad
 
# build FreeCAD
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Ponieważ używasz Git, następnym razem, gdy będziesz chciał skompilować, nie musisz wszystkiego klonować, wystarczy, pobierzesz i skompilujesz ponownie:

# go into free-cad dir created earlier
cd free-cad
 
# pull
git pull
 
# get back to previous dir
cd ..
 
# Now repeat last few steps from before.
 
# make another dir for compilation, and go into it
mkdir FreeCAD-Build2
cd FreeCAD-Build2
 
# build configuration 
cmake ../free-cad
 
# build FreeCAD
# Note: to speed up build use all CPU cores: make -j$(nproc)
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Debian Squeeze

# get the needed tools and libs
sudo apt-get install build-essential python libcoin60-dev libsoqt4-dev \
libxerces-c2-dev libboost-dev libboost-date-time-dev libboost-filesystem-dev \
libboost-graph-dev libboost-iostreams-dev libboost-program-options-dev \
libboost-serialization-dev libboost-signals-dev libboost-regex-dev \
libqt4-dev qt4-dev-tools python2.5-dev \
libsimage-dev libopencascade-dev \
libsoqt4-dev libode-dev subversion cmake libeigen2-dev python-pivy \
libtool autotools-dev automake gfortran
 
# checkout the latest source
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git freecad
 
# go to source dir
cd freecad
 
# build configuration 
cmake .
 
# build FreeCAD
# Note: to speed up build use all CPU cores: make -j$(nproc)
make
 
# test FreeCAD
cd bin
./FreeCAD -t 0

Fedora 27/28/29

Wysłane przez użytkownika [PrzemoF] na forum.

#!/bin/bash

ARCH=$(arch)

MAIN_DIR=FreeCAD
BUILD_DIR=build

#FEDORA_VERSION=27
#FEDORA_VERSION=28
FEDORA_VERSION=29

PACKAGES="gcc cmake gcc-c++ boost-devel zlib-devel swig eigen3 qt-devel \
shiboken shiboken-devel pyside-tools python-pyside python-pyside-devel xerces-c \
xerces-c-devel OCE-devel smesh graphviz python-pivy python-matplotlib tbb-devel \
 freeimage-devel Coin3 Coin3-devel med-devel vtk-devel"

FEDORA_29_PACKAGES="boost-python2 boost-python3 boost-python2-devel boost-python3-devel"

if [ "$FEDORA_VERSION" = "29" ]; then
    PACKAGES="$PACKAGES $FEDORA_29_PACKAGES"
fi

echo "Installing packages required to build FreeCAD"
sudo dnf -y install $PACKAGES
cd ~
mkdir $MAIN_DIR || { echo "~/$MAIN_DIR already exist. Quitting.."; exit; }
cd $MAIN_DIR
git clone --recurse-submodules https://github.com/FreeCAD/FreeCAD.git
mkdir $BUILD_DIR || { echo "~/$BUILD_DIR already exist. Quitting.."; exit; }
cd $BUILD_DIR
cmake ../FreeCAD 
make -j$(nproc)

Arch using AUR

Arch User Repository (AUR) to zbiór stworzonych przez użytkowników receptur do kompilacji pakietów, które nie są oficjalnie wspierane przez opiekunów dystrybucji / społeczność. Zazwyczaj są one bezpieczne. Możesz zobaczyć kto i jak długo opiekował się danym pakietem. Zalecane jest sprawdzenie plików konstrukcyjnych. W tym obszarze dostępne jest także oprogramowanie nie będące oprogramowaniem open source, nawet jeśli jest utrzymywane przez oficjalną firmę będącą właścicielem.

Wymagania wstępne: Git

Kroki do wykonania:

  1. Otwórz terminal. Opcjonalnie utwórz katalog, np. mkdir git. Opcjonalnie zmień katalog np. cd git.
  2. Sklonuj repozytorium AUR : git clone https://aur.archlinux.org/freecad-git.git.
  3. Wejdź do katalogu repozytorium AUR : cd freecad-git.
  4. Kompiluj używając Arch makepkg : makepkg -s. Flaga -s lub --syncdeps zainstaluje również wymagane zależności.
  5. Instaluj utworzony pakiet: makepkg --install lub kliknij dwukrotnie na pkgname-pkgver.pkg.tar.xz w przeglądarce plików.

Aby zaktualizować FreeCAD do najnowszej wersji, powtórz kroki z punktu 3. Zaktualizuj repo AUR, gdy w przepisie pojawią się jakieś zmiany lub nowe funkcje, używając git checkout -f wewnątrz folderu.