Initial import (#2172444)
This commit is contained in:
		
							parent
							
								
									95b5a197f5
								
							
						
					
					
						commit
						2de8902bd0
					
				
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @ -0,0 +1 @@ | ||||
| /libdex-0.1.0.tar.xz | ||||
							
								
								
									
										31
									
								
								libdex-0.1.0-doc-dir.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								libdex-0.1.0-doc-dir.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,31 @@ | ||||
| From f810f6175c0171f29e9c23ab4454c5a437b0bef8 Mon Sep 17 00:00:00 2001 | ||||
| From: Christian Hergert <chergert@redhat.com> | ||||
| Date: Mon, 23 Jan 2023 15:15:35 -0800 | ||||
| Subject: [PATCH] build: place docs in docdir/libdex-1 | ||||
| 
 | ||||
| ---
 | ||||
|  docs/meson.build | 4 ++-- | ||||
|  1 file changed, 2 insertions(+), 2 deletions(-) | ||||
| 
 | ||||
| diff --git a/docs/meson.build b/docs/meson.build
 | ||||
| index 5d2104a..1999e68 100644
 | ||||
| --- a/docs/meson.build
 | ||||
| +++ b/docs/meson.build
 | ||||
| @@ -23,12 +23,12 @@ source_toml = configure_file(
 | ||||
|    output: 'Dex.toml', | ||||
|    configuration: toml_conf, | ||||
|    install: true, | ||||
| -  install_dir: docs_dir / 'dex',
 | ||||
| +  install_dir: docs_dir / 'libdex-@0@'.format(api_version),
 | ||||
|  ) | ||||
|   | ||||
|  custom_target('dex-doc', | ||||
|    input: [ source_toml, libdex_gir[0] ], | ||||
| -  output: 'dex',
 | ||||
| +  output: 'libdex-@0@'.format(api_version),
 | ||||
|    command: [ | ||||
|      gidocgen, | ||||
|      'generate', | ||||
| -- 
 | ||||
| GitLab | ||||
| 
 | ||||
							
								
								
									
										112
									
								
								libdex-0.1.0-soversion.patch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										112
									
								
								libdex-0.1.0-soversion.patch
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,112 @@ | ||||
| From bb93ebb64f2d468819c7bb3732f25f40dbcdb4af Mon Sep 17 00:00:00 2001 | ||||
| From: Christian Hergert <chergert@redhat.com> | ||||
| Date: Tue, 21 Feb 2023 11:54:03 -0800 | ||||
| Subject: [PATCH] build: fix library versioning | ||||
| 
 | ||||
| This also undoes some of the build cleanups that were done previously | ||||
| because they were too difficult for me to unwrap and see exactly how | ||||
| settings are getting inherited. | ||||
| 
 | ||||
| Fixes #3 | ||||
| ---
 | ||||
|  meson.build     |  3 --- | ||||
|  src/meson.build | 41 ++++++++++++++++++++--------------------- | ||||
|  2 files changed, 20 insertions(+), 24 deletions(-) | ||||
| 
 | ||||
| diff --git a/meson.build b/meson.build
 | ||||
| index 94e60b9..3b83b00 100644
 | ||||
| --- a/meson.build
 | ||||
| +++ b/meson.build
 | ||||
| @@ -126,7 +126,6 @@ endforeach
 | ||||
|  add_project_arguments(project_c_args, language: 'c') | ||||
|   | ||||
|  # Detect and set symbol visibility | ||||
| -hidden_visibility_args = []
 | ||||
|  if get_option('default_library') != 'static' | ||||
|    if host_machine.system() == 'windows' | ||||
|      config_h.set('DLL_EXPORT', true) | ||||
| @@ -134,11 +133,9 @@ if get_option('default_library') != 'static'
 | ||||
|        config_h.set('_DEX_EXTERN', '__declspec(dllexport) extern') | ||||
|      elif cc.has_argument('-fvisibility=hidden') | ||||
|        config_h.set('_DEX_EXTERN', '__attribute__((visibility("default"))) __declspec(dllexport) extern') | ||||
| -      hidden_visibility_args = ['-fvisibility=hidden']
 | ||||
|      endif | ||||
|    elif cc.has_argument('-fvisibility=hidden') | ||||
|      config_h.set('_DEX_EXTERN', '__attribute__((visibility("default"))) extern') | ||||
| -    hidden_visibility_args = ['-fvisibility=hidden']
 | ||||
|    endif | ||||
|  endif | ||||
|   | ||||
| diff --git a/src/meson.build b/src/meson.build
 | ||||
| index 3f0fd8a..04f6e29 100644
 | ||||
| --- a/src/meson.build
 | ||||
| +++ b/src/meson.build
 | ||||
| @@ -117,26 +117,31 @@ endif
 | ||||
|   | ||||
|  libdex_c_args = [ | ||||
|    deprecated_c_args, | ||||
| -  hidden_visibility_args,
 | ||||
| +  release_args,
 | ||||
|    '-DG_LOG_DOMAIN="Dex"', | ||||
|    '-DDEX_COMPILATION', | ||||
|  ] | ||||
|   | ||||
| -libdex = library('dex-@0@'.format(api_version), libdex_sources,
 | ||||
| -  dependencies: libdex_deps,
 | ||||
| -        c_args: libdex_c_args,
 | ||||
| -       install: true,
 | ||||
| +libdex_static = static_library('dex-@0@'.format(api_version), libdex_sources,
 | ||||
| +           dependencies: libdex_deps,
 | ||||
| +  gnu_symbol_visibility: 'hidden',
 | ||||
| +                 c_args: libdex_c_args,
 | ||||
|  ) | ||||
|   | ||||
| -if get_option('default_library') == 'shared'
 | ||||
| -  libdex_static = static_library('dex-@0@'.format(api_version),
 | ||||
| -    objects: libdex.extract_all_objects(recursive: true),
 | ||||
| -  )
 | ||||
| -elif get_option('default_library') == 'static'
 | ||||
| -  libdex_static = libdex
 | ||||
| -elif get_option('default_library') == 'both'
 | ||||
| -  libdex_static = libdex.get_static_lib()
 | ||||
| -endif
 | ||||
| +libdex_static_dep = declare_dependency(
 | ||||
| +           link_whole: libdex_static,
 | ||||
| +  include_directories: include_directories('.'),
 | ||||
| +         dependencies: libdex_deps,
 | ||||
| +)
 | ||||
| +
 | ||||
| +libdex = shared_library('dex-@0@'.format(api_version),
 | ||||
| +           dependencies: libdex_deps + [libdex_static_dep],
 | ||||
| +                 c_args: libdex_c_args,
 | ||||
| +                install: true,
 | ||||
| +  gnu_symbol_visibility: 'hidden',
 | ||||
| +                version: '@0@.0.0'.format(api_version),
 | ||||
| +        darwin_versions: '1.0',
 | ||||
| +)
 | ||||
|   | ||||
|  libdex_dep_sources = [] | ||||
|   | ||||
| @@ -152,7 +157,7 @@ pkg.generate(
 | ||||
|  ) | ||||
|   | ||||
|  if get_option('introspection').enabled() | ||||
| -  libdex_gir = gnome.generate_gir(libdex,
 | ||||
| +  libdex_gir = gnome.generate_gir(libdex_static,
 | ||||
|                  sources: [libdex_sources, libdex_headers], | ||||
|                nsversion: api_version, | ||||
|                namespace: 'Dex', | ||||
| @@ -185,10 +190,4 @@ libdex_dep = declare_dependency(
 | ||||
|                sources: [libdex_dep_sources], | ||||
|  ) | ||||
|   | ||||
| -libdex_static_dep = declare_dependency(
 | ||||
| -           link_whole: libdex_static,
 | ||||
| -  include_directories: include_directories('.'),
 | ||||
| -         dependencies: libdex_deps,
 | ||||
| -)
 | ||||
| -
 | ||||
|  meson.override_dependency('libdex-' + api_version, libdex_dep) | ||||
| -- 
 | ||||
| GitLab | ||||
| 
 | ||||
							
								
								
									
										82
									
								
								libdex.spec
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										82
									
								
								libdex.spec
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,82 @@ | ||||
| Name:    libdex | ||||
| Version: 0.1.0 | ||||
| Release: %autorelease | ||||
| Summary: a library supporting "Deferred Execution" for GNOME and GTK | ||||
| 
 | ||||
| License: LGPL-2.1-or-later | ||||
| URL:     https://gitlab.gnome.org/chergert/libdex | ||||
| Source0: https://gitlab.gnome.org/chergert/libdex/uploads/8894d387768d3b8375b5d1121988c35a/%{name}-%{version}.tar.xz | ||||
| Patch0:  libdex-0.1.0-doc-dir.patch  | ||||
| # https://gitlab.gnome.org/chergert/libdex/-/issues/3 | ||||
| Patch1:  libdex-0.1.0-soversion.patch | ||||
| 
 | ||||
| BuildRequires: /usr/bin/vapigen | ||||
| BuildRequires: gcc | ||||
| BuildRequires: gi-docgen | ||||
| BuildRequires: libatomic | ||||
| BuildRequires: meson | ||||
| BuildRequires: pkgconfig(gio-2.0) | ||||
| BuildRequires: pkgconfig(gobject-introspection-1.0) | ||||
| BuildRequires: pkgconfig(liburing) | ||||
| BuildRequires: pkgconfig(sysprof-capture-4) | ||||
| 
 | ||||
| %description | ||||
| Dex is a library supporting "Deferred Execution" with the explicit goal | ||||
| of integrating with GNOME and GTK-based applications. | ||||
| It provides primatives for supporting futures in a variety of ways with both | ||||
| read-only and writable views. Additionally, integration with existing | ||||
| asynchronous-based APIs is provided through the use of wrapper promises. | ||||
| "Fibers" are implemented which allows for writing synchronous looking code | ||||
| which calls asynchronous APIs from GIO underneath. | ||||
| 
 | ||||
| %package  devel | ||||
| Summary:  Development files for libdex | ||||
| Requires: libdex%{?_isa} = %{version}-%{release} | ||||
| 
 | ||||
| %description devel | ||||
| This package contains the libraries and header files that are needed for | ||||
| writing applications with libdex. | ||||
| 
 | ||||
| %package   devel-docs | ||||
| Summary:   Developer documentation for libdex | ||||
| BuildArch: noarch | ||||
| Requires:  libdex = %{version}-%{release} | ||||
| 
 | ||||
| %description devel-docs | ||||
| This package contains developer documentation for writing applications with | ||||
| libdex. | ||||
| 
 | ||||
| %prep | ||||
| %autosetup -p1 | ||||
| 
 | ||||
| %build | ||||
| %meson \ | ||||
|   -Ddocs=true \ | ||||
|   -Dexamples=false \ | ||||
|   -Dsysprof=true | ||||
| %meson_build | ||||
| 
 | ||||
| %install | ||||
| %meson_install | ||||
| 
 | ||||
| %check | ||||
| %meson_test | ||||
| 
 | ||||
| %files | ||||
| %license COPYING | ||||
| %doc NEWS README.md | ||||
| %{_libdir}/libdex-1.so.1{,.*} | ||||
| %{_libdir}/girepository-1.0/ | ||||
| 
 | ||||
| %files devel | ||||
| %{_datadir}/gir-1.0/ | ||||
| %{_datadir}/vala/ | ||||
| %{_includedir}/libdex-1/ | ||||
| %{_libdir}/libdex-1.so | ||||
| %{_libdir}/pkgconfig/libdex-1.pc | ||||
| 
 | ||||
| %files devel-docs | ||||
| %doc %{_docdir}/libdex-1/ | ||||
| 
 | ||||
| %changelog | ||||
| %autochangelog | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user