diff options
author | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-03-05 15:45:00 +0800 |
---|---|---|
committer | Chun-wei Fan <fanchunwei@src.gnome.org> | 2020-03-07 23:06:39 +0800 |
commit | b55811ea37fc26f6815a18a4d6dc24dae78354fb (patch) | |
tree | 4377089dca353e918522dc4aa19db1b16d81d8e2 /glib | |
parent | 08e7d748f9ab2882440ef6925e3e95ac509167f2 (diff) | |
download | glibmm-b55811ea37fc26f6815a18a4d6dc24dae78354fb.tar.gz |
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.
Diffstat (limited to 'glib')
-rw-r--r-- | glib/src/binding.hg | 4 | ||||
-rw-r--r-- | glib/src/bytearray.hg | 4 | ||||
-rw-r--r-- | glib/src/bytes.hg | 4 | ||||
-rw-r--r-- | glib/src/checksum.hg | 4 | ||||
-rw-r--r-- | glib/src/convert.hg | 19 | ||||
-rw-r--r-- | glib/src/date.hg | 2 | ||||
-rw-r--r-- | glib/src/datetime.hg | 4 | ||||
-rw-r--r-- | glib/src/fileutils.hg | 14 | ||||
-rw-r--r-- | glib/src/iochannel.hg | 7 | ||||
-rw-r--r-- | glib/src/keyfile.hg | 6 | ||||
-rw-r--r-- | glib/src/markup.hg | 9 | ||||
-rw-r--r-- | glib/src/miscutils.hg | 31 | ||||
-rw-r--r-- | glib/src/module.hg | 2 | ||||
-rw-r--r-- | glib/src/optioncontext.hg | 4 | ||||
-rw-r--r-- | glib/src/optionentry.hg | 2 | ||||
-rw-r--r-- | glib/src/optiongroup.hg | 2 | ||||
-rw-r--r-- | glib/src/regex.hg | 8 | ||||
-rw-r--r-- | glib/src/shell.hg | 5 | ||||
-rw-r--r-- | glib/src/spawn.hg | 11 | ||||
-rw-r--r-- | glib/src/timezone.hg | 4 | ||||
-rw-r--r-- | glib/src/uriutils.hg | 3 | ||||
-rw-r--r-- | glib/src/value_basictypes.h.m4 | 2 | ||||
-rw-r--r-- | glib/src/variant.hg | 30 | ||||
-rw-r--r-- | glib/src/variant_basictypes.h.m4 | 2 | ||||
-rw-r--r-- | glib/src/variantdict.hg | 4 | ||||
-rw-r--r-- | glib/src/variantiter.hg | 8 | ||||
-rw-r--r-- | glib/src/varianttype.hg | 58 |
27 files changed, 162 insertions, 91 deletions
diff --git a/glib/src/binding.hg b/glib/src/binding.hg index 98bc3fc6..59a94624 100644 --- a/glib/src/binding.hg +++ b/glib/src/binding.hg @@ -98,9 +98,9 @@ namespace Glib * * @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: _WRAP_ENUM(Flags, GBindingFlags, newin "2,44") diff --git a/glib/src/bytearray.hg b/glib/src/bytearray.hg index 518080e8..5a1235f0 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) _IS_REFCOUNTED_BOXEDTYPE _IGNORE(g_byte_array_ref, g_byte_array_unref) diff --git a/glib/src/bytes.hg b/glib/src/bytes.hg index 60b92d17..db0a23f7 100644 --- a/glib/src/bytes.hg +++ b/glib/src/bytes.hg @@ -49,9 +49,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 2bb8e580..f07ec967 100644 --- a/glib/src/checksum.hg +++ b/glib/src/checksum.hg @@ -37,9 +37,9 @@ namespace Glib * * @newin{2,16} */ -class Checksum +class GLIBMM_API Checksum { - _CLASS_BOXEDTYPE(Checksum, GChecksum, NONE, g_checksum_copy, g_checksum_free) + _CLASS_BOXEDTYPE(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..d07e8e35 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, decl_prefix 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 1633d07a..53356898 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 657efecf..1cd1d278 100644 --- a/glib/src/datetime.hg +++ b/glib/src/datetime.hg @@ -55,13 +55,13 @@ using TimeSpan = GTimeSpan; * in length). * @newin{2,30} */ -class DateTime +class GLIBMM_API DateTime { // GDateTime is refcounted, but Glib::DateTime is not. // GDateTime is immutable. Therefore, there is no problem having several // Glib::DateTime instances wrap the same GDateTime, and it's easier to use // Glib::DateTime without Glib::RefPtr. - _CLASS_BOXEDTYPE(DateTime, GDateTime, NONE, g_date_time_ref, g_date_time_unref) + _CLASS_BOXEDTYPE(DateTime, GDateTime, NONE, g_date_time_ref, g_date_time_unref, GLIBMM_API) _IGNORE(g_date_time_ref, g_date_time_unref) _IGNORE(g_date_time_new_from_timeval_local, g_date_time_new_from_timeval_utc, g_date_time_to_timeval)dnl // deprecated diff --git a/glib/src/fileutils.hg b/glib/src/fileutils.hg index 1cbe3ebc..ecbd77b5 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#, + decl_prefix GLIBMM_API ) /** @var FileError::Code FileError::EXISTS @@ -142,7 +143,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; @@ -186,7 +187,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; @@ -263,6 +264,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. @@ -278,6 +280,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 @@ -295,6 +298,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 @@ -309,6 +313,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. @@ -317,6 +322,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. @@ -354,11 +360,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 8c761d55..15cdf232 100644 --- a/glib/src/iochannel.hg +++ b/glib/src/iochannel.hg @@ -72,7 +72,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#, + decl_prefix GLIBMM_API) #ifndef DOXYGEN_SHOULD_SKIP_THIS class GlibmmIOChannel; @@ -89,7 +90,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) @@ -438,7 +439,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 a2641bb9..fcf20583 100644 --- a/glib/src/keyfile.hg +++ b/glib/src/keyfile.hg @@ -33,7 +33,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, decl_prefix 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 @@ -90,9 +90,9 @@ _WRAP_GERROR(KeyFileError, GKeyFileError, G_KEY_FILE_ERROR, NO_GTYPE) * * @newin{2,14} */ -class KeyFile final +class GLIBMM_API KeyFile final { - _CLASS_OPAQUE_REFCOUNTED(KeyFile, GKeyFile, g_key_file_new, g_key_file_ref, g_key_file_unref) + _CLASS_OPAQUE_REFCOUNTED(KeyFile, GKeyFile, g_key_file_new, g_key_file_ref, g_key_file_unref, GLIBMM_API) _IGNORE(g_key_file_new, g_key_file_ref, g_key_file_unref, g_key_file_free) public: diff --git a/glib/src/markup.hg b/glib/src/markup.hg index 8e014ba7..fa34f390 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, decl_prefix 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); _WRAP_ENUM(ParseFlags, GMarkupParseFlags, NO_GTYPE) @@ -118,7 +119,7 @@ _WRAP_ENUM(ParseFlags, GMarkupParseFlags, NO_GTYPE) * 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; @@ -147,7 +148,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; @@ -243,7 +244,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 045ca561..1cba437d 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(UStringView application_name); /** Gets the name of the program. @@ -68,11 +70,13 @@ void set_application_name(UStringView 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(StdStringView prgname); /** Returns the value of an environment variable. The name and value @@ -86,6 +90,7 @@ void set_prgname(StdStringView 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(StdStringView variable, bool& found); /** Returns the value of an environment variable. The name and value @@ -98,6 +103,7 @@ std::string getenv(StdStringView 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(StdStringView variable); @@ -114,6 +120,7 @@ std::string getenv(StdStringView 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(StdStringView variable, StdStringView value, bool overwrite = true); /** Removes an environment variable from the environment. @@ -125,6 +132,7 @@ bool setenv(StdStringView variable, StdStringView value, bool overwrite = true); * * @param variable: the environment variable to remove. It must not contain '='. **/ +GLIBMM_API void unsetenv(StdStringView variable); /** Gets the names of all variables set in the environment. @@ -138,6 +146,7 @@ void unsetenv(StdStringView variable); * * @return Vector of environment names. */ +GLIBMM_API std::vector<std::string> listenv(); /** Gets the user name of the current user. @@ -149,6 +158,7 @@ std::vector<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. @@ -160,6 +170,7 @@ std::string get_user_name(); * * @return The current user's real name. */ +GLIBMM_API std::string get_real_name(); /** Return a name for the machine. @@ -177,11 +188,13 @@ std::string get_real_name(); * * @newin{2,64} */ +GLIBMM_API Glib::ustring get_host_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. @@ -190,11 +203,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(); /** Returns the full path of a special directory using its logical id. @@ -214,6 +229,7 @@ std::string get_current_dir(); * * @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 @@ -224,6 +240,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 @@ -234,6 +251,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. @@ -241,6 +259,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. @@ -248,6 +267,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 @@ -258,6 +278,7 @@ std::vector<std::string> get_system_config_dirs(); * * @newin{2,14} */ +GLIBMM_API std::string get_user_cache_dir(); /** Returns a directory that is unique to the current user on the local system. @@ -268,6 +289,7 @@ std::string get_user_cache_dir(); * * @newin{2,64} */ +GLIBMM_API std::string get_user_runtime_dir(); /** Returns @c true if the given @a filename is an absolute file name, i.e.\ it @@ -276,6 +298,7 @@ std::string get_user_runtime_dir(); * @param filename A file name. * @return Whether @a filename is an absolute path. */ +GLIBMM_API bool path_is_absolute(StdStringView filename); /** Returns the remaining part of @a filename after the root component, @@ -284,12 +307,14 @@ bool path_is_absolute(StdStringView filename); * @param filename A file name. * @return The file name without the root component, or <tt>""</tt>. */ +GLIBMM_API std::string path_skip_root(StdStringView 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(StdStringView filename); /** Gets the directory components of a file name. @@ -297,6 +322,7 @@ std::string path_get_basename(StdStringView filename); * @param filename The name of the file. * @return The directory components of the file. */ +GLIBMM_API std::string path_get_dirname(StdStringView filename); /** Gets the canonical file name from @a filename. @@ -322,6 +348,7 @@ std::string path_get_dirname(StdStringView filename); * * @newin{2,64} */ +GLIBMM_API std::string canonicalize_filename(StdStringView filename, StdStringView relative_to = nullptr); /** Creates a filename from a series of elements using the correct @@ -333,6 +360,7 @@ std::string canonicalize_filename(StdStringView filename, StdStringView relative * @param elements A vector holding the elements of the path to build. * @return The resulting path. */ +GLIBMM_API std::string build_filename(const std::vector<std::string>& elements); /** Creates a filename from one or more elements using the correct separator for filenames. @@ -382,6 +410,7 @@ std::string build_filename(const Strings&... strings) * @param elements A vector holding the elements of the path to build. * @return The resulting path. */ +GLIBMM_API std::string build_path(const std::string& separator, const std::vector<std::string>& elements); @@ -405,6 +434,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(StdStringView program); /** Formats a size (for example the size of a file) into a human readable string. @@ -422,6 +452,7 @@ std::string find_program_in_path(StdStringView program); * * @newin{2,46} */ +GLIBMM_API Glib::ustring format_size(guint64 size, FormatSizeFlags flags = FormatSizeFlags::DEFAULT); /** @} group MiscUtils */ diff --git a/glib/src/module.hg b/glib/src/module.hg index 89ddedf9..acc88bec 100644 --- a/glib/src/module.hg +++ b/glib/src/module.hg @@ -35,7 +35,7 @@ namespace Glib * (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 ad696ade..414b365c 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, decl_prefix 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 bf9847d7..9e9a4133 100644 --- a/glib/src/optionentry.hg +++ b/glib/src/optionentry.hg @@ -38,7 +38,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 bf690896..aebb03bb 100644 --- a/glib/src/optiongroup.hg +++ b/glib/src/optiongroup.hg @@ -51,7 +51,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 2d7c6037..7cd4a326 100644 --- a/glib/src/regex.hg +++ b/glib/src/regex.hg @@ -33,7 +33,7 @@ namespace Glib /** Exception class for Regex */ -_WRAP_GERROR(RegexError, GRegexError, G_REGEX_ERROR, NO_GTYPE) +_WRAP_GERROR(RegexError, GRegexError, G_REGEX_ERROR, NO_GTYPE, decl_prefix GLIBMM_API) class MatchInfo; @@ -90,9 +90,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: @@ -220,7 +220,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 50736ea8..b10eb9a2 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, decl_prefix 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 std::vector<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 @@ std::vector<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 63ef5b55..40443c0f 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#, decl_prefix 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 std::vector<std::string>& argv, const std::vector<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 std::vector<std::string>& argv, SpawnFlags flags = SpawnFlags::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 std::vector<std::string>& argv, const std::vector<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 std::vector<std::string>& argv, SpawnFlags flags = SpawnFlags::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 std::vector<std::string>& argv, const std::vector<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 std::vector<std::string>& argv, SpawnFlags flags = SpawnFlags::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/timezone.hg b/glib/src/timezone.hg index 1d94ba01..ba7101f7 100644 --- a/glib/src/timezone.hg +++ b/glib/src/timezone.hg @@ -51,13 +51,13 @@ _WRAP_ENUM(TimeType, GTimeType, NO_GTYPE) * changing. * @newin{2,30} */ -class TimeZone +class GLIBMM_API TimeZone { // GTimeZone is refcounted, but Glib::TimeZone is not. // GTimeZone is immutable. Therefore, there is no problem having several // Glib::TimeZone instances wrap the same GTimeZone, and it's easier to use // Glib::TimeZone without Glib::RefPtr. - _CLASS_BOXEDTYPE(TimeZone, GTimeZone, NONE, g_time_zone_ref, g_time_zone_unref) + _CLASS_BOXEDTYPE(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 167068b9..ef9102b6 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 = {}); //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 = {}, bool allow_utf8 = true); } // namespace Glib diff --git a/glib/src/value_basictypes.h.m4 b/glib/src/value_basictypes.h.m4 index 40d980e2..342f1e93 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/variant.hg b/glib/src/variant.hg index 114d84c9..0918d4d7 100644 --- a/glib/src/variant.hg +++ b/glib/src/variant.hg @@ -71,7 +71,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, decl_prefix 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 @@ -89,9 +89,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) @@ -280,7 +280,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) @@ -335,7 +335,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) @@ -421,7 +421,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} @@ -446,7 +446,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) @@ -545,7 +545,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) @@ -592,7 +592,7 @@ public: * @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) @@ -638,7 +638,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) @@ -685,7 +685,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) @@ -846,7 +846,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 ; @@ -910,7 +910,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; @@ -972,7 +972,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 ; @@ -1593,7 +1593,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 c81dc29a..ede976e6 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; * VariantContainerBase 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: explicit VariantIter(const VariantContainerBase& variant); diff --git a/glib/src/varianttype.hg b/glib/src/varianttype.hg index 50ddac16..870be3d9 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: @@ -191,63 +191,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; |