Commit Graph

45 Commits

Author SHA1 Message Date
Xavier Claessens
dcfc9f689e Fix symbol visibility macros on Windows
There is currently no `dllimport` attribute on any of our function,
which prevents MSVC to optimize function calls.

To fix that issue, we need to redeclare all our visibility macros for
each of our libraries, because when compiling e.g. GIO code, we need
dllimport in GLIB headers and dllexport in GIO headers. That means they
cannot use the same GLIB_AVAILABLE_* macro.

Since that's a lot of boilerplate to copy/paste after each version bump,
this MR generate all those macros using a python script.

Also simplify the meson side by using `gnu_symbol_visibility : 'hidden'`
keyword argument instead of passing the cflag manually.

This leaves only API index to add manually into glib-docs.xml when
bumping GLib version. That file cannot be generated because Meson does
not allow passing a buit file to gnome.gtkdoc()'s main_xml kwarg
unfortunately.
2022-10-13 20:53:56 -04:00
Philip Withnall
c5d661b4c4 build: Fix shellcheck warnings in various old build and test scripts
Most of these scripts can probably just be deleted (see issue #2045),
but for now it was easier to just mechanically fix the shellcheck
warnings in them, rather than think about whether we actually needed the
script.

Fixes done using shellcheck 0.7.0 with default options. I haven’t tested
any of the changes.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2020-02-27 10:33:45 +00:00
Philip Withnall
3529bb4450 libcharset: Drop a redundant environment variable
It was used for running tests when we built with autotools, but is no
longer used in the Meson build system. If we need something similar in
future, it should be done by adding internal API to override the
directory on a per-call basis, rather than loading a path from a shared
global table every time.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Helps: #1919
2020-02-07 17:14:46 +00:00
Philip Withnall
65be80c3ed build: Rework path construction to reliably add prefix
There were a couple of custom paths which could end up being relative,
rather than absolute, due to not properly prefixing them with
`get_option('prefix')`.

The use of `join_paths()` here correctly drops all path components
before the final absolute path in the list of arguments. So if someone
configures GLib with an absolute path for `gio_module_dir`, that will be
used unprefixed; but if someone configures with a relative path, it will
be prefixed by `get_option('prefix)`.

Signed-off-by: Philip Withnall <withnall@endlessm.com>

Fixes: #1919
2020-02-07 17:12:35 +00:00
Philip Withnall
b3efef5b6f build: Drop autotools support
So long, and thanks for everything. We’re a Meson-only shop now.

glib-2-58 will remain the last stable GLib release series which is
buildable using autotools.

We continue to install autoconf macros for autotools-using projects
which depend on GLib; they are stable API.

Signed-off-by: Philip Withnall <withnall@endlessm.com>
2019-01-15 15:11:43 +00:00
Xavier Claessens
62c4768423 Meson: Add missing options and conform to naming guidelines
https://bugzilla.gnome.org/show_bug.cgi?id=790837
2017-12-19 14:56:11 -05:00
Nirbheek Chauhan
c9e6270568 libcharset: Don't try to include configmake.h
It's an internal gnulib thing which will never be available while
building glib. Always expect LIBDIR and fallback to using that for
compatibility with the existing MSVC projects:
https://mail.gnome.org/archives/gtk-devel-list/2017-December/msg00000.html

https://bugzilla.gnome.org/show_bug.cgi?id=346816
2017-12-04 18:40:35 +05:30
Nirbheek Chauhan
c603ba301d meson: Add 'charsetalias-dir' option mirroring the autotools one
This fixes the build again.
2017-11-22 04:43:05 +05:30
Daniel Macks
6bcc8b4034 Add configuration option for charset.alias directory
Specifically controlling the location of this file, rather than simply
using $libdir, allows one to avoid conflicting with the same default
location as the gnulib localcharset module uses.

https://bugzilla.gnome.org/show_bug.cgi?id=346816
2017-11-20 11:27:21 +00:00
Tim-Philipp Müller
2f29ee1735 meson: add -fvisibility=hidden explicitly to selected targets
Don't use it project-wide for building everything. Otherwise
symbols for shared modules won't be exposed, e.g. in the
resourceplugin used by the gio resource unit test.
2017-07-13 19:03:39 -04:00
Patrick Griffis
d10be6102f meson: Minor modernizations 2017-07-13 19:03:39 -04:00
Nirbheek Chauhan
fe2a9887a8 meson: Improve MSVC and MinGW support and fix dependencies everywhere
Disable gio tests on Windows, fix .gitignore to not ignore
config.h.meson, and add more things to it.

Rename the library file naming and versioning to match what Autotools
outputs, e.g., libglib-2.0.so.0.5000.2 on Linux, libglib-2.0-0.dll  and
glib-2.0-0.dll on Windows with MSVC.

Several more tiny fixes, more executables built and installed, install
pkg-config and m4 files, fix building of gobject tests.

Changes to gdbus-codegen to support out-of-tree builds without
environment variables set (which you can't in Meson). We now add the
build directory to the Python module search path.
2017-07-13 19:03:39 -04:00
Tim-Philipp Müller
213957970e meson: Fix glib, add gobject, gio, gthread, gmodule, etc
Several small fixes to the build files.

Lots of tests have also been added, and glib tests pass now.
2017-07-13 19:03:39 -04:00
Jussi Pakkanen
98e641424b meson: initial glib build
https://mail.gnome.org/archives/gtk-devel-list/2013-August/msg00001.html
2017-07-13 19:03:39 -04:00
Daniel Mustieles
078dbda148 Updated FSF's address 2014-01-31 14:31:55 +01:00
Ryan Lortie
f9eb9eed10 Rework the build system for a new tests approach
Perform a substantial cleanup of the build system with respect to
building and installing testcases.

First, Makefile.decl has been renamed glib.mk and substantially
expanded.  We intend to add more stuff here in the future, like canned
rules for mkenums, marshallers, resources, etc.

By default, tests are no longer compiled as part of 'make'.  They will
be built when 'make check' is run.  The old behaviour can be obtained
with --enable-always-build-tests.

--disable-modular-tests is gone (because tests are no longer built by
default).  There is no longer any way to cause 'make check' to be a
no-op, but that's not very useful anyway.

A new glibtests.m4 file is introduced.  Along with glib.mk, this
provides for consistent handling of --enable-installed-tests and
--enable-always-build-tests (mentioned above).

Port our various test-installing Makefiles to the new framework.

This patch substantially improves the situation in the toplevel tests/
directory.  Things are now somewhat under control there.  There were
some tests being built that weren't even being run and we run those now.
The long-running GObject performance tests in this directory have been
removed from 'make check' because they take too long.

As an experiment, 'make check' now runs the testcases on win32 builds,
by default.  We can't run them under gtester (since it uses a pipe to
communicate with the subprocess) so just toss them in TESTS.  Most of
them are passing on win32.

Things are not quite done here, but this patch is already a substantial
improvement.  More to come.
2013-05-31 23:12:15 -04:00
Matthias Clasen
ab328469f5 Silence automake
automake doesn't like INCLUDES anymore.
2013-02-02 22:54:15 -05:00
Ryan Lortie
346aa683de Fix visibility for glib/ and gio/ submodules
We have various sub directories in glib/ and gio/ (eg: inotify, gnulib,
pcre, xdgmime, etc.) that build convenience libraries that are then
included into libglib and libgio.  The files in these directories need
to be built with the same visibility policy as the files in the first
level directories, so add CFLAGS for them all.

This wasn't a problem when the visibility flags were set directly in
CFLAGS but then we had to deal with some modules that we built that we
explicitly wanted to export symbols from.

For now, we can keep things the way they are because it's less hacky and
although it's a theoretical hazard to forget these CFLAGS, we rarely add
new subdirectories to the build.
2013-01-18 13:23:40 -05:00
John Ralls
1f005d9385 Bug 681685: Transcoding fails on OSX
Add aliases for codesets supported by iconv and included in locales.
Ifdef-out tests in glib/tests/gdatetime.c which fail because on OSX only
ASCII numbers or symbols are returned for the format.

Even though nl_langinfo does weird things on Darwin in some cases, it
still acts correctly when LANG/LC_ALL is set to a supported
locale.codeset.
2012-11-25 16:44:06 +09:00
Matthias Clasen
2fb57ff46f Quiet down the build a bit 2011-05-28 14:29:08 -04:00
Ryan Lortie
b3b7ea8e22 Replace -I with $(glib_INCLUDES) and friends
Stop using ad hoc -I in all of our Makefile.am.  Use the new variables
instead.
2010-08-06 13:10:34 -04:00
Ryan Lortie
920f3bffb3 Bug 549771 – improved .gitignore for glib
2007-09-02  Ryan Lortie  <desrt@desrt.ca>

        Bug 549771 – improved .gitignore for glib

        * docs/reference/.gitignore:
        * docs/reference/gio/.gitignore:
        * docs/reference/gobject/tmpl/.gitignore:
        * gio/.gitignore:
        * gio/tests/.gitignore:
        * glib/.gitignore:
        * glib/libcharset/.gitignore:
        * glib/tests/.gitignore:
        * gmodule/.gitignore:
        * gobject/.gitignore:
        * gobject/tests/.gitignore:
        * po/.gitignore:
        * tests/.gitignore: new files
        * .gitignore: remove 'build' (since it's part of glib now), add more
        useful things.


svn path=/trunk/; revision=7432
2008-09-02 18:40:39 +00:00
Johan Dahlin
761424465a Include "config.h" instead of <config.h> Command used: find -name
2008-06-21  Johan Dahlin  <jdahlin@async.com.br>

    * *.[ch]: Include "config.h" instead of <config.h>
    Command used:
    find -name \*.[ch]|xargs perl -p -i -e 's/^#include <config.h>/#include "config.h"/g'
    Rubberstamped by Mitch


svn path=/trunk/; revision=7092
2008-06-22 15:10:51 +00:00
Behdad Esfahbod
64e1b6d84f Bug 501651 – Update glib/libcharset
2008-05-20  Behdad Esfahbod  <behdad@gnome.org>

        Bug 501651 – Update glib/libcharset

        * configure.in:
        * glib/libcharset/Makefile.am:
        * glib/libcharset/README:
        * glib/libcharset/codeset.m4:
        * glib/libcharset/config.charset:
        * glib/libcharset/glibc21.m4:
        * glib/libcharset/libcharset-glib.patch:
        * glib/libcharset/libcharset.h:
        * glib/libcharset/localcharset.c (_g_locale_get_charset_aliases),
        (_g_locale_charset_raw):
        * glib/libcharset/localcharset.h:
        * glib/libcharset/make-patch.sh:
        * glib/libcharset/ref-add.sin:
        * glib/libcharset/ref-del.sin:
        * glib/libcharset/update.sh:
        Update libcharset to the one shipped with libiconv-0.12.


svn path=/trunk/; revision=6921
2008-05-20 22:49:16 +00:00
21:06:47 Tim Janik
1e55738f31 initialize automake variables EXTRA_DIST and TEST_PROGS for unconditional
2007-11-21 21:06:47  Tim Janik  <timj@imendio.com>

	* Makefile.decl: initialize automake variables EXTRA_DIST and
	TEST_PROGS for unconditional appending via += in other makefiles.
	define recursive test targets: test, test-report, perf-report,
	full-report, as described here:
      http://mail.gnome.org/archives/gtk-devel-list/2007-November/msg00000.html

	* Makefile.am:
	* build/win32/vs8/Makefile.am, build/win32/dirent/Makefile.am:
	* build/win32/Makefile.am, build/Makefile.am:
	* docs/Makefile.am, docs/reference/Makefile.am:
	* docs/reference/glib/Makefile.am, docs/reference/gobject/Makefile.am:
	* gmodule/Makefile.am, tests/Makefile.am:
	* tests/refcount/Makefile.am, tests/gobject/Makefile.am:
	* glib/update-pcre/Makefile.am, glib/libcharset/Makefile.am:
	* glib/tests/Makefile.am, glib/pcre/Makefile.am:
	* glib/gnulib/Makefile.am, gobject/Makefile.am, m4macros/Makefile.am:
	* gthread/Makefile.am, glib/Makefile.am:
	include $(top_srcdir)/Makefile.decl, adapted EXTRA_DIST assignments.

	* glib/tests/Makefile.am: removed example testing rules.

	* glib/tests/testing.c: conditionalized performance and slow tests.

	* glib/gtestutils.h:
	* glib/gtestutils.c: work around g_test_config_vars not changing its
	exported value after value assignments, aparently due to symbol aliases.

	* glib/gtester.c: fixed off-by-one error which produced junk in logs.

	* configure.in: check for python >= 2.4 and provide $PYTHON for scripts.


svn path=/trunk/; revision=5914
2007-11-21 20:09:46 +00:00
Matthias Clasen
912027f0df Some file list updates (#398069, Owen Taylor)
2007-01-19  Matthias Clasen  <mclasen@redhat.com>

        Some file list updates (#398069, Owen Taylor)

        * docs/Changes-2.0.txt
        * docs/reference/README.cvs-commits
        * glib.spec.in: Remove obsolete files

        * tests/Makefile.am:
        * glib/libcharset/Makefile.am:
        * gobject/Makefile.am:
        * Makefile.am: Add some missing files to EXTRA_DIST

        * tests/timeloop-basic.c: Make it build
        * HACKING: Small updates


svn path=/trunk/; revision=5302
2007-01-19 15:50:30 +00:00
Michael Natterer
feb07512f0 removed all .cvsignore files. SVN doesn't need them.
2007-01-03  Michael Natterer  <mitch@imendio.com>

	* removed all .cvsignore files. SVN doesn't need them.


svn path=/trunk/; revision=5198
2007-01-03 11:22:36 +00:00
Pascal Terjan
dedf19723f Fix small leak on failed realloc in _g_locale_get_charset_aliases
2006-10-26  Pascal Terjan  <pterjan@linuxfr.org>

	* glib/libcharset/localcharset.c: Fix small leak on failed
	realloc in _g_locale_get_charset_aliases (#338582)
2006-10-26 21:09:04 +00:00
Matthias Clasen
2e7514d052 Apply a patch to fix sparse warnings. (#154696, Kjartan Maraas)
2004-10-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/gasyncqueue.c, glib/gatomic.c, glib/gdate.c,
	glib/giochannel.c, glib/gmain.c, glib/gspawn.c,
	glib/libcharset/localcharset.c: Apply a patch to fix
	sparse warnings. (#154696, Kjartan Maraas)
2004-10-24 01:37:42 +00:00
Matthias Clasen
0ce7180eec === Released 2.4.1 ===
2004-04-30  Matthias Clasen  <mclasen@redhat.com>

	* === Released 2.4.1 ===

	* glib/libcharset/Makefile.am (INCLUDES): Add -I$(top_srcdir)
	to make make distcheck happy.

	* configure.in: Version 2.4.1, interface age 1.

	* NEWS: Updates
2004-04-30 14:45:14 +00:00
Matthias Clasen
f5eb6acc72 Reinstate LIBCHARSET_ALIAS_DIR support which got lost at some point.
2004-04-23  Matthias Clasen  <mclasen@redhat.com>

	* glib/libcharset/localcharset.c (_g_locale_get_charset_aliases):
	Reinstate LIBCHARSET_ALIAS_DIR support which got lost at some
	point.  (#139134, Piotr Klaban)
2004-04-23 14:47:44 +00:00
Tor Lillqvist
9b4080611a glib/giowin32.c glib/gmain.c glib/gstrfuncs.c Decorating variable
2004-04-10  Tor Lillqvist  <tml@iki.fi>

	* glib/giowin32.c
	* glib/gmain.c
	* glib/gstrfuncs.c
	* glib/gthread.c: Decorating variable definitions with
	__declspec(dllexport) causes problems on Cygwin build, and isn't
	really needed for a native Win32 build with mingw or MSVC, so
	remove. (#138402, Roger Leigh)

	* glib/libcharset/localcharset.c: Use Win32-specific code also on
	Cygwin.
	* tests/uri-test.c: Don't assume that local filenames are in UTF-8
	on Cygwin, either. (#138412, Roger Leigh)
2004-04-10 01:55:57 +00:00
Matthias Clasen
93681235dd Add cp1251 support for Solaris. (#104738, Hidetoshi Tajima)
2003-03-30  Matthias Clasen  <maclas@gmx.de>

	* glib/libcharset/config.charset: Add cp1251 support for Solaris.
	(#104738, Hidetoshi Tajima)
2003-03-30 21:29:26 +00:00
Owen Taylor
ceb35b237b Break _g_locale_charset() into two pieces - a fast "raw" piece, and a slow
Sat Dec 14 20:11:41 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/libcharset/{localcharset.[ch] libcharset-glib.patch}
        glib/gutf8.c: Break _g_locale_charset() into two pieces
        - a fast "raw" piece, and a slow "unalias pieces".
        Always call the "raw" piece, and call the unalias bit
        if it changes. Use a per-thread cache. (#79529)
2002-12-15 01:35:07 +00:00
Owen Taylor
3e31fadc7a Don't distribute ref-add/del.sed., fixing problem with srcdir != destdir.
Fri Dec  6 12:40:00 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/libcharset/Makefile.am (EXTRA_DIST): Don't
        distribute ref-add/del.sed., fixing problem with
        srcdir != destdir. (#99813, Phuc LeHong)
2002-12-06 17:42:33 +00:00
Owen Taylor
893b73e27f Update from libcharset CVS. Includes additional encodings for Solaris
Mon May 13 11:42:23 2002  Owen Taylor  <otaylor@redhat.com>

      		* glib/libcharset/*: Update from libcharset CVS.
        Includes additional encodings for Solaris (#80396,
        Qingjiang Yuan)

        * configure.in: Add getc_unlocked to CHECK_FUNCS().

        * glib/gmessages.c (strdup_convert): If
        g_convert_with_fallback() fails, print the error
        message to stderr the first time, then return
        the original string. (#78197)
2002-05-13 15:51:44 +00:00
Owen Taylor
340e4c6f20 Remove charset.alias from EXTRA_DIST; we don't want the charset.alias from
Mon Feb 18 20:18:23 2002  Owen Taylor  <otaylor@redhat.com>

        * glib/libcharset/Makefile.am (EXTRA_DIST): Remove
        charset.alias from EXTRA_DIST;	we don't	want the
	charset.alias from the	make distcheck machine
        on the	target system!.	(#70974,	reported by
        Ryan Lovett)
2002-02-19 01:20:35 +00:00
Hidetoshi Tajima
805424972f add ISO8859-3 for Solaris. (#66174)
* glib/libcharset/config.charset (os):
add ISO8859-3 for Solaris. (#66174)
2001-12-10 23:56:32 +00:00
Dan Winship
8049ab4876 Set this from libtool rather than hardcoding values for certain platforms.
* configure.in (G_MODULE_LDFLAGS): Set this from libtool rather
	than hardcoding values for certain platforms.

	* glib/libcharset/config.charset: Add a rule for NetBSD.

	* glib/libcharset/localcharset.c (_g_locale_get_charset_aliases):
	If LIBCHARSET_ALIAS_DIR is set, look for charset.aliases there.

	* tests/Makefile.am (TESTS_ENVIRONMENT): set LIBCHARSET_ALIAS_DIR
	so we don't depend on charset.aliases having been installed
2001-11-27 17:31:12 +00:00
Tor Lillqvist
89fa66b5fd Minor edits.
2001-11-05  Tor Lillqvist  <tml@iki.fi>

	* README.win32: Minor edits.

	* glib-zip.in: Build separate runtime and developer packages.

	* glib/libcharset/config.charset (os): Don't need to match mingw
	after all, the charset.alias file isn't even used on Win32... (see
	localcharset.c).

	* glib/makefile.mingw.in: Add gdir.

	* glib/glib.def: Add g_dir_* entry points.
2001-11-05 20:40:14 +00:00
Owen Taylor
a25517548c Dist ref-add.sin, ref-del.sin. (#63092, Dan Winship)
Mon Oct 29 10:55:12 2001  Owen Taylor  <otaylor@redhat.com>

	* glib/libcharset/Makefile.am (EXTRA_DIST): Dist
	ref-add.sin, ref-del.sin. (#63092, Dan Winship)
2001-10-29 15:58:58 +00:00
Tor Lillqvist
9c35df3de3 Add missing g_pattern_match_simple and g_pattern_spec_equal.
2001-10-28  Tor Lillqvist  <tml@iki.fi>

	* glib/glib.def: Add missing g_pattern_match_simple and
	g_pattern_spec_equal.

	* glib/gwin32.c (g_win32_get_package_installation_subdirectory):
	Set separator correctly.

	* glib/libcharset/config.charset (os): Match also mingw*.

	* tests/testglib.c (main): (Win32): Print the lib/locale
	subdirectory, as that is what actually gets used.
2001-10-28 21:05:03 +00:00
Havoc Pennington
3af43e9b09 add config.charset
2001-10-04  Havoc Pennington  <hp@redhat.com>

	* glib/libcharset/Makefile.am (EXTRA_DIST): add config.charset
2001-10-04 19:33:01 +00:00
Owen Taylor
b6d8893eb7 Fix macros from libcharset to work with autoconf-2.5x. (From Laszlo
Fri Sep 28 19:41:32 2001  Owen Taylor  <otaylor@redhat.com>

	* glib/libcharset/* configure.in: Fix macros from libcharset
	to work with autoconf-2.5x. (From Laszlo Peter.)
2001-09-28 23:44:46 +00:00
Owen Taylor
b5fa5b9867 Fixes for #58195, based on some ideas from Hidetosh Tajima.
Wed Sep 26 22:34:12 2001  Owen Taylor  <otaylor@redhat.com>

        Fixes for #58195, based on some ideas from Hidetosh Tajima.

        * aclibcharset.m4 glib/libcharset: Add Bruno Haible's
        portable-current charset detection code from libiconv.

        * glib/gutf8.c (g_utf8_get_charset_internal): Rewrite
        to use _g_locale_charset().

        * glib/gutf8.c (_g_charset_get_aliases): Private functions
        to get aliases from libcharset for a particular canonical
        name.

        * glib/gconvert.c: If loading a charset fails, try
        aliases to look for fallbacks.
2001-09-27 02:49:05 +00:00