0023962: Moving OCCT documentation to sources
[occt.git] / dox / dev_guides / dev_guides.md
CommitLineData
72b7576f 1 Developer Guides {#dev_guides}
2================
3
4@section OCCT_OVW_SECTION1 Source Repository
5
6This directory contains sources of Open CASCADE Technology (OCCT), a collection
7of C++ libraries providing services for 3D surface and solid modeling, CAD data
8exchange, and visualization. OCCT can be best applied in development of
9software dealing with 3D modeling (CAD), manufacturing / measuring (CAM) or
10numerical simulation (CAE).
11
12The OCCT code is subject to the Open CASCADE Technology Public License Version
136.6 (the "License"). You may not use the content of the relevant files except in
14compliance with the License. Please see the LICENSE file or obtain a copy of the
15License at http://www.opencascade.org and read it completely before using this
16software.
17
18@section OCCT_OVW_SECTION11 Building OCCT Libraries
19
20The source package of the Open CASCADE Technology including the source files of samples
21and tools and the set of building procedures is available for self-dependent preparation
22binary files on UNIX and Windows platforms.
23
24In order to build OCCT libraries from these sources for use in your program,
25you need to:
26
271. 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
332. 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
413. 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
48The current version of OCCT can be consulted in the file src/Standard/Standard_Version.hxx
49
50@section OCCT_OVW_SECTION111 Automatic tests
51
52OCCT automatic testing system is integrated with @ref draw "DRAW Test Harness",
53a console application based on Tcl (a scripting language).
54All tests are run from DRAW command prompt (run **draw.bat** or
55**draw.sh** to start it).
56
57Standard OCCT tests are located in subdirectory **tests** of the OCCT root
58folder. This location is set as default at DRAW start (see environment variable
59_CSF_TestScriptsPath_ defined in **src/DrawResources/DrawDefaults**).
60
61The 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
66To run all tests, type command *testgrid*:
67
68 Draw[]\> testgrid
69
70For 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
74As the tests progress, the result of each test case is reported.
75At the end of the log a summary of test cases is output, including the list of
76detected regressions and improvements, if any.
77The tests are considered as non-regressive if only OK, BAD (i.e. known problem),
78and SKIPPED (i.e. not executed, typically because of lack of a data file)
79statuses are reported.
80
81To run a single test, type command 'test' followed by the names of
82group, grid, and test case.
83
84 Draw[1]\> test blend simple A1
85 CASE blend simple A1: OK
86
87To see intermediate commands and their output during the test execution,
88add one more argument '-echo' at the end of the command line, or type 'dlog get'
89after test completion.
90
91For more information consult \subpage dev_guides__tests "Automatic Testing System"
92
93@section OCCT_OVW_SECTION1112 CDL Overview
94
95CDL is the component definition language of the Open CASCADE Technology (OCCT) programming platform.
96Some components, which CDL allows you to create, are specific to OCCT application architecture.
97
98For 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"