building MeshLib on Debian 13
Hello, I am trying to build MeshLib on Debian 13 (trixie) amd64. I did the following:
git clone --recurse-submodules https://github.com/MeshInspector/MeshLib.git
cd MeshLib
./scripts/build_thirdparty.sh
However it keeps complaining about missing dependencies. I started to install these through apt, but then I realized at least some of them are included as submodules in the thirdparty/ directory, such as the fmt library.
Why do I have to install packages such as libfmt-dev if thirdparty/fmt is included in the git repo? Is there a way to get it to "use" these built-in dependencies? Or are they only supposed to be used where packages are unavailable?
Also, using ./scripts/build_thirdparty.sh, is there a way to disable certain modules? Something similar to doing:
mkdir build
cd build
cmake .. -DMESHLIB_PYTHON_SUPPORT=OFF -DMESHLIB_BUILD_MRVIEWER=OFF -DMESHLIB_BUILD_MESHVIEWER=OFF -DMESHLIB_BUILD_MESHCONV=OFF -DMESHLIB_BUILD_SYMBOLMESH=OFF -DMESHLIB_BUILD_VOXELS=OFF -DMESHLIB_BUILD_EXTRA_IO_FORMATS=OFF -DMESHLIB_BUILD_MRCUDA=OFF
I'd appreciate some guidance!
Hello!
In general we want to use as many native dependencies as possible, but on platforms that have incompatible versions or don't have required packages at all we use submodules.
Other thing is that we do not check previous statement during build but have predefined knowledge about platforms that we are testing on, and unfortunately, we don't test on debian (not sure if it will help but you can try running https://github.com/MeshInspector/MeshLib/blob/master/scripts/install_apt_requirements.sh).
Anyway, we have some work done to support vcpkg on linux, it will probably be useful on platforms that we don't support natively: https://github.com/MeshInspector/MeshLib/blob/2bfc5c7eede07126c6ad87230ab22ac45ed247c7/docker/rockylinux9-vcpkgDockerfile#L21-L43 https://github.com/MeshInspector/MeshLib/blob/2bfc5c7eede07126c6ad87230ab22ac45ed247c7/.github/workflows/build-test-linux-vcpkg.yml#L141-L156
Also, using ./scripts/build_thirdparty.sh, is there a way to disable certain modules? Something similar to doing:
You can define additional MR_CMAKE_OPTIONS env to provide these flags to build script, or you can use cmake directly
https://github.com/MeshInspector/MeshLib/blob/2bfc5c7eede07126c6ad87230ab22ac45ed247c7/scripts/build_source.sh#L146-L149