2.4 KiB
Genetic image generation
This project is a university assignment that aims at regenerating a reference image from random shapes of random color applied. There will be lots of different tests on what method is the best and/or the fastest to get a new image as close as possible to the reference image.
Technical information
To build the project, you will also be required to install the development
libraries your distro offers for GTK+3. For Ubuntu, it is libgtk3-devel
, for Void Linux it is gtk3-devel
and for Arch Linux it is already bundled with the gtk3
package.
You will also ned to have Ninja and Conan installed. To install Ninja, install
the appropriate package offered by your package manager (ninja-build
on
Debian, ninja
on Arch Linux and Void Linux), and to install conan, use pip
.
pip install --user conan
This project is built with conan, ninja and cmake using clang-7 for C++17. To use it, first install clang-7 and lldb 7, then run this:
conan profile new default --detect
conan profile update settings.compiler=clang default
conan profile update settings.compiler.version=7.0 default
conan profile update settings.compiler.libcxx=libstdc++11 default
conan profile update env.CC=/bin/clang default
conan profile update env.CXX=/bin/clang++ default
If you do not wish to overwrite your default
profile, you can instead create a
new one, for instance clang
. To do so, write the name of your new profile (in
this example clang
) instead of default
in the commands shown above.
Then, To build and run the program, go to the root of the project and run this:
mkdir build && cd build
conan install .. --build missing
cmake -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ .. -G Ninja
cmake --build .
If you want to use another profile than your default one, you should run the following line instead of the second line:
conan install .. --build missing --profile <your_profile>
This project was built and tested using clang-7, lldb and gdb on Void Linux (kernel 4.19) and Arch Linux (kernel 5.0).
Credits
Awesome C++ project template by devkoriel.