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