libigl-example-project
libigl-example-project copied to clipboard
A blank project example showing how to use libigl and cmake.
libigl example project
A blank project example showing how to use libigl and cmake. Feel free and encouraged to copy or fork this project as a way of starting a new personal project using libigl.
Compile
Compile this project using the standard cmake routine:
mkdir build
cd build
cmake ..
make
This should find and build the dependencies and create a example
binary.
Run
From within the build
directory just issue:
./example
A glfw app should launch displaying a 3D cube.
Using other modules of libigl
This example project uses the igl::opengl::glfw::Viewer
, therefore it requires
the glfw module of libigl. This shows up in the CMakeLists.txt
igl_include(glfw)
…
target_link_libraries(${PROJECT_NAME} PUBLIC igl::glfw)
Suppose you also wanted to use the triangle module in libigl. Then you would change these to
igl_include(glfw)
igl_include(restricted triangle)
…
target_link_libraries(${PROJECT_NAME} PUBLIC igl::glfw igl_restricted::triangle)
The "restricted" appears in this case because the triangle library has a more restricted license than libigl. See other examples commented out in CMakeLists.txt.
Dependencies
The only dependencies are STL, Eigen, libigl and the dependencies
of the igl::opengl::glfw::Viewer
(OpenGL, glad and GLFW).
The CMake build system will automatically download libigl and its dependencies using CMake FetchContent, thus requiring no setup on your part.
Use a local copy of libigl
You can use the CMake cache variable FETCHCONTENT_SOURCE_DIR_LIBIGL
when configuring your CMake project for
the first time to aim it at a local copy of libigl instead.
cmake -DFETCHCONTENT_SOURCE_DIR_LIBIGL=<path-to-libigl> ..
When changing this value, do not forget to clear your CMakeCache.txt
, or to update the cache variable
via cmake-gui
or ccmake
.