cf98ae8c384659ce18a9914fdcd61f602f7d63a3
[occt.git] / dox / dev_guides / building / xcode.md
1 Building with Xcode {#occt_dev_guides__building_xcode}
2 ===================
3
4 @tableofcontents
5
6 @section build_xcode_intro General
7
8 This file describes steps to build OCCT libraries from sources on Mac OS X with **Xcode** projects, generated by OCCT legacy tool **genproj**.
9
10 @section build_xcode_3rdparty Third-party libraries
11
12 Before building OCCT, make sure to have all the needed third-party libraries installed.
13 On OS X we recommend to use native libraries.
14 You can also build third-party libraries from their sources, see @ref occt_dev_guides__building_3rdparty_osx for instructions.
15
16 @section build_xcode_conf Configuration
17
18 Before building it is necessary to set up build environment.
19
20 The environment is defined in the file *custom.sh* which can be edited directly:
21
22 * Add paths to includes of used third-party libraries in variable *CSF_OPT_INC* (use colon ":" as path separator).
23 * Add paths to their binary libraries in variable  *CSF_OPT_LIB64*.
24 * Set variable *SHORTCUT_HEADERS* to "true" to have folder *inc* populated by short-cut files pointing to actual headers located in *src*; otherwise, header files will be copied to *inc*.
25 * For optional  third-party libraries, set corresponding environment variable <i>HAVE_<LIBRARY_NAME></i> to either *false*,  e.g.:
26 ~~~~~
27        export HAVE_GL2PS=false
28 ~~~~~
29
30 Alternatively, or when *custom.sh* does not exist, you can launch *genconf.sh* to configure environment interactively:
31
32 @figure{/dev_guides/building/3rdparty/images/genconf_osx.png}
33
34 Click "Save" to store the specified configuration in *custom.sh* file.
35   
36 @section build_xcode_gen Projects generation
37
38 Launch **genproj** tool to update content of *inc* folder and generate project files after changes in OCCT code affecting layout or composition of source files.
39
40 @note To use **genproj** and **genconf** tools you need to have Tcl installed and accessible by PATH.
41
42 For instance, in Terminal application:
43
44 ~~~~~
45   $ cd /dev/OCCT/opencascade-7.0.0
46   $ ./genproj.sh
47 ~~~~~
48
49 @section build_xcode_build Building
50
51 To start **Xcode**, launch script *xcode.sh*.
52
53 To build a certain toolkit, select it in **Scheme** drop-down list in Xcode toolbar, press **Product** in the menu and click **Build** button. 
54
55 To build the entire OCCT:
56 * Create a new empty project (select **File -> New -> Project -> Empty project** in the menu; input the project name, e.g. *OCCT*; then click **Next** and **Create**).
57 * Drag and drop the *OCCT* folder in the created *OCCT* project in the Project navigator.
58 * Select **File -> New -> Target -> Aggregate** in the menu. 
59 * Enter the project name (e.g. *OCCT*) and click **Finish**. The **Build Phases** tab will open.  
60 * Click "+" button to add the necessary toolkits to the target project. It is possible to select all toolkits by pressing **Command+A** combination. 
61
62 @section build_xcode_draw Launching DRAW
63
64 To start *DRAWEXE*, which has been built with Xcode on Mac OS X, perform the following steps:
65
66 1.Open Terminal application
67
68 2.Enter <i>\<OCCT_ROOT_DIR\></i>:
69 ~~~~~
70    cd \<OCCT_ROOT_DIR\>
71 ~~~~~
72
73 3.Run the script
74 ~~~~~
75    ./draw_cbp.sh xcd [d]
76 ~~~~~
77
78 Option *d* is used if OCCT has been built in **Debug** mode.