-fvisibility=hidden fixes on osx with -flto
This commit is contained in:
parent
1c9afc9a86
commit
d61efc0b5a
6 changed files with 20 additions and 15 deletions
|
@ -333,8 +333,8 @@ operator>>(std::istream & is, mapnik::enumeration<ENUM, THE_MAX> & e)
|
|||
*/
|
||||
|
||||
#define IMPLEMENT_ENUM( name, strings ) \
|
||||
template <> const char ** name ::our_strings_ = strings; \
|
||||
template <> std::string name ::our_name_ = #name; \
|
||||
template <> bool name ::our_verified_flag_( name ::verify_mapnik_enum(__FILE__, __LINE__));
|
||||
template <> MAPNIK_DECL const char ** name ::our_strings_ = strings; \
|
||||
template <> MAPNIK_DECL std::string name ::our_name_ = #name; \
|
||||
template <> MAPNIK_DECL bool name ::our_verified_flag_( name ::verify_mapnik_enum(__FILE__, __LINE__));
|
||||
|
||||
#endif // MAPNIK_ENUMERATION_HPP
|
||||
|
|
|
@ -36,7 +36,7 @@ namespace mapnik
|
|||
* be rendered atomically when the filter attached to
|
||||
* this rule is matched.
|
||||
*/
|
||||
struct group_rule
|
||||
struct MAPNIK_DECL group_rule
|
||||
{
|
||||
using symbolizers = std::vector<symbolizer>;
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@
|
|||
|
||||
// mapnik
|
||||
#include <mapnik/global.hpp>
|
||||
#include <mapnik/config.hpp>
|
||||
|
||||
// stl
|
||||
#include <cassert>
|
||||
|
@ -34,7 +35,7 @@
|
|||
namespace mapnik
|
||||
{
|
||||
template <typename T>
|
||||
class ImageData
|
||||
class MAPNIK_DECL ImageData
|
||||
{
|
||||
public:
|
||||
using pixel_type = T;
|
||||
|
|
|
@ -90,7 +90,7 @@ using dash_array = std::vector<std::pair<double,double> >;
|
|||
class text_placements;
|
||||
using text_placements_ptr = std::shared_ptr<text_placements>;
|
||||
|
||||
struct MAPNIK_DECL symbolizer_base
|
||||
struct MAPNIK_DECL symbolizer_base
|
||||
{
|
||||
using value_type = boost::variant<value_bool,
|
||||
value_integer,
|
||||
|
@ -453,20 +453,20 @@ struct extract_raw_value : public boost::static_visitor<T1>
|
|||
};
|
||||
|
||||
template <typename T>
|
||||
void put(symbolizer_base & sym, keys key, T const& val)
|
||||
MAPNIK_DECL void put(symbolizer_base & sym, keys key, T const& val)
|
||||
{
|
||||
constexpr bool enum_ = std::is_enum<T>::value;
|
||||
detail::put_impl<T, enum_ >::apply(sym, key, val);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
bool has_key(symbolizer_base const& sym, keys key)
|
||||
MAPNIK_DECL bool has_key(symbolizer_base const& sym, keys key)
|
||||
{
|
||||
return (sym.properties.count(key) == 1);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
T get(symbolizer_base const& sym, keys key, mapnik::feature_impl const& feature, attributes const& vars, T const& _default_value = T())
|
||||
MAPNIK_DECL T get(symbolizer_base const& sym, keys key, mapnik::feature_impl const& feature, attributes const& vars, T const& _default_value = T())
|
||||
{
|
||||
using const_iterator = symbolizer_base::cont_type::const_iterator;
|
||||
const_iterator itr = sym.properties.find(key);
|
||||
|
@ -478,7 +478,7 @@ T get(symbolizer_base const& sym, keys key, mapnik::feature_impl const& feature,
|
|||
}
|
||||
|
||||
template <typename T>
|
||||
boost::optional<T> get_optional(symbolizer_base const& sym, keys key, mapnik::feature_impl const& feature, attributes const& vars)
|
||||
MAPNIK_DECL boost::optional<T> get_optional(symbolizer_base const& sym, keys key, mapnik::feature_impl const& feature, attributes const& vars)
|
||||
{
|
||||
using const_iterator = symbolizer_base::cont_type::const_iterator;
|
||||
const_iterator itr = sym.properties.find(key);
|
||||
|
@ -490,7 +490,7 @@ boost::optional<T> get_optional(symbolizer_base const& sym, keys key, mapnik::fe
|
|||
}
|
||||
|
||||
template <typename T>
|
||||
T get(symbolizer_base const& sym, keys key, T const& _default_value = T())
|
||||
MAPNIK_DECL T get(symbolizer_base const& sym, keys key, T const& _default_value = T())
|
||||
{
|
||||
using const_iterator = symbolizer_base::cont_type::const_iterator;
|
||||
const_iterator itr = sym.properties.find(key);
|
||||
|
@ -502,7 +502,7 @@ T get(symbolizer_base const& sym, keys key, T const& _default_value = T())
|
|||
}
|
||||
|
||||
template <typename T>
|
||||
boost::optional<T> get_optional(symbolizer_base const& sym, keys key)
|
||||
MAPNIK_DECL boost::optional<T> get_optional(symbolizer_base const& sym, keys key)
|
||||
{
|
||||
using const_iterator = symbolizer_base::cont_type::const_iterator;
|
||||
const_iterator itr = sym.properties.find(key);
|
||||
|
@ -520,8 +520,8 @@ constexpr auto to_integral(Enum e) -> typename std::underlying_type<Enum>::type
|
|||
}
|
||||
|
||||
using property_meta_type = std::tuple<const char*, mapnik::symbolizer_base::value_type, std::function<std::string(enumeration_wrapper)>, property_types>;
|
||||
property_meta_type const& get_meta(mapnik::keys key);
|
||||
mapnik::keys get_key(std::string const& name);
|
||||
MAPNIK_DECL property_meta_type const& get_meta(mapnik::keys key);
|
||||
MAPNIK_DECL mapnik::keys get_key(std::string const& name);
|
||||
|
||||
// concrete symbolizer types
|
||||
struct MAPNIK_DECL point_symbolizer : public symbolizer_base {};
|
||||
|
|
|
@ -23,6 +23,9 @@
|
|||
#ifndef MAPNIK_VALUE_TYPES_HPP
|
||||
#define MAPNIK_VALUE_TYPES_HPP
|
||||
|
||||
// mapnik
|
||||
#include <mapnik/config.hpp>
|
||||
|
||||
// icu
|
||||
#include <unicode/unistr.h> // for UnicodeString
|
||||
|
||||
|
@ -42,7 +45,7 @@ using value_double = double;
|
|||
using value_unicode_string = U_NAMESPACE_QUALIFIER UnicodeString;
|
||||
using value_bool = bool;
|
||||
|
||||
struct value_null
|
||||
struct MAPNIK_DECL value_null
|
||||
{
|
||||
bool operator==(value_null const&) const
|
||||
{
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <mapnik/geom_util.hpp>
|
||||
#include <mapnik/timer.hpp>
|
||||
#include <mapnik/value_types.hpp>
|
||||
#include <mapnik/boolean.hpp>
|
||||
|
||||
#include <gdal_version.h>
|
||||
|
||||
|
|
Loading…
Reference in a new issue