For simplicity and short typing.
JIRA issue: CORE-19469
- Replace "virtual HRESULT
STDMETHODCALLTYPE m" with
"STDMETHOD(m)" (m is a method name).
- Replace "virtual t STDMETHODCALLTYPE
m" with "STDMETHOD_(t, m)"
(t is a type. m is a method name).
- Use "override" keyword as possible.
Instead of messing with global variables and the like, we introduce two target properties:
- WITH_CXX_EXCEPTIONS: if you want to use C++ exceptions
- WITH_CXX_RTTI: if you need RTTI in your module
You can use the newly introduced set_target_cpp_properties function, with WITH_EXCEPTIONS and WITH_RTTI arguments
We also introduce two libraries :
- cpprt: for C++ runtime routines
- cppstl: for the C++ standard template library
NB: On GCC, this requires to create imported libraries with the related built-in libraries:libsupc++, limingwex, libstdc++
Finally, we manage the relevant flags with the ad-hoc generator expressions
So, if you don't need exceptions, nor RTTI, nor use any runtime at all: you simply have nothing else to do than add your C++ file to your module
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.
On my system, this reduces the configure-time by a factor of two.
- Move CIFSBand to the shellbars static lib which is linked to browseui and rshell.
- Move CQuickLaunchBand to rshell.
- Make nescessary adjustments so that they can both be registered and instantiated.