From f170819a464b5886c9696ae119df8a61efec0266 Mon Sep 17 00:00:00 2001
From: Mark Meredith <mark.meredith@netl.doe.gov>
Date: Thu, 2 Dec 2021 17:23:25 +0000
Subject: [PATCH] Update README.md

---
 README.md | 62 ++++++++++++++++++++++++++++++++++---------------------
 1 file changed, 38 insertions(+), 24 deletions(-)

diff --git a/README.md b/README.md
index 3edf3e2..d046b47 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,9 @@
-# CSG-EB
+# Table of Contents
+1. [Dependencies](#dependencies)
+2. [Build](#build)
+3. [Install with CMake](#install-with-cmake)
+4. [Install with Spack](#install-with-spack)
+5. [Using CSG-EB in your project](#using-csg-eb-in-your-project)
 
 This library is for parsing [Constructive Solid Geometry
 (CSG)](https://github.com/openscad/openscad/wiki/CSG-File-Format) for use in
@@ -11,33 +16,56 @@ equivalent in the kinds of geometries that can be expressed, but with fewer
 primitives (OpenSCAD can export `.scad` files to `.csg`). SCAD code is easier to
 read and write by humans; CSG files are easier to parse and process by software.
 
-Dependencies:
 
- - [PEGTL](https://github.com/taocpp/PEGTL) for parsing
- - [Catch2](https://github.com/catchorg/Catch2) for testing framework
- - [CGAL](https://www.cgal.org) for geometry computation
+## Dependencies
 
+If installing with [Spack](#spack), dependencies will be installed automatically.
 
+Install the following dependencies before building `csg-eb`
 
-## How to Build
+ - C++17 compiler (GCC >=7.x, Clang >=5.x)
+ - [CMake](https://cmake.org) >=3.14
+ - [PEGTL](https://github.com/taocpp/PEGTL) for parsing
+ - [Catch2](https://github.com/catchorg/Catch2) for testing framework
+ - [CGAL](https://www.cgal.org) for geometry computation
 
-### Build dependencies
 
- - C++17 compiler (GCC >=7.x, Clang >=5.x)
- - CMake >=3.14
+## Build
 
 ```shell
 > cmake -S . -B build -DCMAKE_BUILD_TYPE=Release
 > cmake --build build
 ```
 
-#### Run tests
+### Run tests
 
 ```shell
 > cd build
 > ctest
 ```
 
+## Install with CMake
+
+To install `csg-eb` to a location `$CSGEB_HOME`:
+``` shell
+cmake -S . -B build -DCMAKE_INSTALL_PREFIX=$CSGEB_HOME
+cmake --build build --target install
+```
+
+
+## Install with Spack
+
+Another way to install csg-eb is with [Spack ](https://spack.readthedocs.io).
+
+To install with spack:
+``` shell
+spack repo add .spack/repo  # add repo with csg-eb recipe
+spack spec csg-eb           # preview install
+spack install csg-eb        # install csg-eb (with CGAL support)
+spack install csg-eb ~cgal  # install csg-eb (without CGAL support)
+spack load csg-eb           # Adds libcsg-eb.a to LD_LIBRARY_PATH and csg.hpp to CPATH
+```
+
 
 ## Using CSG-EB in your project
 
@@ -89,17 +117,3 @@ add_subdirectory(/path/to/repo/csg-eb)
 ```cmake
 target_link_libraries(<target> PRIVATE csg)
 ```
-
-## Install with Spack
-
-Another way to install csg-eb is with Spack.  See the [Spack documentation](https://spack.readthedocs.io) for instructions on how to install Spack.
-
-
-Then define a recipe for csg-eb:
-``` shell
-spack repo add .spack/repo  # add repo with csg-eb recipe
-spack spec csg-eb           # preview install
-spack install csg-eb        # install csg-eb (with CGAL support)
-spack install csg-eb ~cgal  # install csg-eb (without CGAL support)
-spack load csg-eb           # Adds directory with libcsg-eb.a  to LD_LIBRARY_PATH
-```
-- 
GitLab