Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ include(GoogleTest)

add_library(graphs INTERFACE)
target_include_directories(graphs INTERFACE include)
target_link_libraries(graphs INTERFACE boost::boost)

add_executable(graphs_main src/main.cc)
target_link_libraries(graphs_main PRIVATE graphs)
target_link_libraries(graphs_main PRIVATE graphs boost::boost)

option(ENABLE_TESTING "Enable testing" ON)
if (ENABLE_TESTING)
Expand Down
80 changes: 80 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# Graphs

A simple utility for graphs analysis.
[![CI](https://github.com/victorbaldin56/Graphs/actions/workflows/main.yml/badge.svg)](https://github.com/victorbaldin56/Graphs/actions/workflows/main.yml)

## Overview

A graph builder and dominators and postdominators detector.

## Features

![alt text](img/graph.png)
![alt text](img/dom.png)
![alt text](img/pdom.png)

## Building

It is highly recommended to use pre-built Docker image.

### With Docker

1. Pull the pre-built Docker image and start the Docker container using it. Recommended command:

```sh
docker run --restart unless-stopped -it -v [YOUR_BACKUP_VOLUME_PATH]:/home/dev --name linux_dev victorbaldin56/linux_dev:a51a343886c34b73ddf5344e72ce095c416af046
```

1. Clone the repo.

```sh
git clone https://github.com/victorbaldin56/Graphs.git
```

1. Install additional project dependencies with Conan

```sh
python3 -m venv .venv
source .venv/bin/activate
pip install conan==2.23.0
conan profile detect --force
conan install . --build=missing --output-folder=build -pr:a=conan_profiles/release
```

1. Configure the build

```sh
cmake --preset conan-release
```

1. Build

```sh
cmake --build build -j
```

### Have no Docker yet?

> [!TIP]
> It will be probably easier for you to install Docker because some tool
> requirements are specific.

You can check my [Dockerfile](https://github.com/victorbaldin56/DockerLinuxDev/blob/a51a343886c34b73ddf5344e72ce095c416af046/Dockerfile)
and build the same environment yourself.

## Usage

To get quick help on available commands, run:

```sh
./build/graphs_main --help
```

## License

This project is licensed after APACHE 2.0 license.

## Contribution

This project is currently in active development. If you wish to contribute
you are welcome to submit pull requests and issues. Thank you!
Binary file added img/dom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/graph.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added img/pdom.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading