Skip to content

Commit 8bea8a1

Browse files
committed
Reorganize README.rst.
[ci skip]
1 parent cc4a1e9 commit 8bea8a1

File tree

1 file changed

+44
-60
lines changed

1 file changed

+44
-60
lines changed

README.rst

Lines changed: 44 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,21 @@
22
BMC -- Braille Music Compiler
33
=============================
44

5-
.. image:: https://secure.travis-ci.org/mlang/bmc.png?branch=master
5+
.. image:: https://secure.travis-ci.org/mlang/bmc.svg?branch=master
6+
:alt: Travis CI build status (Linux and Mac OS X)
67
:target: http://travis-ci.org/mlang/bmc
78

8-
BMC aims to become a system for parsing and generating braille music code.
9+
.. image:: https://ci.appveyor.com/api/projects/status/17o8stcrhi3cy8bw?svg=true
10+
:alt: AppVeyor CI build status (Windows)
11+
:target: https://ci.appveyor.com/project/mlang/bmc
912

13+
BMC aims to become a system for parsing and generating braille music code.
1014

1115
History
12-
-------
16+
=======
1317

1418
A predecessor to this project is FreeDots_, a Java-based program for
15-
converting MusicXML Documents to Braille Music code, as well as offering
19+
converting MusicXML to Braille Music code, as well as offering
1620
playback and some interactive editing capabilities.
1721

1822
.. _FreeDots: http://code.google.com/p/freedots/
@@ -25,50 +29,36 @@ eventually cover both directions.
2529

2630

2731
Dependencies
28-
------------
32+
============
2933

3034
Being a C++ program, BMC naturally uses the Standard Template Library (STL).
3135

3236
In addition to that some Boost_ C++ Libraries are employed.
3337

34-
.. _Boost: http://www.boost.org/
35-
38+
The MusicXML backend makes use of `CodeSynthesis XSD`_ to generate
39+
C++ bindings for MusicXML documents.
3640

37-
heterogeneous containers
38-
------------------------
39-
40-
A common problem arising in the sort of data structures required to represent
41-
parsed braille music is the heterogenuity of the underlying sequences
42-
of objects. Traditionally, virtual member functions and a common base class are
43-
used in C++ to implement a sequence of objects of varying purpose. However,
44-
this approach is rather error-prone and requires the differing object types to
45-
at least have something in common to allow for a meaningful interface.
46-
Fortunately, Boost offers a very elegant solution to this type of problem, the
47-
Boost.Variant discriminated union container class template. Boost.Variant is
48-
already implicitly used by Spirit to store alternative choices in the grammar.
49-
So it just falls naturally to use Boost.Variant for problems falling in the
50-
category of heterogeneous containers. Using Boost.Variant implies the visitor
51-
pattern is used to access the data structures. This is desireable because it
52-
results in type-safe code which eliminates a certain class of runtime bugs. It
53-
makes code a little bit more verbose to write, but for the better, actually.
41+
The graphical user interface is implemented on top of Qt.
5442

43+
.. _Boost: http://www.boost.org/
44+
.. _CodeSynthesis XSD: https://www.codesynthesis.com/products/xsd/
5545

56-
Getting the source
57-
------------------
46+
Installing dependencies on Debian
47+
---------------------------------
5848

59-
You need Git_ to retrieve the source repository.
49+
On Debian GNU/Linux systems, you will need to install the following
50+
dependencies:
6051

6152
.. code-block:: bash
6253
63-
git clone --quiet https://github.com/mlang/bmc.git
64-
git submodule --quiet update --init --recursive
65-
66-
.. _Git: https://git-scm.com/
54+
sudo apt-get install cmake doxygen lib{boost-{program-options,test},fluidsynth,icu}-dev
6755
68-
Building on Mac OS X
69-
--------------------
56+
Installing dependencies on Mac OS X
57+
-----------------------------------
7058

71-
We assume you have Xcode installed. A nice package manager is Homebrew:
59+
We assume you have Xcode installed. A nice package manager for Mac OS X is
60+
`Homebrew <https://brew.sh/>`__. If you don't have it installed yet,
61+
here is how to do so:
7262

7363
.. code-block:: bash
7464
@@ -87,43 +77,38 @@ all dependencies required to build and run BMC:
8777
brew install boost --with-python
8878
brew install boost-python
8979
90-
You can now run CMake to generate a build system:
91-
92-
.. code-block:: bash
93-
94-
cd bmc
95-
cmake .
80+
Getting the source
81+
==================
9682

97-
When running the test suite, make sure you have a UTF-8 based locale:
83+
You need Git_ to retrieve the source repository.
9884

9985
.. code-block:: bash
10086
101-
export LANG=de_AT.UTF-8
102-
make check
103-
104-
Build the command-line tool and the user interface:
87+
git clone --quiet https://github.com/mlang/bmc.git
88+
git submodule --quiet update --init --recursive
10589
106-
.. code-block:: bash
90+
.. _Git: https://git-scm.com/
10791

108-
make bmc bmc-ui
92+
Running CMake
93+
=============
10994

110-
Building (on UNIX)
111-
------------------
95+
You can now run CMake to generate a build system for your platform:
11296

113-
Compilation has only been tested with GCC 4.8 recently.
97+
.. code-block:: bash
11498
115-
On Debian GNU/Linux systems, you will need to install the following dependencies:
99+
cd bmc
100+
cmake .
116101
117-
.. code-block:: bash
102+
Building
103+
========
118104

119-
sudo apt-get install cmake doxygen lib{boost-{program-options,test},fluidsynth,icu}-dev
105+
UNIX and Mac OS X
106+
-----------------
120107

121108
To build BMC, run the following commands:
122109

123110
.. code-block:: bash
124111
125-
cd bmc
126-
cmake .
127112
make
128113
129114
To execute the test-suite, run:
@@ -132,11 +117,10 @@ To execute the test-suite, run:
132117
133118
make check
134119
120+
Windows
121+
-------
135122

136-
Building (on Windows)
137-
---------------------
138-
139-
After configuring via cmake, either open the Solution bmc in VS2015 or
123+
After configuring via CMake, either open the Solution bmc in Visual Studio 14 (2015) or
140124
open a "MSBuild Command Prompt for VS2015" and run the following:
141125

142126
.. code-block:: console
@@ -145,7 +129,7 @@ open a "MSBuild Command Prompt for VS2015" and run the following:
145129
146130
147131
TODO
148-
----
132+
====
149133

150134
* Port current codebase to Windows:
151135

0 commit comments

Comments
 (0)