Projects/Edu/KStars/Building KStars on Windows: Difference between revisions

From KDE TechBase
< Projects‎ | Edu‎ | KStars
No edit summary
Line 1: Line 1:
== Introduction ==
== Introduction ==
This is an attempt at keeping a log of what needs to be done to build KStars from source on Windows using the emerge tool.
This is an attempt at keeping a log of what needs to be done to build KStars from source on Windows using the emerge tool.
== Some quick explanations of GNU on Windows projects ==
Cygwin: Cygwin provides a kind of emulation layer for UNIX APIs on Windows. It has almost everything of GNU/Linux distros (X11/GNOME/KDE/whatever), including the Qt libraries and KDE Frameworks 5 libraries in its distribution. However, compiling and linking against these libraries means that you are essentially running a binary that uses X and UNIX APIs on Windows. The end result is a KStars binary that needs a running X-server, is very slow, and does not work very well.
MinGW + MSYS: Provides a native GNU build toolchain and native GNU accessories that (if my understand is right) still use libstdc++ and such GNU/Linuxy things, but does not need an implementation of the UNIX API on Windows.
Moral of the story: Avoid Cygwin.


== Initial steps ==
== Initial steps ==
Line 20: Line 28:


For some strange reason, emerge may get stuck half way in powershell. It looks like hitting enter periodically ensures that the process goes on (why????). Of course this could just be coincidence but it seems unlikely. (This could be due to a virtualbox feature -- the author of this blurb is running the Windows OS in virtualbox)
For some strange reason, emerge may get stuck half way in powershell. It looks like hitting enter periodically ensures that the process goes on (why????). Of course this could just be coincidence but it seems unlikely. (This could be due to a virtualbox feature -- the author of this blurb is running the Windows OS in virtualbox)
This is a very long process. emerge will download 7zip, other developer utils, cmake and then download MSYS (binaries), and then build a few packages like OpenSSL. Then actually getting to building the Qt libraries.

Revision as of 06:23, 31 December 2015

Introduction

This is an attempt at keeping a log of what needs to be done to build KStars from source on Windows using the emerge tool.

Some quick explanations of GNU on Windows projects

Cygwin: Cygwin provides a kind of emulation layer for UNIX APIs on Windows. It has almost everything of GNU/Linux distros (X11/GNOME/KDE/whatever), including the Qt libraries and KDE Frameworks 5 libraries in its distribution. However, compiling and linking against these libraries means that you are essentially running a binary that uses X and UNIX APIs on Windows. The end result is a KStars binary that needs a running X-server, is very slow, and does not work very well.

MinGW + MSYS: Provides a native GNU build toolchain and native GNU accessories that (if my understand is right) still use libstdc++ and such GNU/Linuxy things, but does not need an implementation of the UNIX API on Windows.

Moral of the story: Avoid Cygwin.

Initial steps

This article: https://techbase.kde.org/Getting_Started/Build/Windows/emerge is great for almost all things.

If you are using Windows 10, please see the notes at the very bottom of the page

Also, do not try to use Cygwin to get python and git. The entire process does not want you to have the standard GNU tools in path etc. Instead, get them from the standard installers at python.org and git-scm.com

When installing git using the installer from git-scm.com, make sure you choose the option where git is accessible from command line, but the MinGW tools are not added to the path (Second option out of the three as of this writing). Adding the MinGW32 tools to the path ends up causing trouble while building with the MinGW compiler.

Please note that emerge has a verbose mode (emerge --verbose) which is very helpful for diagnosing any problems.

Building Qt packages

First build Qt Base by emerging it

emerge qtbase

For some strange reason, emerge may get stuck half way in powershell. It looks like hitting enter periodically ensures that the process goes on (why????). Of course this could just be coincidence but it seems unlikely. (This could be due to a virtualbox feature -- the author of this blurb is running the Windows OS in virtualbox)

This is a very long process. emerge will download 7zip, other developer utils, cmake and then download MSYS (binaries), and then build a few packages like OpenSSL. Then actually getting to building the Qt libraries.