Jump to content

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

From KDE TechBase
Akarsh (talk | contribs)
Akarsh (talk | contribs)
Line 33: Line 33:
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 libraries like OpenSSL, libexpat... from sources. Then actually getting to building the Qt libraries.
This is a very long process. emerge will download 7zip, other developer utils, cmake and then download MSYS (binaries), and then build a few libraries like OpenSSL, libexpat, DBus... from sources. Then actually getting to building the Qt libraries.

Revision as of 06:39, 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: Provides a native build toolchain for GNU apps on Windows, that does not involve an emulation layer like cygwin1.dll MSYS: Provides a "cygwin-lite" set of Windows GNU binaries so as to have a minimal working GNU system with things like bash etc. This only provides tools, and although they come from cygwin-land, if one compiles with MinGW, it doesn't produce cygwin-binaries.

According to Nicolas Alvarez: If you want to compile a program that uses autotools, you either use cygwin (and get a cygwin binary) or you use mingw to get a native binary, but then you still need the cygwin-ish msys bash to run the ./configure script

Moral of the story: Avoid Cygwin to build. Use MinGW + MSYS.

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 libraries like OpenSSL, libexpat, DBus... from sources. Then actually getting to building the Qt libraries.