diff --git a/meson.build b/meson.build index 8ab94ff84d..e3cf4789ff 100644 --- a/meson.build +++ b/meson.build @@ -46,7 +46,7 @@ gapi_codegen = gapi_codegen.full_path() gacutil = find_program('gacutil') generate_api = find_program('generate_code.py') -nuget = join_paths(meson.current_source_dir(), 'nuget.py') +nuget = find_program('nuget.py') # TODO Handle monodoc @@ -80,18 +80,38 @@ ges_dep = dependency('gst-editing-services-' + apiversion, version: gst_required subdir('sources') if ges_dep.found() subdir('ges') + custom_target('GESSharp-nuget', + command: [nuget, '--package-name', 'GESSharp', + '--assembly', ges_sharp.full_path(), + '--assembly', gst_sharp.full_path(), + '--assembly', gio_sharp.full_path(), + '--assembly', glib_sharp.full_path(), + '--dependency=GstSharp:' + meson.project_version(), + '--project-url', 'https://gstreamer.freedesktop.org/modules/gstreamer-sharp.html', + '--icon-url', 'https://gstreamer.freedesktop.org/images/header-logo-top.png', + '--license-url', 'https://cgit.freedesktop.org/gstreamer/gstreamer-sharp/plain/COPYING', + '--version', meson.project_version(), + '--tags', 'GStreamer GES GstSharp bindings', + '--builddir', meson.current_build_dir(), + ], + output: 'GESSharp.' + meson.project_version() + '.nupkg' + ) endif -meson.add_install_script(nuget, '--package-name', 'GstSharp', - '--assembly', gst_sharp.full_path(), - '--assembly', gio_sharp.full_path(), - '--assembly', glib_sharp.full_path(), - '--project-url', 'https://gstreamer.freedesktop.org/modules/gstreamer-sharp.html', - '--icon-url', 'https://gstreamer.freedesktop.org/images/header-logo-top.png', - '--license-url', 'https://cgit.freedesktop.org/gstreamer/gstreamer-sharp/plain/COPYING', - '--version', meson.project_version(), - '--tags', 'GStreamer GstSharp bindings', - ) +custom_target('GstSharp-nuget', + command: [nuget, '--package-name', 'GstSharp', + '--assembly', gst_sharp.full_path(), + '--assembly', gio_sharp.full_path(), + '--assembly', glib_sharp.full_path(), + '--project-url', 'https://gstreamer.freedesktop.org/modules/gstreamer-sharp.html', + '--icon-url', 'https://gstreamer.freedesktop.org/images/header-logo-top.png', + '--license-url', 'https://cgit.freedesktop.org/gstreamer/gstreamer-sharp/plain/COPYING', + '--version', meson.project_version(), + '--tags', 'GStreamer GstSharp bindings', + '--builddir', meson.current_build_dir(), + ], + output: 'GstSharp.' + meson.project_version() + '.nupkg', +) subdir('samples') diff --git a/nuget.py b/nuget.py index 38d6888e4c..e669674781 100644 --- a/nuget.py +++ b/nuget.py @@ -28,10 +28,10 @@ NUSPEC_TEMPLATE =""" """ -TARGETS_TEMPLATE = """ +TARGETS_TEMPLATE = r""" - - + + @@ -42,9 +42,8 @@ TARGETS_TEMPLATE = """ class Nugetifier: def cleanup_args(self): - self.builddir = os.path.abspath(os.path.curdir) self.nugetdir = os.path.join(self.builddir, - self.package_name + 'nupkg') + self.package_name + 'nupkg') self.frameworkdir = 'net45' self.nuget_build_dir = os.path.join(self.nugetdir, 'build', self.frameworkdir) self.nuget_lib_dir = os.path.join(self.nugetdir, 'lib', self.frameworkdir) @@ -74,7 +73,7 @@ class Nugetifier: self.files = '' def add_file(path, target="lib"): f = ' \n' % ( - path, os.path.join(target, self.frameworkdir, os.path.basename(path))) + path, os.path.join(target, os.path.basename(path))) self.files += f self.dependencies = '' @@ -84,11 +83,11 @@ class Nugetifier: _id, version) for assembly in self.assembly: - add_file(assembly) + add_file(assembly, os.path.join('lib', self.frameworkdir)) for f in [assembly + '.config', assembly[:-3] + 'pdb']: if os.path.exists(f): - add_file(f, 'build') + add_file(f, os.path.join('build', self.frameworkdir)) with open(self.nugettargets, 'w') as _: print(TARGETS_TEMPLATE.format(**self.__dict__), file=_) @@ -103,6 +102,7 @@ class Nugetifier: if __name__ == "__main__": parser = argparse.ArgumentParser() + parser.add_argument('--builddir') parser.add_argument('--package-name') parser.add_argument('--author', default=getpass.getuser()) parser.add_argument('--owner', default=getpass.getuser()) @@ -116,6 +116,7 @@ if __name__ == "__main__": parser.add_argument('--project-url', default='') parser.add_argument('--license-url', default='') parser.add_argument('--tags', default='') + parser.add_argument('--dependency', default=[], action='append') nugetifier = Nugetifier() options = parser.parse_args(namespace=nugetifier)