summaryrefslogtreecommitdiff
path: root/libpkgconf
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2019-07-18 16:56:35 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2019-07-20 14:19:18 +0300
commit1e53fa691949998dfa711878ecb7863814f085ee (patch)
tree830b85261c13f7702ec4153f852beecabb79b14f /libpkgconf
parenta0cb8991b2cb61e9c0f3d8075759939cc61d57f0 (diff)
Upgrade to 1.6.3
Diffstat (limited to 'libpkgconf')
-rw-r--r--libpkgconf/README8
-rw-r--r--libpkgconf/README-DEV26
-rw-r--r--libpkgconf/build/root.build2
-rw-r--r--libpkgconf/libpkgconf/.gitignore4
-rw-r--r--libpkgconf/libpkgconf/buildfile68
l---------libpkgconf/libpkgconf/config.h.cmake.in.orig1
-rw-r--r--libpkgconf/libpkgconf/config.h.in (renamed from libpkgconf/libpkgconf/config.h)23
l---------libpkgconf/libpkgconf/config.h.meson.orig1
-rw-r--r--libpkgconf/libpkgconf/version.h.in10
-rw-r--r--libpkgconf/manifest6
10 files changed, 64 insertions, 85 deletions
diff --git a/libpkgconf/README b/libpkgconf/README
index 8c29a43..49b30cd 100644
--- a/libpkgconf/README
+++ b/libpkgconf/README
@@ -1,8 +1,8 @@
libpkgconf is a C library which helps to configure compiler and linker flags
-for development frameworks. It provids most of the pkgconf's functionality,
+for development frameworks. It provides most of the pkgconf's functionality,
which itself is similar to pkg-config. For more information see:
-https://git.dereferenced.org/pkgconf/pkgconf
+https://git.sr.ht/~kaniini/pkgconf
This package contains the original libpkgconf library source code overlaid with
the build2-based build system and packaged for the build2 package manager
@@ -11,8 +11,8 @@ the build2-based build system and packaged for the build2 package manager
See the INSTALL file for the prerequisites and installation instructions.
Post questions, bug reports, or any other feedback about the library itself at
-https://git.dereferenced.org/pkgconf/pkgconf/issues. Send build system and
-packaging-related feedback to the packaging@build2.org mailing list (see
+https://todo.sr.ht/~kaniini/pkgconf. Send build system and packaging-related
+feedback to the packaging@build2.org mailing list (see
https://lists.build2.org for posting guidelines, etc).
The packaging of libpkgconf for build2 is tracked in a Git repository at:
diff --git a/libpkgconf/README-DEV b/libpkgconf/README-DEV
index 5188ab1..0a63eb9 100644
--- a/libpkgconf/README-DEV
+++ b/libpkgconf/README-DEV
@@ -2,34 +2,30 @@ This document describes how libpkgconf was packaged for build2. In particular,
this understanding will be useful when upgrading to a new upstream version.
See ../README-DEV for general notes on pkgconf packaging.
-Symlink the required upstream files and directories and provide our own
-implementations for auto-generated headers:
+Symlink the required upstream files and provide our own implementation for
+auto-generated config.h:
$ ln -s ../upstream/{AUTHORS,COPYING} ./
-
-$ ln -s ../../upstream/libpkgconf/config.h.cmake.in \
- libpkgconf/config.h.cmake.in.orig
-
+$ ln -s ../../upstream/libpkgconf/config.h.meson libpkgconf/config.h.meson.orig
$ cd libpkgconf && ln -s ../../upstream/libpkgconf/*.{c,h} ./
-Use libpkgconf/config.h.cmake.in.orig for creating libpkgconf/config.h and
-libpkgconf/version.h.in, defining/undefining macros introduced with
-#cmakedefine.
+Use libpkgconf/config.h.meson.orig for creating libpkgconf/config.h.in,
+defining/undefining macros introduced with #mesondefine.
-Re-creating libpkgconf/config.h from scratch every time we upgrade to a new
+Re-creating libpkgconf/config.h.in from scratch every time we upgrade to a new
upstream version would be a real pain. Instead we can only (un)define the
newly introduced macros, comparing the already defined and currently used
macro sets:
-$ for m in `cat libpkgconf/config.h.cmake.in.orig | \
- sed -n 's/.*#\s*cmakedefine\s\{1,\}\([_a-zA-Z0-9]\{1,\}\)\(\s.*\)\{0,1\}$/\1/p' | sort -u`; do
- if grep -q -e "\b$m\b" `find -L . -name '*.h' -a ! -name config.h -a ! -name version.h -o -name '*.c'`; then
+$ for m in `cat libpkgconf/config.h.meson.orig | \
+ sed -n 's/.*#\s*mesondefine\s\{1,\}\([_a-zA-Z0-9]\{1,\}\)\(\s.*\)\{0,1\}$/\1/p' | sort -u`; do
+ if grep -q -e "\b$m\b" `find -L . -name '*.h' -a ! -name config.h -o -name '*.c'`; then
echo "$m"
fi
done >used-macros
-$ cat libpkgconf/config.h |
+$ cat libpkgconf/config.h.in |
sed -n 's/#\s*\(define\|undef\)\s\{1,\}\([_a-zA-Z0-9]\{1,\}\)\(\s.*\)\{0,1\}$/\2/p' |
sort -u >defined-macros
-$ diff defined-macros used-macros >diff-macros
+$ diff defined-macros used-macros
diff --git a/libpkgconf/build/root.build b/libpkgconf/build/root.build
index 7e73ef0..5536426 100644
--- a/libpkgconf/build/root.build
+++ b/libpkgconf/build/root.build
@@ -2,6 +2,8 @@
# copyright : Copyright (c) 2016-2019 Code Synthesis Ltd
# license : ISC; see accompanying COPYING file
+using in
+
c.std = 99
using c
diff --git a/libpkgconf/libpkgconf/.gitignore b/libpkgconf/libpkgconf/.gitignore
index 620b4c8..d4cefd7 100644
--- a/libpkgconf/libpkgconf/.gitignore
+++ b/libpkgconf/libpkgconf/.gitignore
@@ -1,3 +1,3 @@
-# Generated version.h.
+# Generated config.h.
#
-version.h
+config.h
diff --git a/libpkgconf/libpkgconf/buildfile b/libpkgconf/libpkgconf/buildfile
index 5131874..0296e64 100644
--- a/libpkgconf/libpkgconf/buildfile
+++ b/libpkgconf/libpkgconf/buildfile
@@ -2,7 +2,7 @@
# copyright : Copyright (c) 2016-2019 Code Synthesis Ltd
# license : ISC; see accompanying COPYING file
-lib{pkgconf}: {h c}{* -version} {h}{version}
+lib{pkgconf}: {h c}{* -config} {h}{config}
tclass = $c.target.class
@@ -12,21 +12,9 @@ windows = ($tclass == 'windows')
msvc = ($c.class == 'msvc')
-# The version file is internal (it is only included from the internal
-# config.h) so we don't distribute nor install it (see below).
-#
-h{version}: in{version} $src_root/manifest
-
-# Build options.
-#
-# Note that we have to add "-I$src_root" for the headers auto-generating
-# machinery to work properly.
-#
-c.poptions =+ "-I$out_root" "-I$src_root"
-
-# Define the PKG_DEFAULT_PATH, SYSTEM_INCLUDEDIR and SYSTEM_LIBDIR macros.
-# The whole idea feels utterly broken (hello cross-compilation) so we will
-# just do bare minimum and wait and see.
+# Assign variables for the PKG_DEFAULT_PATH, SYSTEM_INCLUDEDIR, and
+# SYSTEM_LIBDIR macro definitions. The whole idea feels utterly broken (hello
+# cross-compilation) so we will just do bare minimum and wait and see.
#
# There is also PERSONALITY_PATH macro added in 1.5.1. It looks like the
# personality files are invented to fix cross-compilation but are unlikely to
@@ -66,21 +54,39 @@ else
#
# So we keep the macros empty.
#
- def_paths = ""
+ def_dirs = ""
personality_dirs = ""
}
-c.poptions += -DPKG_DEFAULT_PATH=\"$def_dirs\" \
- -DSYSTEM_INCLUDEDIR=\"$inc_dirs\" \
- -DSYSTEM_LIBDIR=\"$lib_dirs\" \
- -DPERSONALITY_PATH=\"$personality_dirs\"
+# The config header is internal (is only included from C files), so we don't
+# distribute nor install it (see below).
+#
+h{config}: in{config}
+{
+ PACKAGE_VERSION = "$version.project_id"
+
+ # Escape backslashes and quotes in the directory paths prior to representing
+ # them as C string literals.
+ #
+ SYSTEM_INCLUDEDIR = $regex.replace($inc_dirs, '(\\|")', '\\\1')
+ SYSTEM_LIBDIR = $regex.replace($lib_dirs, '(\\|")', '\\\1')
+ PKG_DEFAULT_PATH = $regex.replace($def_dirs, '(\\|")', '\\\1')
+ PERSONALITY_PATH = $regex.replace($personality_dirs, '(\\|")', '\\\1')
+}
+
+# Build options.
+#
+# Note that we have to add "-I$src_root" for the headers auto-generating
+# machinery to work properly.
+#
+c.poptions =+ "-I$out_root" "-I$src_root"
# Disable warnings.
#
if $msvc
c.coptions += /wd4996 /wd4267
-# Note: this should go last as it adds obj target-specific options.
+# Note: this should go last as it adds obj target-specific poptions.
#
if! $windows
{
@@ -109,11 +115,6 @@ if! $windows
}
else
{
- cc.poptions += -DWIN32 -D_WINDOWS -D_MBCS
-
- if $msvc
- cc.coptions += /GS /fp:precise /Zc:wchar_t /Zc:forScope
-
# See libpkgconf-api.h for details.
#
objs{*}: c.poptions += -DLIBPKGCONF_EXPORT
@@ -140,16 +141,9 @@ else
h{*}: install = include/libpkgconf/
install.include = $install.include/pkgconf/
-# Internal auto-generated header (see above).
-#
-h{version}: install = false
-
# Implementation details.
#
-# The upstream's config.h is generated during the configuration phase. We
-# distribute a custom one with a minimal set of macro definitions required to
-# build the project. Note that the file is internal (is only included from C
-# files) and so is not installed.
-#
-for h: config stdinc win-dirent
+h{config}: install = false
+
+for h: stdinc win-dirent
h{$h}@./: install = false
diff --git a/libpkgconf/libpkgconf/config.h.cmake.in.orig b/libpkgconf/libpkgconf/config.h.cmake.in.orig
deleted file mode 120000
index e991bcb..0000000
--- a/libpkgconf/libpkgconf/config.h.cmake.in.orig
+++ /dev/null
@@ -1 +0,0 @@
-../../upstream/libpkgconf/config.h.cmake.in \ No newline at end of file
diff --git a/libpkgconf/libpkgconf/config.h b/libpkgconf/libpkgconf/config.h.in
index c8d5cd5..ac5b1fa 100644
--- a/libpkgconf/libpkgconf/config.h
+++ b/libpkgconf/libpkgconf/config.h.in
@@ -1,4 +1,4 @@
-/* file : libpkgconf/config.h -*- C -*-
+/* file : libpkgconf/config.h.in -*- C -*-
* copyright : Copyright (c) 2016-2019 Code Synthesis Ltd
* license : ISC; see accompanying COPYING file
*/
@@ -6,8 +6,8 @@
#define LIBPKGCONF_CONFIG_H
/*
- * For the semantics of the following macros refer to config.h.cmake.in.orig
- * and upstream's CMakeList.txt.
+ * For the semantics of the following macros refer to config.h.meson.orig
+ * and upstream's meson.build.
*
* Note that we will explicitly undefine macros that are present in the
* libpkgconf source code but should not be defined. While this is not
@@ -16,15 +16,7 @@
* some system headers.
*/
-/*
- * Auto-generated. Defines the following configuration macros:
-
-#define PACKAGE_VERSION
-
- * Keep all the macros listed (in this exact form) for the change tracking
- * (see README-DEV).
- */
-#include <libpkgconf/version.h>
+#define PACKAGE_VERSION "$PACKAGE_VERSION$"
/*
* strndup() is not present on Windows, for gcc and clang if compile with
@@ -51,6 +43,11 @@
*/
#define HAVE_SYS_STAT_H 1
-#define PACKAGE_BUGREPORT "https://git.dereferenced.org/pkgconf/pkgconf/issues"
+#define PACKAGE_BUGREPORT "https://todo.sr.ht/~kaniini/pkgconf"
+
+#define PKG_DEFAULT_PATH "$PKG_DEFAULT_PATH$"
+#define PERSONALITY_PATH "$PERSONALITY_PATH$"
+#define SYSTEM_INCLUDEDIR "$SYSTEM_INCLUDEDIR$"
+#define SYSTEM_LIBDIR "$SYSTEM_LIBDIR$"
#endif /* LIBPKGCONF_CONFIG_H */
diff --git a/libpkgconf/libpkgconf/config.h.meson.orig b/libpkgconf/libpkgconf/config.h.meson.orig
new file mode 120000
index 0000000..db3eaf0
--- /dev/null
+++ b/libpkgconf/libpkgconf/config.h.meson.orig
@@ -0,0 +1 @@
+../../upstream/libpkgconf/config.h.meson \ No newline at end of file
diff --git a/libpkgconf/libpkgconf/version.h.in b/libpkgconf/libpkgconf/version.h.in
deleted file mode 100644
index 6b30948..0000000
--- a/libpkgconf/libpkgconf/version.h.in
+++ /dev/null
@@ -1,10 +0,0 @@
-/* file : libpkgconf/version.h.in -*- C -*-
- * copyright : Copyright (c) 2016-2019 Code Synthesis Ltd
- * license : ISC; see accompanying COPYING file
- */
-
-#ifndef PACKAGE_VERSION /* Note: using the version macro itself. */
-
-#define PACKAGE_VERSION "$libpkgconf.version.project_id$"
-
-#endif /* PACKAGE_VERSION */
diff --git a/libpkgconf/manifest b/libpkgconf/manifest
index 7f73729..6611d02 100644
--- a/libpkgconf/manifest
+++ b/libpkgconf/manifest
@@ -1,16 +1,16 @@
: 1
name: libpkgconf
-version: 1.6.1-a.0.z
+version: 1.6.3-a.0.z
project: pkgconf
summary: C library for retriving pkg-config compiler and linker flags
license: ISC, MIT ; ISC for the most of original files.
topics: C, build system, build toolchain
description-file: README
-url: https://git.dereferenced.org/pkgconf/pkgconf
+url: https://git.sr.ht/~kaniini/pkgconf
doc-url: http://pkgconf.readthedocs.io/en/latest/?badge=latest
src-url: https://git.build2.org/cgit/packaging/pkgconf/pkgconf/tree/libpkgconf/
package-url: https://git.build2.org/cgit/packaging/pkgconf/
-email: packaging@build2.org ; Report issues at https://git.dereferenced.org/pkgconf/pkgconf/issues.
+email: packaging@build2.org ; Report issues at https://todo.sr.ht/~kaniini/pkgconf.
package-email: packaging@build2.org ; Mailing list.
build-email: builds@build2.org
builds: all