-# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2024 CEA, EDF
#
# 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.
+# 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
INCLUDE_DIRECTORIES(
${PTHREAD_INCLUDE_DIR}
${OMNIORB_INCLUDE_DIR}
+ ${OMNIORBPY_INCLUDE_DIR}
${PYTHON_INCLUDE_DIRS}
${PROJECT_BINARY_DIR}/idl
${PROJECT_BINARY_DIR}
ADD_DEFINITIONS(
${PYTHON_DEFINITIONS}
${OMNIORB_DEFINITIONS}
- -DYACS_PTHREAD
)
-IF(WIN32)
- ADD_DEFINITIONS(-DNOGDI)
-ENDIF(WIN32)
# libraries to link to
SET(_link_LIBRARIES
ENDIF(SALOME_BUILD_DOC)
# --- rules ---
-SET(ENGINEINCLUDES
- Any.hxx
- DeploymentTree.hxx
- InputDataStreamPort.hxx
- OutPort.hxx
- SharedPtr.hxx
- AnyInputPort.hxx
- Dispatcher.hxx
- InputPort.hxx
- OutputDataStreamPort.hxx
- StaticDefinedComposedNode.hxx
- Bloc.hxx
- DynParaLoop.hxx
- InvalidExtractionException.hxx
- OutputPort.hxx
- Switch.hxx
- ComponentInstance.hxx
- ElementaryNode.hxx
- LinkInfo.hxx
- Pool.hxx
- Task.hxx
- ComposedNode.hxx
- Executor.hxx
- Logger.hxx
- Port.hxx
- TypeCode.hxx
- ConditionInputPort.hxx
- LogRecord.hxx
- Proc.hxx
- Visitor.hxx
- Container.hxx
- ForEachLoop.hxx
- Loop.hxx
- RefCounter.hxx
- VisitorSaveSchema.hxx
- ConversionException.hxx
- ForLoop.hxx
- Node.hxx
- Runtime.hxx
- VisitorSaveState.hxx
- DataFlowPort.hxx
- InGate.hxx
- OptimizerAlg.hxx
- Scheduler.hxx
- WhileLoop.hxx
- DataPort.hxx
- InlineNode.hxx
- OptimizerLoop.hxx
- ServiceInlineNode.hxx
- ComponentDefinition.hxx
- DataStreamPort.hxx
- InPort.hxx
- OutGate.hxx
- ServiceNode.hxx
- Catalog.hxx
- PropertyInterface.hxx
- AnyOutputPort.hxx
- Pool.hxx
- InPropertyPort.hxx
-)
-SET(SWIGINCLUDES ${ENGINEINCLUDES}
- "${PROJECT_SOURCE_DIR}/src/bases/yacsconfig.h"
- "ExecutorSwig.hxx")
-SWIG_ADD_MODULE(pilot python pilot.i ExecutorSwig.cxx)
-SWIG_ADD_MODULE(pypilot python pypilot.i)
-ADD_DEPENDENCIES(_pilot pilot.i engtypemaps.i docengine.i ${SWIGINCLUDES})
-ADD_DEPENDENCIES(_pypilot pypilot.i pilot.i engtypemaps.i _pilot ${SWIGINCLUDES})
+SET(ENGINEINCL)
+FOREACH(f ${YACSlibEngine_HEADERS}) # defined in src/engine/CMakeLists.txt
+ LIST(APPEND ENGINEINCL ${PROJECT_SOURCE_DIR}/src/engine/${f})
+ENDFOREACH()
+
+SET(SWIGINCLUDES ${ENGINEINCL}
+ "${PROJECT_SOURCE_DIR}/src/bases/yacsconfig.h"
+ "ExecutorSwig.hxx"
+ "IteratorPy3.hxx")
+
+SET(SWIG_MODULE_pilot_EXTRA_DEPS engtypemaps.i ${SWIGINCLUDES})
+IF(${CMAKE_VERSION} VERSION_LESS "3.8.0")
+ SWIG_ADD_MODULE(pilot python pilot.i ExecutorSwig.cxx)
+ELSE()
+ SWIG_ADD_LIBRARY(pilot LANGUAGE python SOURCES pilot.i ExecutorSwig.cxx)
+ENDIF()
+SWIG_CHECK_GENERATION(pilot)
+
+SET(SWIG_MODULE_pypilot_EXTRA_DEPS pilot.i engtypemaps.i _pilot ${SWIGINCLUDES})
+IF(${CMAKE_VERSION} VERSION_LESS "3.8.0")
+ SWIG_ADD_MODULE(pypilot python pypilot.i)
+ELSE()
+ SWIG_ADD_LIBRARY(pypilot LANGUAGE python SOURCES pypilot.i)
+ENDIF()
SWIG_LINK_LIBRARIES(pilot "${_link_LIBRARIES}")
SWIG_LINK_LIBRARIES(pypilot "${_link_LIBRARIES}")
+
IF(WIN32)
SET_TARGET_PROPERTIES(_pilot PROPERTIES DEBUG_OUTPUT_NAME _pilot_d)
SET_TARGET_PROPERTIES(_pypilot PROPERTIES DEBUG_OUTPUT_NAME _pypilot_d)
INSTALL(TARGETS ${SWIG_MODULE_pilot_REAL_NAME} ${SWIG_MODULE_pypilot_REAL_NAME} DESTINATION ${SALOME_INSTALL_PYTHON})
-SALOME_INSTALL_SCRIPTS("${_swig_SCRIPTS}" ${SALOME_INSTALL_PYTHON})
+SALOME_INSTALL_SCRIPTS("${_swig_SCRIPTS}" ${SALOME_INSTALL_PYTHON} EXTRA_DPYS "${SWIG_MODULE_pilot_REAL_NAME};${SWIG_MODULE_pypilot_REAL_NAME}")
+
+### Test
+
+SALOME_GENERATE_TESTS_ENVIRONMENT(tests_env)
+ADD_TEST(NAME PlayGround0 COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/testPlayGround0.py)
+SET_TESTS_PROPERTIES(PlayGround0 PROPERTIES ENVIRONMENT "${tests_env}")
+ADD_TEST(NAME Base64Conv COMMAND ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/testBase64Conv.py)
+SET_TESTS_PROPERTIES(Base64Conv PROPERTIES ENVIRONMENT "${tests_env}")
+SET(LOCAL_TEST_DIR ${SALOME_YACS_INSTALL_TEST}/engine_swig)
+SET(LOCAL_TEST_FILES testPlayGround0.py testBase64Conv.py basic_first_SSL.py)
+INSTALL(PROGRAMS ${LOCAL_TEST_FILES} DESTINATION ${LOCAL_TEST_DIR})
+INSTALL(FILES CTestTestfileInstall.cmake DESTINATION ${LOCAL_TEST_DIR} RENAME CTestTestfile.cmake)