-
Notifications
You must be signed in to change notification settings - Fork 161
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Appveyor - Windows autobuilds #95
Conversation
@tmarrinan: Thanx! Plz tell me when you're done with the commits :) |
Just finished - realized my script, while specifying an x86 and x64 platform, was having CMake generate x64 builds in both cases. I have now confirmed that it properly builds both 32 bit and 64 bit dlls for Windows. |
Well, we currently don't have an |
To test the build, you are correct - no authentication needed. |
@tmarrinan: As I no longer have write access to this repo, you'll have to work it out with other ppl now, sorry. |
Thanks for your pull request. Sadly, Epoxy does not support CMake any more, so I cannot merge your PR. We do support Meson, though, and I'm pretty sure it works on Appveyor, since Meson itself is tested that way on Windows. Could you please modify this PR, or open a new one? Thanks again for your contribution. |
Ok - The AppVeyor script now uses Meson to build libepoxy. I have not yet tested downloading the release artifacts on a Windows machine without libepoxy to ensure that they work out of the box. I should be able to get around to that tomorrow and confirm that all works as expected. |
@tmarrinan Thanks ever so much for working on this. |
Unfortunately, it didn't quite work.
When CMake was used to build the project, libepoxy.sln had 2 steps - a build and an install. The install took care of grabbing all the needed build files and placing them in a specific directory. Is there an equivalent that I am missing in the Meson generated .sln? |
I'm more familiar with the Ninja backend for Meson, which has a |
Even with ninja, I don't see how to set the install directory (typically referred to as 'prefix') for |
@tmarrinan Usually, you set the prefix with meson, e.g. Additionally, if you want to add a different root for the prefix, e.g. use |
There's two relevant settings in Meson. One is the toolchain to use and the other is the backend to use. As you might expect, the former selects what compiler/linker will be used to build the project. The latter only selects what build-tool will be used (similar to cmake's backends). The toolchain is auto-detected from the environment, so if you run If you select The two backends are (supposed to be) identical in every way. The only advantage of the Visual Studio backend is that it generates project files and solutions, so you can open the project in Visual Studio and hack on it. In this case for CI, you should almost certainly use |
Ok - I've updated the build script to use ninja, which nicely "installs" build artifacts to a specific directory. However, when I download the release and attempt to build an application that uses epoxy, I get a number of the following error:
|
Nevermind - just realized that my test application is C++, but epoxy was built as a C library. |
Stellar! So, I'd say we can merge this. I'd prefer to squash all the commits and merge them. Is it okay for you, @tmarrinan? |
Sure!
|
No, worries @tmarrinan — I'll be happy to do that myself. I'm not sure if I have the rights to get an API key for Appveyor, as I don't own the repository; I'll ask Eric if needed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good; I've replaced the auth token for the deploy step with a token of my own.
Again, thanks ever so much @tmarrinan for the patience and work. |
I created an appveyor yml file for autobuilding libepoxy on Windows and uploading the install artifacts (include, lib, bin) as a zip file to the GitHub releases. Currently the script turns EGL support off.
The appveyor yml file would have to be edited to upload to the main repo's GitHub page rather than mine (simply replace 'auth_token', with an encoded GitHub API token for appveyor.