summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <thibault.saunier@osg.samsung.com>2017-09-26 09:30:12 -0300
committerThibault Saunier <thibault.saunier@osg.samsung.com>2017-09-26 09:35:20 -0300
commit78b259e3584d4419b0b29be7f30eb20fbd8cd9c5 (patch)
tree435d06952005db469d886d32dc9cd72f8bd98d7a
parent7976844b56df674f8d863658336e48aeda131de1 (diff)
meson: Fix generation of nugets.
-rw-r--r--meson.build42
-rw-r--r--nuget.py17
2 files changed, 40 insertions, 19 deletions
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 ="""<?xml version="1.0" encoding="utf-8"?>
</package>
"""
-TARGETS_TEMPLATE = """<?xml version="1.0" encoding="utf-8"?>
+TARGETS_TEMPLATE = r"""<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Target Name="CopyMapConfigs" AfterTargets="AfterBuild">
- <CreateItem Include="$(MSBuildThisFileDirectory)\*.config">
+ <Target Name="{package_name}CopyMapConfigs" AfterTargets="AfterBuild">
+ <CreateItem Include="$(MSBuildThisFileDirectory)\{frameworkdir}\*.config">
<Output TaskParameter="Include" ItemName="MapConfigs" />
</CreateItem>
@@ -42,9 +42,8 @@ TARGETS_TEMPLATE = """<?xml version="1.0" encoding="utf-8"?>
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 = ' <file src="%s" target="%s"/>\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)