TP-rendu/TP5/BUILD.md

186 lines
4.8 KiB
Markdown
Raw Normal View History

2023-06-22 18:30:57 +00:00
# OpenGL OBJ Visualizer
## Building instructions
Required tools:
* C/C++ 11 compiler (gcc or visual studio or clang)
* cmake
### Dependencies
The project depends on:
- OpenGL
- freeglut (included for ease in windows)
## Windows
### Prerequisites
* download and install the latest version of CMake
* download here: https://github.com/Kitware/CMake/releases/download/v3.17.1/cmake-3.17.1-win64-x64.msi
* !!! When installing make sure that the checkbox "ne pas ajouter cmake au PATH" is NOT checked
* if you don't have it already, download and install MS Visual Studio Community Edition (free for students): https://visualstudio.microsoft.com/downloads/
* install instructions here: https://docs.microsoft.com/en-us/cpp/build/vscpp-step-0-installation?view=vs-2019
* !!! install the "Desktop development with C++"
* If you have VS already installed, you can go in **Tools** --> **Get Tools and Features...** to install "Desktop development with C++" if it is missing.
### Create the Visual Studio Solution.
This step enables you to create the project file to load inside VS:
* unzip the code inside a folder. *Avoid to place the code in folders with spaces and accented characters*.
* open a Terminal and go to the directory containing the code.
* execute:
* `md build`
* `cd build`
* `cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_BUILD_TYPE:STRING=Release ..`
* `dir`
> if you had a different version of VS installed (not the latest) you may need to adapt the string `Visual Studio 16 2019` to your version: e.g. Visual Studio 15 2017, Visual Studio 14 2015, Visual Studio 12 2013
* if everything went well you should find a file named `tp4.sln` inside the directory.
### Compile, build, execute
* open `tp4.sln` inside VS either by double clicking on it or opening from inside VS
* build the solution (**Build Solution** from the **Build menu**)
* from the tp directory copy `freeglut\bin\x64\freeglut.dll` in `build\Release`
* execute the code:
* From VS:
* Select the project you want to run (e.g. `visualizer`), right click on it and select **Set as Startup Project**
* From **Debug > visualizer Properties... > Configuration Porpoerties > Command Arguments**, insert the full path of the obj file that you want to test
(In French: **Déboguer > Propriétés de visualizer > Débogage > Arguments de la commande**)
* On the menu bar, choose **Debug** --> **Start without debugging**.)
(see https://docs.microsoft.com/en-us/cpp/build/vscpp-step-2-build?view=vs-2019 for how to build, execute, etc)
* From the command line:
* Open a Terminal and go to `build/Release`
* launch `visualizer ../../data/models/cube.obj` (the argument being the model to load)
### Editing the code
Edit the code according to the assignments that are given, rebuild the solution and execute.
> !!! You need to run the cmake line only **once**
> !!! You need to copy the dll file only **once**.
---
## Linux
### Prerequisites
In order to develop with OpenGL some system packages are required (unless you are using the N7 machines):
```
sudo apt-get install libglu1-mesa-dev freeglut3-dev build-essential mesa-common-dev libxi-dev libxmu-dev automake
```
To build this code we use the CMake build system. You can install CMake from the system package manager but you need a recent version >= 3.10. Check the version that is provided by your linux distribution and if it is suitable usually you need to
```
sudo apt-get install cmake
```
otherwise you can install the binaries from here: https://github.com/Kitware/CMake/releases/download/v3.17.1/cmake-3.17.1-Linux-x86_64.sh
To install:
```
wget https://github.com/Kitware/CMake/releases/download/v3.17.1/cmake-3.17.1-Linux-x86_64.sh
chmod +x cmake-3.17.1-Linux-x86_64.sh
sudo cmake-3.17.1-Linux-x86_64.sh --prefix=/usr/local/ --skip-license
```
### Build
To compile and build the code you do
```
mkdir build && cd build
cmake ..
make visualizer
```
Also,
```
make all
```
builds everything, and
```
make clean
```
cleans everything.
Execute the code:
```
./visualizer ../data/models/cube.obj
```
### Editing the code
Edit the code as required and then
```
make
```
> !!! the cmake line has to be run only **once**
---
## macOS
### Prerequisites
In order to develop with OpenGL check if
```
ls /System/Library/Frameworks/
```
contains OpenGL and GLUT frameworks.
If not you need to install XCode from the `Mac App Store`, see here for more details https://developer.apple.com/support/xcode/
Install the latest version of CMake by downloading https://github.com/Kitware/CMake/releases/download/v3.17.1/cmake-3.17.1-Darwin-x86_64.dmg
### Build
Same as Linux.
### Editing the code
Same as Linux.