Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
howtos:win32:msys2 [2022/07/23 08:20] – Update Windows MSYS2 howto enrico | howtos:win32:msys2 [2025/02/01 17:04] (current) – use git clean -dfx as distclean may fail if there was no configure yet giuspen | ||
---|---|---|---|
Line 2: | Line 2: | ||
Msys2 is a successor to msys which offers a unix-like environment on Windows combined with a pacman-based package manager. | Msys2 is a successor to msys which offers a unix-like environment on Windows combined with a pacman-based package manager. | ||
- | It' | + | Its purpose is to simplify win32 compiliations, |
- | In fact, it's so good it should become the default method of compiling Geany on Windows. | + | |
See http:// | See http:// | ||
Line 11: | Line 10: | ||
===== Initial Setup ===== | ===== Initial Setup ===== | ||
- | Download the installer from https:// | + | Download the installer from https:// |
- | not whether you target a 32bit or 64bit compilation of Geany (this guide will always compile for 64bit). | + | |
Run the installer and follow the instructions. In the following we will assume that you installed the 64bit version to C:\mingw64. | Run the installer and follow the instructions. In the following we will assume that you installed the 64bit version to C:\mingw64. | ||
Line 34: | Line 32: | ||
pacman -S mingw-w64-x86_64-binutils mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb | pacman -S mingw-w64-x86_64-binutils mingw-w64-x86_64-gcc mingw-w64-x86_64-gdb | ||
# make and Autotools | # make and Autotools | ||
- | pacman -S make mingw-w64-x86_64-libtool mingw-w64-x86_64-pkgconf autoconf automake gettext | + | pacman -S make mingw-w64-x86_64-libtool mingw-w64-x86_64-pkgconf autoconf automake gettext |
# gtk family | # gtk family | ||
pacman -S mingw-w64-x86_64-gtk3 | pacman -S mingw-w64-x86_64-gtk3 | ||
# for building html docs | # for building html docs | ||
- | pacman -S mingw-w64-x86_64-python3 | + | pacman -S mingw-w64-x86_64-python |
# and if you fancy building from git | # and if you fancy building from git | ||
pacman -S git | pacman -S git | ||
Line 44: | Line 42: | ||
pacman -S rsync | pacman -S rsync | ||
# for GTK bundle creation and release creation | # for GTK bundle creation and release creation | ||
- | pacman -S curl tar dos2unix zip unzip mingw-w64-x86_64-osslsigncode mingw-w64-x86_64-nsis | + | pacman -S curl tar dos2unix zip unzip mingw-w64-x86_64-osslsigncode mingw-w64-x86_64-nsis |
Make sure you have not installed both `gcc` and `mingw-w64-x86_64-gcc`, | Make sure you have not installed both `gcc` and `mingw-w64-x86_64-gcc`, | ||
- | At last, you might want to add `C:\msys64\mingw64\bin` to your `PATH` environment variable, in order to run Geany from the Windows Explorer. | + | At last, you might want to add `C:\geany\bin` to your `PATH` environment variable, in order to run Geany from the Windows Explorer. |
In case you want also compile the combined Geany-Plugins collection, you need the following dependencies: | In case you want also compile the combined Geany-Plugins collection, you need the following dependencies: | ||
Line 63: | Line 61: | ||
You can either clone the source code from the GIT repository or download a release tarball and unpack it. | You can either clone the source code from the GIT repository or download a release tarball and unpack it. | ||
- | cd | + | |
- | | + | |
- | unzip geany-master.zip | + | |
- | cd geany-master | + | cd geany |
# autogen.sh is not needed for release tarballs! | # autogen.sh is not needed for release tarballs! | ||
NOCONFIGURE=1 ./ | NOCONFIGURE=1 ./ | ||
# configure and make take a while, don't panic | # configure and make take a while, don't panic | ||
+ | export lt_cv_deplibs_check_method=${lt_cv_deplibs_check_method=' | ||
./configure --prefix=/ | ./configure --prefix=/ | ||
- | make -j2 | + | make -j |
make install | make install | ||
Line 82: | Line 81: | ||
You can either clone the source code from the GIT repository or download a release tarball and unpack it. | You can either clone the source code from the GIT repository or download a release tarball and unpack it. | ||
- | cd | + | cd ~/git |
- | | + | |
- | unzip geany-plugins-master.zip | + | cd geany-plugins |
- | cd geany-plugins-master | + | |
# autogen.sh is not needed for release tarballs! | # autogen.sh is not needed for release tarballs! | ||
NOCONFIGURE=1 ./ | NOCONFIGURE=1 ./ | ||
# configure and make take a while, don't panic | # configure and make take a while, don't panic | ||
+ | export lt_cv_deplibs_check_method=${lt_cv_deplibs_check_method=' | ||
./configure --prefix=/ | ./configure --prefix=/ | ||
- | make -j2 | + | make -j |
make install | make install | ||
Line 113: | Line 112: | ||
cd | cd | ||
- | mkdir -p ~/ | + | mkdir -p ~/ |
- | cd ~/ | + | cd ~/ |
- | bash ~/geany-master/ | + | bash ~/git/ |
There are a few command line options for this script. Run it with " | There are a few command line options for this script. Run it with " | ||
Line 126: | Line 125: | ||
cd | cd | ||
- | mkdir -p ~/ | + | mkdir -p ~/ |
- | cd ~/ | + | cd ~/ |
- | bash ~/ | + | bash ~/git/ |
===== Creating an installer / Making a release ===== | ===== Creating an installer / Making a release ===== | ||
Line 142: | Line 141: | ||
Build instructions to build Geany in order to create a Windows installer (within MSYS2 shell): | Build instructions to build Geany in order to create a Windows installer (within MSYS2 shell): | ||
- | DESTINATON=/ | + | DESTINATON=$HOME/geany_build |
- | VERSION=" | + | VERSION=" |
- | cd ~/geany-master | + | cd ~/git/geany |
- | | + | |
- | ./ | + | |
+ | export lt_cv_deplibs_check_method=${lt_cv_deplibs_check_method=' | ||
mkdir _build | mkdir _build | ||
cd _build | cd _build | ||
- | ../ | + | ../ |
- | make -j 2 | + | make -j |
make install | make install | ||
- | | + | |
+ | mkdir -p $DESTINATON/ | ||
+ | rsync -a --delete | ||
You can use any other location as installation target by adjusting `DESTINATON`. | You can use any other location as installation target by adjusting `DESTINATON`. | ||
- | Then we compile Geany and install it normally | + | Then we compile Geany and install it normally. |
- | another location. | + | |
- | The normal installation is used for Geany-Plugins so they can easily find the Geany installation | + | |
- | while the DESTDIR installation is used to move the installed files into the source directory | + | |
- | back for the installer creation. | + | |
- | + | ||
- | This process can probably be optimized and shortened but for now it works this way. | + | |
The following actually creates the installer. | The following actually creates the installer. | ||
- | For the following steps, a little Python is necessary to automate the further installer creation. | + | For the following steps, a little Python |
The script can be downloaded here: {{: | The script can be downloaded here: {{: | ||
Open the script in your editor of choice and change paths at the beginning of the script as needed. | Open the script in your editor of choice and change paths at the beginning of the script as needed. | ||
Line 174: | Line 170: | ||
Finally, run the script: | Finally, run the script: | ||
- | cd / | ||
python3 ~/ | python3 ~/ | ||
This will strip and sign all binaries (geany.exe and various .dll files) and | This will strip and sign all binaries (geany.exe and various .dll files) and | ||
also convert documentation text files to CRLF format. | also convert documentation text files to CRLF format. | ||
- | At the end, you should get two installer | + | At the end, you should get an installer |
==== Geany-Plugins ==== | ==== Geany-Plugins ==== | ||
Line 185: | Line 180: | ||
Build instructions to build Geany-Plugins in order to create a Windows installer (within MSYS2 shell): | Build instructions to build Geany-Plugins in order to create a Windows installer (within MSYS2 shell): | ||
- | DESTINATON=/ | + | DESTINATON=$HOME/geany_build |
- | VERSION=" | + | VERSION=" |
- | cd ~/ | + | cd ~/git/ |
- | | + | |
- | ./ | + | |
+ | export lt_cv_deplibs_check_method=${lt_cv_deplibs_check_method=' | ||
mkdir _build | mkdir _build | ||
cd _build | cd _build | ||
- | ../ | + | ../ |
- | make -j 2 | + | make -j |
- | make DESTDIR=${DESTINATON}/ | + | make DESTDIR=${DESTINATON}/ |
+ | rm -rf $DESTINATON/ | ||
+ | mkdir -p $DESTINATON/ | ||
+ | rsync -a --delete ${DESTINATON}/ | ||
- | For the following steps, a little Python is necessary to automate the further installer creation. | + | For the following steps, a little Python |
The script can be downloaded here: {{: | The script can be downloaded here: {{: | ||
Open the script in your editor of choice and change paths at the beginning of the script as needed. | Open the script in your editor of choice and change paths at the beginning of the script as needed. | ||
Line 205: | Line 204: | ||
Finally, run the script: | Finally, run the script: | ||
- | cd / | ||
python3 ~/ | python3 ~/ | ||
This will strip and sign all binaries (various .dll files) and | This will strip and sign all binaries (various .dll files) and | ||
also convert documentation text files to CRLF format. | also convert documentation text files to CRLF format. | ||
- | At the end, you should get an installer executable in `/release`. | + | At the end, you should get an installer executable in `$DESTINATON`. |
- | {{tag> | + | {{tag> |