-
Notifications
You must be signed in to change notification settings - Fork 74
Compiling KVIrc on Windows
wodim edited this page Apr 7, 2020
·
3 revisions
-------------------------------------------------------------------------------
KVIrc4 win64 compiling howto by Cizzle
based on wodim's guide at https://thacid.wordpress.com/2010/10/18/compiling-kvirc-64-bits-from-svn-using-visual-studio-2008/
and DarthGandalf's appveyor buildinstructions
-------------------------------------------------------------------------------
This paper describes how to successfully compile a working copy of KVIrc 4.3.x
under Microsoft Windows operating systems. For own compilations we assume a
root-directory C:\kvirccomp\ being used.
-------------------------------------------------------------------------------
Prerequisites
-------------------------------------------------------------------------------
- A 64-bit Microsoft Windows operating system.
Should work at least on 7
- Microsoft Visual Studio 2013 (Community Edition).
Get it from https://www.visualstudio.com/nl-nl/products/visual-studio-community-vs
Install in default location with default options, though you can slim it down a lot if wanted.
- CMake.
Get it from http://www.cmake.org/download/
Install in default location with default options and choose "Add CMake to command path for all users".
- GIT client.
Get one from https://git-for-windows.github.io/
Git bash should be enough.
- Qt.
Get it from https://www.qt.io/download-open-source/
Version 5 should work.
Get the online installer and be sure to mark MSVS 2013 64bit version.
Install in default location with default options.
- Perl.
Get it from http://www.activestate.com/activeperl/downloads
Get the 64-bit version, use 5.20.x (newer versions don't have dmake yet in the repo).
Install in default location with default options.
If you want scripting support, you will also have to do this:
Go to C:\Perl64\lib\CORE, make the file config.h not read-only and open it for editing.
Find the line that starts with "#define PERL_STATIC_INLINE" and put "/*" in front of it (so it's commented).
And of course save the file.
Some perl releases miss dmake at install time; if you get a strange error at compilation
time, run the following command from cmdline: ppm install dmake
- zlib.
Get it from http://zlib.net/
Get the source as we need to compile it ourselves (until a 64bit dll is provided).
Compiling (replace versions with what you have):
Unpack in C:\kvirccomp\; then open a VS x64 Native CMD Prompt and run:
cd C:\kvirccomp\zlib-1.2.8
"C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x64
nmake -f win32/Makefile.msc AS=ml64 LOC="-DASMV -DASMINF -I." OBJA="inffasx64.obj gvmat64.obj inffas8664.obj"
- OpenSSL.
Get it from http://www.openssl.org/source/ to compile yourself
or get the non-Light Win64 package from http://slproweb.com/products/Win32OpenSSL.html
Compiling (replace versions with what you have):
Unpack in C:\kvirccomp\; then open a VS x64 Native CMD Prompt and run:
perl Configure VC-WIN64A
ms\do_win64a
nmake -f ms\ntdll.mak
cd out32dll
..\ms\test
All of the tests should run flawlessly.
Then run the following as a batch-script in the ${OPENSSL_INCLUDE_DIR}/openssl/:
@echo off
setlocal enabledelayedexpansion
for %%f in (*.h) do (
set /P linkn= < %%f
set linkn=!linkn:/=\!
ren %%f %%f.ori
copy !linkn! %%f
)
- Python.
Optional for scripting purposes
Get it from http://www.activestate.com/activepython/downloads/
Get the 64-bit 2.x version as 3.x is not backwards compatible and supported by now.
Install in default location with default options.
- Enchant.
Optional for spellchecking support
Get it from https://ci.appveyor.com/api/buildjobs/kf2efxpaes6uugwg/artifacts/enchant.7z
Unpack in C:\kvirccomp and edit enchant-inst\include\enchant\enchant.h adding under line "#include <sys/types.h>" (l35):
#include <BaseTsd.h>
typedef SSIZE_T ssize_t;
and edit enchant-inst\include\glib-2.0\glibconfig.h adding under lines "#define G_CAN_INLINE 1; #endif" (l120):
#undef G_CAN_INLINE
You can get dictionaries from http://extensions.libreoffice.org/extension-center/
- Phonon4Qt5.
Optional audio backend
Get it from https://projects.kde.org/projects/kdesupport/phonon/phonon/repository
We need to compile this ourselves, but we first need the extra-cmake-modules:
Get this from https://projects.kde.org/projects/kdesupport/extra-cmake-modules/repository
Unpack ECM in C:\kvirccomp\, then open a VS x64 Native CMD Prompt and run:
md build
cd build
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=release -DCMAKE_INSTALL_PREFIX=C:\Qt\5.4\msvc2013_64
nmake install
Then unpack phonon in C:\kvirccomp\, and in a VS x64 Native CMD Prompt run:
md build
cd build
cmake .. -G "NMake Makefiles" -DPHONON_BUILD_PHONON4QT5=ON -DCMAKE_INSTALL_PREFIX=C:\Qt\5.4\msvc2013_64 -DCMAKE_PREFIX_PATH=C:\Qt\5.4\msvc2013_64 -DPHONON_INSTALL_QT_EXTENSIONS_INTO_SYSTEM_QT=ON -Wno-dev
nmake
nmake install
- GNU GetText for Win32.
Required if you're building a redistributable package,
needed to translate KVIrc interface into your own language.
Get it from http://gnuwin32.sourceforge.net/packages/gettext.htm
Install in default location with default options.
- GNU Sed for Win32.
Optional for translation file cleanup
Get it from http://gnuwin32.sourceforge.net/packages/sed.htm
Install in default location with default options.
-------------------------------------------------------------------------------
Compilation
-------------------------------------------------------------------------------
- Get the KVIrc source code
Using GIT bash:
cd /c/kvirccomp/
git clone https://github.com/kvirc/kvirc.git
- Compile KVIrc
Open a Visual Studio x64 Native command prompt. Before starting, we have to set some environment variables.
Replace with your respective versions and install paths. The Perl and Python paths might already be set.
set PATH=%PATH%;C:\kvirccomp\zlib-1.2.8;C:\Qt\5.4\msvc2013_64\bin;C:\Perl64\bin;C:\Perl64\site\bin;C:\Python27;C:\Program Files (x86)\GnuWin32\bin
set CMAKE_INCLUDE_PATH=%CMAKE_INCLUDE_PATH%;C:\kvirccomp\openssl-1.0.2d\include;C:\kvirccomp\zlib-1.2.8
set CMAKE_LIBRARY_PATH=%CMAKE_LIBRARY_PATH%;C:\kvirccomp\openssl-1.0.2d\out32dll;C:\kvirccomp\zlib-1.2.8;C:\Qt\5.4\msvc2013_64\lib
If you compiled OpenSSL yourself and want to use this during compilation,
and have the package from SLProWeb installed in it's default location,
you need to rename the SLProWeb installationpath first.
CMake will look at those default paths first.
Next, go to the KVIrc source dir and create a build directory and its Makefiles using cmake and compile.
We use the "release" build-type as "debug" seems to have incompatibilities between /O2 and /RTC usage
If you want spellchecking support, add these flags to the cmake command:
"-DEnchant_FOUND=1 -DEnchant_INCLUDE_DIRS=c:\kvirccomp\enchant-inst\include\enchant;c:\kvirccomp\enchant-inst\include\glib-2.0 -DEnchant_LDFLAGS=c:\kvirccomp\enchant-inst\lib\libenchant.dll.a"
If you don't want Perl scripting support, add this flag to the cmake command:
"-DWANT_PERL=0"
If you don't want the Phonon audio backend and want to ignore the warning, add this flag to the cmake command:
"-DWANT_PHONON=0"
cd C:\kvirccomp\KVIrc
md build
cd build
cmake .. -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=release -DWANT_KDE=0
nmake
nmake install
Your binaries are now located at C:\kvirccomp\kvirc\build\release.
But you can’t start kvirc.exe as there're some libraries missing.
You can either copy these to the system dir, add their locations to %PATH% or copy them to the KVIrc-release dir.
The latter is preferred for portability reasons.
robocopy C:\Qt\5.4\msvc2013_64\bin C:\kvirccomp\kvirc\build\release\ Qt5Network.dll Qt5Core.dll Qt5Widgets.dll Qt5Gui.dll Qt5WebKitWidgets.dll Qt5WebKit.dll Qt5Sensors.dll Qt5Positioning.dll Qt5Quick.dll Qt5Qml.dll Qt5Multimedia.dll Qt5WebChannel.dll Qt5Sql.dll Qt5MultimediaWidgets.dll Qt5OpenGL.dll Qt5PrintSupport.dll Qt5WinExtras.dll icuin53.dll icuuc53.dll icudt53.dll
robocopy C:\kvirccomp\openssl-1.0.2d\out32dll C:\kvirccomp\kvirc\build\release\ libeay32.dll ssleay32.dll
copy C:\kvirccomp\zlib-1.2.8\zlib1.dll C:\kvirccomp\kvirc\build\release\
copy C:\Perl64\bin\perl520.dll C:\kvirccomp\kvirc\build\release\
Optionally copy:
copy C:\Windows\System32\python27.dll C:\kvirccomp\kvirc\build\release\
- Add extra plugins
Qt provides extra plugins which can be used, these have to be placed in a subdirectory named "qt-plugins".
Currently KVIrc can use these types of plugins:
qt4: codecs, iconengines, imageformats, phonon_backend, sqldrivers
qt5: audio, iconengines, imageformats, mediaservice, platforms, sqldrivers
Create a subdirectory and name it with the type name of the plugins you'll place inside it;
You can find them inside C:\Qt\5.4\msvc2013_64\plugins\.
Choose the dlls without a "d" at the end of the filename: qjpeg.dll and not qjpegd.dll.