From: Nabil Ghodbane Date: Tue, 23 May 2023 07:26:58 +0000 (+0200) Subject: bos #33720: port YDEFX to windows X-Git-Tag: V9_11_0rc1^0 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=63bcd14984059dffe7d356682658b71e59bec035;p=tools%2Fydefx.git bos #33720: port YDEFX to windows --- diff --git a/CMakeLists.txt b/CMakeLists.txt index e5d03fc..ec48e2f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,6 +23,10 @@ SET (CMAKE_CXX_STANDARD 11) ENABLE_TESTING() SET(BUILD_SHARED_LIBS TRUE) +IF(WIN32) + SET(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) +ENDIF(WIN32) + SET(CONFIGURATION_ROOT_DIR $ENV{CONFIGURATION_ROOT_DIR} CACHE PATH "Path to the Salome CMake configuration files") IF(EXISTS ${CONFIGURATION_ROOT_DIR}) LIST(APPEND CMAKE_MODULE_PATH "${CONFIGURATION_ROOT_DIR}/cmake") @@ -45,10 +49,12 @@ ENDIF(EXISTS ${KERNEL_ROOT_DIR}) INCLUDE(SalomeSetupPlatform) # From CONFIGURATION # Always build libraries as shared objects: SET(BUILD_SHARED_LIBS TRUE) - OPTION(YDEFX_BUILD_GUI "Generate widgets" ON) - -FIND_PACKAGE(Py2cpp REQUIRED) +IF(WIN32) + SET(PY2CPP_ROOT_DIR $ENV{PY2CPP_ROOT_DIR}) +ELSE(WIN32) + FIND_PACKAGE(Py2cpp REQUIRED) +ENDIF(WIN32) IF(NOT SalomeKERNEL_FOUND) MESSAGE("SalomeKERNEL not found. Salome installation paths will not be used") diff --git a/src/cpp/CMakeLists.txt b/src/cpp/CMakeLists.txt index 1d82cf2..1030710 100644 --- a/src/cpp/CMakeLists.txt +++ b/src/cpp/CMakeLists.txt @@ -47,20 +47,33 @@ SET(ydefx_HEADERS Launcher.hxx PyStudyJob.hxx TPyStudyJob.hxx - ydefxExports.hxx ) -SET(ydefx_LINK - py2cpp - ${PYTHON_LIBRARIES} -) +IF(WIN32) + SET(ydefx_LINK + ${PY2CPP_ROOT_DIR}/lib/py2cpp.lib + ${PYTHON_LIBRARIES} + ${PLATFORM_LIBS} + ) +ELSE(WIN32) + SET(ydefx_LINK + py2cpp + ${PYTHON_LIBRARIES} + ) +ENDIF(WIN32) ADD_LIBRARY(ydefx ${ydefx_SOURCES}) TARGET_LINK_LIBRARIES(ydefx ${ydefx_LINK}) -TARGET_INCLUDE_DIRECTORIES(ydefx PUBLIC - $ - $) - +IF(WIN32) + TARGET_INCLUDE_DIRECTORIES(ydefx PUBLIC + $ + $ + ${PY2CPP_ROOT_DIR}/include) +ELSE(WIN32) + TARGET_INCLUDE_DIRECTORIES(ydefx PUBLIC + $ + $) +ENDIF(WIN32) INSTALL(TARGETS ydefx DESTINATION ${SALOME_INSTALL_LIBS}) INSTALL(TARGETS ydefx EXPORT ydefxCfg_cmake LIBRARY DESTINATION ${SALOME_INSTALL_LIBS}) INSTALL(FILES ${ydefx_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS}/ydefx) diff --git a/src/cpp/Exceptions.hxx b/src/cpp/Exceptions.hxx index 3ed0260..0c832e3 100644 --- a/src/cpp/Exceptions.hxx +++ b/src/cpp/Exceptions.hxx @@ -18,12 +18,11 @@ // #ifndef YDEFX_EXCEPTIONS_HXX #define YDEFX_EXCEPTIONS_HXX -#include "ydefxExports.hxx" #include namespace ydefx { -class YDEFX_EXPORT Exception:public std::exception +class Exception:public std::exception { public: Exception(const std::string& message); diff --git a/src/cpp/Job.hxx b/src/cpp/Job.hxx index 57007d0..86cae67 100644 --- a/src/cpp/Job.hxx +++ b/src/cpp/Job.hxx @@ -18,13 +18,12 @@ // #ifndef YDEFX_JOB_H #define YDEFX_JOB_H -#include "ydefxExports.hxx" #include namespace ydefx { -class YDEFX_EXPORT Job +class Job { public: virtual ~Job(){} diff --git a/src/cpp/JobParametersProxy.hxx b/src/cpp/JobParametersProxy.hxx index f8a9069..aa95cae 100644 --- a/src/cpp/JobParametersProxy.hxx +++ b/src/cpp/JobParametersProxy.hxx @@ -18,7 +18,6 @@ // #ifndef YDEFX_JOBPARAMETERSPROXY_H #define YDEFX_JOBPARAMETERSPROXY_H -#include "ydefxExports.hxx" #include #include #include @@ -26,7 +25,7 @@ namespace ydefx { -class YDEFX_EXPORT JobParametersProxy +class JobParametersProxy { public: JobParametersProxy(); diff --git a/src/cpp/Launcher.hxx b/src/cpp/Launcher.hxx index c2d241c..78492c3 100644 --- a/src/cpp/Launcher.hxx +++ b/src/cpp/Launcher.hxx @@ -19,14 +19,13 @@ #ifndef YDEFX_LAUNCHER_H #define YDEFX_LAUNCHER_H -#include "ydefxExports.hxx" #include "TMonoPyJob.hxx" #include "TPyStudyJob.hxx" namespace ydefx { class Job; -class YDEFX_EXPORT Launcher +class Launcher { public: Launcher():_lastError(){} diff --git a/src/cpp/MonoPyJob.hxx b/src/cpp/MonoPyJob.hxx index 9f4e7ab..5f011e6 100644 --- a/src/cpp/MonoPyJob.hxx +++ b/src/cpp/MonoPyJob.hxx @@ -18,13 +18,12 @@ // #ifndef YDEFX_MONOPYJOB_HXX #define YDEFX_MONOPYJOB_HXX -#include "ydefxExports.hxx" #include "Job.hxx" #include namespace ydefx { -class YDEFX_EXPORT MonoPyJob : public Job +class MonoPyJob : public Job { public: MonoPyJob(); diff --git a/src/cpp/PyConversions.hxx b/src/cpp/PyConversions.hxx index 493de23..a540218 100644 --- a/src/cpp/PyConversions.hxx +++ b/src/cpp/PyConversions.hxx @@ -18,7 +18,6 @@ // #ifndef YDEFX_PYCONVERSIONS_HXX #define YDEFX_PYCONVERSIONS_HXX -#include "ydefxExports.hxx" #include namespace ydefx @@ -28,8 +27,8 @@ class PyStudyFunction; } namespace py2cpp { -YDEFX_EXPORT PyObject * toPy(const ydefx::JobParametersProxy& jp); -YDEFX_EXPORT PyObject * toPy(const ydefx::PyStudyFunction& jp); +PyObject * toPy(const ydefx::JobParametersProxy& jp); +PyObject * toPy(const ydefx::PyStudyFunction& jp); } #include diff --git a/src/cpp/PyStudyFunction.hxx b/src/cpp/PyStudyFunction.hxx index 6b45416..973417a 100644 --- a/src/cpp/PyStudyFunction.hxx +++ b/src/cpp/PyStudyFunction.hxx @@ -18,13 +18,12 @@ // #ifndef YDEFX_PYSTUDYFUNCTION_H #define YDEFX_PYSTUDYFUNCTION_H -#include "ydefxExports.hxx" #include "StudyFunction.hxx" #include "PyConversions.hxx" namespace ydefx { -class YDEFX_EXPORT PyStudyFunction : StudyFunction +class PyStudyFunction : StudyFunction { public: PyStudyFunction(); diff --git a/src/cpp/PyStudyJob.hxx b/src/cpp/PyStudyJob.hxx index 9833095..25863ef 100644 --- a/src/cpp/PyStudyJob.hxx +++ b/src/cpp/PyStudyJob.hxx @@ -18,13 +18,12 @@ // #ifndef YDEFX_PYSTUDYJOB_HXX #define YDEFX_PYSTUDYJOB_HXX -#include "ydefxExports.hxx" #include "Job.hxx" #include namespace ydefx { -class YDEFX_EXPORT PyStudyJob : public Job +class PyStudyJob : public Job { public: PyStudyJob(const std::string& pymodule_name, const std::string& pyclass_name); diff --git a/src/cpp/Sample.hxx b/src/cpp/Sample.hxx index 8c70b87..292150b 100644 --- a/src/cpp/Sample.hxx +++ b/src/cpp/Sample.hxx @@ -19,7 +19,6 @@ #ifndef YDEFX_SAMPLE_H #define YDEFX_SAMPLE_H -#include "ydefxExports.hxx" #include #include #include @@ -29,7 +28,7 @@ namespace ydefx { template -class YDEFX_EXPORT VariablesGroup +class VariablesGroup { public: VariablesGroup(); @@ -59,10 +58,10 @@ private: T _defaultValue; }; -enum class YDEFX_EXPORT ExecutionState {NOTEXECUTED, DONE, ERROR}; +enum class ExecutionState {NOTEXECUTED, DONE, ERROR}; template -class YDEFX_EXPORT OneTypeSample +class OneTypeSample { public: const VariablesGroup& inputs()const; @@ -81,7 +80,7 @@ template class Sample; // no type sample template <> -class YDEFX_EXPORT Sample<> +class Sample<> { public: const std::vector& errors()const{return _errors;} @@ -129,7 +128,7 @@ private: // multi type sample template -class YDEFX_EXPORT Sample : public OneTypeSample, public Sample +class Sample : public OneTypeSample, public Sample { public: virtual ExecutionState pointState(int index); diff --git a/src/cpp/SamplePyConversions.hxx b/src/cpp/SamplePyConversions.hxx index 8fdeca3..8ba7642 100644 --- a/src/cpp/SamplePyConversions.hxx +++ b/src/cpp/SamplePyConversions.hxx @@ -19,7 +19,6 @@ #ifndef YDEFX_SAMPLEPYCONVERSIONS_HXX #define YDEFX_SAMPLEPYCONVERSIONS_HXX -#include "ydefxExports.hxx" #include #include "Sample.hxx" #include "Exceptions.hxx" @@ -34,7 +33,7 @@ namespace ydefx * list of sample types. */ template -YDEFX_EXPORT class SamplePyConverter; +class SamplePyConverter; /*! * Convert input variables of a sample to a python dictionary. @@ -42,7 +41,7 @@ YDEFX_EXPORT class SamplePyConverter; * The returned value is NULL in case of error. */ template -YDEFX_EXPORT PyObject* inputToPy(const Sample& sample); +PyObject* inputToPy(const Sample& sample); /*! * Fill the input values of the sample from a python dictionary. @@ -54,7 +53,7 @@ YDEFX_EXPORT PyObject* inputToPy(const Sample& sample); * Keys from the python dictionary that do not exist in the sample are ignored. */ template -YDEFX_EXPORT py2cpp::ConversionCheck inputFromPy(PyObject* obj, Sample& sample); +py2cpp::ConversionCheck inputFromPy(PyObject* obj, Sample& sample); /*! * Convert output variables of a sample to a python dictionary. @@ -65,7 +64,7 @@ YDEFX_EXPORT py2cpp::ConversionCheck inputFromPy(PyObject* obj, Sample& s * The returned value is NULL in case of error. */ template -YDEFX_EXPORT PyObject* outputToPy(const Sample& sample); +PyObject* outputToPy(const Sample& sample); /*! * Fill the output values of a sample from a python dictionary. @@ -76,7 +75,7 @@ YDEFX_EXPORT PyObject* outputToPy(const Sample& sample); * ignored. */ template -YDEFX_EXPORT py2cpp::ConversionCheck outputFromPy(PyObject* obj, Sample& sample); +py2cpp::ConversionCheck outputFromPy(PyObject* obj, Sample& sample); /*! * Fill the error values of a sample from a python list of strings. @@ -84,7 +83,7 @@ YDEFX_EXPORT py2cpp::ConversionCheck outputFromPy(PyObject* obj, Sample& * strings. */ template -YDEFX_EXPORT py2cpp::ConversionCheck errorsFromPy(PyObject* obj, Sample& sample); +py2cpp::ConversionCheck errorsFromPy(PyObject* obj, Sample& sample); /*! * Fetch output values and errors from the python objet. @@ -92,14 +91,14 @@ YDEFX_EXPORT py2cpp::ConversionCheck errorsFromPy(PyObject* obj, Sample& * function is called. */ template -YDEFX_EXPORT py2cpp::ConversionCheck fetchResults(PyObject* obj, Sample& sample); +py2cpp::ConversionCheck fetchResults(PyObject* obj, Sample& sample); //////////////////////////////////////////////////////////////////////////////// // Template implementations //////////////////////////////////////////////////////////////////////////////// template -class YDEFX_EXPORT SamplePyConverter +class SamplePyConverter { public: bool inputToPy(const S& sample, PyObject* result){return true;} @@ -111,7 +110,7 @@ public: }; template -class YDEFX_EXPORT SamplePyConverter : public SamplePyConverter +class SamplePyConverter : public SamplePyConverter { public: /*! Add sample.inputs to result. @@ -134,7 +133,7 @@ public: return ok; } - YDEFX_EXPORT py2cpp::ConversionCheck inputFromPy(PyObject* obj, S& sample) + py2cpp::ConversionCheck inputFromPy(PyObject* obj, S& sample) { py2cpp::ConversionCheck check; std::list names = sample.OneTypeSample::inputs().names(); @@ -174,7 +173,7 @@ public: return check; } - YDEFX_EXPORT bool outputToPy(const S& sample, PyObject* result) + bool outputToPy(const S& sample, PyObject* result) { bool ok = true; std::size_t maxsize = sample.maxSize(); @@ -210,7 +209,7 @@ public: return ok; } - YDEFX_EXPORT py2cpp::ConversionCheck outputFromPy(PyObject* obj, S& sample) + py2cpp::ConversionCheck outputFromPy(PyObject* obj, S& sample) { py2cpp::ConversionCheck check; std::list names = sample.OneTypeSample::outputs().names(); @@ -259,7 +258,7 @@ public: }; template -YDEFX_EXPORT PyObject* inputToPy(const Sample& sample) +PyObject* inputToPy(const Sample& sample) { PyObject * result = PyDict_New(); if(result) @@ -276,7 +275,7 @@ YDEFX_EXPORT PyObject* inputToPy(const Sample& sample) } template -YDEFX_EXPORT py2cpp::ConversionCheck inputFromPy(PyObject* obj, Sample& sample) +py2cpp::ConversionCheck inputFromPy(PyObject* obj, Sample& sample) { py2cpp::ConversionCheck check; if(PyDict_Check(obj)) @@ -292,7 +291,7 @@ YDEFX_EXPORT py2cpp::ConversionCheck inputFromPy(PyObject* obj, Sample& s } template -YDEFX_EXPORT PyObject* outputToPy(const Sample& sample) +PyObject* outputToPy(const Sample& sample) { PyObject * result = PyDict_New(); if(result) @@ -308,7 +307,7 @@ YDEFX_EXPORT PyObject* outputToPy(const Sample& sample) } template -YDEFX_EXPORT py2cpp::ConversionCheck outputFromPy(PyObject* obj, Sample& sample) +py2cpp::ConversionCheck outputFromPy(PyObject* obj, Sample& sample) { py2cpp::ConversionCheck check; if(PyDict_Check(obj)) @@ -323,7 +322,7 @@ YDEFX_EXPORT py2cpp::ConversionCheck outputFromPy(PyObject* obj, Sample& } template -YDEFX_EXPORT py2cpp::ConversionCheck errorsFromPy(PyObject* obj, Sample& sample) +py2cpp::ConversionCheck errorsFromPy(PyObject* obj, Sample& sample) { py2cpp::ConversionCheck check; if(PyList_Check(obj)) @@ -348,7 +347,7 @@ YDEFX_EXPORT py2cpp::ConversionCheck errorsFromPy(PyObject* obj, Sample& } template -YDEFX_EXPORT py2cpp::ConversionCheck fetchResults(const py2cpp::PyPtr& obj, Sample& sample) +py2cpp::ConversionCheck fetchResults(const py2cpp::PyPtr& obj, Sample& sample) { py2cpp::ConversionCheck check; check.addError(outputFromPy(obj.getAttr("_output").get(), sample)); diff --git a/src/cpp/StudyFunction.hxx b/src/cpp/StudyFunction.hxx index 0486dfb..6816165 100644 --- a/src/cpp/StudyFunction.hxx +++ b/src/cpp/StudyFunction.hxx @@ -18,13 +18,12 @@ // #ifndef YDEFX_STUDYFUNCTION_H #define YDEFX_STUDYFUNCTION_H -#include "ydefxExports.hxx" #include #include namespace ydefx { -class YDEFX_EXPORT StudyFunction +class StudyFunction { public: virtual ~StudyFunction(){} diff --git a/src/cpp/TMonoPyJob.hxx b/src/cpp/TMonoPyJob.hxx index 8d50f63..08a574c 100644 --- a/src/cpp/TMonoPyJob.hxx +++ b/src/cpp/TMonoPyJob.hxx @@ -18,7 +18,6 @@ // #ifndef YDEFX_TMONOPYJOB_HXX #define YDEFX_TMONOPYJOB_HXX -#include "ydefxExports.hxx" #include "JobParametersProxy.hxx" #include "MonoPyJob.hxx" #include "SamplePyConversions.hxx" @@ -27,7 +26,7 @@ namespace ydefx { template -class YDEFX_EXPORT TMonoPyJob : public MonoPyJob +class TMonoPyJob : public MonoPyJob { public: //! Create a new job. diff --git a/src/cpp/TPyStudyJob.hxx b/src/cpp/TPyStudyJob.hxx index 0922d45..d42ca69 100644 --- a/src/cpp/TPyStudyJob.hxx +++ b/src/cpp/TPyStudyJob.hxx @@ -18,7 +18,6 @@ // #ifndef YDEFX_TPYSTUDYJOB_HXX #define YDEFX_TPYSTUDYJOB_HXX -#include "ydefxExports.hxx" #include "JobParametersProxy.hxx" #include "PyStudyJob.hxx" #include "SamplePyConversions.hxx" @@ -27,7 +26,7 @@ namespace ydefx { template -class YDEFX_EXPORT TPyStudyJob : public PyStudyJob +class TPyStudyJob : public PyStudyJob { public: //! Create a new job using the default pystudy class. diff --git a/src/cpp/Test/CMakeLists.txt b/src/cpp/Test/CMakeLists.txt index 2944733..a4686a6 100644 --- a/src/cpp/Test/CMakeLists.txt +++ b/src/cpp/Test/CMakeLists.txt @@ -19,15 +19,25 @@ FIND_PACKAGE(SalomeCppUnit REQUIRED) # additional include directories -INCLUDE_DIRECTORIES( - ${CPPUNIT_INCLUDE_DIRS} - ${CMAKE_CURRENT_SOURCE_DIR}/.. -) +SET(_include_DIRECTORIES + ${CPPUNIT_INCLUDE_DIRS} + ${CMAKE_CURRENT_SOURCE_DIR}/.. + ) +IF(WIN32) + LIST(APPEND _include_DIRECTORIES ${PY2CPP_ROOT_DIR}/include) +ENDIF(WIN32) + +INCLUDE_DIRECTORIES(${_include_DIRECTORIES}) +IF(WIN32) + SET(py2cpp_lib ${PY2CPP_ROOT_DIR}/lib/py2cpp.lib) +ELSE(WIN32) + SET(py2cpp_lib py2cpp) +ENDIF(WIN32) # libraries to link to SET(_link_LIBRARIES ${CPPUNIT_LIBRARIES} - py2cpp + ${py2cpp_lib} ydefx ) diff --git a/src/cpp/YacsStudyFunction.hxx b/src/cpp/YacsStudyFunction.hxx index 39389a0..58fd954 100644 --- a/src/cpp/YacsStudyFunction.hxx +++ b/src/cpp/YacsStudyFunction.hxx @@ -18,12 +18,11 @@ // #ifndef YDEFX_YACSSTUDYFUNCTION_H #define YDEFX_YACSSTUDYFUNCTION_H -#include "ydefxExports.hxx" #include "StudyFunction.hxx" namespace ydefx { //TODO not implemented! -class YDEFX_EXPORT YacsStudyFunction : StudyFunction +class YacsStudyFunction : StudyFunction { public: YacsStudyFunction(); diff --git a/src/cpp/ydefxExports.hxx b/src/cpp/ydefxExports.hxx deleted file mode 100644 index 0ccfaa7..0000000 --- a/src/cpp/ydefxExports.hxx +++ /dev/null @@ -1,30 +0,0 @@ -// Copyright (C) 2021 EDF R&D -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -// -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -// - -#pragma once - -#ifdef WIN32 -# if defined(ydefx_EXPORTS) || defined(ydefx_EXPORTS) -# define YDEFX_EXPORT __declspec( dllexport ) -# else -# define YDEFX_EXPORT __declspec( dllimport ) -# endif -#else -# define YDEFX_EXPORT -#endif diff --git a/src/gui/CMakeLists.txt b/src/gui/CMakeLists.txt index c3babea..8774193 100644 --- a/src/gui/CMakeLists.txt +++ b/src/gui/CMakeLists.txt @@ -37,7 +37,6 @@ SET(YDEFXGUI_SOURCES SET(YDEFXGUI_HEADERS ResourceWidget.hxx - ydefxguiExports.hxx ) SET(YDEFXGUI_link_LIBRARIES diff --git a/src/gui/ParamsConfig.hxx b/src/gui/ParamsConfig.hxx index a394d2c..a66ada0 100644 --- a/src/gui/ParamsConfig.hxx +++ b/src/gui/ParamsConfig.hxx @@ -18,13 +18,12 @@ // #ifndef IDEFX_ParamsConfigWidget_HXX #define IDEFX_ParamsConfigWidget_HXX -#include "ydefxguiExports.hxx" #include "JobParametersProxy.hxx" #include namespace ydefx { -class YDEFXGUI_EXPORT ParamsConfigWidget: public QScrollArea +class ParamsConfigWidget: public QScrollArea { Q_OBJECT public: diff --git a/src/gui/PathsConfig.hxx b/src/gui/PathsConfig.hxx index 918abd5..d87247b 100644 --- a/src/gui/PathsConfig.hxx +++ b/src/gui/PathsConfig.hxx @@ -18,13 +18,12 @@ // #ifndef IDEFX_PathsConfigWidget_HXX #define IDEFX_PathsConfigWidget_HXX -#include "ydefxguiExports.hxx" #include "JobParametersProxy.hxx" #include namespace ydefx { -class YDEFXGUI_EXPORT PathsConfigWidget: public QScrollArea +class PathsConfigWidget: public QScrollArea { Q_OBJECT public: diff --git a/src/gui/QuickConfig.hxx b/src/gui/QuickConfig.hxx index a1ab935..8d031a8 100644 --- a/src/gui/QuickConfig.hxx +++ b/src/gui/QuickConfig.hxx @@ -18,13 +18,12 @@ // #ifndef IDEFX_QuickConfigWidget_HXX #define IDEFX_QuickConfigWidget_HXX -#include "ydefxguiExports.hxx" #include "JobParametersProxy.hxx" #include namespace ydefx { -class YDEFXGUI_EXPORT QuickConfigWidget: public QScrollArea +class QuickConfigWidget: public QScrollArea { Q_OBJECT public: diff --git a/src/gui/ResourceWidget.hxx b/src/gui/ResourceWidget.hxx index bc96557..86ea843 100644 --- a/src/gui/ResourceWidget.hxx +++ b/src/gui/ResourceWidget.hxx @@ -18,13 +18,12 @@ // #ifndef IDEFX_RESOURCEWIDGET_HXX #define IDEFX_RESOURCEWIDGET_HXX -#include "ydefxguiExports.hxx" #include "JobParametersProxy.hxx" #include namespace ydefx { -class YDEFXGUI_EXPORT ResourceWidget: public QTabWidget +class ResourceWidget: public QTabWidget { Q_OBJECT public: