wingtk / gvsbuild

GTK stack for Windows
GNU General Public License v2.0
432 stars 163 forks source link

Appveyor build #159

Closed selaux closed 6 years ago

selaux commented 7 years ago

I'm currently working on an appveyor CI build for this repo. This issue is for collecting issues with that and input for these issues 😉.

Progress: https://github.com/selaux/gtk-win32/tree/appveyor-build

Build: https://ci.appveyor.com/project/selaux/gtk-win32

Currently the following issues exist:

guruDanny67 commented 7 years ago

Why it's not possible to build all projects ? The command line is long but with

python .\build.py adwaita-icon-theme clutter cyrus-sasl emeus enchant ffmpeg glib-networking graphene grpc gtksourceview3 hicolor-icon-theme json-c leveldb libcurl libgxps libmicrohttpd libsoup libssh libssh2 libuv libyuv libzip opus portaudio protobuf-c pygtk wing

you shoud be able to build everything. With the new groups we can make a group with all the needed one and call it 'all' or 'world' so we can launch 'build world' :)

For the link problem I've got it but it was something on my setup (I had the gnu utiliìty in the path, before the Visual Studio one). If you download only the reccomended packages ther should not be a link command (BTW in your appveyor file the pacman command put some tools we don't need anymore, tar, xv, gzip, ...). We can obviously put the msys path at the end of the Visual Studio one and the problem should go (and it's probably more correct than put it before)-

pkg-config, with vs2015, is builded without a problem using the script, even starting from empty: wich difference there are between a build in appveyor and in a normal windows prompt ?

The gsettings-desktop-schemas build error depends from the use of python3: launching the build setting, as the python to use in the build, a python 2.7 instead of the one use to launch the script (in my case 3.5.2, but it's the same with a 3.6 or 3.4, the error is a unicode encode/decode problem) everything is ok: we need to take a look or see upstream if they have already fixed the issue.

Thank for your work on this

nacho commented 7 years ago

gsettings-desktop-schemas is arleady fixed upstream: https://git.gnome.org/browse/gsettings-desktop-schemas/commit/?id=f2ccd4ae31e700a102d5fb7660bef2f79288f2be

guruDanny67 commented 7 years ago

Update for gsettings-desktop-schemas: fanc999 put a fix on master 4 days ago

nacho commented 7 years ago

@selaux any update on this?

selaux commented 7 years ago

Well I don't have a lot of time currently to build this and it is a very time-consuming process, because builds now fail after 30min. Currently there is an issue with grpc as far as I remember...

selaux commented 7 years ago

If somebody wants to take over you can cherry-pick from my repo.

congzhangzh commented 7 years ago

As appveyor install all the software(Visual Studio, Python, Msys2) in fixed place, hard code them in the appveyor.yml maybe a good and reliable choice, something similar:

c:\python36\python.exe .\build.py build -p x64 -c debug --vs-ver 14 --vs-install-path "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" gtk3

c:\python36\python.exe .\build.py build -p x64 -c release --vs-ver 14 --vs-install-path "C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise" gtk3

If all the needed parameter is specified in the cmdline parameter of build.py, there should have no magic and easy to debug!

I can give a try latter this week.

guruDanny67 commented 7 years ago

I'm trying also to build something but I have stopped for the time being: my idea was to have a script that uses the build and launch parallel builds of the various project and collect the result: apart from the fact that it takes less time to build (building all on my pc at home, from scatch takes 3000 seconds using the script, 800/900 doing it in parallel) if we have a report of what is missing can be a life saver: actually the first error stop everything.

For appveryor we can also have a project / group that builds a subset of all the projects so we can make experience on this without too much frustation, when I was on release 1.0.25, and that and all the previous one ended with error I give up :(

guruDanny67 commented 7 years ago

The path of the machine that is running appveyor is big,

[00:01:03] Debug: vs env:PATH -> [
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SDKs\F#\3.1\Framework\v4.0\
[00:01:03] Debug:     C:\Program Files (x86)\MSBuild\12.0\bin
[00:01:03] Debug:     C:\Program Files (x86)\MSBuild\12.0\bin
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools
[00:01:03] Debug:     C:\Windows\Microsoft.NET\Framework\v4.0.30319
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages
[00:01:03] Debug:     C:\Program Files (x86)\HTML Help Workshop
[00:01:03] Debug:     C:\Program Files (x86)\HTML Help Workshop
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 12.0\Team Tools\Performance Tools
[00:01:03] Debug:     C:\Program Files (x86)\Windows Kits\8.1\bin\x86
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\
[00:01:03] Debug:     C:\gtk-build\gtk\Win32\release\bin
[00:01:03] Debug:     C:\Python35
[00:01:03] Debug:     C:\Python35\scripts
[00:01:03] Debug:     C:\Perl\site\bin
[00:01:03] Debug:     C:\Perl\bin
[00:01:03] Debug:     C:\Windows\system32
[00:01:03] Debug:     C:\Windows
[00:01:03] Debug:     C:\Windows\System32\Wbem
[00:01:03] Debug:     C:\Windows\System32\WindowsPowerShell\v1.0\
[00:01:03] Debug:     C:\Program Files\7-Zip
[00:01:03] Debug:     C:\Program Files\Microsoft\Web Platform Installer\
[00:01:03] Debug:     C:\Tools\GitVersion
[00:01:03] Debug:     C:\Tools\PsTools
[00:01:03] Debug:     C:\Program Files\Git LFS
[00:01:03] Debug:     C:\Program Files (x86)\Subversion\bin
[00:01:03] Debug:     C:\Program Files\Microsoft SQL Server\120\Tools\Binn\
[00:01:03] Debug:     C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\110\Tools\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\
[00:01:03] Debug:     C:\Program Files\Microsoft SQL Server\120\DTS\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\ManagementStudio\
[00:01:03] Debug:     C:\Tools\WebDriver
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SDKs\TypeScript\1.4\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\PrivateAssemblies\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SDKs\Azure\CLI\wbin
[00:01:03] Debug:     C:\Ruby193\bin
[00:01:03] Debug:     C:\Tools\NUnit\bin
[00:01:03] Debug:     C:\Tools\xUnit
[00:01:03] Debug:     C:\Tools\MSpec
[00:01:03] Debug:     C:\Tools\Coverity\bin
[00:01:03] Debug:     C:\Program Files (x86)\CMake\bin
[00:01:03] Debug:     C:\go\bin
[00:01:03] Debug:     C:\Program Files\Java\jdk1.8.0\bin
[00:01:03] Debug:     C:\Python27
[00:01:03] Debug:     C:\Program Files\nodejs
[00:01:03] Debug:     C:\Program Files (x86)\iojs
[00:01:03] Debug:     C:\Program Files\iojs
[00:01:03] Debug:     C:\Users\appveyor\AppData\Roaming\npm
[00:01:03] Debug:     C:\Program Files\Microsoft SQL Server\130\Tools\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\MSBuild\14.0\Bin
[00:01:03] Debug:     C:\Tools\NuGet
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow
[00:01:03] Debug:     C:\Program Files\Microsoft DNX\Dnvm
[00:01:03] Debug:     C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\130\Tools\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SQL Server\130\DTS\Binn\
[00:01:03] Debug:     C:\Program Files\Microsoft SQL Server\130\DTS\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SQL Server\110\DTS\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SQL Server\120\DTS\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\Apache\Maven\bin
[00:01:03] Debug:     C:\Python27\Scripts
[00:01:03] Debug:     C:\Tools\NUnit3
[00:01:03] Debug:     C:\Program Files\Mercurial\
[00:01:03] Debug:     C:\Program Files (x86)\Yarn\bin
[00:01:03] Debug:     C:\Program Files\LLVM\bin
[00:01:03] Debug:     C:\Program Files\dotnet\
[00:01:03] Debug:     C:\Program Files\erl8.3\bin
[00:01:03] Debug:     C:\Tools\curl\bin
[00:01:03] Debug:     C:\Program Files\Microsoft Service Fabric\bin\Fabric\Fabric.Code
[00:01:03] Debug:     C:\Program Files\Microsoft SDKs\Service Fabric\Tools\ServiceFabricLocalClusterManager
[00:01:03] Debug:     C:\Program Files\Amazon\AWSCLI\
[00:01:03] Debug:     C:\Program Files\Git\cmd
[00:01:03] Debug:     C:\Program Files\Git\usr\bin
[00:01:03] Debug:     C:\ProgramData\chocolatey\bin
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\
[00:01:03] Debug:     C:\Program Files (x86)\nodejs\
[00:01:03] Debug:     C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\140
[00:01:03] Debug:     C:\Users\appveyor\AppData\Local\Yarn\.bin
[00:01:03] Debug:     C:\Users\appveyor\AppData\Roaming\npm
[00:01:03] Debug:     C:\Program Files\AppVeyor\BuildAgent\
[00:01:03] Debug:     ]

(I modified the script to have it in a friendly manner, I push the changes on master ASAP).

Other then the path issues in the msys2 installation are presents a lot of packages that can interfere with our build: at home and at work I realize that to avoid problems the path should be the minimun necessary to build, without nothing else: if something goes wrong the first thing I do, after deleting the build dir, is:

PATH=c:\windows;C:\Windows\system32
c:\dev\py35\python.exe build.py build ...
lazka commented 6 years ago

See #246

nacho commented 6 years ago

Since this is already setup I am closing the ticket. In the future would be nice to also get it compiling with Visual Studio 2017 though.