Spinning Topp Logo BlackTopp Studios
inc
dev_tools_linux.h
1 // © Copyright 2010 - 2016 BlackTopp Studios Inc.
2 /* This file is part of The Mezzanine Engine.
3 
4  The Mezzanine Engine is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  The Mezzanine Engine is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with The Mezzanine Engine. If not, see <http://www.gnu.org/licenses/>.
16 */
17 /* The original authors have included a copy of the license specified above in the
18  'Docs' folder. See 'gpl.txt'
19 */
20 /* We welcome the use of the Mezzanine engine to anyone, including companies who wish to
21  Build professional software and charge for their product.
22 
23  However there are some practical restrictions, so if your project involves
24  any of the following you should contact us and we will try to work something
25  out:
26  - DRM or Copy Protection of any kind(except Copyrights)
27  - Software Patents You Do Not Wish to Freely License
28  - Any Kind of Linking to Non-GPL licensed Works
29  - Are Currently In Violation of Another Copyright Holder's GPL License
30  - If You want to change our code and not add a few hundred MB of stuff to
31  your distribution
32 
33  These and other limitations could cause serious legal problems if you ignore
34  them, so it is best to simply contact us or the Free Software Foundation, if
35  you have any questions.
36 
37  Joseph Toppi - toppij@gmail.com
38  John Blackwood - makoenergy02@gmail.com
39 */
40 #ifndef _dox_dev_tools_linux_h
41 #define _dox_dev_tools_linux_h
42 
43 
44 /**
45  @page dev_tools_linux Linux Development Tools
46  Installing the developer tool is pretty easy on most Linux workstations, we have only performed
47  it on Ubuntu recently. There is no reason why it wouldn’t work on any Linux distrobution as long
48  as it provide the required packages or you are able to compile them from source. Here we detail
49  the setups we have performed.
50 
51  @section dev_tools_ubuntu_install Ubuntu Install
52  Installing the developer tools on Ubuntu is incredibly easy. Just run this one command from a
53  terminal and it will install all the required tools at once for you.
54  @code
55  sudo apt-get install g++ git cmake
56  @endcode
57  This leaves you with compiler, tools to download our code from
58  @htmlonly<a href="https://github.com/BlackToppStudios/Mezzanine">@endhtmlonly
59  Github
60  @htmlonly</a>@endhtmlonly
61  , and a way to create build scripts to simplify compilation. We use a few more tools than that
62  in a typical day working on the Mezzanine and Catch!. To get a set of tools similar to our
63  please run the following:
64  @code
65  sudo apt-get install g++ gdb codeblocks qtcreator doxygen texlive-font-utils graphviz git-core pkg-config cmake-gui cmake autoconf pkg-config swig ninja-build mercurial
66  @endcode
67 
68  @section dev_tools_linux_summary What Are the Tools
69  Most of the Tools are explained on the @ref cxx_training_and_tools page, but some we have
70  included here because they seem to get more use on Linux workstations.
71 
72  - @htmlonly<a href="https://gcc.gnu.org/">@endhtmlonly
73  GCC — G++
74  @htmlonly</a>@endhtmlonly
75  — This is a C++ compiler,
76  @htmlonly<a href="http://clang.llvm.org/">@endhtmlonly Clang @htmlonly</a>@endhtmlonly
77  works also but at the time of this writing created slightly less optimal results.
78 
79  - @htmlonly<a href="https://www.gnu.org/software/gdb/">@endhtmlonly
80  GCC – gdb
81  @htmlonly</a>@endhtmlonly
82  — The debugger that works with g++.
83 
84  - @htmlonly<a href="http://www.cmake.org/">@endhtmlonly
85  CMake
86  @htmlonly</a>@endhtmlonly
87  — Cmake is a tool to aid in the compiling of specially setup programs, like the configuration of
88  the Ogre 3d library. If you are building any of the libraries that require CMake 3.2 and are
89  using Ubuntu 14.04 you will need to get a newer version of CMake than what the default Ubuntu
90  repos ship. The PPA https://launchpad.net/~george-edison55/+archive/ubuntu/cmake-3.x has 3.2
91  and some newer builds, you also have the option of building CMake from source or using another
92  PPA.
93 
94  - @htmlonly<a href="http://www.codeblocks.org/">@endhtmlonly
95  Code::Blocks
96  @htmlonly</a>@endhtmlonly
97  or
98  @htmlonly<a href="http://www.qt.io/ide/">@endhtmlonly
99  QT Creator
100  @htmlonly</a>@endhtmlonly
101  — Both are Integrated Development Environments IDEs that bring most of these other tools
102  together into one friendly UI.
103 
104  - @htmlonly<a href="http://www.stack.nl/~dimitri/doxygen/index.html">@endhtmlonly
105  Doxygen
106  @htmlonly</a>@endhtmlonly
107  — This is an tool for extracting documentation from source code. This is optional, as you can
108  use the documentation that we have built. But if you want the latest docs you might need to
109  built it yourself.
110 
111  - @htmlonly<a href="http://graphviz.org/">@endhtmlonly
112  Graphviz
113  @htmlonly</a>@endhtmlonly
114  — Doxygen uses thiswhen building the API documentation to draw charts and graphs.
115 
116  - @htmlonly<a href="https://launchpad.net/ubuntu/trusty/+package/texlive-font-utils">
117  @endhtmlonly
118  Texlive-font-utils
119  @htmlonly</a>@endhtmlonly
120  — Fonts used when creating PDF versions of the documentation.
121 
122 
123  - @htmlonly<a href="https://git-scm.com/">@endhtmlonly
124  Git
125  @htmlonly</a>@endhtmlonly
126  — Git is a powerful revision control system. We use to merge our progress and be certain
127  that we have the most recent version of the source code.
128 
129  - @htmlonly<a href="http://www.gnu.org/software/autoconf/autoconf.html">@endhtmlonly
130  autoconf
131  @htmlonly</a>@endhtmlonly
132  and
133  @htmlonly<a href="http://www.freedesktop.org/wiki/Software/pkg-config/">@endhtmlonly
134  pkg-config
135  @htmlonly</a>@endhtmlonly
136  — These are older style tools used to create build scripts. SDL and maybe a few other libraies
137  require these for its build process. These are only of limited use and might even be optional
138  now that most libraries are integrated under the CMake build system.
139 
140  - @htmlonly<a href="https://ninja-build.org/">@endhtmlonly
141  Ninja
142  @htmlonly</a>@endhtmlonly
143  — This is an optional faster alterative to using make. This seems to reduce build times by
144  around 20% from the command line, and a little less from IDEs.
145 
146  - @htmlonly<a href="http://swig.org/">@endhtmlonly
147  SWIG
148  @htmlonly</a>@endhtmlonly
149  — Swig is used to create the bindings that connect scripting languages like Lua to the rest of
150  the Mezzanine.
151 
152  - @htmlonly<a href="https://www.mercurial-scm.org/">@endhtmlonly
153  Mercurial
154  @htmlonly</a>@endhtmlonly
155  — SDL uses this as their primary source control tool.
156 
157  @section dev_tools_linux_getting_source Getting the Source Code
158  Once you have the tools installed all you should have to do to get the code repository is run
159  the following command:
160  @code
161  git clone git://github.com/BlackToppStudios/Mezzanine.git
162  @endcode
163 
164  @section dev_tools_linux_prepare_compilation Preparing for Compilation
165  Before you can compile the @ref mezzanine_engine and @ref catch_bang you will need to install
166  the libraries that the engine is built on top of. See the page on
167  @ref installing_engine_deps_linux for more details.
168 
169  @section dev_tools_linux_what_next What’s next
170  If you aren’t comfortable with your coding skills you should read about
171  @ref cxx_training_and_tools. If you are comfortable with your coding skills and have the tools
172  installed reading up on the @ref engine_dependencies could be useful or you could go right onto
173  @ref building_the_engine if you think already have all the software installed.
174 
175 */
176 
177 
178 #endif