Hi Bryce and all,
some comments.
On Sat, 2 May 2015 16:55:59 -0700 Bryce Harrington <bryce@...961...> wrote:
Several of us now are able to successfully build Inkscape using cmake only. This is still relatively new, but we need to broaden this to everyone and make sure it works universally.
Do a 'make distclean' in your repo, update to latest bzr, and then:
$ cmake . $ make -j8
The recommended way is to run cmake (and make) in a separte directory:
$ cmake ../inkscape/ # ../inkscape/ is the Inkscape source. $ make -j8
[SNIPPED]
So what development needs done?
While the cmake scripts work, they're a bit hacky and in need of some cleanup. Below is a laundry list. I'd encourage everyone to tackle a task or two, to get some cmake familiarity if nothing else. Once this work is all done, we can wrap up 0.92 and start the release process.
Cleanup definitions. In CMakeLists.txt there are a sequence of add_definitions() to set some environment variable definitions. Some of these may not be strictly needed, others could be moved to DefineDependsandFlags.cmake or to the respective Modules files.
Win32. Someone needs to try this against our supported win32 platforms, and fill in the missing logic that is specific to Win32.
More files. A lot is missing from the build... tests, man files, icons, locale. If it's not clear how to do the logic for this stuff, refer to another cmake-based project.
More Modules. In DefineDependsandFlags.cmake we just brute force several libraries (to pick a few examples: pangocairo, gthread, gomp, gslcblas...) These need to have proper Find<Library>.cmake scripts made. Generally these are pretty easy - just make it wrapperize pkgconfig. FindGtkSpell.cmake has a simple example. Google "cmake <library>" before you do any work though; sometimes someone has already done the logic and you can just copy.
Update Modules. Several of our modules were taken from cmake or elsewhere, a long time ago, and they've improved upstream since then. Snag newer versions, test, and add to our codebase. If we have local changes consider pushing those upstream.
Add more configuration options. Review what we offer in automake and make sure the equivalents are defined in CMakeLists.txt
Verify that uninstall works
Fix dist. In CMakeLists.txt it adds a custom svn command; this needs replaced with the equivalent bzr. And in general run 'make dist' and hack on it until it produces a proper tarball.
CMake has "make package_source" which is their equivalent to "make dist". Was it tested?
- Identify other issues needing resolved. I notice FIXME's peppered here and there in various files. We'll want to tackle those or at least plan those tasks for later on.
Bryce
Regards,
Shlomi Fish