Commit f170819a authored by Mark Meredith's avatar Mark Meredith
Browse files

Update README.md

parent 13ede4a7
Loading
Loading
Loading
Loading
Loading
+38 −24
Original line number Diff line number Diff line
# 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
```