From 0bb1c125415a259aef4902349e52cdbda09f741a Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (h)" <j.wuttke@fz-juelich.de> Date: Wed, 21 Apr 2021 21:34:28 +0200 Subject: [PATCH] Win export symbol per lib --- Device/CMakeLists.txt | 3 +++ Device/Unit/AxisNames.cpp | 18 +++++++++--------- Device/Unit/AxisNames.h | 18 +++++++++--------- Wrap/WinDllMacros.h | 8 +++++++- 4 files changed, 28 insertions(+), 19 deletions(-) diff --git a/Device/CMakeLists.txt b/Device/CMakeLists.txt index 8a4f0b8931a..f68d827ab9e 100644 --- a/Device/CMakeLists.txt +++ b/Device/CMakeLists.txt @@ -34,6 +34,9 @@ target_link_libraries(${lib} ${tspectrum_LIBRARY} ) +if(WIN32) + target_compile_definitions(${lib} -DBA_DEVICE_BUILD_DLL) +endif() if(BORNAGAIN_TIFF_SUPPORT) target_compile_definitions(${lib} PUBLIC -DBORNAGAIN_TIFF_SUPPORT) target_include_directories(${lib} PUBLIC ${TIFF_INCLUDE_DIR}) diff --git a/Device/Unit/AxisNames.cpp b/Device/Unit/AxisNames.cpp index 8925a5c994f..d687f67b087 100644 --- a/Device/Unit/AxisNames.cpp +++ b/Device/Unit/AxisNames.cpp @@ -18,13 +18,13 @@ namespace AxisNames { // For spherical detectors in GISAS simulations -const std::map<Axes::Units, std::string> sphericalAxis0 = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> sphericalAxis0 = { { Axes::Units::NBINS, "X [nbins]" }, { Axes::Units::RADIANS, "phi_f [rad]" }, { Axes::Units::DEGREES, "phi_f [deg]" }, { Axes::Units::QSPACE, "Qy [1/nm]" }, { Axes::Units::QXQY, "Qx [1/nm]" } }; -const std::map<Axes::Units, std::string> sphericalAxis1 = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> sphericalAxis1 = { { Axes::Units::NBINS, "Y [nbins]" }, { Axes::Units::RADIANS, "alpha_f [rad]" }, { Axes::Units::DEGREES, "alpha_f [deg]" }, @@ -32,14 +32,14 @@ const std::map<Axes::Units, std::string> sphericalAxis1 = { { Axes::Units::QXQY, "Qy [1/nm]" } }; // For rectangular detectors in GISAS simulations -const std::map<Axes::Units, std::string> rectangularAxis0 = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> rectangularAxis0 = { { Axes::Units::NBINS, "X [nbins]" }, { Axes::Units::RADIANS, "phi_f [rad]" }, { Axes::Units::DEGREES, "phi_f [deg]" }, { Axes::Units::MM, "X [mm]" }, { Axes::Units::QSPACE, "Qy [1/nm]" }, { Axes::Units::QXQY, "Qx [1/nm]" } }; -const std::map<Axes::Units, std::string> rectangularAxis1 = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> rectangularAxis1 = { { Axes::Units::NBINS, "Y [nbins]" }, { Axes::Units::RADIANS, "alpha_f [rad]" }, { Axes::Units::DEGREES, "alpha_f [deg]" }, @@ -49,23 +49,23 @@ const std::map<Axes::Units, std::string> rectangularAxis1 = { // For off-specular simulations (both spherical and rectangular detectors) // Currently 'mm' is not supported for the y-axis -const std::map<Axes::Units, std::string> offSpecularAxis0 = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> offSpecularAxis0 = { { Axes::Units::NBINS, "X [nbins]" }, { Axes::Units::RADIANS, "alpha_i [rad]" }, { Axes::Units::DEGREES, "alpha_i [deg]" }}; -const std::map<Axes::Units, std::string> offSpecularAxis1 = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> offSpecularAxis1 = { { Axes::Units::NBINS, "Y [nbins]" }, { Axes::Units::RADIANS, "alpha_f [rad]" }, { Axes::Units::DEGREES, "alpha_f [deg]" }}; -const std::map<Axes::Units, std::string> specAxis = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> specAxis = { { Axes::Units::NBINS, "X [nbins]" }, { Axes::Units::RADIANS, "alpha_i [rad]" }, { Axes::Units::DEGREES, "alpha_i [deg]" }, { Axes::Units::QSPACE, "Q [1/nm]" }, { Axes::Units::RQ4, "Q [1/nm]" } }; -const std::map<Axes::Units, std::string> specAxisQ = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> specAxisQ = { { Axes::Units::NBINS, "X [nbins]" }, { Axes::Units::QSPACE, "Q [1/nm]" }, { Axes::Units::RQ4, "Q [1/nm]" } }; @@ -77,7 +77,7 @@ const std::map<Axes::Units, std::string> specAxisQ = { // For this reason depth axis map returns always // nanometers except for bins. -const std::map<Axes::Units, std::string> sampleDepthAxis = { +BA_DEVICE_API_ const std::map<Axes::Units, std::string> sampleDepthAxis = { { Axes::Units::NBINS, "Y [nbins]" }, { Axes::Units::RADIANS, "Position [nm]" }, { Axes::Units::DEGREES, "Position [nm]" }, diff --git a/Device/Unit/AxisNames.h b/Device/Unit/AxisNames.h index 4165dd5a740..005053269c3 100644 --- a/Device/Unit/AxisNames.h +++ b/Device/Unit/AxisNames.h @@ -35,15 +35,15 @@ const std::map<Axes::Units, const char*> axisUnitLabel = { //! @ingroup detector namespace AxisNames { -extern BA_CORE_API_ const std::map<Axes::Units, std::string> sphericalAxis0; -extern BA_CORE_API_ const std::map<Axes::Units, std::string> sphericalAxis1; -extern BA_CORE_API_ const std::map<Axes::Units, std::string> rectangularAxis0; -extern BA_CORE_API_ const std::map<Axes::Units, std::string> rectangularAxis1; -extern BA_CORE_API_ const std::map<Axes::Units, std::string> offSpecularAxis0; -extern BA_CORE_API_ const std::map<Axes::Units, std::string> offSpecularAxis1; -extern BA_CORE_API_ const std::map<Axes::Units, std::string> specAxis; -extern BA_CORE_API_ const std::map<Axes::Units, std::string> specAxisQ; -extern BA_CORE_API_ const std::map<Axes::Units, std::string> sampleDepthAxis; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> sphericalAxis0; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> sphericalAxis1; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> rectangularAxis0; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> rectangularAxis1; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> offSpecularAxis0; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> offSpecularAxis1; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> specAxis; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> specAxisQ; +extern BA_DEVICE_API_ const std::map<Axes::Units, std::string> sampleDepthAxis; } // namespace AxisNames #endif // BORNAGAIN_DEVICE_UNIT_AXISNAMES_H diff --git a/Wrap/WinDllMacros.h b/Wrap/WinDllMacros.h index 28e2a90ae96..dbe12541915 100644 --- a/Wrap/WinDllMacros.h +++ b/Wrap/WinDllMacros.h @@ -18,8 +18,13 @@ #ifdef _WIN32 -#ifdef BA_CORE_BUILD_DLL +#ifdef BA_DEVICE_BUILD_DLL +#define BA_DEVICE_API_ __declspec(dllexport) +#else +#define BA_DEVICE_API_ __declspec(dllimport) +#endif // BA_DEVICE_BUILD_DLL +#ifdef BA_CORE_BUILD_DLL #define BA_CORE_API_ __declspec(dllexport) #else #define BA_CORE_API_ __declspec(dllimport) @@ -28,6 +33,7 @@ #endif // _WIN32 #ifndef BA_CORE_API_ +#define BA_DEVICE_API_ #define BA_CORE_API_ #endif -- GitLab