Understanding module/package dependencies while building with CMake

I am trying to build the latest version of OCCT using cmake (via cmake-gui), I unticked the Visualization and Draw module as I don't want to build those) and only ticked the USE_RAPIDJSON variable in the USE group of cmake variables.

For some reason my compilation STILL builds TKService and TKV3d which are only listed in this file occt/adm/MODULES under the Visualization package. My build fails as I am not installing OpenGL libraries.

Consolidate compiler generated dependencies of target TKService
[ 51%] Built target TKService
Consolidate compiler generated dependencies of target TKV3d
[ 51%] Linking CXX shared library ../../lin64/gcc/lib/libTKV3d.so
/usr/bin/ld: cannot find -lGL: No such file or directory
/usr/bin/ld: cannot find -lEGL: No such file or directory
collect2: error: ld returned 1 exit status
make[2]: *** [src/TKV3d/CMakeFiles/TKV3d.dir/build.make:3342: lin64/gcc/lib/libTKV3d.so.7.7.1] Error 1
make[1]: *** [CMakeFiles/Makefile2:2010: src/TKV3d/CMakeFiles/TKV3d.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

Why are those two packages (TKService and TKV3d) built despite me unticking the Visualization and Draw modules?

Thanks for the information. I kind of want to get the general picture on which module needs which and I can't find anything about it in the documentation.

Dmitrii Pasukhin's picture

TKService and TKV3d Part of RWMesh dependency. It is not possible to remove.

For some reasons "CSF_OpenGlLibs" always defines to link "GL EGL".

Please try to use"sudo apt install libgl1-mesa-dev libegl1-mesa-dev" to load libs.

Best regards, Dmitrii.