X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2Fengine_swig%2FCMakeLists.txt;h=455e39d77dc31ad9288d4f77a156a0261ae3f191;hb=22868d035fb80bab64e0231d8dfffdf7afc240c3;hp=06332b912206597546c378dfc842406b547d044d;hpb=301fcc69dc7b0f1f3f1f1e844a22cfa722253c8d;p=modules%2Fyacs.git diff --git a/src/engine_swig/CMakeLists.txt b/src/engine_swig/CMakeLists.txt index 06332b912..455e39d77 100644 --- a/src/engine_swig/CMakeLists.txt +++ b/src/engine_swig/CMakeLists.txt @@ -1,9 +1,9 @@ -# 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 @@ -21,10 +21,17 @@ INCLUDE(${SWIG_USE_FILE}) # --- 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} @@ -45,7 +52,6 @@ SET_PROPERTY(SOURCE pilot.i pypilot.i PROPERTY ADD_DEFINITIONS( ${PYTHON_DEFINITIONS} ${OMNIORB_DEFINITIONS} - -DYACS_PTHREAD ) # libraries to link to @@ -78,89 +84,66 @@ SET(_swig_SCRIPTS ${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)