]> SALOME platform Git repositories - modules/geom.git/commitdiff
Salome HOME
Fix for the "23284: EDF 13077 GEOM: Build GEOM without GUI and without VTK" issue.
authorana <ana@opencascade.com>
Thu, 28 Jul 2016 14:45:59 +0000 (17:45 +0300)
committerana <ana@opencascade.com>
Thu, 28 Jul 2016 14:45:59 +0000 (17:45 +0300)
CMakeLists.txt
SalomeGEOMConfig.cmake.in
doc/salome/gui/GEOM/CMakeLists.txt
idl/CMakeLists.txt
resources/CMakeLists.txt
src/CMakeLists.txt
src/GEOM_I_Superv/CMakeLists.txt
src/GEOM_I_Superv/GEOM_Superv_i.cc
src/GEOM_I_Superv/GEOM_Superv_i.hh
src/GEOM_SWIG/CMakeLists.txt

index cf0c94e68a41b9f8176f5968810c902d1f56d72f..ad0bb3c7830609b6ab1ccfc9503eb14549a445db 100755 (executable)
@@ -70,7 +70,9 @@ OPTION(SALOME_BUILD_TESTS "Build SALOME tests" ON)
 OPTION(SALOME_BUILD_GUI "Enable GUI" ON)
 CMAKE_DEPENDENT_OPTION(SALOME_GEOM_USE_OPENCV "Enable shape recognition from picture" OFF
                        "SALOME_BUILD_GUI" OFF)
-MARK_AS_ADVANCED(SALOME_BUILD_GUI SALOME_GEOM_USE_OPENCV)
+CMAKE_DEPENDENT_OPTION(SALOME_GEOM_USE_VTK "Enable VTK-dependent functionality" ON
+                       "NOT SALOME_BUILD_GUI" ON)
+MARK_AS_ADVANCED(SALOME_BUILD_GUI SALOME_GEOM_USE_OPENCV SALOME_GEOM_USE_VTK)
 
 # Prerequisites
 # =============
@@ -146,7 +148,11 @@ ENDIF(SALOME_BUILD_GUI)
 ##
 
 FIND_PACKAGE(SalomeCAS REQUIRED)
-FIND_PACKAGE(SalomeVTK REQUIRED)
+
+IF(SALOME_GEOM_USE_VTK)
+  FIND_PACKAGE(SalomeVTK REQUIRED)
+  ADD_DEFINITIONS(-DWITH_VTK)
+ENDIF(SALOME_GEOM_USE_VTK)
 
 # OpenCV
 IF(SALOME_GEOM_USE_OPENCV)
@@ -231,9 +237,9 @@ INCLUDE(CMakePackageConfigHelpers)
 SET(_${PROJECT_NAME}_exposed_targets 
   GEOMArchimede BlockFix GEOMbasic GEOMAlgo GEOMClient GEOMImpl
   GEOMUtils GEOMEngine GEOM_SupervEngine GEOMSketcher
-  SalomeIDLGEOM SalomeIDLGEOMSuperv SalomeIDLAdvancedGEOM ShHealOper XAO AdvancedEngine OCC2VTK
-  SalomeIDLSTLPlugin SalomeIDLBREPPlugin SalomeIDLSTEPPlugin SalomeIDLIGESPlugin SalomeIDLXAOPlugin SalomeIDLVTKPlugin
-  STLPluginEngine BREPPluginEngine STEPPluginEngine IGESPluginEngine XAOPluginEngine VTKPluginEngine
+  SalomeIDLGEOM SalomeIDLGEOMSuperv SalomeIDLAdvancedGEOM ShHealOper XAO AdvancedEngine 
+  SalomeIDLSTLPlugin SalomeIDLBREPPlugin SalomeIDLSTEPPlugin SalomeIDLIGESPlugin SalomeIDLXAOPlugin
+  STLPluginEngine BREPPluginEngine STEPPluginEngine IGESPluginEngine XAOPluginEngine 
 )
 IF(SALOME_BUILD_GUI)
   LIST(APPEND _${PROJECT_NAME}_exposed_targets 
@@ -247,6 +253,14 @@ IF(SALOME_BUILD_GUI)
   ENDIF(SALOME_USE_GRAPHICSVIEW)
 ENDIF(SALOME_BUILD_GUI)
 
+IF(SALOME_GEOM_USE_VTK)
+  LIST(APPEND _${PROJECT_NAME}_exposed_targets 
+    OCC2VTK
+    VTKPluginEngine
+    SalomeIDLVTKPlugin
+    )
+ENDIF(SALOME_GEOM_USE_VTK)
+
 IF(SALOME_GEOM_USE_OPENCV)
   LIST(APPEND _${PROJECT_NAME}_exposed_targets 
     GEOMShapeRec
index 72c7703370c172df7faf5b0801baf1c48e710589..701655953bdf394477e6cfa7284a14855bdab9e3 100644 (file)
@@ -53,11 +53,11 @@ SET(SALOME_GEOM_BUILD_TESTS  @SALOME_BUILD_TESTS@)
 # Advanced options
 SET(SALOME_GEOM_BUILD_GUI  @SALOME_BUILD_GUI@)
 SET(SALOME_GEOM_USE_OPENCV @SALOME_GEOM_USE_OPENCV@)
+SET(SALOME_GEOM_USE_VTK @SALOME_GEOM_USE_VTK@)
 
 # Level 1 prerequisites:
 SET_AND_CHECK(KERNEL_ROOT_DIR_EXP "@PACKAGE_KERNEL_ROOT_DIR@")
 SET_AND_CHECK(CAS_ROOT_DIR_EXP "@PACKAGE_CAS_ROOT_DIR@")
-SET_AND_CHECK(VTK_ROOT_DIR_EXP "@PACKAGE_VTK_ROOT_DIR@")
 
 # Optional level 1 prerequisites:
 IF(SALOME_GEOM_BUILD_GUI)
@@ -68,6 +68,10 @@ IF(SALOME_GEOM_USE_OPENCV)
   SET_AND_CHECK(OPENCV_ROOT_DIR_EXP "@PACKAGE_OPENCV_ROOT_DIR@")
   LIST(APPEND GEOM_DEFINITIONS "-DWITH_OPENCV")
 ENDIF()
+IF(SALOME_GEOM_USE_VTK)
+  SET_AND_CHECK(VTK_ROOT_DIR_EXP "@PACKAGE_VTK_ROOT_DIR@")
+  LIST(APPEND GEOM_DEFINITIONS "-DWITH_VTK")
+ENDIF()
 
 # For all prerequisites, load the corresponding targets if the package was used
 # in CONFIG mode. This ensures dependent projects link correctly
index a0defdbfda8221d261deeed94566403f680836a0..b30c3ca01b16d67eac2f50bce405fb240d18eb35 100644 (file)
@@ -27,7 +27,10 @@ SALOME_CONFIGURE_FILE(static/header_py.html.in ${CMAKE_CURRENT_BINARY_DIR}/stati
 
 # Generate a temporary python file, needed for the genaration of the documentation
 # of the built-in Geometry plugins.
-SET(DOC_GEOM_PluginsList AdvancedGEOM STLPlugin BREPPlugin STEPPlugin IGESPlugin XAOPlugin VTKPlugin)
+SET(DOC_GEOM_PluginsList AdvancedGEOM STLPlugin BREPPlugin STEPPlugin IGESPlugin XAOPlugin)
+IF(SALOME_GEOM_USE_VTK)
+  SET(DOC_GEOM_PluginsList ${DOC_GEOM_PluginsList} VTKPlugin)
+ENDIF()
 SALOME_ACCUMULATE_ENVIRONMENT(GEOM_PluginsList NOCHECK ${DOC_GEOM_PluginsList})
 SET(geom_file "${CMAKE_CURRENT_SOURCE_DIR}/collect_geom_methods.py")
 SET(plugins_cmd_options ${geom_file} -o tmp1/geomBuilder.py ${DOC_GEOM_PluginsList})
index 3ec72cd2d14bfa9f13412b7dd227f830732ba624..9d7f1692aea2d0ba25a4dc0f743d43fdbd8e20f9 100755 (executable)
@@ -107,8 +107,10 @@ INSTALL(TARGETS SalomeIDLIGESPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATIO
 OMNIORB_ADD_MODULE(SalomeIDLXAOPlugin "${SalomeIDLXAOPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
 INSTALL(TARGETS SalomeIDLXAOPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
 
-OMNIORB_ADD_MODULE(SalomeIDLVTKPlugin "${SalomeIDLVTKPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
-INSTALL(TARGETS SalomeIDLVTKPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+IF(SALOME_GEOM_USE_VTK)
+  OMNIORB_ADD_MODULE(SalomeIDLVTKPlugin "${SalomeIDLVTKPlugin_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_PLUGIN_FLAGS}")
+  INSTALL(TARGETS SalomeIDLVTKPlugin EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
+ENDIF(SALOME_GEOM_USE_VTK)
 
 OMNIORB_ADD_MODULE(SalomeIDLGEOMSuperv "${SalomeIDLGEOMSuperv_IDLSOURCES}" "${IDL_INCLUDE_DIRS}" "${IDL_LINK_SUPERV_FLAGS}")
 INSTALL(TARGETS SalomeIDLGEOMSuperv EXPORT ${PROJECT_NAME}TargetGroup DESTINATION ${SALOME_INSTALL_LIBS})
index 6d834876bd1b1f6c0ff19b112e4f8effeb09e96f..99240b42ca30cbdf0f9b4fe121b5f4402bb8ec3f 100755 (executable)
@@ -29,7 +29,6 @@ SET( _res_files
   STEPPlugin.xml
   IGESPlugin.xml
   XAOPlugin.xml
-  VTKPlugin.xml
   GEOM_en.xml
   GEOM_fr.xml
   GEOM.config
@@ -300,6 +299,13 @@ SET( _res_files
   exportxao.png importxao.png
   ##@@ insert new functions before this line @@ do not remove this line @@##
   )
+IF(SALOME_GEOM_USE_VTK)
+  SET(_res_files
+    VTKPlugin.xml
+    ${_res_files}
+  )
+ENDIF(SALOME_GEOM_USE_VTK)
+
 INSTALL(FILES ${_res_files} DESTINATION ${SALOME_GEOM_INSTALL_RES_DATA})
 
 SET( _texture_files
index da1d493d613d91cefc4b7a457aa8a6fddc0abba0..ceb8ff62f7affbaa0326c7df8bf08a62276f26f3 100755 (executable)
@@ -23,8 +23,8 @@
 SET(SUBDIRS_COMMON
   ARCHIMEDE BlockFix GEOMAlgo SKETCHER GEOM ShHealOper GEOMUtils XAO XAO_Swig 
   GEOMImpl GEOM_I GEOMClient GEOM_I_Superv GEOM_SWIG GEOM_PY
-  AdvancedEngine OCC2VTK
-  STLPlugin BREPPlugin STEPPlugin IGESPlugin XAOPlugin VTKPlugin Tools
+  AdvancedEngine
+  STLPlugin BREPPlugin STEPPlugin IGESPlugin XAOPlugin Tools
   )
 
 ##
@@ -36,6 +36,16 @@ IF(SALOME_GEOM_USE_OPENCV)
     )
 ENDIF()
 
+##
+# VTK
+##
+IF(SALOME_GEOM_USE_VTK)
+  SET(SUBDIRS_VTK 
+    OCC2VTK
+    VTKPlugin
+    )
+ENDIF()
+
 ##
 # GUI
 ##
@@ -55,6 +65,7 @@ ENDIF()
 SET(SUBDIRS
   ${SUBDIRS_COMMON}
   ${SUBDIRS_OPENCV}
+  ${SUBDIRS_VTK}
   ${SUBDIRS_CC}
   ${SUBDIRS_GUI}
 )
index e9a0563e3af31d04a1e7f5d91f561af399bfa9d6..f2e8589e1e75beb523aa0e9a4ecbf305e8f9a2e4 100755 (executable)
@@ -43,7 +43,6 @@ SET(_link_LIBRARIES
   SalomeIDLIGESPlugin
   SalomeIDLSTEPPlugin
   SalomeIDLSTLPlugin
-  SalomeIDLVTKPlugin
   SalomeIDLXAOPlugin
   ${KERNEL_SALOMELocalTrace}
   ${KERNEL_SalomeDSClient}
@@ -52,6 +51,10 @@ SET(_link_LIBRARIES
   ${KERNEL_SalomeNS}
   )
 
+IF(SALOME_GEOM_USE_VTK)
+  SET(_link_LIBRARIES ${_link_LIBRARIES}
+    SalomeIDLVTKPlugin)
+ENDIF(SALOME_GEOM_USE_VTK)
 # --- headers ---
 
 SET(GEOM_SupervEngine_HEADERS
index a93b4c63221fbf939fdc346f6fde9c14adbe8f4b..2984de3afce8e2d6ccfef6608c256ca07a4ace5c 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "GEOM_Superv_i.hh"
 #include "SALOME_LifeCycleCORBA.hxx"
+#include "Utils_CorbaException.hxx"
 
 #include CORBA_SERVER_HEADER(SALOME_Session)
 #include "SALOMEDSClient_ClientFactory.hxx"
@@ -483,6 +484,7 @@ void GEOM_Superv_i::getXAOPluginOp()
   }
 }
 
+#ifdef WITH_VTK
 //=============================================================================
 //  getVTKPluginOp:
 //=============================================================================
@@ -498,6 +500,7 @@ void GEOM_Superv_i::getVTKPluginOp()
     myVTKOp = GEOM::IVTKOperations::_narrow(myGeomEngine->GetPluginOperations(myStudyID, "VTKPluginEngine"));
   }
 }
+#endif
 
 //=============================================================================
 //  GetServant:
@@ -3652,6 +3655,7 @@ CORBA::Boolean GEOM_Superv_i::ImportXAO( const char* fileName,
   return false;
 }
 
+
 //=============================================================================
 //  Export VTK
 //=============================================================================
@@ -3659,11 +3663,16 @@ void GEOM_Superv_i::ExportVTK(  GEOM::GEOM_Object_ptr theObject,
                                const char*           theFileName,
                                CORBA::Double         theDeflection )
 {
+  #ifdef WITH_VTK
   beginService( " GEOM_Superv_i::ExportVTK" );
   MESSAGE("GEOM_Superv_i::ExportVTK");
   getVTKPluginOp();
   myVTKOp->ExportVTK( theObject, theFileName, theDeflection );
   endService( " GEOM_Superv_i::ExportVTK" );
+#else
+  std::string message("GEOM_Superv_i::ExportVTK functionality is unavailable");
+  THROW_SALOME_CORBA_EXCEPTION(message.c_str(), SALOME::INTERNAL_ERROR);
+#endif
 }
 
 //=============================== Advanced Operations =============================
index da94583c80c5b4acb1f86c1ce81a4991d10bab30..594215cc4d3d4b6221e5313e5fd681cc42bf609b 100644 (file)
@@ -34,7 +34,9 @@
 #include CORBA_CLIENT_HEADER(STEPPlugin)
 #include CORBA_CLIENT_HEADER(IGESPlugin)
 #include CORBA_CLIENT_HEADER(XAOPlugin)
+#ifdef WITH_VTK
 #include CORBA_CLIENT_HEADER(VTKPlugin)
+#endif
 #include CORBA_SERVER_HEADER(GEOM_Superv)
 
 #include "SALOME_Component_i.hxx"
@@ -73,8 +75,9 @@ public:
   void getSTEPPluginOp();
   void getIGESPluginOp();
   void getXAOPluginOp();
+#ifdef WITH_VTK
   void getVTKPluginOp();
-
+#endif
   PortableServer::ServantBase_var GetServant(CORBA::Object_ptr       theObject,
                                              PortableServer::POA_ptr thePOA);
 
@@ -807,7 +810,9 @@ private:
   GEOM::ISTEPOperations_var           mySTEPOp;
   GEOM::IIGESOperations_var           myIGESOp;
   GEOM::IXAOOperations_var            myXAOOp;
+#ifdef WITH_VTK
   GEOM::IVTKOperations_var            myVTKOp;
+#endif
 };
 
 #endif
index 22c9d3a0f25fbc64127f397607abb11a43be294c..c29198e15114c6f77ede4f4ee68067eba7855bcd 100755 (executable)
@@ -132,4 +132,6 @@ SALOME_INSTALL_SCRIPTS("${_python_BREP_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome
 SALOME_INSTALL_SCRIPTS("${_python_STEP_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/STEPPlugin DEF_PERMS)
 SALOME_INSTALL_SCRIPTS("${_python_IGES_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/IGESPlugin DEF_PERMS)
 SALOME_INSTALL_SCRIPTS("${_python_XAO_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/XAOPlugin DEF_PERMS)
-SALOME_INSTALL_SCRIPTS("${_python_VTK_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/VTKPlugin DEF_PERMS)
+IF(SALOME_GEOM_USE_VTK)
+  SALOME_INSTALL_SCRIPTS("${_python_VTK_SCRIPTS}" ${SALOME_INSTALL_PYTHON}/salome/VTKPlugin DEF_PERMS)
+ENDIF(SALOME_GEOM_USE_VTK)