macgitver / MacGitverModules

DEPRECATED: Modules for MacGitver
5 stars 1 forks source link

CPack packaging instructions #50

Closed scunz closed 11 years ago

scunz commented 11 years ago

This PR tries to setup working install and packaging rules.

I've priorized this over splitting the repositories in a sane way; on that road, I found a way to accomplish the differences in using one of our libraries and building it on its own. Though, I did not yet enforce good behaviour for the stand-alone build scenario.

Qt Action Mac Linux Win64 Win32
4 build :+1: :+1: :+1: :question:
4 make install :+1: :+1: :+1: :question:
4 cpack :+1: :question: :+1: :-1: :question:
5 build :question: :question: :question: :question:
5 make install :question: :question: :question: :question:
5 cpack :question: :question: :question: :question:

The macpack branch of all submodules is required (There's just a one line change in each).

Each OS has now an overall block of cmake code, where such one is required. Actually, I didn't find may places where Mac OS X, general Linux and Windows share a single bit of semantics. This is driving me crazy; and I already got the feeling that what makes this code works at all is truely witchcraft.

Also, I tried to mimic the installed-state in the build directory as much as possible. I guess nobody wants to develop something and then figure out: Oh, the installed software uses so much different file system layout that nothing is working anymore...

As a consequence, this means: We're building frameworks and an app bundle and put it workingly together already at build time. The result is an app-bundle that (unlike the installed one) only lacks external dependencies, but is still able to work on its own.

This - more or less - broke all other build systems. At the end of the day, this PR is a rewrite of quite everything in mgv related to installation or build-tree layout.

Furthermore, I figured out, that every change requires to re-test everything: 2 tool sets * 3 Operating Systems * 2 CPU-Archs = 12 * 10 minutes for compiling, installing and manual execution. So in the end, I hope this PR will lay a foundation that makes all of this more easy.

There are some issues still:

And when we're at it: Do we care to support any of FreeBSD / NetBSD / OpenBSD / Solaris? Will we ever require MGV to run on Android and/or iOS? This boils more or less down to: How relevant will those systems get on boxes with real screens and conventional input methods? I'm really looking forward to the days when I will be able to review a pull request using the front panel of my vaccum cleaner...

scunz commented 11 years ago

@antis81 What do you think about this?

It's unfinished and the result on Windows is quite less than even unsatisfing. But I think, that I'm going to merge this anyway. Since I've setup CMakeLists to do our own build style for libgit2, this again is executable on windows (even the make installed version) and gets the deps right for the mac bundle. I feel like it's the best I can do right now. Getting it really right seems to be a longer road...

antis81 commented 11 years ago

Yeah, I've followed the progress a little and think it is quite pleasing. At least I do not know how to do it better by now. I'm just excited about the OSX package. Hopefully we can get it into apt and yum some day, and maybe homebrew. Personally I do not care too much about the windows versions, but that is the most challenging part to get it really crossplatform. Feel free to merge! It can get only better :smile:.

scunz commented 11 years ago

As far as I remember, whereever some "usable" code appears, you usually dont have to wait long for someone who creates debian packaging files for it. So, let's aim for that :-)

The really challenging part was to get the Mac OS things right. But that may be subjective and due to my lack of previous expierence.

Then let's get this in, soooish.