Skip to content

Commit 3f3497d

Browse files
committed
Update readme
1 parent 659fccb commit 3f3497d

2 files changed

Lines changed: 17 additions & 5 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
*.userprefs
1414

1515
# Build results
16+
Build
1617
[Dd]ebug/
1718
[Dd]ebugPublic/
1819
[Rr]elease/

README.md

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ A compact C finite state machine (FSM) implementation that's easy to use on embe
1313
- [Table of Contents](#table-of-contents)
1414
- [Preface](#preface)
1515
- [Related repositories](#related-repositories)
16+
- [Getting Started](#getting-started)
1617
- [Introduction](#introduction)
1718
- [Background](#background)
1819
- [Project Build](#project-build)
@@ -46,16 +47,26 @@ Originally published on CodeProject at: <a href="https://www.codeproject.com/Art
4647

4748
Based on original design published in C\C++ Users Journal (Dr. Dobb's) at: <a href="http://www.drdobbs.com/cpp/state-machine-design-in-c/184401236"><strong>State Machine Design in C++</strong></a>
4849

49-
<p><a href="https://www.cmake.org/">CMake</a>&nbsp;is used to create the build files. CMake is free and open-source software. Windows, Linux and other toolchains are supported. See the <strong>CMakeLists.txt </strong>file for more information.</p>
50-
5150
## Related repositories
5251

5352
<ul>
54-
<li><a href="https://github.com/endurodave/C_StateMachineWithThreads">C Language State Machine with Threads</a> - by David Lafreniere</li>
55-
<li><a href="https://github.com/endurodave/C_Allocator">A Fixed Block Allocator in C</a> - by David Lafreniere</li>
56-
<li><a href="https://github.com/endurodave/StateMachine">State Machine Design in C++</a> - by David Lafreniere</li>
53+
<li><a href="https://github.com/endurodave/C_StateMachineWithThreads">C Language State Machine with Threads</a> - A C language state machine with OS threads.</li>
54+
<li><a href="https://github.com/endurodave/C_Allocator">A Fixed Block Allocator in C</a> - A C language fixed block memory allocator.</li>
55+
<li><a href="https://github.com/endurodave/StateMachine">State Machine Design in C++</a> - A C++ finite state machine (FSM) implementation.</li>
56+
<li><a href="https://github.com/endurodave/StateMachineWithThreads">C++ State Machine with Threads</a> - A C++ state machine integrated with an asynchronous callback library.</li>
57+
<li><a href="https://github.com/endurodave/StateMachineWithModernDelegates">C++ State Machine with Delegates</a> - A C++ state machine integrated with the <a href="https://github.com/endurodave/DelegateMQ">DelegateMQ</a> asynchronous delegate library.</li>
58+
<li><a href="https://github.com/endurodave/AsyncStateMachine">Asynchronous State Machine in C++</a> - An asynchronous C++ state machine integrated with the <a href="https://github.com/endurodave/DelegateMQ">DelegateMQ</a> asynchronous delegate library.</li>
5759
</ul>
5860

61+
# Getting Started
62+
63+
[CMake](https://cmake.org/) is used to create the project build files on any Windows or Linux machine. The state machine source code works on any C language compiler on any platform.
64+
65+
1. Clone the repository.
66+
2. From the repository root, run the following CMake command:
67+
`cmake -B Build .`
68+
3. Build and run the project within the `Build` directory.
69+
5970
# Introduction
6071

6172
<p>In 2000, I wrote an article entitled &quot;<em>State Machine Design in C++</em>&quot; for C/C++ Users Journal (R.I.P.). Interestingly, that old article is still available and (at the time of writing this article) the #1 hit on Google when searching for C++ state machine. The article was written over 15 years ago, but I continue to use the basic idea on numerous projects. It&#39;s compact, easy to understand and, in most cases, has just enough features to accomplish what I need.</p>

0 commit comments

Comments
 (0)