Search code examples
openmesh

How to build OpenMesh?


I am building OpenMesh on a Gentoo machine, which used to work a few years back. But now, with the following commands ...

git clone https://www.graphics.rwth-aachen.de:9000/OpenMesh/OpenMesh.git 
$ cd OpenMesh
$ mkdir build
$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/openmesh ..
$ make
$ make install

... I am getting these errors:

$ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/opt/openmesh ..
-- The C compiler identification is GNU 12.3.1
-- The CXX compiler identification is GNU 12.3.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
CMake Error at CMakeLists.txt:44 (include):
  include could not find requested file:

    VCICommon


CMake Error at CMakeLists.txt:51 (include):
  include could not find requested file:

    VCIOutput


CMake Error at CMakeLists.txt:52 (include):
  include could not find requested file:

    VCIQt


CMake Error at src/OpenMesh/Core/CMakeLists.txt:1 (include):
  include could not find requested file:

    VCICommon


CMake Error at src/OpenMesh/Core/CMakeLists.txt:154 (vci_add_library):
  Unknown CMake command "vci_add_library".


-- Configuring incomplete, errors occurred!

My understanding is that these files (VCICommon, VCIOutput, VCIQT) are other CMake files. I'm not understanding what I'm missing.

Can anyone help out?


Solution

  • The CMake files VCICommon, VCIOutput, VCIQT, etc. are now contained in a Git submodule of OpenMesh. You need to clone with Git submodules (--recursive), i.e.

    git clone --recursive https://www.graphics.rwth-aachen.de:9000/OpenMesh/OpenMesh.git
    

    Or, if you've already cloned a repository without specifying the --recursive option, you can do

    git submodule update --init --recursive