IohannRabeson / Lindenmayer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Provide a tool with a dedicated language to describe and visualize Lindenmayer systems.

Git and submodule

We use git submodules. Keep in mind to update submodules after checkout and clone using --recursive.

git clone --recursive git@github.com:IohannRabeson/Lindenmayer.git

Dependencies

  • Qt 5 (>= 5.10)
  • Java (>= 8)

Somes libraries are embedded:

  • ANTLR
  • Google Test
  • Qool
    Several libraries are embedded as submodules so don't forget to clone using the flag --recursive. If you didn't use it, shame on you and type git submodule init && git submodule update.

Build

Require Qt 5 installed on your system.
Also a C++ compiler with sparse support for C++17 is required.
Qt directory should be added to CMAKE_PREFIX_PATH.

cmake <project_dir> -G <generator> -DCMAKE_PREFIX_PATH="$(brew --prefix qt)"

Tested generators:

  • GNU Make
  • Ninja
  • Xcode
  • MSVC 2015

Windows with MSVC

On Windows don't forget to select a x64 generator, default or x86 will not works. Also you will have some missing Qt DLL, so you have to update your PATH in Visual Studio:
Right click on the project "Lindenmayer" > Properties > Debugging > Environment then add a new entry like that: PATH=$(PATH);<QTDIR>\bin.

The extra build step to generate the L-Code parser

Because I'm using ANTLR, I added an extra build step where Antlr generates C++ code from a grammar defined by the file core/private/language/LSystem.g4.

Documentation

https://iohannrabeson.github.io/Lindenmayer

CLion configurations

  • Lindenmayer: The application
  • Unit tests: The core unit tests
  • Lindenmayer Auto Tests: starts Lindenmayer and try to generate each example in the directory passed as --auto-test parameter value.

About


Languages

Language:C++ 99.6%Language:CMake 0.3%Language:ANTLR 0.1%Language:Shell 0.0%