summaryrefslogtreecommitdiffhomepage
path: root/options
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2018-05-30 07:21:23 +0200
committerStanislaw Halik <sthalik@misaki.pl>2018-05-30 07:26:21 +0200
commit561b89409551119833acf7abbb77d4afd632a657 (patch)
tree7d8617875a958c37310ba2edab1f8e702d823d6a /options
parent9f1595131f15e47d12c6a633e45d8ef837bddd75 (diff)
compat/linkage: extern template works on GNU now
Diffstat (limited to 'options')
-rw-r--r--options/value.cpp2
-rw-r--r--options/value.hpp44
2 files changed, 22 insertions, 24 deletions
diff --git a/options/value.cpp b/options/value.cpp
index 5796dcd6..0e0725f8 100644
--- a/options/value.cpp
+++ b/options/value.cpp
@@ -1,5 +1,5 @@
// instantiate the "template class" value<t> symbols
-#define OTR_OPT_VALUE OTR_TEMPLATE_EXPORT
+#define OTR_INST_VALUE OTR_TEMPLATE_EXPORT
#include "value.hpp"
diff --git a/options/value.hpp b/options/value.hpp
index a95626f7..47a4d631 100644
--- a/options/value.hpp
+++ b/options/value.hpp
@@ -15,6 +15,7 @@
#include "base-value.hpp"
#include "value-traits.hpp"
#include "compat/macros.hpp"
+#include "compat/linkage-macros.hpp"
#include <cstdio>
#include <type_traits>
@@ -142,30 +143,27 @@ private:
const t def;
};
-#if defined _MSC_VER
-
-# if !defined OTR_OPT_VALUE
-# define OTR_OPT_VALUE OTR_TEMPLATE_IMPORT
-# endif
-
- OTR_OPT_VALUE value<double>;
- OTR_OPT_VALUE value<float>;
- OTR_OPT_VALUE value<int>;
- OTR_OPT_VALUE value<bool>;
- OTR_OPT_VALUE value<QString>;
- OTR_OPT_VALUE value<slider_value>;
- OTR_OPT_VALUE value<QPointF>;
- OTR_OPT_VALUE value<QVariant>;
-
- OTR_OPT_VALUE value<QList<double>>;
- OTR_OPT_VALUE value<QList<float>>;
- OTR_OPT_VALUE value<QList<int>>;
- OTR_OPT_VALUE value<QList<bool>>;
- OTR_OPT_VALUE value<QList<QString>>;
- OTR_OPT_VALUE value<QList<slider_value>>;
- OTR_OPT_VALUE value<QList<QPointF>>;
- OTR_OPT_VALUE value<QList<QVariant>>;
+#if !defined OTR_INST_VALUE
+# define OTR_INST_VALUE OTR_TEMPLATE_IMPORT
+#endif
+#if !defined __APPLE__
+ OTR_INST_VALUE(value<double>);
+ OTR_INST_VALUE(value<float>);
+ OTR_INST_VALUE(value<int>);
+ OTR_INST_VALUE(value<bool>);
+ OTR_INST_VALUE(value<QString>);
+ OTR_INST_VALUE(value<slider_value>);
+ OTR_INST_VALUE(value<QPointF>);
+ OTR_INST_VALUE(value<QVariant>);
+ OTR_INST_VALUE(value<QList<double>>);
+ OTR_INST_VALUE(value<QList<float>>);
+ OTR_INST_VALUE(value<QList<int>>);
+ OTR_INST_VALUE(value<QList<bool>>);
+ OTR_INST_VALUE(value<QList<QString>>);
+ OTR_INST_VALUE(value<QList<slider_value>>);
+ OTR_INST_VALUE(value<QList<QPointF>>);
+ OTR_INST_VALUE(value<QList<QVariant>>);
#endif
} // ns options