<p></p>
<p>This issue is to make our Windows builds (nightly, CI and release builds) easier and better.<br>
And also to satisfy <a class="user-mention" data-hovercard-type="user" data-hovercard-url="/users/elextr/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/elextr">@elextr</a> 's long-time wish to have GTK3 Windows builds :).</p>
<p>My goal is to create Windows builds:</p>
<ul>
<li>with GTK3 only</li>
<li>for x86_64 (aka amd64 aka 64bit) only</li>
<li>fully automated on a Linux box</li>
</ul>
<p>I've written a Dockerfile which sets up a cross-compilation environment with mingw64-gcc, wine and a couple other necessary tools. It also bootstraps a minimal MSYS2 environment so packages can be installed with <code>pacman</code>.<br>
In the resulting build environment we start a script which does:</p>
<ul>
<li>clone Geany repository if necessary (i.e. if it is not bind-mounted into the container)</li>
<li>cross-compile Geany for Windows 64bit and GTK3</li>
<li>sign all binaries and installer (if /certificates exist and contains cert.pem and key.pem)</li>
<li>download Geany-Themes for bundling</li>
<li>create GTK3 bundle with all dependencies (including grep and sort)</li>
<li>create the NSIS installer in ${OUTPUT_DIRECTORY}</li>
<li>test the created NSIS installer and compiled Geany</li>
<li>test uninstaller and check there is nothing left  after uninstalling</li>
</ul>
<p>This is already working pretty nicely (even digitally signing the binaries!!).<br>
I guess I'll put the Dockerfile and the build script into a new repository.</p>
<p>However there are some tasks left for discussion and to do:</p>
<ul>
<li>
<p>do you think it is safe to switch to x86_64 builds only? I guess since Windows 7 almost everybody should have a x86_64 installation by default it she didn't anything against it on purpose. But I'm not sure enough and I didn't find proper resources on the net.</p>
</li>
<li>
<p>there is a bug on Windows with GTK3 causing the message window to constantly loose some height between starts of Geany (<a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="705115198" data-permission-text="Title is private" data-url="https://github.com/geany/geany/issues/2591" data-hovercard-type="issue" data-hovercard-url="/geany/geany/issues/2591/hovercard" href="https://github.com/geany/geany/issues/2591">#2591</a>)</p>
</li>
<li>
<p>we need to decide which GTK3 theme we use by default:</p>
<ul>
<li>the default theme (I think it's Adwaita) looks a bit alien on Windows, see screenshots below</li>
<li>there is a "win32" theme natively in GTK3 which can be enabled in GTK3's <code>settings.ini</code>, it doesn't look quite right either :(.</li>
</ul>
</li>
</ul>
<p>I would say let's try with the default theme even GUI elements feel a bit huge.<br>
Or we find another good looking theme or someone hacks something. I definitely won't work on this.</p>
<p>Dependant issues and PRs:</p>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="705115198" data-permission-text="Title is private" data-url="https://github.com/geany/geany/issues/2591" data-hovercard-type="issue" data-hovercard-url="/geany/geany/issues/2591/hovercard" href="https://github.com/geany/geany/issues/2591">#2591</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="705113554" data-permission-text="Title is private" data-url="https://github.com/geany/geany/issues/2590" data-hovercard-type="pull_request" data-hovercard-url="/geany/geany/pull/2590/hovercard" href="https://github.com/geany/geany/pull/2590">#2590</a></li>
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="679775155" data-permission-text="Title is private" data-url="https://github.com/geany/geany/issues/2572" data-hovercard-type="pull_request" data-hovercard-url="/geany/geany/pull/2572/hovercard" href="https://github.com/geany/geany/pull/2572">#2572</a></li>
</ul>
<p>Geany GTK3 Default Theme:<br>
<a target="_blank" rel="noopener noreferrer" href="https://user-images.githubusercontent.com/617017/93713709-2630b000-fb4d-11ea-9038-822594139ad8.png"><img src="https://user-images.githubusercontent.com/617017/93713709-2630b000-fb4d-11ea-9038-822594139ad8.png" alt="Screenshot of Geany GTK3 Default Theme" style="max-width:100%;"></a><br>
Geany GTK3 Win32 Theme:<br>
<a target="_blank" rel="noopener noreferrer" href="https://user-images.githubusercontent.com/617017/93713710-28930a00-fb4d-11ea-9556-20694de662cc.png"><img src="https://user-images.githubusercontent.com/617017/93713710-28930a00-fb4d-11ea-9556-20694de662cc.png" alt="Screenshot of Geany GTK3 Win32 Theme" style="max-width:100%;"></a></p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/geany/geany/issues/2592">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/AAIOWJ26GWMJN3IB5UDTXALSGYGUBANCNFSM4RTVJ4UQ">unsubscribe</a>.<img src="https://github.com/notifications/beacon/AAIOWJZEQOPPV3BNHDZY5VLSGYGUBA5CNFSM4RTVJ4U2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4KQHI2YQ.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/geany/geany/issues/2592",
"url": "https://github.com/geany/geany/issues/2592",
"name": "View Issue"
},
"description": "View this Issue on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>