improve docs authored by Boman Romain's avatar Boman Romain
This page explains how to build the examples. You must have checked that [git](Git), [a C++ compiler](MinGW) and [cmake](CMake) are correctly installed on your system.
This page explains how to build the examples on your personal laptop or on the CECI supercomputers (nic5).
As prerequisite, you must have verified that [git](Git), [a C++ compiler](MinGW) and [CMake](CMake) are correctly installed on your system. Using [VS Code](Visual-Studio-Code) is recommended by not mandatory.
## Windows
* Clone the repository somewhere on your PC using "git bash"
* Clone the repository somewhere on your PC:
```
git clone git@gitlab.uliege.be:R.Boman/math0471.git
```
* Open VS Code and load the `math0471` folder.
* In the terminal of VS Code, go to the `lib` folder and install gmsh-sdk and Eigen using the scripts `get_gmsh.cmd` and `get_eigen.cmd`(only once per working copy of the repository)
* In the terminal of VS Code, go to the `lib` folder and install gmsh-sdk and Eigen using the scripts `get_gmsh.cmd` and `get_eigen.cmd` (this should be done only once per working copy of the repository):
```
cd lib
get_gmsh.cmd
......@@ -14,90 +16,87 @@ get_eigen.cmd
cd ..
```
* Add MinGW, gmsh-sdk and eigen to your environment by running this script (it should be done each time you re-open VS Code or a new terminal):
* Add MinGW, gmsh-sdk and Eigen to your environment by running this script (it should be done each time you re-open VS Code or a new terminal):
```
envs\windows.cmd
```
* Then, in the same terminal, go to an example folder:
* Then, in the same terminal, go to the example folder:
```
cd examples\gmsh_api
```
* Create a build folder in `examples\gmsh_api`:
* Create a `build` folder in `examples\gmsh_api`:
```
mkdir build
```
* Go into this folder
* Go into this folder:
```
cd build
```
* Run cmake
* Run CMake (if an error occurs at this stage, it usually means that you forgot to run `envs\windows.cmd` or you installed the programs at locations on your hard drive other than those recommended in this wiki):
```
cmake ..
```
* start the compilation (with 4 parallel processes)
* Start the compilation (with 4 parallel processes):
```
make -j 4
```
* run a program:
* Run a program:
```
code1_loadgeo.exe ..\rectangle.geo
```
If a window does not show up, it means that you forgot to run `envs\windows.cmd`.
## CECI clusters / linux
## CECI clusters / Linux / macOS
* clone the repository
* Clone the repository:
```
git clone git@gitlab.uliege.be:R.Boman/math0471.git
```
* go into the project folder
* Go into the project folder:
```
cd math0471
```
* install gmsh-sdk and Eigen using the script `get_gmsh.sh` and `get_eigen.sh` in the `lib` folder
* Install gmsh-sdk and Eigen using the script `get_gmsh.sh` and `get_eigen.sh` in the `lib` folder:
```
cd lib
./get_gmsh.sh
./get_eigen.sh
cd ..
```
* set the environment variables for cmake
* Set the environment variables for cmake:
```
source ./envs/linux-macos.sh
```
* go to the `examples/gmsh_api` folder:
* Go to the `examples/gmsh_api` folder:
```
cd examples/gmsh_api
```
* create a build folder and go into it
* Create a `build` folder and go into it:
```
mkdir build
cd build
```
* run cmake
* Run CMake (if an error occurs at this stage, it usually means that you forgot to "source" `envs/linux-macos.sh`):
```
cmake ..
```
* build the project (with 4 parallel processes)
* Build the project (with 4 parallel processes):
```
make -j 4
```
* run a program
* Run a program:
```
./code1_loadgeo ../rectangle.geo
```
# Note about the environment scripts
The scripts in the `math0471/envs/` folder add several folders to 3 environment variables so that the system and cmake find the compiler and the libraries correctly:
* `PATH`: this variable should contain the location of the folder of your `g++` compiler, of `gmsh.exe` and its shared library (`gmsh.dll/so/dylib`),
The scripts in the `math0471/envs/` folder add several folders to 3 environment variables so that the system and CMake find the compiler and the libraries correctly:
* `PATH`: this variable should contain the location of the folder of your `g++` compiler, of `gmsh.exe` and its shared library (`gmsh.dll/.so/.dylib`),
* `LIB`: points to the path of the folder containing `gmsh.lib` (windows) or `gmsh.so` (linux) or `gmsh.dylib` (macOS),
* `INCLUDE`: points to the path of the folder containing the header `gmsh.h`.
* `INCLUDE`: points to the path of the folder containing the `gmsh.h` header and the `Eigen` folder.
Instead of using these scripts which should be loaded each time you start a new terminal, these 3 variables can be defined in your global user environment once and for all.
This is done by going to "Settings" on Windows, and typing "env" in the search bar. Then choose the appropriate menu ("modify environment variables").
On Linux/macOS, you can add/modify environment variables by editing `~/.bashrc` (just copy & paste the contents of `envs/linux-macos.sh`).