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