Jump to content

Kdenlive/Development/WindowsBuild: Difference between revisions

From KDE Community Wiki
Vpinon (talk | contribs)
m add comments
Jlskuz (talk | contribs)
MLT is ported to CMake since version 7
 
(20 intermediate revisions by 5 users not shown)
Line 1: Line 1:
Different efforts are currently being led to make building Kdenlive on Microsoft Windows possible.
Different efforts are currently being led to make building Kdenlive on Microsoft Windows possible.
The most successful one is with Craft, as described in the [https://kdenlive.org/en/2019/01/building-and-distributing-kdenlive-on-windows-and-mac/ Building and Distributing Kdenlive on Windows and Mac article]
== Compiling on Windows using Craft (Recommended method) ==
* Set up Craft as described [[Guidelines_and_HOWTOs/Build_from_source/Windows|here]]. (Choose MinGW as compiler)
* Start building kdenlive. You can simply run <code>craft kdenlive</code>. If it fails because of zlib, simply run <code>craft zlib</code> and retry. Note that if you want to compile kdenlive in debug mode, you can do so by running <code>craft --buildtype Debug kdenlive</code>
== Compiling on Windows in MSYS2 bash shell ==
* [http://www.msys2.org/ Download MSYS2] (x86_64 preferred) and install this unix-like environment for Windows.
* Then download our [https://cgit.kde.org/kdenlive.git/plain/packaging/kdenlive-msys2.sh build script] to the directory where you want it to work.
* From a mingw64 shell, "cd" to that directory and run the script ("./kdenlive-msys2.sh")
* Answer "yes" to package manager questions (pacman) to update build system and download dependencies
* Wait for MLT & Kdenlive to build
* Run Kdenlive from "/mingw64/bin/kdenlive"


== Cross compiling on GNU/Linux using [http://mxe.cc/ MXE] ==
== Cross compiling on GNU/Linux using [http://mxe.cc/ MXE] ==


git clone https://anongit.kde.org/kdenlive.git # not already done?
You should first follow the steps necessary to build [[Kdenlive/Development#Pre-requisites_and_Supported_Platformsbuild|Kdenlive on GNU/ Linux]].  
git clone https://github.com/vpinon/mxe.git
 
cat >mxe/settings.mk <<EOF
=== Getting and configuring MXE ===
MXE_TARGETS := x86_64-w64-mingw32.shared.posix
Then, on the level where you cloned the kdenlive repository, you should clone a special version of MXE (M cross environment):
override MXE_PLUGIN_DIRS += plugins/multimedia plugins/kdeframeworks plugins/apps
<pre>
kdenlive_SOURCE_TREE := $PWD/kdenlive
git clone https://github.com/vpinon/mxe.git
EOF
</pre>
cd mxe
Then create a settings.mk file with the following command (copy/paste the whole block)
make kdenlive
<pre>
make gdb # useful in case of crash: look for kdenlive PID in task manager, start gdb, run "attach ''PID''"
cat >mxe/settings.mk <<EOF
plugins/apps/deploy_kdenlive.sh
MXE_TARGETS := x86_64-w64-mingw32.shared.posix
override MXE_PLUGIN_DIRS += plugins/multimedia plugins/kdeframeworks plugins/apps
kdenlive_SOURCE_TREE := $PWD/kdenlive
EOF</pre>
=== Installing MXE dependencies ===
 
MXE requires the following dependecies (many of which should already be on your system, since you built the GNU/Linux version):  
 
<pre>
sudo apt install \
    autoconf \
    automake \
    autopoint \
    bash \
    bison \
    bzip2 \
    flex \
    g++ \
    g++-multilib \
    gettext \
    git \
    gperf \
    intltool \
    libc6-dev-i386 \
    libgdk-pixbuf2.0-dev \
    libltdl-dev \
    libssl-dev \
    libtool-bin \
    libxml-parser-perl \
    make \
    openssl \
    p7zip-full \
    patch \
    perl \
    pkg-config \
    python \
    ruby \
    scons \
    sed \
    unzip \
    wget \
    yasm \
    xz-utils
</pre>


== Porting the [https://www.mltframework.org/ MLT framework] to CMake ==
=== Building kdenlive with MXE ===
<pre>
cd mxe
make kdenlive
make gdb  #for debugging
plugins/apps/deploy_kdenlive.sh
</pre>


To be able to compile Kdenlive with MSVC  (Microsoft Visual C++ compiler and libraries toolset). (Elie).
=== Debugging ===
In case of crash, look for kdenlive PID in the task manager, start gdb:
<pre>
gdb
</pre>
And in gdb:
  (gdb)attach ''<i>PID</i>''

Latest revision as of 16:00, 23 June 2022

Different efforts are currently being led to make building Kdenlive on Microsoft Windows possible. The most successful one is with Craft, as described in the Building and Distributing Kdenlive on Windows and Mac article

Compiling on Windows using Craft (Recommended method)

  • Set up Craft as described here. (Choose MinGW as compiler)
  • Start building kdenlive. You can simply run craft kdenlive. If it fails because of zlib, simply run craft zlib and retry. Note that if you want to compile kdenlive in debug mode, you can do so by running craft --buildtype Debug kdenlive

Compiling on Windows in MSYS2 bash shell

  • Download MSYS2 (x86_64 preferred) and install this unix-like environment for Windows.
  • Then download our build script to the directory where you want it to work.
  • From a mingw64 shell, "cd" to that directory and run the script ("./kdenlive-msys2.sh")
  • Answer "yes" to package manager questions (pacman) to update build system and download dependencies
  • Wait for MLT & Kdenlive to build
  • Run Kdenlive from "/mingw64/bin/kdenlive"

Cross compiling on GNU/Linux using MXE

You should first follow the steps necessary to build Kdenlive on GNU/ Linux.

Getting and configuring MXE

Then, on the level where you cloned the kdenlive repository, you should clone a special version of MXE (M cross environment):

git clone https://github.com/vpinon/mxe.git

Then create a settings.mk file with the following command (copy/paste the whole block)

cat >mxe/settings.mk <<EOF
MXE_TARGETS := x86_64-w64-mingw32.shared.posix
override MXE_PLUGIN_DIRS += plugins/multimedia plugins/kdeframeworks plugins/apps
kdenlive_SOURCE_TREE := $PWD/kdenlive
EOF

Installing MXE dependencies

MXE requires the following dependecies (many of which should already be on your system, since you built the GNU/Linux version):

sudo apt install \
    autoconf \
    automake \
    autopoint \
    bash \
    bison \
    bzip2 \
    flex \
    g++ \
    g++-multilib \
    gettext \
    git \
    gperf \
    intltool \
    libc6-dev-i386 \
    libgdk-pixbuf2.0-dev \
    libltdl-dev \
    libssl-dev \
    libtool-bin \
    libxml-parser-perl \
    make \
    openssl \
    p7zip-full \
    patch \
    perl \
    pkg-config \
    python \
    ruby \
    scons \
    sed \
    unzip \
    wget \
    yasm \
    xz-utils

Building kdenlive with MXE

cd mxe
make kdenlive
make gdb  #for debugging
plugins/apps/deploy_kdenlive.sh

Debugging

In case of crash, look for kdenlive PID in the task manager, start gdb:

gdb

And in gdb:

 (gdb)attach PID