From: kgv Date: Fri, 19 Mar 2021 21:31:01 +0000 (+0300) Subject: Draw Harness - add DRAWBUNDLE executable with pre-loaded plugins X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=8505ca0f4508a4fb8ca8753faa3ac3546b556457;p=occt-copy.git Draw Harness - add DRAWBUNDLE executable with pre-loaded plugins --- diff --git a/CMakeLists.txt b/CMakeLists.txt index d565e393d5..e79e4ecd70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -439,6 +439,7 @@ endforeach() # DRAWEXE excluded when library build is static if (NOT BUILD_SHARED_LIBS) list (REMOVE_ITEM BUILD_TOOLKITS DRAWEXE) + #list (REMOVE_ITEM BUILD_TOOLKITS DRAWBUNDLE) message (STATUS "Info: DRAWEXE is not included due to ${BUILD_LIBRARY_TYPE} build library type") endif() @@ -836,7 +837,8 @@ string(TIMESTAMP CURRENT_TIME "%H:%M:%S") message (STATUS "Info: \(${CURRENT_TIME}\) End the collecting") list (FIND BUILD_TOOLKITS DRAWEXE DRAWEXE_INDEX) -if (${DRAWEXE_INDEX} GREATER -1) +list (FIND BUILD_TOOLKITS DRAWBUNDLE DRAWBUNDLE_INDEX) +if (${DRAWEXE_INDEX} GREATER -1 OR ${DRAWBUNDLE_INDEX} GREATER -1) OCCT_INSTALL_FILE_OR_DIR ("data/" "${INSTALL_DIR_DATA}") OCCT_INSTALL_FILE_OR_DIR ("samples/tcl" "${INSTALL_DIR_SAMPLES}") endif() @@ -902,7 +904,8 @@ if (INSTALL_TEST_CASES) endif() list (FIND BUILD_TOOLKITS DRAWEXE DRAWEXE_INDEX) -if (${DRAWEXE_INDEX} GREATER -1) +list (FIND BUILD_TOOLKITS DRAWBUNDLE DRAWBUNDLE_INDEX) +if (${DRAWEXE_INDEX} GREATER -1 OR ${DRAWBUNDLE_INDEX} GREATER -1) # copy data and samples/tcl folders to install script folder OCCT_INSTALL_FILE_OR_DIR ("data/" "${INSTALL_DIR_DATA}") OCCT_INSTALL_FILE_OR_DIR ("samples/tcl" "${INSTALL_DIR_SAMPLES}") diff --git a/adm/MODULES b/adm/MODULES index 724bf81776..bcc60cdd37 100644 --- a/adm/MODULES +++ b/adm/MODULES @@ -4,4 +4,4 @@ ModelingAlgorithms TKGeomAlgo TKTopAlgo TKPrim TKBO TKBool TKHLR TKFillet TKOffs Visualization TKService TKV3d TKOpenGl TKOpenGles TKMeshVS TKIVtk TKD3DHost ApplicationFramework TKCDF TKLCAF TKCAF TKBinL TKXmlL TKBin TKXml TKStdL TKStd TKTObj TKBinTObj TKXmlTObj TKVCAF DataExchange TKXSBase TKSTEPBase TKSTEPAttr TKSTEP209 TKSTEP TKIGES TKXCAF TKXDEIGES TKXDESTEP TKSTL TKVRML TKXmlXCAF TKBinXCAF TKRWMesh -Draw TKDraw TKTopTest TKOpenGlTest TKOpenGlesTest TKD3DHostTest TKViewerTest TKXSDRAW TKDCAF TKXDEDRAW TKTObjDRAW TKQADraw TKIVtkDraw DRAWEXE +Draw TKDraw TKTopTest TKOpenGlTest TKOpenGlesTest TKD3DHostTest TKViewerTest TKXSDRAW TKDCAF TKXDEDRAW TKTObjDRAW TKQADraw TKIVtkDraw DRAWEXE DRAWBUNDLE diff --git a/adm/UDLIST b/adm/UDLIST index 3f3993a157..f5b91d0b9a 100644 --- a/adm/UDLIST +++ b/adm/UDLIST @@ -425,6 +425,7 @@ t TKViewerTest t TKXDEDRAW t TKXSDRAW x DRAWEXE +x DRAWBUNDLE n QADraw n QANCollection n QANewBRepNaming diff --git a/adm/cmake/occt_toolkit.cmake b/adm/cmake/occt_toolkit.cmake index acbaac55ec..c13ec3863f 100644 --- a/adm/cmake/occt_toolkit.cmake +++ b/adm/cmake/occt_toolkit.cmake @@ -39,7 +39,7 @@ set (PRECOMPILED_DEFS) if (NOT BUILD_SHARED_LIBS) list (APPEND PRECOMPILED_DEFS "-DOCCT_NO_PLUGINS") - if (WIN32) + if (WIN32 AND NOT EXECUTABLE_PROJECT) list (APPEND PRECOMPILED_DEFS "-DOCCT_STATIC_BUILD") endif() endif() @@ -383,7 +383,7 @@ else() endif() endif() -if (BUILD_SHARED_LIBS) +if (BUILD_SHARED_LIBS OR EXECUTABLE_PROJECT) if(IS_VTK_9XX) string (REGEX REPLACE "vtk" "VTK::" USED_TOOLKITS_BY_CURRENT_PROJECT "${USED_TOOLKITS_BY_CURRENT_PROJECT}") endif() diff --git a/adm/cmake/tcl.cmake b/adm/cmake/tcl.cmake index 77359a6204..00de7e2374 100644 --- a/adm/cmake/tcl.cmake +++ b/adm/cmake/tcl.cmake @@ -1,6 +1,6 @@ # tcl -if (NOT DEFINED INSTALL_TCL AND BUILD_SHARED_LIBS) +if (NOT DEFINED INSTALL_TCL) set (INSTALL_TCL OFF CACHE BOOL "${INSTALL_TCL_DESCR}") endif() @@ -14,7 +14,7 @@ if (NOT DEFINED 3RDPARTY_TCL_INCLUDE_DIR) set (3RDPARTY_TCL_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of tcl") endif() -if (BUILD_SHARED_LIBS) + # tcl library file (with absolute path) if (NOT DEFINED 3RDPARTY_TCL_LIBRARY OR NOT 3RDPARTY_TCL_LIBRARY_DIR) set (3RDPARTY_TCL_LIBRARY "" CACHE FILEPATH "tcl library" FORCE) @@ -36,7 +36,7 @@ if (BUILD_SHARED_LIBS) if (WIN32 AND NOT DEFINED 3RDPARTY_TCL_DLL_DIR) set (3RDPARTY_TCL_DLL_DIR "" CACHE FILEPATH "The directory containing tcl shared library") endif() -endif() + # search for tcl in user defined directory if (NOT 3RDPARTY_TCL_DIR AND 3RDPARTY_DIR) @@ -64,7 +64,7 @@ if (NOT 3RDPARTY_TCL_INCLUDE_DIR) endif() endif() -if (BUILD_SHARED_LIBS) + # tcl dir and library if (NOT 3RDPARTY_TCL_LIBRARY) if (TCL_LIBRARY AND EXISTS "${TCL_LIBRARY}") @@ -98,11 +98,11 @@ if (BUILD_SHARED_LIBS) NO_DEFAULT_PATH) endif() endif() -endif() + COMPLIANCE_PRODUCT_CONSISTENCY(TCL) -if (BUILD_SHARED_LIBS) + # tcl dir and library if (NOT 3RDPARTY_TCL_LIBRARY) set (3RDPARTY_TCL_LIBRARY "3RDPARTY_TCL_LIBRARY-NOTFOUND" CACHE FILEPATH "TCL library" FORCE) @@ -260,7 +260,7 @@ if (BUILD_SHARED_LIBS) endif() mark_as_advanced (3RDPARTY_TCL_LIBRARY 3RDPARTY_TCL_DLL) -endif() + if (TK_FOUND AND 3RDPARTY_TCL_DIR) @@ -286,9 +286,9 @@ OCCT_CHECK_AND_UNSET (TK_INCLUDE_PATH) OCCT_CHECK_AND_UNSET (TK_WISH) if (NOT BUILD_SHARED_LIBS) - OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_LIBRARY) - OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_LIBRARY_DIR) - OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_DLL) - OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_DLL_DIR) - OCCT_CHECK_AND_UNSET (INSTALL_TCL) +# OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_LIBRARY) +# OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_LIBRARY_DIR) +# OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_DLL) +# OCCT_CHECK_AND_UNSET (3RDPARTY_TCL_DLL_DIR) +# OCCT_CHECK_AND_UNSET (INSTALL_TCL) endif() diff --git a/adm/scripts/cmake_gen.bat b/adm/scripts/cmake_gen.bat index 0a0ac0dff5..428107902b 100644 --- a/adm/scripts/cmake_gen.bat +++ b/adm/scripts/cmake_gen.bat @@ -12,6 +12,7 @@ set VS=14 set VSDATA=2015 set VSPLATFORM=Win64 set "BUILD_DIR=build-vs%VS%-%VSPLATFORM%" +set "OCCT3RDPARTY=" set "INSTALL_DIR=%SrcRoot%\install" set BUILD_ADDITIONAL_TOOLKITS= diff --git a/src/DRAWBUNDLE/CMakeLists.txt b/src/DRAWBUNDLE/CMakeLists.txt new file mode 100644 index 0000000000..33a62b3e57 --- /dev/null +++ b/src/DRAWBUNDLE/CMakeLists.txt @@ -0,0 +1,5 @@ +project(DRAWBUNDLE) + +set (EXECUTABLE_PROJECT ON) +OCCT_INCLUDE_CMAKE_FILE (adm/cmake/occt_toolkit) +unset (EXECUTABLE_PROJECT) diff --git a/src/DRAWBUNDLE/DRAWBUNDLE.cxx b/src/DRAWBUNDLE/DRAWBUNDLE.cxx new file mode 100644 index 0000000000..83b8b7e570 --- /dev/null +++ b/src/DRAWBUNDLE/DRAWBUNDLE.cxx @@ -0,0 +1,53 @@ +// Created on: 2003-08-11 +// Created by: Sergey ZARITCHNY +// Copyright (c) 2003-2014 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and/or modify it under +// the terms of the GNU Lesser General Public License version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#include +#include +#include + +#include +#include +#include +//#include +#include +#include +#include + +//======================================================================= +//function : Draw_InitAppli +//purpose : +//======================================================================= + +void Draw_InitAppli (Draw_Interpretor& di) +{ + Draw::Commands (di); + DBRep::BasicCommands (di); + DrawTrSurf::BasicCommands (di); + + BOPTest::Factory (di); + DPrsStd::Factory (di); + XSDRAWSTLVRML::Factory (di); + XDEDRAW::Factory (di); + ViewerTest::Factory (di); + OpenGlTest::Factory (di); + //TObjDRAW::Factory (di); + //QADraw::Factory (di); + //OpenGlesTest::Factory (di); + //D3DHostTest::Factory (di); + //IVtkDraw::Factory (di); +} + +#include +DRAW_MAIN diff --git a/src/DRAWBUNDLE/EXTERNLIB b/src/DRAWBUNDLE/EXTERNLIB new file mode 100644 index 0000000000..2e6318ded3 --- /dev/null +++ b/src/DRAWBUNDLE/EXTERNLIB @@ -0,0 +1,68 @@ +TKTopTest +TKDCAF +TKXSDRAW +TKXDEDRAW +TKOpenGlTest +TKViewerTest +TKDraw +TKMeshVS +TKXDESTEP +TKSTEP +TKSTEPAttr +TKSTEP209 +TKSTEPBase +TKXDEIGES +TKIGES +TKXSBase +TKVRML +TKSTL +TKRWMesh +TKBinXCAF +TKXmlXCAF +TKBin +TKXml +TKXmlL +TKBinL +TKOpenGl +TKXCAF +TKVCAF +TKStd +TKCAF +TKV3d +TKHLR +TKMesh +TKService +TKOffset +TKFillet +TKFeat +TKBool +TKBO +TKShHealing +TKPrim +TKTopAlgo +TKGeomAlgo +TKBRep +TKGeomBase +TKG3d +TKG2d +TKMath +TKStdL +TKLCAF +TKCDF +TKernel +CSF_TclLibs +CSF_OpenVR +CSF_OpenGlLibs +CSF_FFmpeg +CSF_FreeImagePlus +CSF_FREETYPE +CSF_user32 +CSF_advapi32 +CSF_XwLibs +CSF_dpsLibs +CSF_XmuLibs +CSF_fontconfig +CSF_objc +CSF_Appkit +CSF_IOKit +CSF_winmm diff --git a/src/DRAWBUNDLE/FILES b/src/DRAWBUNDLE/FILES new file mode 100644 index 0000000000..4f457d3b25 --- /dev/null +++ b/src/DRAWBUNDLE/FILES @@ -0,0 +1,2 @@ +DRAWBUNDLE.cxx +EXTERNLIB diff --git a/src/Draw/Draw_PluginMacro.hxx b/src/Draw/Draw_PluginMacro.hxx index 4c7d77e436..badfb8ebdb 100644 --- a/src/Draw/Draw_PluginMacro.hxx +++ b/src/Draw/Draw_PluginMacro.hxx @@ -16,10 +16,13 @@ #ifndef _Draw_PluginMacro_HeaderFile #define _Draw_PluginMacro_HeaderFile +#ifdef OCCT_NO_PLUGINS +#define DPLUGIN(name) +#else #define DPLUGIN(name) \ -extern "C" {Standard_EXPORT void PLUGINFACTORY(Draw_Interpretor&);} \ -void PLUGINFACTORY(Draw_Interpretor& theDI) { \ - name::Factory(theDI);} \ -\ +extern "C" Standard_EXPORT void PLUGINFACTORY(Draw_Interpretor& theDI) { \ + name::Factory(theDI); \ +} +#endif #endif diff --git a/src/OS/Draw.tcl b/src/OS/Draw.tcl index a72770b69e..202308a6be 100644 --- a/src/OS/Draw.tcl +++ b/src/OS/Draw.tcl @@ -11,9 +11,7 @@ # Alternatively, this file may be used under the terms of Open CASCADE # commercial license or contractual agreement. -;# -;# Liste des toolkits WOK sous forme de full path -;# +;# Return list of toolkits proc Draw:toolkits { } { set aResult [list TKDraw TKTopTest TKViewerTest TKXSDRAW TKDCAF TKXDEDRAW TKTObjDRAW TKQADraw] @@ -37,41 +35,24 @@ proc Draw:toolkits { } { return $aResult } -;# ;# Autres UDs a prendre. Listes de triplets ;# { ar typ UD str } Tous les types de UD vont dans un sous directory nomme root/str ;# Ils seront dans CAS3.0/str de l'archive de type ar (source/runtime) ;# { ar typ UD {} } Tous les types de UD vont dans root/UD/src => CAS3.0/src -;# proc Draw:ressources { } { - return [list \ - [list both r DrawResources {}] \ - [list both x DRAWEXE {}] \ - ] -} -proc Draw:freefiles { } { - return {} -} -;# -;# Nom du module -;# -proc Draw:name { } { - return Draw -} -proc Draw:alias { } { - return DRAW -} -proc Draw:depends { } { - return [list DataExchange] + return [list \ + [list both r DrawResources {}] \ + [list both x DRAWEXE {}] \ + [list both x DRAWBUNDLE {}] \ + ] } -proc Draw:acdepends { } { - return [list TCLTK] -} +proc Draw:freefiles { } { return {} } + +proc Draw:name { } { return Draw } +proc Draw:alias { } { return DRAW } +proc Draw:depends { } { return [list DataExchange] } +proc Draw:acdepends { } { return [list TCLTK] } -;# ;# Returns a list of exported features. -;# -proc Draw:Export { } { - return [list source runtime wokadm api] -} +proc Draw:Export { } { return [list source runtime wokadm api] }