|
|
(49 intermediate revisions by 16 users not shown) |
Line 1: |
Line 1: |
| ''Craft'' is a tool to build the sources and its third-party requirements. It is the '''easy''' way to build software.
| | #REDIRECT [[Get_Involved/development/Windows]] |
| | |
| == Setting up craft ==
| |
| === Installing python ===
| |
| While Craft is capable of installing a embedded Python version sufficient for most packages, we recommend a full installation of Python. The current version is 3.6. [https://www.python.org/downloads/ Download Python 3.6+]
| |
| | |
| === Setting up a powershell ===
| |
| Powershell is required to be at least version 5.0.
| |
| If you're running Windows 10 you most probably won't need to update Powershell.
| |
| | |
| You can check the version with <tt>$PSVersionTable.PSVersion</tt> .
| |
| | |
| [https://www.microsoft.com/en-us/download/details.aspx?id=50395 Download Powershell]
| |
| | |
| === Setting up a compiler ===
| |
| Currently Craft supports both the MinGW and Microsoft Visual Studio (msvc) compiler.
| |
| While MinGW can be installed by Craft, [https://www.visualstudio.com/ Visual Studio] must be installed independently by the user.
| |
| | |
| === Direct X SDK ===
| |
| If you are using the MinGW compiler, in order to compile the Qt5 ''qtbase'' package you will also need to install the [https://www.microsoft.com/en-us/download/details.aspx?id=6812 Microsoft DirectX SDK]. Make sure to open a new command line window after the installation for the environment variables to be set.
| |
| | |
| === Installing Craft===
| |
| * Start a powershell environment.
| |
| * Allow execution of powershell scripts.
| |
| Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
| |
| * Install Craft and folow the instructions
| |
| iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/KDE/craft/2017.05/setup/install_craft.ps1'))
| |
| | |
| == Using Craft ==
| |
| To use Craft you need to start a Powershell window, point that to <tt>KDEROOT\craft </tt> and run the initalization script. For example:
| |
| | |
| C:\KDEROOT\craft\kdeenv.ps1
| |
| | |
| This tells Craft about your environment settings (e.g. paths). It will load your configuration from <tt>KDEROOT\etc\kdesettings.ini</tt>. If there are any error messages Craft will not work as expected. The output should look similar to this one (of course with your paths):
| |
| | |
| PS C:\kderoot\craft>.\kdeenv.ps1
| |
| KDEROOT : C:\kderoot\
| |
| KDECOMPILER : msvc2015
| |
| KDESVNDIR : C:\kderoot\download\svn
| |
| KDEGITDIR : C:\kderoot\download\git
| |
| DOWNLOADDIR : C:\kderoot\download
| |
| PYTHONPATH : C:\kderoot\python
| |
|
| |
| PS C:\kderoot\>
| |
| | |
| === Common Craft commands ===
| |
| * '''Installing a package and its dependencies''': Simply run <syntaxhighlight lang="text">craft packagename</syntaxhighlight>
| |
| * '''Updating an installed package''': Once you have ''packagename'' built, type <syntaxhighlight lang="text">craft -i packagename</syntaxhighlight> to update <tt>packagename</tt>.
| |
| * '''Updating Craft''':<syntaxhighlight lang="text">craft craft</syntaxhighlight>
| |
| | |
| == Advanced tips ==
| |
| | |
| | |
| To build a non default version, append a line to [https://phabricator.kde.org/source/craft/browse/master/kdesettings.ini;3e3b3817deb9f17d2779d2275382d453104ed9e6$99 kderoot/etc/kdesettings.ini] of form:
| |
| | |
| category/packagename = branch
| |
| | |
| For example, to install master branch of kdevelop, the line to be appended should look like:
| |
| extragear/kdevelop = master
| |
| | |
| To find the category of the package you want to install, run this in powershell:
| |
| craft --search packagename
| |
| The second line of the output will be of form: <tt>category/packagename</tt>
| |
| | |
| === Using the Qt SDK===
| |
| This will skip all Qt packages and use the official Qt builds instead.
| |
| It will work fine for most CMake based recipes but definitely cause problems with QMake based projects.
| |
| You will of course also miss all patches we usually apply to Qt.
| |
| This is only recommended when you know what you are doing and you won't get support for in our channel.
| |
| | |
| To activate the SDK mode adapt the [QtSDK] section in your etc/kdesettings.ini to something like:
| |
| [QtSDK]
| |
| ## Whether to use prebuild Qt binaries.
| |
| Enabled = True
| |
| ## The path to the Qt sdk.
| |
| Path = C:\Qt
| |
| ## The version of Qt.
| |
| Version = 5.9
| |
| ## The compiler version, if you are not sure what to use, have a look into the derectory set in QtSDK/Path.
| |
| ## The compiler must be of the same type as General/KDECOMPILER.
| |
| ## If you are using mingw please make sure you have installed the mingw using the Qt installer.
| |
| Compiler = msvc2017_64
| |
| | |
| == Troubleshooting ==
| |
| | |
| If a package fails to build, you'll be greeted with something like:
| |
| | |
| ...
| |
| craft warning: while running make cmd: jom
| |
| craft warning: Action: compile for libs/qt5/qtbase FAILED
| |
| *** Craft all failed: all of libs/qtbase failed after 0:07:25 ***
| |
| craft error: fatal error: package libs/qtbase all failed
| |
| | |
| In order to figure out ''what'' failed, grep the command line output ''above'' for errors.
| |
| | |
| Or have a look at the log file located in <tt> %USERPROFILE%\.craft</tt> which will contain much more details.
| |
| | |
| Search for "error", or "error:" in the file.
| |
| | |
| ==Using Craft with Qt Creator==
| |
| To compile from within Qt Creator, I need to set up a kit.
| |
| This is an example for mingw64.
| |
| * Add a cmake if none is set: R:\dev-utils\cmake\bin\cmake.exe
| |
| * Add a debugger: R:\mingw64\bin\gdb.exe
| |
| * Add a C++ compiler and a C compiler. Both: R:\mingw64\bin\gcc.exe
| |
| ** Ensure that the ABI is correctly set
| |
| * Add a Qt: R:\bin\qmake.exe
| |
| * Add a kit with all of the above
| |
| * Use the kit on a project
| |