File: compiling.html

package info (click to toggle)
cegui-mk2 0.7.6-2
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 105,384 kB
  • sloc: cpp: 142,729; ansic: 27,984; sh: 11,010; makefile: 2,275; python: 916; xml: 17
file content (145 lines) | stat: -rw-r--r-- 9,879 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Crazy Eddies GUI System: Supported systems and compilation.</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.7.4 -->
<script type="text/javascript">
function hasClass(ele,cls) {
  return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}

function addClass(ele,cls) {
  if (!this.hasClass(ele,cls)) ele.className += " "+cls;
}

function removeClass(ele,cls) {
  if (hasClass(ele,cls)) {
    var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
    ele.className=ele.className.replace(reg,' ');
  }
}

function toggleVisibility(linkObj) {
 var base = linkObj.getAttribute('id');
 var summary = document.getElementById(base + '-summary');
 var content = document.getElementById(base + '-content');
 var trigger = document.getElementById(base + '-trigger');
 if ( hasClass(linkObj,'closed') ) {
   summary.style.display = 'none';
   content.style.display = 'block';
   trigger.src = 'open.png';
   removeClass(linkObj,'closed');
   addClass(linkObj,'opened');
 } else if ( hasClass(linkObj,'opened') ) {
   summary.style.display = 'block';
   content.style.display = 'none';
   trigger.src = 'closed.png';
   removeClass(linkObj,'opened');
   addClass(linkObj,'closed');
 }
 return false;
}
</script>
<div id="top">
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Crazy Eddies GUI System&#160;<span id="projectnumber">0.7.6</span></div>
  </td>
 </tr>
 </tbody>
</table>
</div>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li class="current"><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="headertitle">
<div class="title">Supported systems and compilation. </div>  </div>
</div>
<div class="contents">
<div class="textblock"><dl class="author"><dt><b>Author:</b></dt><dd>Paul D Turner</dd></dl>
<h2><a class="anchor" id="compiling_sec_1"></a>
Supported Systems</h2>
<p>Crazy Eddie's GUI System Mk-2 is currently known to compile and run on the following systems:</p>
<ul>
<li>Various flavors of Linux using gcc.</li>
<li>Microsoft Windows using Visual C++ - both express and professional versions where applicable. (Tested on Windows XP with MSVC++ 2010).</li>
<li>Apple Mac OS X running Xcode (tested on version 10.7.2 with Xcode 4.2.1).</li>
</ul>
<p>It is very possible that the system will compile with other compilers and run on other systems, though those mentioned above have been tested.</p>
<h2><a class="anchor" id="compiling_sec_2"></a>
Requirements</h2>
<p>As well as one of the above supported systems, Crazy Eddie's GUI System Mk-2 can also make use of some third party external libraries. These libraries are as follows:</p>
<ul>
<li>Optionally: Freetype2 (<a href="http://www.freetype.org">http://www.freetype.org</a>)</li>
<li>Optionally: PCRE (<a href="http://www.pcre.org">http://www.pcre.org</a>)</li>
<li>Optionally: Xerces-C++ XML parser (<a href="http://xml.apache.org/xerces-c">http://xml.apache.org/xerces-c</a>)</li>
<li>Optionally: Expat XML parser (<a href="http://expat.sourceforge.net">http://expat.sourceforge.net</a>)</li>
<li>Optionally: LibXML XML parser (<a href="http://www.xmlsoft.org">http://www.xmlsoft.org</a>)</li>
<li>Optionally: DevIL image loading library (<a href="http://openil.sourceforge.net">http://openil.sourceforge.net</a>)</li>
<li>Optionally: Corona image loading library (<a href="http://corona.sourceforge.net">http://corona.sourceforge.net</a>)</li>
<li>Optionally: FreeImage image loading library (<a href="http://freeimage.sourceforge.net">http://freeimage.sourceforge.net</a>)</li>
<li>Optionally: SILLY image loading library (<a href="http://www.cegui.org.uk/wiki/index.php/SILLY">http://www.cegui.org.uk/wiki/index.php/SILLY</a>)</li>
<li>Optionally: Lua programming language (<a href="http://www.lua.org/">http://www.lua.org/</a>)</li>
</ul>
<p><br/>
 </p>
<h2><a class="anchor" id="compiling_sec_3"></a>
Compiling on Microsoft Windows with MSVC++</h2>
<p>To compile on MSVC++ the first thing you need is the dependencies package, for details about where to obtain this please see <a class="el" href="downloading.html">Obtaining the code</a>. The dependencies zip file should be extracted into the source package root directory so that you end up with a new directory named 'dependencies'.</p>
<p>If you're using code directly from mercurial you will need a copy of the premake executable (currently you need version 3.6, which is available <a href="http://sourceforge.net/projects/premake/files/Premake/3.6/premake-win32-3.6.zip/download">here</a>. This executable should either be placed in the <code>projects/premake</code> directory or somewhere on your path.</p>
<p>Now you should navigate to the <code>projects/premake</code> directory in the source and open the <code>config.lua</code> file in a text editor of some kind. Take a few moments to look over the available options and make any required configuration changes you desire.</p>
<p>Next you should execute one of the provided 'build_*.bat' batch files. These do not actually build the code, but rather they invoke premake to generate an appropriate solution file and project files for the selected version of MSVC++ (so for example, build_vs2008.bat generates the solution for MSVC++ 2008). If there is no batch file for your specific version of MSVC++ you should use the batch file for the nearest version - MSVC++ will load and upgrade the solution as needed.</p>
<p>Once this has run all you need to do is load the generated solution (CEGUI.sln) into MSVC++, select an appropriate build configuration (Debug, Release, etc) and press the build solution button.</p>
<p>The exact same approach is used when building the samples solution (unless you chose to build them as part of the main solution).</p>
<p><br/>
 </p>
<h2><a class="anchor" id="compiling_sec_4"></a>
Compiling on GNU/Linux systems</h2>
<p>Compiling on GNU/Linux and similar systems follows the familiar configure, make, make install idiom.</p>
<p>If you're using the code directly from mercurial, the first thing you need to do is generate the configure script. This is achieved by running the bootstrap script in the source root directory (Note that running this requires Automake, Autoconf and Libtool).</p>
<p>Firstly it's highly recommended to look at the available configuration options for <a class="el" href="namespaceCEGUI.html" title="Main namespace for Crazy Eddie&#39;s GUI Library.">CEGUI</a>, so run: </p>
<div class="fragment"><pre class="fragment">
./configure --help
</pre></div><p>Once you've decided on the options you would like to set, you can invoke configure (add any options you need, obviously!): </p>
<div class="fragment"><pre class="fragment">
./configure
</pre></div><p> Hopefully this will finish successfully and give you a summary of what options were configured. If the summary shows something you didn't want, go back and check your configure options.</p>
<p>Now you can build the code: </p>
<div class="fragment"><pre class="fragment">
make
</pre></div><p>Once this has successfully completed, you can install the system. If you're installing in the 'usual' places, such as /usr or /usr/local you will need to install as root, so perhaps you would run </p>
<div class="fragment"><pre class="fragment">
sudo make install
</pre></div><p>Finally, you'll probably need to run ldconfig so that the system configure and caches the newly installed libraries: </p>
<div class="fragment"><pre class="fragment">
sudo ldconfig
</pre></div><p><br/>
 </p>
<h2><a class="anchor" id="compiling_sec_5"></a>
Compiling on Mac OS X with Xcode</h2>
<p>To compile with Xcode the first thing you need is the dependencies package, for details about where to obtain this please see <a class="el" href="downloading.html">Obtaining the code</a>. The dependencies zip file should be extracted into the source package root directory so that you end up with a new directory named 'dependencies'.</p>
<p>Next you should navigate to the <code>projects/Xcode</code> directory and open the Xcode project file 'CEGUI.xcodeproj' in Xcode.</p>
<p>Now it's recommended that you take a few moments to look over the file at <code>CEGUI/CEGUI/Base/include/CEGUIConfig.h</code> in the Groups &amp; Files panel. This file contains many of the options that you can change when building the system (some other options, related to external libraries, are available by selecting the project root and bringing up an Info window by pressing <code>Command + I</code>, select the <code>Build</code> tab, choose an appropriate build configuration and choose to show <code>User-Defined Settings</code> and make any desired changes.</p>
<p>Finally to build the code just select an appropriate target (like the default 'Crazy Eddie's GUI System' that builds everything except the Ogre and Irrlicht renderer frameworks), choose your build configuration and press the Build button. </p>
</div></div>
<hr class="footer"/><address class="footer"><small>Generated on Sun Jan 22 2012 16:07:40 for Crazy Eddies GUI System by&#160;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.4 </small></address>
</body>
</html>