-
-
Notifications
You must be signed in to change notification settings - Fork 120
Tools for the mmg libraries users
By default, the make install
command installs the libraries into the /usr/local/lib directory. The header files are located into the /usr/local/include directory.
You can use:
- the FindMmg.cmake file to automatically find the mmg library;
- the FindMmg2d.cmake file to automatically find the mmg2d library;
- the FindMmgs.cmake file to automatically find the mmgs library;
- the FindMmg3d.cmake file to automatically find the mmg3d library.
If the package fails, you can help it by:
- setting the MMG_DIR environment variable to your mmg directory path:
export MMG_DIR=<your_mmg_directory_path>
- or setting the MMG_DIR CMake variable to your mmg directory path:
SET(MMG_DIR <your_mmg_directory_path>)
The FindMmg.cmake package defines the MMG_INCLUDE_DIR and the MMG_LIBRARY variables.
To link a program named YOUR_TARGET with the mmg library using CMake, just add the following lines in your CMakeLists.txt:
INCLUDE(FindMmg.cmake)
INCLUDE_DIRECTORIES(${MMG_INCLUDE_DIR})
TARGET_LINK_LIBRARIES( ${YOUR_TARGET} ${MMG_LIBRARY})
Don't forget to include the mmg library headers to your program:
#include "mmg/libmmg.h"
The FindMmg2d.cmake package defines the MMG2D_INCLUDE_DIR and the MMG2D_LIBRARY variables.
To link a program named YOUR_TARGET with the mmg2d library using CMake, just add the following lines in your CMakeLists.txt:
INCLUDE(FindMmg2d.cmake)
INCLUDE_DIRECTORIES(${MMG2D_INCLUDE_DIR})
TARGET_LINK_LIBRARIES( ${YOUR_TARGET} ${MMG2D_LIBRARY})
Don't forget to include the mmg2d library headers to your program:
#include "mmg/mmg2d/libmmg2d.h"
The FindMmgs.cmake package defines the MMGS_INCLUDE_DIR and the MMGS_LIBRARY variables.
To link a program named YOUR_TARGET with the mmgs library using CMake, just add the following lines in your CMakeLists.txt:
INCLUDE(FindMmgs.cmake)
INCLUDE_DIRECTORIES(${MMGS_INCLUDE_DIR})
TARGET_LINK_LIBRARIES( ${YOUR_TARGET} ${MMGS_LIBRARY})
Don't forget to include the mmgs library headers to your program:
#include "mmg/mmgs/libmmgs.h"
The FindMmg3d.cmake package defines the MMG3D_INCLUDE_DIR and the MMG3D_LIBRARY variables.
To link a program named YOUR_TARGET with the mmg3d library using CMake, just add the following lines in your CMakeLists.txt:
INCLUDE(FindMmg3d.cmake)
INCLUDE_DIRECTORIES(${MMG3D_INCLUDE_DIR})
TARGET_LINK_LIBRARIES( ${YOUR_TARGET} ${MMG3D_LIBRARY})
Don't forget to include the mmg3d library headers to your program:
#include "mmg/mmg3d/libmmg3d.h"
We supposed in the following that:
- you want to compile a program with only one file, the main.c file;
- the mmg libraries are installed in the usr/local/lib directory and the header files in the usr/local/include one (default configuration);
- the scotch library is installed in the <SCOTCH_PATH> directory.
Here we use the example of the mmg3d library.
You must compile specifying:
- the mmg3d include directory with the -I option;
- the mmg3d library location with the -L option;
- the mmg3d library name with the -l option.
gcc main.c -I/usr/local/include/ -L/usr/local/lib -L<SCOTCH_PATH> -lmmg3d -lscotch -lscotcherr -lm
Note that mmg uses the math library thus, it may be needed to link with it (-lm option). If you have build mmg without scotch, just remove the variables related to it:
gcc main.c -I/usr/local/include/ -L/usr/local/lib -lmmg3d -lm
It may be needed to add the path toward the libraries directory to your LD_LIBRARY_PATH environment variable:
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
Don't forget to include the mmg3d library headers to your program:
#include "mmg/mmg3d/libmmg3d.h"
You can find examples of the use of the mmg libraries in the libexamples subfolder (see the projects source tree section of the wiki for the description of the libexamples directory).