diff options
author | Noel Grandin <noel@peralex.com> | 2018-06-03 13:07:55 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-06-06 08:55:02 +0200 |
commit | 9739c37d8ad7c6fca269709674a6975fa7ebd191 (patch) | |
tree | fae0bf0830d41d66017815ff6a665610d2c65a8a /include | |
parent | a96a260a5fd6303eeebb26aee4be24ddf88391d1 (diff) |
enable incremental linking on windows
requires a handful of workarounds
Change-Id: I77c25580135eeec437716eceea1412607f8d14ca
Reviewed-on: https://gerrit.libreoffice.org/55244
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/comphelper/ChainablePropertySetInfo.hxx | 6 | ||||
-rw-r--r-- | include/comphelper/MasterPropertySetInfo.hxx | 6 | ||||
-rw-r--r-- | include/comphelper/containermultiplexer.hxx | 6 | ||||
-rw-r--r-- | include/svl/itemprop.hxx | 11 | ||||
-rw-r--r-- | include/ucbhelper/activedatasink.hxx | 7 | ||||
-rw-r--r-- | include/ucbhelper/commandenvironment.hxx | 6 | ||||
-rw-r--r-- | include/unotools/streamwrap.hxx | 6 |
7 files changed, 32 insertions, 16 deletions
diff --git a/include/comphelper/ChainablePropertySetInfo.hxx b/include/comphelper/ChainablePropertySetInfo.hxx index b7807c74fec4..16bfced1376b 100644 --- a/include/comphelper/ChainablePropertySetInfo.hxx +++ b/include/comphelper/ChainablePropertySetInfo.hxx @@ -33,8 +33,10 @@ */ namespace comphelper { - class COMPHELPER_DLLPUBLIC ChainablePropertySetInfo: - public ::cppu::WeakImplHelper< css::beans::XPropertySetInfo > + // workaround for incremental linking bugs in MSVC2015 + class SAL_DLLPUBLIC_TEMPLATE ChainablePropertySetInfo_Base : public cppu::WeakImplHelper< css::beans::XPropertySetInfo > {}; + + class COMPHELPER_DLLPUBLIC ChainablePropertySetInfo : public ChainablePropertySetInfo_Base { public: ChainablePropertySetInfo( PropertyInfo const * pMap ); diff --git a/include/comphelper/MasterPropertySetInfo.hxx b/include/comphelper/MasterPropertySetInfo.hxx index 07416c79c633..8559b2e2fd45 100644 --- a/include/comphelper/MasterPropertySetInfo.hxx +++ b/include/comphelper/MasterPropertySetInfo.hxx @@ -26,8 +26,10 @@ namespace comphelper { - class COMPHELPER_DLLPUBLIC MasterPropertySetInfo: - public ::cppu::WeakImplHelper< css::beans::XPropertySetInfo > + // workaround for incremental linking bugs in MSVC2015 + class SAL_DLLPUBLIC_TEMPLATE MasterPropertySetInfo_Base : public cppu::WeakImplHelper< css::beans::XPropertySetInfo > {}; + + class COMPHELPER_DLLPUBLIC MasterPropertySetInfo : public MasterPropertySetInfo_Base { public: MasterPropertySetInfo( PropertyInfo const * pMap ); diff --git a/include/comphelper/containermultiplexer.hxx b/include/comphelper/containermultiplexer.hxx index 0a3729a5809b..a896c690d530 100644 --- a/include/comphelper/containermultiplexer.hxx +++ b/include/comphelper/containermultiplexer.hxx @@ -64,8 +64,10 @@ namespace comphelper void setAdapter(OContainerListenerAdapter* _pAdapter); }; - class COMPHELPER_DLLPUBLIC OContainerListenerAdapter - : public cppu::WeakImplHelper<css::container::XContainerListener> + // workaround for incremental linking bugs in MSVC2015 + class SAL_DLLPUBLIC_TEMPLATE OContainerListenerAdapter_Base : public cppu::WeakImplHelper< css::container::XContainerListener > {}; + + class COMPHELPER_DLLPUBLIC OContainerListenerAdapter : public OContainerListenerAdapter_Base { friend class OContainerListener; diff --git a/include/svl/itemprop.hxx b/include/svl/itemprop.hxx index 334ae8d5f35a..05dc671fc99b 100644 --- a/include/svl/itemprop.hxx +++ b/include/svl/itemprop.hxx @@ -182,7 +182,11 @@ public: }; struct SfxItemPropertySetInfo_Impl; -class SVL_DLLPUBLIC SfxItemPropertySetInfo : public cppu::WeakImplHelper<css::beans::XPropertySetInfo> + +// workaround for incremental linking bugs in MSVC2015 +class SAL_DLLPUBLIC_TEMPLATE SfxItemPropertySetInfo_Base : public cppu::WeakImplHelper< css::beans::XPropertySetInfo > {}; + +class SVL_DLLPUBLIC SfxItemPropertySetInfo : public SfxItemPropertySetInfo_Base { std::unique_ptr<SfxItemPropertySetInfo_Impl> m_pImpl; @@ -202,7 +206,10 @@ public: }; -class SVL_DLLPUBLIC SfxExtItemPropertySetInfo: public cppu::WeakImplHelper<css::beans::XPropertySetInfo> +// workaround for incremental linking bugs in MSVC2015 +class SAL_DLLPUBLIC_TEMPLATE SfxExtItemPropertySetInfo_Base : public cppu::WeakImplHelper< css::beans::XPropertySetInfo > {}; + +class SVL_DLLPUBLIC SfxExtItemPropertySetInfo: public SfxExtItemPropertySetInfo_Base { SfxItemPropertyMap aExtMap; public: diff --git a/include/ucbhelper/activedatasink.hxx b/include/ucbhelper/activedatasink.hxx index 4cdc69a2b2c7..7e2cbcc8274c 100644 --- a/include/ucbhelper/activedatasink.hxx +++ b/include/ucbhelper/activedatasink.hxx @@ -27,14 +27,15 @@ namespace ucbhelper { +// workaround for incremental linking bugs in MSVC2015 +class SAL_DLLPUBLIC_TEMPLATE ActiveDataSink_Base : public cppu::WeakImplHelper< css::io::XActiveDataSink > {}; + /** * This class implements the interface css::io::XActiveDataSink. * Instances of this class can be passed with the parameters of an * "open" command. */ - -class UCBHELPER_DLLPUBLIC ActiveDataSink : - public cppu::WeakImplHelper< css::io::XActiveDataSink > +class UCBHELPER_DLLPUBLIC ActiveDataSink : public ActiveDataSink_Base { css::uno::Reference< css::io::XInputStream > m_xStream; diff --git a/include/ucbhelper/commandenvironment.hxx b/include/ucbhelper/commandenvironment.hxx index 919f49ca3a3a..1819d8328b5b 100644 --- a/include/ucbhelper/commandenvironment.hxx +++ b/include/ucbhelper/commandenvironment.hxx @@ -29,13 +29,15 @@ namespace ucbhelper { struct CommandEnvironment_Impl; +// workaround for incremental linking bugs in MSVC2015 +class SAL_DLLPUBLIC_TEMPLATE CommandEnvironment_Base : public cppu::WeakImplHelper< css::ucb::XCommandEnvironment > {}; + /** * This class implements the interface * css::ucb::XCommandEnvironment. Instances of this class can * be used to supply environments to commands executed by UCB contents. */ -class UCBHELPER_DLLPUBLIC CommandEnvironment : - public cppu::WeakImplHelper< css::ucb::XCommandEnvironment > +class UCBHELPER_DLLPUBLIC CommandEnvironment : public CommandEnvironment_Base { std::unique_ptr<CommandEnvironment_Impl> m_pImpl; diff --git a/include/unotools/streamwrap.hxx b/include/unotools/streamwrap.hxx index b50b92434fd8..81f463ea6e2c 100644 --- a/include/unotools/streamwrap.hxx +++ b/include/unotools/streamwrap.hxx @@ -35,11 +35,11 @@ class SvStream; namespace utl { -//= OInputStreamWrapper +// workaround for incremental linking bugs in MSVC2015 +class SAL_DLLPUBLIC_TEMPLATE OInputStreamWrapper_Base : public cppu::WeakImplHelper< css::io::XInputStream > {}; /// helper class for wrapping an SvStream into an com.sun.star.io::XInputStream -class UNOTOOLS_DLLPUBLIC OInputStreamWrapper - : public cppu::WeakImplHelper<css::io::XInputStream> +class UNOTOOLS_DLLPUBLIC OInputStreamWrapper : public OInputStreamWrapper_Base { protected: ::osl::Mutex m_aMutex; |