From: rnv Date: Wed, 22 Dec 2021 10:49:21 +0000 (+0300) Subject: bos #26460 Make HELLO engine available from python in SSL mode X-Git-Tag: V9_9_0a1~1^2 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=695cdfb180ebb205c8b234cfc70b5100060a3f6e;p=samples%2Fhello.git bos #26460 Make HELLO engine available from python in SSL mode --- diff --git a/CMakeLists.txt b/CMakeLists.txt index 3067d34..88fcfad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -76,6 +76,7 @@ FIND_PACKAGE(SalomePythonInterp REQUIRED) FIND_PACKAGE(SalomePythonLibs REQUIRED) FIND_PACKAGE(SalomeOmniORB REQUIRED) FIND_PACKAGE(SalomeOmniORBPy REQUIRED) +FIND_PACKAGE(SalomeSWIG REQUIRED) # Find GUI # =========== diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a99818b..6c0235e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -21,7 +21,7 @@ # Common packages ## SET(SUBDIRS_COMMON - HELLO HELLOGUI + HELLO HELLOGUI HELLO_SWIG ) SET(SUBDIRS diff --git a/src/HELLO_SWIG/CMakeLists.txt b/src/HELLO_SWIG/CMakeLists.txt new file mode 100644 index 0000000..4f25c0e --- /dev/null +++ b/src/HELLO_SWIG/CMakeLists.txt @@ -0,0 +1,57 @@ +# Copyright (C) 2012-2021 CEA/DEN, EDF R&D, OPEN CASCADE +# +# 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 +# + +include(${SWIG_USE_FILE}) + +include_directories( + ${KERNEL_INCLUDE_DIRS} + ${PROJECT_BINARY_DIR}/idl + ${PROJECT_SOURCE_DIR}/src/HELLO +) + +SET(_bin_SCRIPTS + HELLO_SalomeSessionless.py + ${CMAKE_CURRENT_BINARY_DIR}/HelloHelper.py +) + +# additional preprocessor / compiler flags +ADD_DEFINITIONS(${OMNIORB_DEFINITIONS} ) + +# SWIG wrapping +SET(HelloHelper_HEADERS HelloHelper.h HelloHelper.i) +SET(HelloHelper_SOURCES HelloHelper.cxx ${HelloHelper_HEADERS}) +SET_SOURCE_FILES_PROPERTIES(HelloHelper.i PROPERTIES CPLUSPLUS ON) +SET_SOURCE_FILES_PROPERTIES(HelloHelper.i PROPERTIES SWIG_FLAGS "-py3") +SET_SOURCE_FILES_PROPERTIES(HelloHelper_wrap.cpp PROPERTIES COMPILE_FLAGS "-DHAVE_CONFIG_H") +#SET(_swig_SCRIPTS ${CMAKE_CURRENT_BINARY_DIR}/HelloHelper.py ) +IF(${CMAKE_VERSION} VERSION_LESS "3.8.0") + SWIG_ADD_MODULE(HelloHelper python ${HelloHelper_SOURCES}) +ELSE() + SWIG_ADD_LIBRARY(HelloHelper LANGUAGE python SOURCES ${HelloHelper_SOURCES}) +ENDIF() +SWIG_LINK_LIBRARIES(HelloHelper ${PYTHON_LIBRARIES} ${PLATFORM_LIBS} HELLOEngine ${KERNEL_SalomeKernelHelpers} ${KERNEL_SalomeDS} ) +SWIG_CHECK_GENERATION(HelloHelper) +IF(WIN32) + SET_TARGET_PROPERTIES(_HelloHelper PROPERTIES DEBUG_OUTPUT_NAME _HelloHelper_d) +ENDIF(WIN32) +install(TARGETS _HelloHelper DESTINATION ${SALOME_INSTALL_LIBS}) +install(FILES ${HelloHelper_HEADERS} DESTINATION ${SALOME_INSTALL_HEADERS}) +SALOME_INSTALL_SCRIPTS("${_swig_SCRIPTS}" ${SALOME_INSTALL_BINS} EXTRA_DPYS "${SWIG_MODULE_HelloHelper_REAL_NAME}") + +SALOME_INSTALL_SCRIPTS("${_bin_SCRIPTS}" ${SALOME_INSTALL_PYTHON} DEF_PERMS) diff --git a/src/HELLO_SWIG/HELLO_SalomeSessionless.py b/src/HELLO_SWIG/HELLO_SalomeSessionless.py new file mode 100644 index 0000000..0d36984 --- /dev/null +++ b/src/HELLO_SWIG/HELLO_SalomeSessionless.py @@ -0,0 +1,28 @@ +# -*- coding: iso-8859-1 -*- +# Copyright (C) 2021 CEA/DEN, EDF R&D, OPEN CASCADE +# +# 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 +# + +def buildInstance(orb): + import HelloHelper + hello_ior = HelloHelper.BuildHELLOInstance() + import HELLO_ORB + import CORBA + orb=CORBA.ORB_init(['']) + hello = orb.string_to_object(hello_ior) + return hello, orb diff --git a/src/HELLO_SWIG/HelloHelper.cxx b/src/HELLO_SWIG/HelloHelper.cxx new file mode 100644 index 0000000..dcf031e --- /dev/null +++ b/src/HELLO_SWIG/HelloHelper.cxx @@ -0,0 +1,31 @@ +// Copyright (C) 2021 CEA/DEN, EDF R&D, OPEN CASCADE +// +// 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 +// + +#include "HelloHelper.h" + +#include "SALOME_KernelServices.hxx" + +#include "HELLO_Component_Generator.hxx" + +std::string BuildHELLOInstance() +{ + Engines::EngineComponent_var zeRef = RetrieveHELLOInstance(); + CORBA::String_var ior = KERNEL::getORB()->object_to_string(zeRef); + return std::string(ior.in()); +} diff --git a/src/HELLO_SWIG/HelloHelper.h b/src/HELLO_SWIG/HelloHelper.h new file mode 100644 index 0000000..5e2c9f4 --- /dev/null +++ b/src/HELLO_SWIG/HelloHelper.h @@ -0,0 +1,22 @@ +// Copyright (C) 2021 CEA/DEN, EDF R&D, OPEN CASCADE +// +// 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 +// + +#include + +std::string BuildHELLOInstance(); diff --git a/src/HELLO_SWIG/HelloHelper.i b/src/HELLO_SWIG/HelloHelper.i new file mode 100644 index 0000000..a6d8bf2 --- /dev/null +++ b/src/HELLO_SWIG/HelloHelper.i @@ -0,0 +1,27 @@ +// Copyright (C) 2021 CEA/DEN, EDF R&D, OPEN CASCADE +// +// 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 +// + +%module HelloHelper + +%include "std_string.i" + +%inline +{ + std::string BuildHELLOInstance(); +}