Directory Structure

From ParaQ Wiki
Jump to navigationJump to search

Overview

This document is a proposal for a directory structure. It is modelled heavily on ParaView .

Design

ParaQ Root
|
+ CMake: (ParaView/CMake) Cmake utility scripts.
+ Utilities: Components that don't depend on VTK/ParaView/Qt but are needed to build the project or extensions to the project. eg. Doxygen, freetype library, jpeg library, etc etc.
|  |
|  + ParaView: (ParaView/Utilties) non-ParaView dependent libraries/utilities needed by ParaView (i.e. Servers), includes ClientServer wrapping code. Can depend on VTK.
+ VTK : VTK subtree.
+ Common : (ParaView/Common). Includes KWCommon. Depends on VTK and Utilities.
+ Servers : (ParaView/Servers) Groups all the modules user by render/data server. No GUI components. Depends on VTK, Utilities, Common.
|  |
|  + Common : core server classes such as process module, connections etc etc. 
|  + Filters  : These are filters that can be instantiated on the server in addition to the filters provided by VTK. 
|  + ServerManager : The server manager classes (Proxy/Proxymanager etc etc).
|  + Executables : Executables sources i.e. pvbatch/pvserver/pvdataserver/pvrenderserver.
|  + Wrapping : ServerManager wrapping support. Presently includes python wrapping.
+ GUI : Collects all the GUI modules.
|  |
|  + Widgets : Qt widgets, Qt widget extensions. Ideally these don't depend on ServerManager at all. This is where all the reusable components are collected.
|  | |
|  | + Resources : all resources files i.e. not .cxx|.h should be clubbed in here. eg. *.ui, *.xml etc etc.
|  | + Chart : chart classes.
|  + Client : ServerManager dependent GUI components. Includes extensions to the components provided by GUI/Widgets.
|    |
|    + Resources : all resources files i.e. not .cxx|.h should be clubbed in here. eg. *.ui, *.xml etc etc.
+ Applications: Applications built on top of ParaQ 

Notes

  • (ParaView/<Dir>) next to any directory implies that the directory is symlinked to the one in paraview.
  • Ideally, every directory should have a Testing directory that contains the testing scripts to test the components provided by that directory.