-# Copyright (C) 2012-2013 CEA/DEN, EDF R&D, OPEN CASCADE
+# Copyright (C) 2012-2023 CEA/DEN, 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.
+# 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
# --- options ---
+IF(WIN32) # if platform is Windows 64 bit
+ IF("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
+ ADD_DEFINITIONS(/bigobj) # to avoid error C1128
+ ENDIF()
+ENDIF()
+
# additional include directories
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
)
# libraries to link to
${CMAKE_CURRENT_BINARY_DIR}/pypilot.py
)
-ADD_CUSTOM_TARGET(docengine.i
- COMMAND DOXSRCDIR=${PROJECT_SOURCE_DIR}/src/engine ${DOXYGEN_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Misc/Doxyfile
- COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Misc/doxy2swig.py -n xml/index.xml docengine.i
- VERBATIM
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- )
+IF(WIN32)
+ SET(SET_CMD set)
+ SET(SEP_CMD &&)
+ENDIF(WIN32)
+
+IF(SALOME_BUILD_DOC)
+ ADD_CUSTOM_TARGET(docengine.i
+ ${SET_CMD} DOXSRCDIR=${PROJECT_SOURCE_DIR}/src/engine ${SEP_CMD} ${DOXYGEN_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Misc/Doxyfile
+ COMMAND ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/Misc/doxy2swig.py -n xml/index.xml docengine.i
+ VERBATIM
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ )
+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(WINDOWS)
+
+IF(WIN32)
SET_TARGET_PROPERTIES(_pilot PROPERTIES DEBUG_OUTPUT_NAME _pilot_d)
SET_TARGET_PROPERTIES(_pypilot PROPERTIES DEBUG_OUTPUT_NAME _pypilot_d)
-ENDIF(WINDOWS)
+ENDIF(WIN32)
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)