-
Notifications
You must be signed in to change notification settings - Fork 17
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
Include version info for methods in GAPI XML output #22
Conversation
Hey hey! This branch is giving conflicts with the var-fixes branch merge from PR #21 :/ |
Thank you for reviewing it. I'll rebase the branch on the weekend as I'm
|
to enable the generation of bindings that respect the different library versions, in which methods have been introduced or declared deprecated.
This commit * adds an option 'build-libversions' that enables the user to specify the library versions, for which to create bidnings. This enables creating bindings that expose version-correct API. * adds a XSLT preprocessing step, in which all version numbers of library API elements are extracted. Those version numbers are intended to be used for the generation of DEFINE flags to enable conditional builds of the binding. Builds will be created only vor versions that are specified in the 'build-libversions' argument. NOTE: The generation of DEFINE flags will be implemented in a future commit.
This commit * introduces support of Makefile generation with multiple build profiles that are based on different versions of the bound library. The profiles to generate can be specified via the command line option '--build-libversions' that has been added in a previous commit. The profiles follow this naming schema: 'V_<version_number>', e.g.: 'V_1_4'. * changes the build output directory from '/out' to '/out/<profile>', e.g.: '/out/V_1_4'. * changes the directory, where the template dllmap file is generated into, from '/out' to '/source'. * disables broken install/uninstall targets.
Those elements are: * class_struct * struct * boxed * callback * constructor * signal * enum * property
The PROFILES variable enables the user to define, which build profiles to build. The build profiles must be specified as string using double quotes (") and with white space as delimiter. E.g.: make PROFILES="V_1_4 V_2_0 V_2_2 V_2_12 V_2_14"
This commit * adds support for generation of xbuild files for all build profiles as specified via the --build-libversions option. The *.csproj files also contain the appropriate DEFINE constants. * changes the generation behavior for *.csproj and *.sln files to overwrite existing files
When maintaining a binding project with multiple build profiles, keeping all source file entries in all csproj files up-to-date can be a lot of work. To make csproj file maintenance easier, the bindings maintainer can now automatically add generated source files to all csproj files by invoking 'make csproj'. Implementation notes: * The injection of source files is done using XSLT (new dependency xsltproc). * To minimize formatting changes in the csproj and compatibility with MonoDevelop, injected csproj files are post-processed with mdtool (another new dependency) * To have consistent line endings (CRLF) all csproj files are post-processed with unix2dos (again: new dependency)
branch has been rebased. ready for merge :) |
Include version info for methods in GAPI XML output
Merged! 👍 |
Thanks! :) |
This PR