Building things would be a lot easier on Windows if all of our dependencies offered binary SDK releases which could be linked against easily (especially if they were available via NuGet or similar). That isn't the case and it's also not our fault (with the exception of OSG-on-steroids, which we're in charge of) as we're not the official maintainers of any of our dependencies. On Linux, anyone can become the official maintainer for a package on a particular distro, though, so most of the popular distros do have binary releases for our dependencies. In-tree dependencies would partially solve the issue of having to find everything, but having to build big things like Boost and Qt and OSG would literally add days to the build time.
Our CMake could definitely be a lot nicer, but in order to completely modernise it, there needs to be modernised CMake for all of our dependencies.
Windows Pre-build Script Documentation Updated
- AnyOldName3
- Posts: 2679
- Joined: 26 Nov 2015, 03:25
- psi29a
- Posts: 5362
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: Microsoft Buys Github for $7.5 Billion
A batch or bash script is fine. Powershell is unnecessary weight.
- psi29a
- Posts: 5362
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: Microsoft Buys Github for $7.5 Billion
I wouldn't know... I'm just an Linux using idiot. But I trust you know what you're doing.
- AnyOldName3
- Posts: 2679
- Joined: 26 Nov 2015, 03:25
Re: Microsoft Buys Github for $7.5 Billion
That's literally what the CI script does when not run in AppVeyor mode (except it's written in MSYS-flavoured Bash instead of PowerShell, so potentially not something that every Windows user has installed). The only problems I see with the CI script are that:
- By default, it only sets up the runtime resources for the Debug configuration, so you need to run it again to get Release and RelWithDebInfo working.
- It doesn't work with long paths unless long path support is enabled in the Windows registry, but we can't do anything about this.
- It doesn't work with paths containing spaces. I've attempted to fix this, but when it's setting up Qt, that absolutely refuses to support paths containing spaces, so unless we give the option to install Qt somewhere else, the script can never support paths with spaces.
- It doesn't spit out good error messages when it's going to fail due to misuse.
- Even when run through the script, at least for NullCascade it can't find OSG properly. I've narrowed this issue down to something within the FindOpenSceneGraph module that CMake provides for us, but can't track it down further without access to the computer on which it's not working.
- Even if you do go through the tedious process of setting things up manually, it often refuses to link against OSG properly.
- It probably doesn't work with anything other than VS solutions, such as Qt Projects, NMake projects, MinGW or Cygwin.
Re: Microsoft Buys Github for $7.5 Billion
On its own, cmake can be made to work with msys and mingw, but it throws warnings at you if your environment deviates from what it expects (e.g. if you have gnu make instead of mingw32-make).
- psi29a
- Posts: 5362
- Joined: 29 Sep 2011, 10:13
- Location: Belgium
- Gitlab profile: https://gitlab.com/psi29a/
- Contact:
Re: Microsoft Buys Github for $7.5 Billion
I remember using the CI scripts once and it seemed to work out-of-the-box in a Win7 VM. This included OSG, that was the extent of my testing however, that it built. Never got so far as to testing because of lack of OpenGL support in VirtualBox at the time.
- AnyOldName3
- Posts: 2679
- Joined: 26 Nov 2015, 03:25
Re: Microsoft Buys Github for $7.5 Billion
That's if it's used properly. I'm pretty sure we don't do that.On its own, cmake can be made to work with msys and mingw, but it throws warnings at you if your environment deviates from what it expects (e.g. if you have gnu make instead of mingw32-make).
Re: Microsoft Buys Github for $7.5 Billion
I use https://github.com/ruslo/hunter for dependencies of freeablo on Linux, windows and osx, and it works great, just run cmake then open vs/xcode/run make.
If there was interest, I could try get openmws dependencies packaged and add hunter to the openmw cmake files. I did it for freeablo already, and that has at least some of the same deps (SDL2).
Might be nice to get a few commits in openmw again after all this time
If there was interest, I could try get openmws dependencies packaged and add hunter to the openmw cmake files. I did it for freeablo already, and that has at least some of the same deps (SDL2).
Might be nice to get a few commits in openmw again after all this time