0023962: Moving OCCT documentation to sources
[occt.git] / dox / dev_guides / dev_guides.md
1  Developer Guides {#dev_guides}
2 ================
3
4 @section OCCT_OVW_SECTION1 Source Repository
5
6 This directory contains sources of Open CASCADE Technology (OCCT), a collection
7 of C++ libraries providing services for 3D surface and solid modeling, CAD data
8 exchange, and visualization. OCCT can be best applied in development of
9 software dealing with 3D modeling (CAD), manufacturing / measuring (CAM) or
10 numerical simulation (CAE).
11
12 The OCCT code is subject to the Open CASCADE Technology Public License Version
13 6.6 (the "License"). You may not use the content of the relevant files except in
14 compliance with the License. Please see the LICENSE file or obtain a copy of the
15 License at http://www.opencascade.org and read it completely before using this
16 software.
17
18 @section OCCT_OVW_SECTION11 Building OCCT Libraries
19
20 The source package of the Open CASCADE Technology including the source files of samples
21 and tools and the set of building procedures is available for self-dependent preparation
22 binary files on UNIX and Windows platforms. 
23
24 In order to build OCCT libraries from these sources for use in your program, 
25 you need to:
26
27 1. Install the required third-party libraries.
28
29    Follow the instructions provided in the documents titled "Building 3rd party
30    products for OCCT" on http://dev.opencascade.org/?q=home/resources for
31    choice of the needed libraries, their installation and building.
32
33 2. If you use OCCT sources from Git repository or do come changes affecting
34    CDL files or dependencies of OCCT toolkit, update header files generated 
35    from CDL, and regenerate build scripts for your environment using WOK.
36    See \subpage dev_guides__wok "WOK" for details.
37
38    Skip to step 3 if you use complete source package (e.g. official OCCT 
39    release) without changes in CDL.
40
41 3. Build using your preferred build tool.
42    - \subpage dev_guides__building__automake "Building on Linux with Autotools"
43    - \subpage dev_guides__building__cmake "Building with CMake (cross-platform)"
44    - \subpage dev_guides__building__code_blocks "Building on Mac OS X with Code::Blocks"
45    - \subpage dev_guides__building__msvc "Building on Windows with MS Visual Studio 2005-2012"
46    - \subpage dev_guides__building__xcode "Building on Mac OS X with Xcode"
47
48 The current version of OCCT can be consulted in the file src/Standard/Standard_Version.hxx
49
50 @section OCCT_OVW_SECTION111 Automatic tests
51
52 OCCT automatic testing system is integrated with @ref draw "DRAW Test Harness",
53 a console application based on Tcl (a scripting language).
54 All tests are run from DRAW command prompt (run **draw.bat** or 
55 **draw.sh** to start it).
56
57 Standard OCCT tests are located in subdirectory **tests** of the OCCT root 
58 folder. This location is set as default at DRAW start (see environment variable 
59 _CSF_TestScriptsPath_ defined in **src/DrawResources/DrawDefaults**).
60
61 The tests are organized in three levels:
62 - Group: a group of related test grids, usually testing a particular subset of OCCT functionality (e.g. *blend*). 
63 - Grid: a set of test cases within a group, usually aimed at testing a particular aspect or mode of execution of the relevant functionality (e.g. *buildevol*).
64 - Test case: a script implementing an individual test (e.g. *K4*).
65
66 To run all tests, type command *testgrid*:
67
68     Draw[]\> testgrid
69
70 For running only a group or a grid of tests, give additional arguments indicating the group and (if needed) the grid name:
71
72     Draw[]\> testgrid blend simple
73
74 As the tests progress, the result of each test case is reported. 
75 At the end of the log a summary of test cases is output, including the list of 
76 detected regressions and improvements, if any.
77 The tests are considered as non-regressive if only OK, BAD (i.e. known problem), 
78 and SKIPPED (i.e. not executed, typically because of lack of a data file) 
79 statuses are reported. 
80
81 To run a single test, type command 'test' followed by the names of 
82 group, grid, and test case. 
83
84     Draw[1]\> test blend simple A1
85     CASE blend simple A1: OK
86
87 To see intermediate commands and their output during the test execution, 
88 add one more argument '-echo' at the end of the command line, or type 'dlog get'
89 after test completion. 
90
91 For more information consult \subpage dev_guides__tests "Automatic Testing System"
92
93 @section OCCT_OVW_SECTION1112 CDL Overview
94
95 CDL is the component definition language of the Open CASCADE Technology (OCCT) programming platform. 
96 Some components, which CDL allows you to create, are specific to OCCT application architecture. 
97
98 For more information consult \subpage dev_guides__cdl "Component Definition Language Developer's Guide"
99
100 @section OCCT_OVW_SECTION1113 Documentation Overview
101
102 \subpage dev_guides__documentation "Documentation Developer's Guide"