View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0010546CMakeModulespublic2010-04-13 09:142011-04-04 12:00
ReporterMichael Wild 
Assigned ToDavid Cole 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusclosedResolutionwon't fix 
PlatformOSOS Version
Product VersionCMake-2-8 
Target VersionFixed in VersionCMake 2.8.4 
Summary0010546: Provide support to compile Vala and Genie sources
DescriptionVala is a high-level language similar to C# for the GObject type system: http://live.gnome.org/vala. [^] Genie is a language similar to Python but also builds on the GObject type system and is integrated into the Vala compiler.

On the Vala homepage there is a link to CMake modules to find the Vala compiler and to compile Vala sources, but it is pretty basic in its capabilities, e.g. does not attempt to find GLib/GObject and provides only a rather low-level function to precompile the sources. Further it doesn't use the built-in mechanisms for requiring a specific version of the package, but rather rolls its own function to do so.

Below patches provide a FindGLib2.cmake for glib-2.0 (and gobject-2.0), FindVala.cmake, UseVala.cmake and ValaDriver.cmake.in.

http://github.com/themiwi/CMake/commit/08124286098853977b23bbd3d4c15ea9c20c83c5 [^]
http://github.com/themiwi/CMake/commit/d2be846f6cab8147b9e358f4c00258a45fa15adb [^]
Additional InformationUseVala.cmake provides the functions

* vala_add_executable: adds an executable
* vala_add_library: adds a library
* vala_precompile: to-C precompilation (low-level)
* vala_add_dependencies: adds dependencies between Vala targets

These functions wrap the stock CMake commands and add Vala-specific target properties to keep track of inherited dependencies on .vapi files, transitive Vala-package dependencies and the generted C-sources and .vapi files.
TagsNo tags attached.
Attached Files

 Relationships

  Notes
(0020156)
Alex Neundorf (developer)
2010-04-13 13:42

Couldn't/shouldn't this be done as an additional language for cmake ?

Alex
(0020158)
Michael Wild (reporter)
2010-04-13 14:15

Agreed that this would be preferable, if only it was possible. Vala is quite a strange beast... Like C# compilers, it essentially doesn't require a separate compilation step. Alternatively, it can output the precompiled C files which can then be separately compiled and linked. This is the approach I chose because it better fits in with how CMake works and allowed me to reuse the normal commands.

AFAIK there is currently no way to remove/add processing steps when adding a new language to CMake, right? That is, without major surgery, of course...
(0023538)
Anatol (reporter)
2010-11-24 22:09

What is the status of this ticket? I am also interested in seeing better Vala support in CMake.

PS You might be also interested in ParVala (parallel vala) http://live.gnome.org/Vala/Documentation/ParallelBuilds [^]
(0023566)
Michael Wild (reporter)
2010-11-29 02:57

If I remember correctly, there are a few remaining bugs in the modules and currently I don't have neither the time nor the interest to fix them. Sorry for that.
(0024140)
David Cole (manager)
2010-12-15 08:58

Please see this wiki page regarding CMake Module Maintainers: http://cmake.org/Wiki/CMake:Module_Maintainers [^]

We cannot add a find module to CMake unless we have a volunteer who is willing to commit to making it work right on all of CMake's target platforms for at least the near-term future (6 months to 2 years-ish...)

If you would like to be the module maintainer for this newly proposed module, then please follow the instructions on the above wiki page.

Thanks.
(0024141)
David Cole (manager)
2010-12-15 08:59

Resolving as "won't fix" until a module maintainer volunteers.
(0026059)
David Cole (manager)
2011-04-04 12:00

Closing resolved issues that have not been updated in more than 3 months.

 Issue History
Date Modified Username Field Change
2010-04-13 09:14 Michael Wild New Issue
2010-04-13 13:42 Alex Neundorf Note Added: 0020156
2010-04-13 14:15 Michael Wild Note Added: 0020158
2010-11-24 22:09 Anatol Note Added: 0023538
2010-11-29 02:57 Michael Wild Note Added: 0023566
2010-12-15 08:58 David Cole Note Added: 0024140
2010-12-15 08:58 David Cole Assigned To => David Cole
2010-12-15 08:58 David Cole Status new => assigned
2010-12-15 08:59 David Cole Note Added: 0024141
2010-12-15 08:59 David Cole Status assigned => resolved
2010-12-15 08:59 David Cole Fixed in Version => CMake 2.8.4
2010-12-15 08:59 David Cole Resolution open => won't fix
2011-04-04 12:00 David Cole Note Added: 0026059
2011-04-04 12:00 David Cole Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team