forked from herzbube/littlego
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathREADME.developer
162 lines (132 loc) · 6.78 KB
/
README.developer
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
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
Purpose of this document
------------------------
This document is the starting point for developers that want to familiarize
themselves with the Little Go project, i.e. developers that are new to the
project, and also me, after I come back to the project after several months
or years :-)
Quick-start guide on how to build and run Little Go
---------------------------------------------------
The current build should work out of the box for Xcode 5.0.2 and the iOS base
SDK 6.1 (read NOTES.Build if you need help setting up this combination). If you
want to build with a different setup you will probably encounter errors. Consult
NOTES.build and NOTES.Build.3rdparty, but mostly you will be on your own.
1. Log in as the user you are going to develop with
2. Clone the Git repository (since you are reading this document you probably
have done this already). Note that downloading just the latest release
snapshot of the source code is not sufficient because the 3rdparty software
build depends on the presence of Git submodules.
3. Launch Terminal.app and execute these commands:
cd /path/to/littlego
git submodule update --init --recursive
./script/build-3rdparty-software.sh
4. Wait until the script has built all 3rdparty software packages (see the file
"NOTES.build.3rdparty" for more details).
5. Launch Xcode by opening "Little Go.xcodeproj"
6. Select the "Little Go Debug" scheme, and one of the iPhone or iPad simulator
destinations, from the toolbar's scheme selector
7. From the menu select Product > Run. The app should now be built in Debug
mode and launched inside the simulator.
Folder structure
----------------
<root>
+-- LICENSE The Apache license file.
+-- LICENSE.html The Apache license in HTML format (for display on the
| device).
+-- NOTICE Attribution notices.
+-- README.md Introduction to the project. This file is formatted in
| Markdown and rendered as the front page on GitHub.
+-- 3rdparty After cloning the Little Go repository, this folder
| contains the 3rdparty software sources as Git submodules.
| After the 3rdparty software build, the folder also
| contains the build results.
+-- doc This folder contains documents not relevant for building
| the Little Go binary; some of these files are included
| in the application bundle that is distributed on the
| App Store.
+-- doxygen This folder contains a configuration file Doxyfile for
| Doxygen; the folder is intended to receive the files
| generated by Doxygen.
+-- patch This folder contains files used to patch 3rdparty
| software before the build
+-- resource This folder contains the project's resources such as the
| .xib files.
+-- script This folder contains command line scripts.
+-- src This folder contains the project's source code.
+-- test This folder contains the project's unit test files.
Document reference
------------------
Documents described here are located in the Documents folder.
ReleaseSteps
This document lists the steps needed to make a project release.
MANUAL
This document contains a complete documentation of the application's end user
functionality in prose. The file is parsed and displayed in game under the
"Help" tab. For this to work, the content of this file must follow certain
guidelines that are documented in DocumentGenerator.h.
NOTES.Build
NOTES.Build.3rdparty
These documents have detailed notes about the third-party software build
process, and the project's own build process.
NOTES.Architecture
NOTES.Design
littlego.asta
*.jpg
These documents contain some thoughts that went into architecture and design
of the project. There are also a few UML diagrams floating around as .jpg
files. The origin of these diagrams is the Astah project file littlego.asta.
To open that file you need to install the UML tool Astah - a free community
edition is available for download here: http://astah.net/
NOTES.Diagnostics
This document contains instructions what to do with the diagnostics
information file that is attached to bug report emails.
Other files
-----------
Little Go.xcodeproj
The Xcode project file. The format is "Xcode 3.2-compatible".
resource/plist/Info.plist
The information property list file that describes the Little Go application
bundle. Certain aspects of the Info.plist file are covered in more detail
in the document NOTES.Info-plist
script/build-3rdparty-software.sh
Helper script for downloading and building all 3rdparty software packages that
are required to build and run Little Go. See NOTES.Build.3rdparty for
details.
Version control
---------------
The version control system used to maintain this project is Git. The canonical
repository currently resides on GitHub:
- URL for cloning: git://github.com/herzbube/littlego.git
- URL for browsing: https://github.com/herzbube/littlego
The branching model adopted by the project is described in this article:
http://nvie.com/posts/a-successful-git-branching-model/.
Bugtracking
-----------
The bugtracker for the Little Go project is located on GitHub [1]. If you want
to submit a new issue you must be a registered GitHub user (it's free and they
won't bother you with spam!).
Before version 0.9.1, all issues were tracked on my private bugtracker [2]. If
you are really desperate about the project's history :-) you can browse the few
but closed bugs that are still floating around there.
[1] https://github.com/herzbube/littlego/issues
[2] https://bugs.herzbube.ch/
Source code documentation with Doxygen
--------------------------------------
There is a "doxygen" target that can be used to transform the source code
documentation into a set of HTML files. The target uses a shell script that
assumes that Doxygen is installed in
/opt/local/bin
This is the standard path for the MacPorts project. If you have doxygen
installed somewhere else (e.g. /sw/bin, /usr/local/bin) you need to change the
target's shell script.
The Doxygen configuration file is located in
doxygen/Doxyfile
Notes about the configuration:
- Doxygen recursively searches for *.h, *.m and *.mm files in the project
top-level folder "src".
- Private methods declared in class extensions or categories in the .m files
are not included in the documentation process. Change this by setting
EXTRACT_LOCAL_METHODS = YES inside Doxyfile.
- Doxyfile is configured to look for the command line tool "dot" in
/opt/local/bin
dot is part of the Graphviz package and is used to generate a couple of
diagram types (e.g. class diagrams, collaboration diagrams).