[glibmm/use-dllexport-2-62: 5/6] glib/src: Decorate classes and methods with GLIBMM_API
- From: Chun-wei Fan <fanchunwei src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glibmm/use-dllexport-2-62: 5/6] glib/src: Decorate classes and methods with GLIBMM_API
- Date: Fri, 6 Mar 2020 18:43:42 +0000 (UTC)
commit b3afa34196ad9edf09f5a1c59e7125e9ba48fa14
Author: Chun-wei Fan <fanchunwei src gnome org>
Date: Thu Mar 5 15:45:00 2020 +0800
glib/src: Decorate classes and methods with GLIBMM_API
This prepares for us to export symbols using compiler directives, so that we
can eventually retire gendef.exe. This also makes the scripts place GLIBMM_API
as appropriate for the generated Glib:Error classes and the wrap() method.
glib/src/binding.hg | 4 +--
glib/src/bytearray.hg | 4 +--
glib/src/bytes.hg | 4 +--
glib/src/checksum.hg | 4 +--
glib/src/convert.hg | 19 +++++++++++--
glib/src/date.hg | 2 +-
glib/src/datetime.hg | 4 +--
glib/src/fileutils.hg | 14 +++++++---
glib/src/iochannel.hg | 7 ++---
glib/src/keyfile.hg | 4 +--
glib/src/markup.hg | 9 ++++---
glib/src/miscutils.hg | 37 +++++++++++++++++++++++++
glib/src/module.hg | 2 +-
glib/src/optioncontext.hg | 4 +--
glib/src/optionentry.hg | 2 +-
glib/src/optiongroup.hg | 2 +-
glib/src/regex.hg | 8 +++---
glib/src/shell.hg | 5 +++-
glib/src/spawn.hg | 11 +++++++-
glib/src/thread.hg | 32 +++++++++++-----------
glib/src/threads.hg | 28 +++++++++----------
glib/src/timezone.hg | 4 +--
glib/src/uriutils.hg | 3 +++
glib/src/value_basictypes.h.m4 | 2 +-
glib/src/valuearray.hg | 4 +--
glib/src/variant.hg | 34 +++++++++++------------
glib/src/variant_basictypes.h.m4 | 2 +-
glib/src/variantdict.hg | 4 +--
glib/src/variantiter.hg | 8 +++---
glib/src/varianttype.hg | 58 ++++++++++++++++++++--------------------
30 files changed, 201 insertions(+), 124 deletions(-)
---
diff --git a/glib/src/binding.hg b/glib/src/binding.hg
index 9f192727..c8c7f35e 100644
--- a/glib/src/binding.hg
+++ b/glib/src/binding.hg
@@ -96,9 +96,9 @@ _WRAP_ENUM(BindingFlags, GBindingFlags, newin "2,44")
*
* @newin{2,44}
*/
-class Binding : public Glib::Object
+class GLIBMM_API Binding : public Glib::Object
{
- _CLASS_GOBJECT(Binding, GBinding, G_BINDING, Glib::Object, GObject)
+ _CLASS_GOBJECT(Binding, GBinding, G_BINDING, Glib::Object, GObject, , , GLIBMM_API)
public:
/** A slot to be called to transform values in a binding created by
diff --git a/glib/src/bytearray.hg b/glib/src/bytearray.hg
index 9dac5e20..b82c4d30 100644
--- a/glib/src/bytearray.hg
+++ b/glib/src/bytearray.hg
@@ -41,9 +41,9 @@ namespace Glib
*
* @newin{2,36}
*/
-class ByteArray final
+class GLIBMM_API ByteArray final
{
- _CLASS_OPAQUE_REFCOUNTED(ByteArray, GByteArray, NONE, g_byte_array_ref, g_byte_array_unref)
+ _CLASS_OPAQUE_REFCOUNTED(ByteArray, GByteArray, NONE, g_byte_array_ref, g_byte_array_unref, GLIBMM_API)
_IGNORE(g_byte_array_ref, g_byte_array_unref)
public:
diff --git a/glib/src/bytes.hg b/glib/src/bytes.hg
index 867b99c1..dd5cc3d3 100644
--- a/glib/src/bytes.hg
+++ b/glib/src/bytes.hg
@@ -50,9 +50,9 @@ namespace Glib
*
* @newin{2,34}
*/
-class Bytes final
+class GLIBMM_API Bytes final
{
- _CLASS_OPAQUE_REFCOUNTED(Bytes, GBytes, NONE, g_bytes_ref, g_bytes_unref)
+ _CLASS_OPAQUE_REFCOUNTED(Bytes, GBytes, NONE, g_bytes_ref, g_bytes_unref, GLIBMM_API)
_IGNORE(g_bytes_ref, g_bytes_unref)
public:
diff --git a/glib/src/checksum.hg b/glib/src/checksum.hg
index 56a6b8cc..f4fb5373 100644
--- a/glib/src/checksum.hg
+++ b/glib/src/checksum.hg
@@ -39,9 +39,9 @@ namespace Glib
*
* @newin{2,16}
*/
-class Checksum
+class GLIBMM_API Checksum
{
- _CLASS_OPAQUE_COPYABLE(Checksum, GChecksum, NONE, g_checksum_copy, g_checksum_free)
+ _CLASS_OPAQUE_COPYABLE(Checksum, GChecksum, NONE, g_checksum_copy, g_checksum_free, GLIBMM_API)
_IGNORE(g_checksum_copy, g_checksum_free)
public:
diff --git a/glib/src/convert.hg b/glib/src/convert.hg
index 9c211bc9..f0c7d3e6 100644
--- a/glib/src/convert.hg
+++ b/glib/src/convert.hg
@@ -40,7 +40,7 @@ namespace Glib
* you should always catch those errors, and then try to recover, or tell the
* user the input was invalid.
*/
-_WRAP_GERROR(ConvertError, GConvertError, G_CONVERT_ERROR, NO_GTYPE)
+_WRAP_GERROR(ConvertError, GConvertError, G_CONVERT_ERROR, NO_GTYPE, GLIBMM_API)
/** Thin %iconv() wrapper.
@@ -49,7 +49,7 @@ _WRAP_GERROR(ConvertError, GConvertError, G_CONVERT_ERROR, NO_GTYPE)
* creating an IConv object once and using the convert() method could
* be useful when converting multiple times between the same charsets.
*/
-class IConv
+class GLIBMM_API IConv
{
public:
/** Open new conversion descriptor.
@@ -107,12 +107,14 @@ private:
/** Get the charset used by the current locale.
* @return Whether the current locale uses the UTF-8 charset.
*/
+GLIBMM_API
bool get_charset();
/** Get the charset used by the current locale.
* @param charset Will be filled with the charset's name.
* @return Whether the current locale uses the UTF-8 charset.
*/
+GLIBMM_API
bool get_charset(std::string& charset);
/** Convert from one encoding to another.
@@ -122,6 +124,7 @@ bool get_charset(std::string& charset);
* @return The converted string.
* @throw Glib::ConvertError
*/
+GLIBMM_API
std::string convert(const std::string& str,
const std::string& to_codeset,
const std::string& from_codeset);
@@ -136,6 +139,7 @@ std::string convert(const std::string& str,
* @return The converted string.
* @throw Glib::ConvertError
*/
+GLIBMM_API
std::string convert_with_fallback(const std::string& str,
const std::string& to_codeset,
const std::string& from_codeset);
@@ -156,6 +160,7 @@ std::string convert_with_fallback(const std::string& str,
* @return The converted string.
* @throw Glib::ConvertError
*/
+GLIBMM_API
std::string convert_with_fallback(const std::string& str,
const std::string& to_codeset,
const std::string& from_codeset,
@@ -168,6 +173,7 @@ std::string convert_with_fallback(const std::string& str,
* @return The input string converted to UTF-8 encoding.
* @throw Glib::ConvertError
*/
+GLIBMM_API
Glib::ustring locale_to_utf8(const std::string& opsys_string);
/** Convert from UTF-8 to the current locale's encoding.
@@ -177,6 +183,7 @@ Glib::ustring locale_to_utf8(const std::string& opsys_string);
* system's current locale.
* @throw Glib::ConvertError
*/
+GLIBMM_API
std::string locale_from_utf8(const Glib::ustring& utf8_string);
/** Converts a string which is in the encoding used for filenames into
@@ -185,6 +192,7 @@ std::string locale_from_utf8(const Glib::ustring& utf8_string);
* @return The converted string.
* @throw Glib::ConvertError
*/
+GLIBMM_API
Glib::ustring filename_to_utf8(const std::string& opsys_string);
/** Converts a string from UTF-8 to the encoding used for filenames.
@@ -192,6 +200,7 @@ Glib::ustring filename_to_utf8(const std::string& opsys_string);
* @return The converted string.
* @throw Glib::ConvertError
*/
+GLIBMM_API
std::string filename_from_utf8(const Glib::ustring& utf8_string);
/** Converts an escaped UTF-8 encoded URI to a local filename
@@ -202,6 +211,7 @@ std::string filename_from_utf8(const Glib::ustring& utf8_string);
* @return The resulting filename.
* @throw Glib::ConvertError
*/
+GLIBMM_API
std::string filename_from_uri(const Glib::ustring& uri, Glib::ustring& hostname);
/** Converts an escaped UTF-8 encoded URI to a local filename in the encoding
@@ -210,6 +220,7 @@ std::string filename_from_uri(const Glib::ustring& uri, Glib::ustring& hostname)
* @return The resulting filename.
* @throw Glib::ConvertError
*/
+GLIBMM_API
std::string filename_from_uri(const Glib::ustring& uri);
/** Converts an absolute filename to an escaped UTF-8 encoded URI.
@@ -219,6 +230,7 @@ std::string filename_from_uri(const Glib::ustring& uri);
* @return The resulting URI.
* @throw Glib::ConvertError
*/
+GLIBMM_API
Glib::ustring filename_to_uri(const std::string& filename, const Glib::ustring& hostname);
/** Converts an absolute filename to an escaped UTF-8 encoded URI.
@@ -227,6 +239,7 @@ Glib::ustring filename_to_uri(const std::string& filename, const Glib::ustring&
* @return The resulting URI.
* @throw Glib::ConvertError
*/
+GLIBMM_API
Glib::ustring filename_to_uri(const std::string& filename);
/** Returns the display basename for the particular filename, guaranteed
@@ -243,6 +256,7 @@ Glib::ustring filename_to_uri(const std::string& filename);
* @param filename An absolute pathname in the GLib file name encoding.
* @result A string containing a rendition of the basename of the filename in valid UTF-8
*/
+GLIBMM_API
Glib::ustring filename_display_basename(const std::string& filename);
/** Converts a filename into a valid UTF-8 string. The
@@ -260,6 +274,7 @@ Glib::ustring filename_display_basename(const std::string& filename);
* @param filename: a pathname hopefully in the GLib file name encoding
* @result A string containing a rendition of the filename in valid UTF-8.
*/
+GLIBMM_API
Glib::ustring filename_display_name(const std::string& filename);
/** @} group CharsetConv */
diff --git a/glib/src/date.hg b/glib/src/date.hg
index 12728311..c1ec4a05 100644
--- a/glib/src/date.hg
+++ b/glib/src/date.hg
@@ -30,7 +30,7 @@ namespace Glib
/** Julian calendar date.
*/
-class Date
+class GLIBMM_API Date
{
public:
using Day = guint8 ;
diff --git a/glib/src/datetime.hg b/glib/src/datetime.hg
index 280df71a..33f99855 100644
--- a/glib/src/datetime.hg
+++ b/glib/src/datetime.hg
@@ -60,9 +60,9 @@ using TimeSpan = GTimeSpan;
* in length).
* @newin{2,30}
*/
-class DateTime
+class GLIBMM_API DateTime
{
- _CLASS_OPAQUE_COPYABLE(DateTime, GDateTime, NONE, g_date_time_ref, g_date_time_unref)
+ _CLASS_OPAQUE_COPYABLE(DateTime, GDateTime, NONE, g_date_time_ref, g_date_time_unref, GLIBMM_API)
_IGNORE(g_date_time_ref, g_date_time_unref)
public:
diff --git a/glib/src/fileutils.hg b/glib/src/fileutils.hg
index c6e73ede..34e5cdca 100644
--- a/glib/src/fileutils.hg
+++ b/glib/src/fileutils.hg
@@ -59,7 +59,8 @@ _WRAP_GERROR(FileError, GFileError, G_FILE_ERROR, NO_GTYPE,
s#^AGAIN$#TRYAGAIN#,
s#^INTR$#INTERRUPTED#,
s#^IO$#IO_ERROR#,
- s#^PERM$#NOT_OWNER#
+ s#^PERM$#NOT_OWNER#,
+ GLIBMM_API
)
/** @enum FileError::Code
@@ -209,7 +210,7 @@ class Dir;
/** The iterator type of Glib::Dir.
* @ingroup FileUtils
*/
-class DirIterator
+class GLIBMM_API DirIterator
{
public:
typedef std::input_iterator_tag iterator_category;
@@ -253,7 +254,7 @@ private:
* @note The encoding of the directory entries isn't necessarily UTF-8.
* Use Glib::filename_to_utf8() if you need to display them.
*/
-class Dir
+class GLIBMM_API Dir
{
public:
using iterator = DirIterator;
@@ -330,6 +331,7 @@ private:
* @param test Bitfield of Glib::FileTest flags.
* @return Whether a test was true.
*/
+GLIBMM_API
bool file_test(const std::string& filename, FileTest test);
/** Opens a temporary file.
@@ -345,6 +347,7 @@ bool file_test(const std::string& filename, FileTest test);
* is a difference. The file handle should be closed with close(). In
* case of errors, <tt>-1</tt> is returned.
*/
+GLIBMM_API
int mkstemp(std::string& filename_template);
/** Opens a file for writing in the preferred directory for temporary files
@@ -362,6 +365,7 @@ int mkstemp(std::string& filename_template);
* difference. The file handle should be closed with <tt>close()</tt>.
* @throw Glib::FileError
*/
+GLIBMM_API
int file_open_tmp(std::string& name_used, const std::string& prefix);
/** Opens a file for writing in the preferred directory for temporary files
@@ -376,6 +380,7 @@ int file_open_tmp(std::string& name_used, const std::string& prefix);
* difference. The file handle should be closed with <tt>close()</tt>.
* @throw Glib::FileError
*/
+GLIBMM_API
int file_open_tmp(std::string& name_used);
/** Reads an entire file into a string, with good error checking.
@@ -384,6 +389,7 @@ int file_open_tmp(std::string& name_used);
* @return The file contents.
* @throw Glib::FileError
*/
+GLIBMM_API
std::string file_get_contents(const std::string& filename);
/** Writes all of @a contents to a file named @a filename, with good error checking.
@@ -421,11 +427,13 @@ std::string file_get_contents(const std::string& filename);
*
* @newin{2,22}
**/
+GLIBMM_API
void file_set_contents (const std::string& filename, const gchar *contents, gssize length);
/** A variant of file_set_contents which accepts a standard C++ string
*
* @newin{2,22}
* */
+GLIBMM_API
void file_set_contents (const std::string& filename, const std::string& contents);
} // namespace Glib
diff --git a/glib/src/iochannel.hg b/glib/src/iochannel.hg
index 00e49e36..f4060720 100644
--- a/glib/src/iochannel.hg
+++ b/glib/src/iochannel.hg
@@ -62,7 +62,8 @@ _WRAP_GERROR(IOChannelError, GIOChannelError, G_IO_CHANNEL_ERROR, NO_GTYPE,
s#^ACCES$#ACCESS_DENIED#,
s#^FBIG$#FILE_TOO_BIG#,
s#^IO$#IO_ERROR#,
- s#^OVERFLOW$#OVERFLOWN#)
+ s#^OVERFLOW$#OVERFLOWN#,
+ GLIBMM_API)
#ifndef DOXYGEN_SHOULD_SKIP_THIS
class GlibmmIOChannel;
@@ -79,7 +80,7 @@ class GlibmmIOChannel;
*
* You can create an IOChannel with one of the static create methods.
*/
-class IOChannel : public sigc::trackable
+class GLIBMM_API IOChannel : public sigc::trackable
{
_CLASS_GENERIC(IOChannel, GIOChannel)
@@ -477,7 +478,7 @@ private:
void release_gobject();
};
-Glib::RefPtr<IOChannel> wrap(GIOChannel* gobject, bool take_copy = false);
+GLIBMM_API Glib::RefPtr<IOChannel> wrap(GIOChannel* gobject, bool take_copy = false);
} // namespace Glib
diff --git a/glib/src/keyfile.hg b/glib/src/keyfile.hg
index 899ebf24..8383e233 100644
--- a/glib/src/keyfile.hg
+++ b/glib/src/keyfile.hg
@@ -34,7 +34,7 @@ namespace Glib
/** Exception class for KeyFile errors.
*/
-_WRAP_GERROR(KeyFileError, GKeyFileError, G_KEY_FILE_ERROR, NO_GTYPE)
+_WRAP_GERROR(KeyFileError, GKeyFileError, G_KEY_FILE_ERROR, NO_GTYPE, GLIBMM_API)
/** This class lets you parse, edit or create files containing groups of key-value pairs, which we call key
files
* for lack of a better name. Several freedesktop.org specifications use key files now, e.g the Desktop Entry
@@ -91,7 +91,7 @@ _WRAP_GERROR(KeyFileError, GKeyFileError, G_KEY_FILE_ERROR, NO_GTYPE)
*
* @newin{2,14}
*/
-class KeyFile
+class GLIBMM_API KeyFile
{
_CLASS_GENERIC(KeyFile, GKeyFile)
public:
diff --git a/glib/src/markup.hg b/glib/src/markup.hg
index bd1d24b6..5fc723c2 100644
--- a/glib/src/markup.hg
+++ b/glib/src/markup.hg
@@ -63,7 +63,7 @@ namespace Glib
/** %Exception class for markup parsing errors.
*/
-_WRAP_GERROR(MarkupError, GMarkupError, G_MARKUP_ERROR, NO_GTYPE)
+_WRAP_GERROR(MarkupError, GMarkupError, G_MARKUP_ERROR, NO_GTYPE, GLIBMM_API)
/*! @var MarkupError::Code MarkupError::BAD_UTF8
* Text being parsed was not valid UTF-8.
@@ -107,6 +107,7 @@ using Error = Glib::MarkupError;
* @param text Some valid UTF-8 text.
* @return Escaped text.
*/
+GLIBMM_API
Glib::ustring escape_text(const Glib::ustring& text);
@@ -128,7 +129,7 @@ _WRAP_ENUM(ParseFlags, GMarkupParseFlags, NO_GTYPE, s#^MARKUP_##)
* the AttributeKeyLess predicate is locale-independent. This is both
* more correct and much more efficient.
*/
-class AttributeKeyLess
+class GLIBMM_API AttributeKeyLess
{
public:
using first_argument_type = Glib::ustring;
@@ -157,7 +158,7 @@ class ParserCallbacks;
* error from a method, Glib::Markup::ParseContext::parse() will report that
* error back to its caller.
*/
-class Parser : public sigc::trackable
+class GLIBMM_API Parser : public sigc::trackable
{
public:
typedef std::map<Glib::ustring, Glib::ustring, Glib::Markup::AttributeKeyLess> AttributeMap;
@@ -253,7 +254,7 @@ private:
* occur; once an error occurs, the parse context can't continue to parse text
* (you have to destroy it and create a new parse context).
*/
-class ParseContext : public sigc::trackable
+class GLIBMM_API ParseContext : public sigc::trackable
{
public:
/** Creates a new parse context.
diff --git a/glib/src/miscutils.hg b/glib/src/miscutils.hg
index 5b0ba58c..75c3288f 100644
--- a/glib/src/miscutils.hg
+++ b/glib/src/miscutils.hg
@@ -40,6 +40,7 @@ _WRAP_ENUM(FormatSizeFlags, GFormatSizeFlags, NO_GTYPE)
*
* @return Human-readable application name. May return <tt>""</tt>.
*/
+GLIBMM_API
Glib::ustring get_application_name();
/** Sets a human-readable name for the application.
@@ -55,6 +56,7 @@ Glib::ustring get_application_name();
*
* @param application_name Localized name of the application.
*/
+GLIBMM_API
void set_application_name(const Glib::ustring& application_name);
/** Gets the name of the program.
@@ -68,11 +70,13 @@ void set_application_name(const Glib::ustring& application_name);
*
* @return The name of the program.
*/
+GLIBMM_API
std::string get_prgname();
/** Sets the name of the program.
* @param prgname The name of the program.
*/
+GLIBMM_API
void set_prgname(const std::string& prgname);
/** Returns the value of an environment variable. The name and value
@@ -86,6 +90,7 @@ void set_prgname(const std::string& prgname);
* @param[out] found Whether the environment variable has been found.
* @return The value of the environment variable, or <tt>""</tt> if not found.
*/
+GLIBMM_API
std::string getenv(const std::string& variable, bool& found);
/** Returns the value of an environment variable. The name and value
@@ -98,6 +103,7 @@ std::string getenv(const std::string& variable, bool& found);
* @param variable The environment variable to get.
* @return The value of the environment variable, or <tt>""</tt> if not found.
*/
+GLIBMM_API
std::string getenv(const std::string& variable);
@@ -114,6 +120,7 @@ std::string getenv(const std::string& variable);
* @param overwrite Whether to change the variable if it already exists.
* @result false if the environment variable couldn't be set.
*/
+GLIBMM_API
bool setenv(const std::string& variable, const std::string& value, bool overwrite = true);
/** Removes an environment variable from the environment.
@@ -125,6 +132,7 @@ bool setenv(const std::string& variable, const std::string& value, bool overwrit
*
* @param variable: the environment variable to remove. It must not contain '='.
**/
+GLIBMM_API
void unsetenv(const std::string& variable);
/** Gets the names of all variables set in the environment.
@@ -139,6 +147,7 @@ void unsetenv(const std::string& variable);
* @return Array of environment names (The generic ArrayHandle will be
* implicitly converted to any STL compatible container type).
*/
+GLIBMM_API
Glib::ArrayHandle<std::string> listenv();
/** Gets the user name of the current user.
@@ -150,6 +159,7 @@ Glib::ArrayHandle<std::string> listenv();
*
* @return The name of the current user.
*/
+GLIBMM_API
std::string get_user_name();
/** Gets the real name of the current user.
@@ -161,11 +171,13 @@ std::string get_user_name();
*
* @return The current user's real name.
*/
+GLIBMM_API
std::string get_real_name();
/** Gets the current user's home directory.
* @return The current user's home directory or an empty string if not defined.
*/
+GLIBMM_API
std::string get_home_dir();
/** Gets the directory to use for temporary files.
@@ -174,11 +186,13 @@ std::string get_home_dir();
* <tt>"/tmp"</tt> is returned on UNIX and <tt>"C:\\"</tt> on Windows.
* @return The directory to use for temporary files.
*/
+GLIBMM_API
std::string get_tmp_dir();
/** Gets the current directory.
* @return The current directory.
*/
+GLIBMM_API
std::string get_current_dir();
#ifndef GLIBMM_DISABLE_DEPRECATED
@@ -200,6 +214,7 @@ std::string get_current_dir();
* @newin{2,14}
* @deprecated Use get_user_special_dir(Glib::UserDirectory directory) instead.
*/
+GLIBMM_API
std::string get_user_special_dir(GUserDirectory directory);
#endif // GLIBMM_DISABLE_DEPRECATED
@@ -220,6 +235,7 @@ std::string get_user_special_dir(GUserDirectory directory);
*
* @newin{2,46}
*/
+GLIBMM_API
std::string get_user_special_dir(UserDirectory directory);
/** Returns a base directory in which to access application data such as icons
@@ -230,6 +246,7 @@ std::string get_user_special_dir(UserDirectory directory);
*
* @newin{2,14}
*/
+GLIBMM_API
std::string get_user_data_dir();
/** Returns a base directory in which to store user-specific application
@@ -240,6 +257,7 @@ std::string get_user_data_dir();
*
* @newin{2,14}
*/
+GLIBMM_API
std::string get_user_config_dir();
/** Returns an ordered list of base directories in which to access system-wide application data.
@@ -247,6 +265,7 @@ std::string get_user_config_dir();
*
* @newin{2,18}
*/
+GLIBMM_API
std::vector<std::string> get_system_data_dirs();
/** Returns an ordered list of base directories in which to access system-wide configuration information.
@@ -254,6 +273,7 @@ std::vector<std::string> get_system_data_dirs();
*
* @newin{2,18}
*/
+GLIBMM_API
std::vector<std::string> get_system_config_dirs();
/** Returns a base directory in which to store non-essential, cached data
@@ -264,6 +284,7 @@ std::vector<std::string> get_system_config_dirs();
*
* @newin{2,14}
*/
+GLIBMM_API
std::string get_user_cache_dir();
/** Returns @c true if the given @a filename is an absolute file name, i.e.\ it
@@ -272,6 +293,7 @@ std::string get_user_cache_dir();
* @param filename A file name.
* @return Whether @a filename is an absolute path.
*/
+GLIBMM_API
bool path_is_absolute(const std::string& filename);
/** Returns the remaining part of @a filename after the root component,
@@ -280,12 +302,14 @@ bool path_is_absolute(const std::string& filename);
* @param filename A file name.
* @return The file name without the root component, or <tt>""</tt>.
*/
+GLIBMM_API
std::string path_skip_root(const std::string& filename);
/** Gets the name of the file without any leading directory components.
* @param filename The name of the file.
* @return The name of the file without any leading directory components.
*/
+GLIBMM_API
std::string path_get_basename(const std::string& filename);
/** Gets the directory components of a file name.
@@ -293,6 +317,7 @@ std::string path_get_basename(const std::string& filename);
* @param filename The name of the file.
* @return The directory components of the file.
*/
+GLIBMM_API
std::string path_get_dirname(const std::string& filename);
/** Creates a filename from a series of elements using the correct
@@ -305,6 +330,7 @@ std::string path_get_dirname(const std::string& filename);
* Any STL compatible container type is accepted.
* @return The resulting path.
*/
+GLIBMM_API
std::string build_filename(const Glib::ArrayHandle<std::string>& elements);
/** Creates a filename from two elements using the correct separator for filenames.
@@ -314,6 +340,7 @@ std::string build_filename(const Glib::ArrayHandle<std::string>& elements);
* @param elem2 Second path element.
* @return The resulting path.
*/
+GLIBMM_API
std::string build_filename(const std::string& elem1, const std::string& elem2);
/** Creates a filename from three elements using the correct separator for filenames.
@@ -326,6 +353,7 @@ std::string build_filename(const std::string& elem1, const std::string& elem2);
*
* @newin{2,28}
*/
+GLIBMM_API
std::string build_filename(const std::string& elem1, const std::string& elem2,
const std::string& elem3);
@@ -341,6 +369,7 @@ std::string build_filename(const std::string& elem1, const std::string& elem2,
*
* @newin{2,28}
*/
+GLIBMM_API
std::string build_filename(const std::string& elem1, const std::string& elem2,
const std::string& elem3, const std::string& elem4);
@@ -354,6 +383,7 @@ std::string build_filename(const std::string& elem1, const std::string& elem2,
* @param elem5 Fifth path element.
* @return The resulting path.
*/
+GLIBMM_API
std::string build_filename(const std::string& elem1, const std::string& elem2,
const std::string& elem3, const std::string& elem4,
const std::string& elem5);
@@ -371,6 +401,7 @@ std::string build_filename(const std::string& elem1, const std::string& elem2,
*
* @newin{2,28}
*/
+GLIBMM_API
std::string build_filename(const std::string& elem1, const std::string& elem2,
const std::string& elem3, const std::string& elem4,
const std::string& elem5, const std::string& elem6);
@@ -389,6 +420,7 @@ std::string build_filename(const std::string& elem1, const std::string& elem2,
*
* @newin{2,28}
*/
+GLIBMM_API
std::string build_filename(const std::string& elem1, const std::string& elem2,
const std::string& elem3, const std::string& elem4,
const std::string& elem5, const std::string& elem6,
@@ -409,6 +441,7 @@ std::string build_filename(const std::string& elem1, const std::string& elem2,
*
* @newin{2,28}
*/
+GLIBMM_API
std::string build_filename(const std::string& elem1, const std::string& elem2,
const std::string& elem3, const std::string& elem4,
const std::string& elem5, const std::string& elem6,
@@ -430,6 +463,7 @@ std::string build_filename(const std::string& elem1, const std::string& elem2,
*
* @newin{2,28}
*/
+GLIBMM_API
std::string build_filename(const std::string& elem1, const std::string& elem2,
const std::string& elem3, const std::string& elem4,
const std::string& elem5, const std::string& elem6,
@@ -470,6 +504,7 @@ std::string build_filename(const std::string& elem1, const std::string& elem2,
* Any STL compatible container type is accepted.
* @return The resulting path.
*/
+GLIBMM_API
std::string build_path(const std::string& separator,
const Glib::ArrayHandle<std::string>& elements);
@@ -493,6 +528,7 @@ std::string build_path(const std::string& separator,
* @param program A program name.
* @return An absolute path, or <tt>""</tt>.
*/
+GLIBMM_API
std::string find_program_in_path(const std::string& program);
/** Formats a size (for example the size of a file) into a human readable string.
@@ -510,6 +546,7 @@ std::string find_program_in_path(const std::string& program);
*
* @newin{2,46}
*/
+GLIBMM_API
Glib::ustring format_size(guint64 size, FormatSizeFlags flags = FORMAT_SIZE_DEFAULT);
/** @} group MiscUtils */
diff --git a/glib/src/module.hg b/glib/src/module.hg
index ecfb2020..e0e23aa8 100644
--- a/glib/src/module.hg
+++ b/glib/src/module.hg
@@ -37,7 +37,7 @@ _WRAP_ENUM(ModuleFlags, GModuleFlags, NO_GTYPE)
* (e.g. Linux/Sun), as well as HP-UX via its shl_load() mechanism,
* and Windows platforms via DLLs.
*/
-class Module
+class GLIBMM_API Module
{
_CLASS_GENERIC(Module, GModule)
_IGNORE(g_module_open, g_module_close)
diff --git a/glib/src/optioncontext.hg b/glib/src/optioncontext.hg
index 7c665913..963b2f5d 100644
--- a/glib/src/optioncontext.hg
+++ b/glib/src/optioncontext.hg
@@ -31,7 +31,7 @@ namespace Glib
/** Exception class for options.
*/
-_WRAP_GERROR(OptionError, GOptionError, G_OPTION_ERROR, NO_GTYPE)
+_WRAP_GERROR(OptionError, GOptionError, G_OPTION_ERROR, NO_GTYPE, GLIBMM_API)
/** An OptionContext defines and parses commandline options, using OptionGroup%s and \link OptionEntry
option entries \endlink.
*
@@ -83,7 +83,7 @@ _WRAP_GERROR(OptionError, GOptionError, G_OPTION_ERROR, NO_GTYPE)
*
*
*/
-class OptionContext
+class GLIBMM_API OptionContext
{
_CLASS_GENERIC(OptionContext, GOptionContext)
_IGNORE(g_option_context_free)
diff --git a/glib/src/optionentry.hg b/glib/src/optionentry.hg
index d1f1ecce..ff177253 100644
--- a/glib/src/optionentry.hg
+++ b/glib/src/optionentry.hg
@@ -39,7 +39,7 @@ namespace Glib
*
* The arg_descripton is the placeholder to use for the extra argument parsed by the option in --help
output.
*/
-class OptionEntry
+class GLIBMM_API OptionEntry
{
_CLASS_GENERIC(OptionEntry, GOptionEntry)
public:
diff --git a/glib/src/optiongroup.hg b/glib/src/optiongroup.hg
index c1c8b404..a9e92bca 100644
--- a/glib/src/optiongroup.hg
+++ b/glib/src/optiongroup.hg
@@ -42,7 +42,7 @@ class OptionContext;
* Libraries which need to parse commandline options are expected to provide a function that allows their
OptionGroups to
* be added to the application's OptionContext.
*/
-class OptionGroup
+class GLIBMM_API OptionGroup
{
_CLASS_GENERIC(OptionGroup, GOptionGroup)
public:
diff --git a/glib/src/regex.hg b/glib/src/regex.hg
index 1b9eb443..3cb7c18a 100644
--- a/glib/src/regex.hg
+++ b/glib/src/regex.hg
@@ -35,7 +35,7 @@ _WRAP_ENUM(RegexMatchFlags, GRegexMatchFlags, NO_GTYPE)
/** Exception class for Regex
*/
-_WRAP_GERROR(RegexError, GRegexError, G_REGEX_ERROR, NO_GTYPE)
+_WRAP_GERROR(RegexError, GRegexError, G_REGEX_ERROR, NO_GTYPE, GLIBMM_API)
class MatchInfo;
@@ -104,9 +104,9 @@ class MatchInfo;
*
* @newin{2,14}
*/
-class Regex final
+class GLIBMM_API Regex final
{
- _CLASS_OPAQUE_REFCOUNTED(Regex, GRegex, NONE, g_regex_ref, g_regex_unref)
+ _CLASS_OPAQUE_REFCOUNTED(Regex, GRegex, NONE, g_regex_ref, g_regex_unref, GLIBMM_API)
_IGNORE(g_regex_ref, g_regex_unref)
public:
@@ -232,7 +232,7 @@ public:
* expression match which created it.
* @newin{2,28}
*/
-class MatchInfo
+class GLIBMM_API MatchInfo
{
_CLASS_GENERIC(MatchInfo, GMatchInfo)
_IGNORE(g_match_info_ref, g_match_info_unref, g_match_info_free)
diff --git a/glib/src/shell.hg b/glib/src/shell.hg
index 6f0e2fce..da72e147 100644
--- a/glib/src/shell.hg
+++ b/glib/src/shell.hg
@@ -31,7 +31,7 @@ namespace Glib
/** Exception class for shell utility errors.
*/
-_WRAP_GERROR(ShellError, GShellError, G_SHELL_ERROR, NO_GTYPE)
+_WRAP_GERROR(ShellError, GShellError, G_SHELL_ERROR, NO_GTYPE, GLIBMM_API)
/** Parses a command line into an argument vector, in much the same way the
@@ -46,6 +46,7 @@ _WRAP_GERROR(ShellError, GShellError, G_SHELL_ERROR, NO_GTYPE)
* converted to any STL compatible container type).
* @throw Glib::ShellError
*/
+GLIBMM_API
Glib::ArrayHandle<std::string> shell_parse_argv(const std::string& command_line);
/** Quotes a string so that the shell (/bin/sh) will interpret the quoted
@@ -55,6 +56,7 @@ Glib::ArrayHandle<std::string> shell_parse_argv(const std::string& command_line)
* @param unquoted_string A literal string.
* @return A quoted string.
*/
+GLIBMM_API
std::string shell_quote(const std::string& unquoted_string);
/** Unquotes a string as the shell (/bin/sh) would. Only handles quotes; if
@@ -80,6 +82,7 @@ std::string shell_quote(const std::string& unquoted_string);
* @return An unquoted string.
* @throw Glib::ShellError
*/
+GLIBMM_API
std::string shell_unquote(const std::string& quoted_string);
/** @} group ShellUtils */
diff --git a/glib/src/spawn.hg b/glib/src/spawn.hg
index 785665aa..9f3e02cf 100644
--- a/glib/src/spawn.hg
+++ b/glib/src/spawn.hg
@@ -36,7 +36,7 @@ _WRAP_ENUM(SpawnFlags, GSpawnFlags, NO_GTYPE)
/** %Exception class for errors occuring when spawning processes.
*/
-_WRAP_GERROR(SpawnError, GSpawnError, G_SPAWN_ERROR, NO_GTYPE, s#^2BIG$#TOOBIG#)
+_WRAP_GERROR(SpawnError, GSpawnError, G_SPAWN_ERROR, NO_GTYPE, s#^2BIG$#TOOBIG#, GLIBMM_API)
/** For instance,<br>
* void on_child_setup();
@@ -191,6 +191,7 @@ using SlotSpawnChildSetup = sigc::slot<void>;
* to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
* and @a standard_error will not be filled with valid values.
*/
+GLIBMM_API
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -218,6 +219,7 @@ void spawn_async_with_pipes(const std::string& working_directory,
* to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
* and @a standard_error will not be filled with valid values.
*/
+GLIBMM_API
void spawn_async_with_pipes(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SPAWN_DEFAULT,
@@ -248,6 +250,7 @@ void spawn_async_with_pipes(const std::string& working_directory,
* the message field of returned errors should be displayed
* to users.
*/
+GLIBMM_API
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -268,6 +271,7 @@ void spawn_async(const std::string& working_directory,
* the message field of returned errors should be displayed
* to users.
*/
+GLIBMM_API
void spawn_async(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SPAWN_DEFAULT,
@@ -306,6 +310,7 @@ void spawn_async(const std::string& working_directory,
* to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
* and @a standard_error will not be filled with valid values.
*/
+GLIBMM_API
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
const Glib::ArrayHandle<std::string>& envp,
@@ -331,6 +336,7 @@ void spawn_sync(const std::string& working_directory,
* to users. If an error occurs, @a child_pid, @a standard_input, @a standard_output,
* and @a standard_error will not be filled with valid values.
*/
+GLIBMM_API
void spawn_sync(const std::string& working_directory,
const Glib::ArrayHandle<std::string>& argv,
SpawnFlags flags = SPAWN_DEFAULT,
@@ -356,6 +362,7 @@ void spawn_sync(const std::string& working_directory,
* to users.
* @throws ShellError If the command line could not be parsed.
*/
+GLIBMM_API
void spawn_command_line_async(const std::string& command_line);
/** A simple version of spawn_sync() with little-used parameters
@@ -391,6 +398,7 @@ void spawn_command_line_async(const std::string& command_line);
* to users.
* @throws ShellError If the command line could not be parsed.
*/
+GLIBMM_API
void spawn_command_line_sync(const std::string& command_line,
std::string* standard_output = nullptr,
std::string* standard_error = nullptr,
@@ -403,6 +411,7 @@ void spawn_command_line_sync(const std::string& command_line,
*
* @param pid The process identifier to close.
*/
+GLIBMM_API
void spawn_close_pid(Pid pid);
/** @} group Spawn */
diff --git a/glib/src/thread.hg b/glib/src/thread.hg
index c98a06ea..f10ba8c4 100644
--- a/glib/src/thread.hg
+++ b/glib/src/thread.hg
@@ -127,18 +127,18 @@ enum NotLock { NOT_LOCK };
*/
enum TryLock { TRY_LOCK };
-class Mutex;
-class RecMutex;
-class RWLock;
+class GLIBMM_API Mutex;
+class GLIBMM_API RecMutex;
+class GLIBMM_API RWLock;
-struct StaticRecMutex;
-struct StaticRWLock;
+struct GLIBMM_API StaticRecMutex;
+struct GLIBMM_API StaticRWLock;
/** Exception class for thread-related errors.
* @deprecated Use Glib::Threads::ThreadError instead.
*/
-_WRAP_GERROR(ThreadError, GThreadError, G_THREAD_ERROR, NO_GTYPE)
+_WRAP_GERROR(ThreadError, GThreadError, G_THREAD_ERROR, NO_GTYPE, GLIBMM_API)
/** Represents a running thread.
@@ -160,7 +160,7 @@ _WRAP_GERROR(ThreadError, GThreadError, G_THREAD_ERROR, NO_GTYPE)
*
* @deprecated Use Glib::Threads::Thread instead.
*/
-class Thread
+class GLIBMM_API Thread
{
public:
@@ -306,7 +306,7 @@ private:
*
* @deprecated Use Glib::Threads::Thread::Exit instead.
*/
-class Thread::Exit
+class GLIBMM_API Thread::Exit
{};
@@ -368,7 +368,7 @@ struct StaticMutex
*
* @deprecated Use Glib::Threads::Mutex instead.
*/
-class Mutex
+class GLIBMM_API Mutex
{
public:
class Lock;
@@ -423,7 +423,7 @@ private:
*
* @deprecated Use Glib::Threads::Mutex::Lock instead.
*/
-class Mutex::Lock
+class GLIBMM_API Mutex::Lock
{
public:
explicit inline Lock(Mutex& mutex);
@@ -479,7 +479,7 @@ struct StaticRecMutex
*
* @deprecated Use Glib::Threads::RecMutex instead.
*/
-class RecMutex : public StaticRecMutex
+class GLIBMM_API RecMutex : public StaticRecMutex
{
public:
class Lock;
@@ -497,7 +497,7 @@ private:
*
* @deprecated Use Glib::Threads::RecMutex instead.
*/
-class RecMutex::Lock
+class GLIBMM_API RecMutex::Lock
{
public:
explicit inline Lock(RecMutex& mutex);
@@ -556,7 +556,7 @@ struct StaticRWLock
*
* @deprecated Use Glib::Threads::RWLock instead.
*/
-class RWLock : public StaticRWLock
+class GLIBMM_API RWLock : public StaticRWLock
{
public:
class ReaderLock;
@@ -574,7 +574,7 @@ public:
*
* @deprecated Use Glib::Threads::RWLock::ReaderLock instead.
*/
-class RWLock::ReaderLock
+class GLIBMM_API RWLock::ReaderLock
{
public:
explicit inline ReaderLock(RWLock& rwlock);
@@ -600,7 +600,7 @@ private:
*
* @deprecated Use Glib::Threads::RWLock::WriterLock instead.
*/
-class RWLock::WriterLock
+class GLIBMM_API RWLock::WriterLock
{
public:
explicit inline WriterLock(RWLock& rwlock);
@@ -656,7 +656,7 @@ private:
*
* @deprecated Use Glib::Threads::Cond instead.
*/
-class Cond
+class GLIBMM_API Cond
{
public:
Cond();
diff --git a/glib/src/threads.hg b/glib/src/threads.hg
index c82a6130..b0bd37cd 100644
--- a/glib/src/threads.hg
+++ b/glib/src/threads.hg
@@ -59,15 +59,15 @@ enum NotLock { NOT_LOCK };
/// @deprecated Please use std::lock_guard or std::unique_lock instead.
enum TryLock { TRY_LOCK };
-class Mutex;
-class RecMutex;
-class RWLock;
+class GLIBMM_API Mutex;
+class GLIBMM_API RecMutex;
+class GLIBMM_API RWLock;
/** %Exception class for thread-related errors.
*
* @deprecated Please use std::lock_guard or std::unique_lock instead.
*/
-_WRAP_GERROR(ThreadError, GThreadError, G_THREAD_ERROR, NO_GTYPE)
+_WRAP_GERROR(ThreadError, GThreadError, G_THREAD_ERROR, NO_GTYPE, GLIBMM_API)
/** Represents a running thread.
@@ -87,7 +87,7 @@ _WRAP_GERROR(ThreadError, GThreadError, G_THREAD_ERROR, NO_GTYPE)
*
* @deprecated Please use std::thread instead.
*/
-class Thread
+class GLIBMM_API Thread
{
public:
@@ -185,7 +185,7 @@ private:
*
* @deprecated Please use std::thread instead.
*/
-class Thread::Exit
+class GLIBMM_API Thread::Exit
{};
/** A C++ wrapper for the C object.
@@ -210,7 +210,7 @@ Thread* wrap(GThread* gobject);
*
* @deprecated Please use std::mutex instead.
*/
-class Mutex
+class GLIBMM_API Mutex
{
public:
class Lock;
@@ -265,7 +265,7 @@ private:
*
* @deprecated Please use std::lock_guard or std::unique_lock instead.
*/
-class Mutex::Lock
+class GLIBMM_API Mutex::Lock
{
public:
explicit inline Lock(Mutex& mutex);
@@ -307,7 +307,7 @@ Mutex* wrap(GMutex* gobject);
*
* @deprecated Please use std::recursive_mutex instead.
*/
-class RecMutex
+class GLIBMM_API RecMutex
{
public:
class Lock;
@@ -333,7 +333,7 @@ private:
*
* @deprecated Please use std::lock_guard or std::unique_lock instead.
*/
-class RecMutex::Lock
+class GLIBMM_API RecMutex::Lock
{
public:
explicit inline Lock(RecMutex& mutex);
@@ -380,7 +380,7 @@ RecMutex* wrap(GRecMutex* gobject);
*
* @deprecated Please use std::lock_guard or std::unique_lock instead, with std::shared_timed_mutex.
*/
-class RWLock
+class GLIBMM_API RWLock
{
public:
class ReaderLock;
@@ -411,7 +411,7 @@ private:
*
* @deprecated Please use std::lock_guard or std::unique_lock instead, with std::shared_timed_mutex.
*/
-class RWLock::ReaderLock
+class GLIBMM_API RWLock::ReaderLock
{
public:
explicit inline ReaderLock(RWLock& rwlock);
@@ -437,7 +437,7 @@ private:
*
* @deprecated Please use std::lock_guard or std::unique_lock instead, with std::shared_timed_mutex.
*/
-class RWLock::WriterLock
+class GLIBMM_API RWLock::WriterLock
{
public:
explicit inline WriterLock(RWLock& rwlock);
@@ -494,7 +494,7 @@ private:
* }
* @endcode
*/
-class Cond
+class GLIBMM_API Cond
{
public:
Cond();
diff --git a/glib/src/timezone.hg b/glib/src/timezone.hg
index cc6105ad..35fe8586 100644
--- a/glib/src/timezone.hg
+++ b/glib/src/timezone.hg
@@ -54,9 +54,9 @@ _WRAP_ENUM(TimeType, GTimeType, NO_GTYPE)
* changing.
* @newin{2,30}
*/
-class TimeZone
+class GLIBMM_API TimeZone
{
- _CLASS_OPAQUE_COPYABLE(TimeZone, GTimeZone, NONE, g_time_zone_ref, g_time_zone_unref)
+ _CLASS_OPAQUE_COPYABLE(TimeZone, GTimeZone, NONE, g_time_zone_ref, g_time_zone_unref, GLIBMM_API)
_IGNORE(g_time_zone_ref, g_time_zone_unref)
public:
diff --git a/glib/src/uriutils.hg b/glib/src/uriutils.hg
index 05358a46..7078a7d8 100644
--- a/glib/src/uriutils.hg
+++ b/glib/src/uriutils.hg
@@ -42,6 +42,7 @@ namespace Glib
* @ingroup UriUtils
* @newin{2,16}
*/
+GLIBMM_API
std::string uri_unescape_string(const std::string& escaped_string, const std::string& illegal_characters =
std::string());
//TODO: Use iterator?
@@ -61,6 +62,7 @@ std::string uri_unescape_string(const std::string& escaped_string, const std::st
* @ingroup UriUtils
* @newin{2,16}
*/
+GLIBMM_API
std::string uri_parse_scheme(const std::string& uri);
/** Escapes a string for use in a URI.
@@ -80,6 +82,7 @@ std::string uri_parse_scheme(const std::string& uri);
* @ingroup UriUtils
* @newin{2,16}
*/
+GLIBMM_API
std::string uri_escape_string(const std::string& unescaped, const std::string& reserved_chars_allowed =
std::string(), bool allow_utf8 = true);
} // namespace Glib
diff --git a/glib/src/value_basictypes.h.m4 b/glib/src/value_basictypes.h.m4
index 5381b8bd..8cd90e77 100644
--- a/glib/src/value_basictypes.h.m4
+++ b/glib/src/value_basictypes.h.m4
@@ -29,7 +29,7 @@ LINE(]__line__[)dnl
* @ingroup glibmmValue
*/
template <>
-class Value<$1> : public ValueBase
+class GLIBMM_API Value<$1> : public ValueBase
{
public:
using CppType = $1;
diff --git a/glib/src/valuearray.hg b/glib/src/valuearray.hg
index 1e9bed08..326079cc 100644
--- a/glib/src/valuearray.hg
+++ b/glib/src/valuearray.hg
@@ -42,9 +42,9 @@ namespace Glib
* @deprecated Use std::vector<Glib::ValueBase*> or std::vector< Glib::Value<> >
* instead of Glib::ValueArray.
*/
-class ValueArray
+class GLIBMM_API ValueArray
{
- _CLASS_BOXEDTYPE(ValueArray, GValueArray, NONE, g_value_array_copy, g_value_array_free)
+ _CLASS_BOXEDTYPE(ValueArray, GValueArray, NONE, g_value_array_copy, g_value_array_free, GLIBMM_API)
_IGNORE(g_value_array_copy, g_value_array_free)
_CUSTOM_DEFAULT_CTOR
diff --git a/glib/src/variant.hg b/glib/src/variant.hg
index 74f080cc..1a0b4af7 100644
--- a/glib/src/variant.hg
+++ b/glib/src/variant.hg
@@ -72,7 +72,7 @@ class Bytes;
// Now (2014-01-30) it's also thrown by Gio::Action::parse_detailed_name().
/** %Exception class for Variant parse errors.
*/
-_WRAP_GERROR(VariantParseError, GVariantParseError, G_VARIANT_PARSE_ERROR, NO_GTYPE)
+_WRAP_GERROR(VariantParseError, GVariantParseError, G_VARIANT_PARSE_ERROR, NO_GTYPE, GLIBMM_API)
//TODO: Add this documentation from the API if we are confident of it for the C++ wrapper:
// #GVariant is completely threadsafe. A #GVariant instance can be
@@ -90,9 +90,9 @@ _WRAP_GERROR(VariantParseError, GVariantParseError, G_VARIANT_PARSE_ERROR, NO_GT
* @newin{2,28}
* @ingroup Variant
*/
-class VariantBase
+class GLIBMM_API VariantBase
{
- _CLASS_OPAQUE_COPYABLE(VariantBase, GVariant, NONE, g_variant_ref_sink, g_variant_unref)
+ _CLASS_OPAQUE_COPYABLE(VariantBase, GVariant, NONE, g_variant_ref_sink, g_variant_unref, GLIBMM_API)
_CUSTOM_CTOR_CAST()
_IGNORE(g_variant_ref, g_variant_ref_sink, g_variant_take_ref, g_variant_unref,
g_variant_get, g_variant_get_va)
@@ -293,7 +293,7 @@ V_CastTo VariantBase::cast_dynamic(const VariantBase& v)
* @newin{2,28}
* @ingroup Variant
*/
-class VariantStringBase : public VariantBase
+class GLIBMM_API VariantStringBase : public VariantBase
{
// Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(VariantStringBase, GVariant)
@@ -348,7 +348,7 @@ public:
* @newin{2,28}
* @ingroup Variant
*/
-class VariantContainerBase : public VariantBase
+class GLIBMM_API VariantContainerBase : public VariantBase
{
// Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(VariantContainerBase, GVariant)
@@ -434,7 +434,7 @@ protected:
};
template<>
-VariantContainerBase VariantBase::cast_dynamic<VariantContainerBase>(const VariantBase& v);
+GLIBMM_API VariantContainerBase VariantBase::cast_dynamic<VariantContainerBase>(const VariantBase& v);
/** Template class used for the specialization of the Variant<> classes.
* @newin{2,28}
@@ -459,7 +459,7 @@ public:
* @ingroup Variant
*/
template<>
-class Variant<VariantBase> : public VariantContainerBase
+class GLIBMM_API Variant<VariantBase> : public VariantContainerBase
{
// Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(Variant<VariantBase>, GVariant)
@@ -558,7 +558,7 @@ public:
* @ingroup Variant
*/
template<>
-class Variant<Glib::ustring> : public VariantStringBase
+class GLIBMM_API Variant<Glib::ustring> : public VariantStringBase
{
// Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(Variant<Glib::ustring>, GVariant)
@@ -601,7 +601,7 @@ public:
//TODO: When we can break ABI, remove this template specialization.
template<>
-Variant<Glib::ustring> VariantBase::cast_dynamic< Variant<Glib::ustring> >(const VariantBase& v);
+GLIBMM_API Variant<Glib::ustring> VariantBase::cast_dynamic< Variant<Glib::ustring> >(const VariantBase& v);
/** Specialization of Variant containing a Glib::DBusObjectPathString,
* for variants of type object path.
@@ -609,7 +609,7 @@ Variant<Glib::ustring> VariantBase::cast_dynamic< Variant<Glib::ustring> >(const
* @ingroup Variant
*/
template<>
-class Variant<Glib::DBusObjectPathString> : public VariantStringBase
+class GLIBMM_API Variant<Glib::DBusObjectPathString> : public VariantStringBase
{
// Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(Variant<Glib::DBusObjectPathString>, GVariant)
@@ -655,7 +655,7 @@ public:
* @ingroup Variant
*/
template<>
-class Variant<Glib::DBusSignatureString> : public VariantStringBase
+class GLIBMM_API Variant<Glib::DBusSignatureString> : public VariantStringBase
{
// Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(Variant<Glib::DBusSignatureString>, GVariant)
@@ -702,7 +702,7 @@ public:
* @ingroup Variant
*/
template<>
-class Variant<std::string> : public VariantStringBase
+class GLIBMM_API Variant<std::string> : public VariantStringBase
{
// Trick gmmproc into thinking this is derived from GVariant to wrap some methods.
_CLASS_GENERIC(Variant<std::string>, GVariant)
@@ -741,7 +741,7 @@ public:
//TODO: When we can break ABI, remove this template specialization.
template<>
-Variant<std::string> VariantBase::cast_dynamic< Variant<std::string> >(const VariantBase& v);
+GLIBMM_API Variant<std::string> VariantBase::cast_dynamic< Variant<std::string> >(const VariantBase& v);
/** Specialization of Variant containing a dictionary entry. See also
* Variant< std::map<K, V> >.
@@ -867,7 +867,7 @@ public:
* @ingroup Variant
*/
template<>
-class Variant< std::vector<Glib::ustring> > : public VariantContainerBase
+class GLIBMM_API Variant< std::vector<Glib::ustring> > : public VariantContainerBase
{
public:
using CppType = Glib::ustring ;
@@ -931,7 +931,7 @@ public:
* @ingroup Variant
*/
template<>
-class Variant<std::vector<Glib::DBusObjectPathString>> : public VariantContainerBase
+class GLIBMM_API Variant<std::vector<Glib::DBusObjectPathString>> : public VariantContainerBase
{
public:
using CppType = Glib::DBusObjectPathString;
@@ -993,7 +993,7 @@ public:
* @ingroup Variant
*/
template<>
-class Variant< std::vector<std::string> > : public VariantContainerBase
+class GLIBMM_API Variant< std::vector<std::string> > : public VariantContainerBase
{
public:
using CppType = std::string ;
@@ -1673,7 +1673,7 @@ VariantIter Variant<std::tuple<Types...>>::get_iter() const
// This is needed so Glib::VariantBase can be used with
// Glib::Value and _WRAP_PROPERTY in Gio::Action and elsewhere.
template <>
-class Value<Glib::VariantBase> : public ValueBase_Variant
+class GLIBMM_API Value<Glib::VariantBase> : public ValueBase_Variant
{
public:
using CppType = Glib::VariantBase;
diff --git a/glib/src/variant_basictypes.h.m4 b/glib/src/variant_basictypes.h.m4
index 54151771..199295b9 100644
--- a/glib/src/variant_basictypes.h.m4
+++ b/glib/src/variant_basictypes.h.m4
@@ -39,7 +39,7 @@ LINE(]__line__[)dnl
* @ingroup Variant
*/
template <>
-class Variant<$1> : public VariantBase
+class GLIBMM_API Variant<$1> : public VariantBase
{
public:
using CType = $2;
diff --git a/glib/src/variantdict.hg b/glib/src/variantdict.hg
index 1f9a5a16..4b69a085 100644
--- a/glib/src/variantdict.hg
+++ b/glib/src/variantdict.hg
@@ -32,11 +32,11 @@ namespace Glib
*
* newin{2,40}
*/
-class VariantDict final
+class GLIBMM_API VariantDict final
{
//GVariantDict is registered as a boxed type, but it has ref/unref functions instead of copy/free,
//so we use it via RefPtr.
- _CLASS_OPAQUE_REFCOUNTED(VariantDict, GVariantDict, NONE, g_variant_dict_ref, g_variant_dict_unref)
+ _CLASS_OPAQUE_REFCOUNTED(VariantDict, GVariantDict, NONE, g_variant_dict_ref, g_variant_dict_unref,
GLIBMM_API)
_IGNORE(g_variant_dict_ref, g_variant_dict_unref, g_variant_dict_init)
public:
diff --git a/glib/src/variantiter.hg b/glib/src/variantiter.hg
index 401bc4ad..a35c2e59 100644
--- a/glib/src/variantiter.hg
+++ b/glib/src/variantiter.hg
@@ -20,8 +20,8 @@ _DEFS(glibmm,glib)
namespace Glib
{
-class VariantBase;
-class VariantContainerBase;
+class GLIBMM_API VariantBase;
+class GLIBMM_API VariantContainerBase;
//This can't be like a real iterator (like Gtk::TextIter),
//because g_iter_value_get_next_value() both gets a value and changes the iterator.
@@ -30,9 +30,9 @@ class VariantContainerBase;
* VariantBase containers such as arrays.
* @newin{2,28}
*/
-class VariantIter
+class GLIBMM_API VariantIter
{
- _CLASS_OPAQUE_COPYABLE(VariantIter, GVariantIter, NONE, g_variant_iter_copy, g_variant_iter_free)
+ _CLASS_OPAQUE_COPYABLE(VariantIter, GVariantIter, NONE, g_variant_iter_copy, g_variant_iter_free,
GLIBMM_API)
_IGNORE(g_variant_iter_copy, g_variant_iter_free)
public:
//TODO: The variant parameter should be a VariantContainerBase.
diff --git a/glib/src/varianttype.hg b/glib/src/varianttype.hg
index a326e111..848c4f99 100644
--- a/glib/src/varianttype.hg
+++ b/glib/src/varianttype.hg
@@ -88,9 +88,9 @@ namespace Glib
* @newin{2,28}
* @ingroup Variant
*/
-class VariantType
+class GLIBMM_API VariantType
{
- _CLASS_OPAQUE_COPYABLE(VariantType, GVariantType, NONE, g_variant_type_copy, g_variant_type_free)
+ _CLASS_OPAQUE_COPYABLE(VariantType, GVariantType, NONE, g_variant_type_copy, g_variant_type_free,
GLIBMM_API)
_IGNORE(g_variant_type_copy, g_variant_type_free)
public:
@@ -193,63 +193,63 @@ public:
_IGNORE(g_variant_type_info_get)
};
-extern const VariantType VARIANT_TYPE_BOOL;
+extern GLIBMM_API const VariantType VARIANT_TYPE_BOOL;
-extern const VariantType VARIANT_TYPE_BYTE;
+extern GLIBMM_API const VariantType VARIANT_TYPE_BYTE;
-extern const VariantType VARIANT_TYPE_INT16;
+extern GLIBMM_API const VariantType VARIANT_TYPE_INT16;
-extern const VariantType VARIANT_TYPE_UINT16;
+extern GLIBMM_API const VariantType VARIANT_TYPE_UINT16;
-extern const VariantType VARIANT_TYPE_INT32;
+extern GLIBMM_API const VariantType VARIANT_TYPE_INT32;
-extern const VariantType VARIANT_TYPE_UINT32;
+extern GLIBMM_API const VariantType VARIANT_TYPE_UINT32;
-extern const VariantType VARIANT_TYPE_INT64;
+extern GLIBMM_API const VariantType VARIANT_TYPE_INT64;
-extern const VariantType VARIANT_TYPE_UINT64;
+extern GLIBMM_API const VariantType VARIANT_TYPE_UINT64;
-extern const VariantType VARIANT_TYPE_DOUBLE;
+extern GLIBMM_API const VariantType VARIANT_TYPE_DOUBLE;
-extern const VariantType VARIANT_TYPE_STRING;
+extern GLIBMM_API const VariantType VARIANT_TYPE_STRING;
-extern const VariantType VARIANT_TYPE_OBJECT_PATH;
+extern GLIBMM_API const VariantType VARIANT_TYPE_OBJECT_PATH;
-extern const VariantType VARIANT_TYPE_SIGNATURE;
+extern GLIBMM_API const VariantType VARIANT_TYPE_SIGNATURE;
-extern const VariantType VARIANT_TYPE_VARIANT;
+extern GLIBMM_API const VariantType VARIANT_TYPE_VARIANT;
-extern const VariantType VARIANT_TYPE_HANDLE;
+extern GLIBMM_API const VariantType VARIANT_TYPE_HANDLE;
-extern const VariantType VARIANT_TYPE_UNIT;
+extern GLIBMM_API const VariantType VARIANT_TYPE_UNIT;
-extern const VariantType VARIANT_TYPE_ANY;
+extern GLIBMM_API const VariantType VARIANT_TYPE_ANY;
-extern const VariantType VARIANT_TYPE_BASIC;
+extern GLIBMM_API const VariantType VARIANT_TYPE_BASIC;
-extern const VariantType VARIANT_TYPE_MAYBE;
+extern GLIBMM_API const VariantType VARIANT_TYPE_MAYBE;
-extern const VariantType VARIANT_TYPE_ARRAY;
+extern GLIBMM_API const VariantType VARIANT_TYPE_ARRAY;
-extern const VariantType VARIANT_TYPE_TUPLE;
+extern GLIBMM_API const VariantType VARIANT_TYPE_TUPLE;
-extern const VariantType VARIANT_TYPE_DICT_ENTRY;
+extern GLIBMM_API const VariantType VARIANT_TYPE_DICT_ENTRY;
-extern const VariantType VARIANT_TYPE_DICTIONARY;
+extern GLIBMM_API const VariantType VARIANT_TYPE_DICTIONARY;
-extern const VariantType VARIANT_TYPE_STRING_ARRAY;
+extern GLIBMM_API const VariantType VARIANT_TYPE_STRING_ARRAY;
-extern const VariantType VARIANT_TYPE_OBJECT_PATH_ARRAY;
+extern GLIBMM_API const VariantType VARIANT_TYPE_OBJECT_PATH_ARRAY;
-extern const VariantType VARIANT_TYPE_BYTESTRING;
+extern GLIBMM_API const VariantType VARIANT_TYPE_BYTESTRING;
-extern const VariantType VARIANT_TYPE_BYTESTRING_ARRAY;
+extern GLIBMM_API const VariantType VARIANT_TYPE_BYTESTRING_ARRAY;
#ifndef DOXYGEN_SHOULD_SKIP_THIS
// This is needed so Glib::VariantType can be used with
// Glib::Value and _WRAP_PROPERTY in Gio::Action and elsewhere.
template <>
-class Value<Glib::VariantType> : public ValueBase_Boxed
+class GLIBMM_API Value<Glib::VariantType> : public ValueBase_Boxed
{
public:
using CppType = Glib::VariantType;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]