View Issue Details

IDProjectCategoryView StatusLast Update
0029272CommunityOCCT:Configurationpublic2023-09-29 17:49
Reporterefferre79 Assigned To 
Status assignedResolutionopen 
Target VersionUnscheduled 
Summary0029272: Configuration, CMake - failure of Inspector build when all modules are disabled
DescriptionI am trying to build in a modular way opencascade-7.2.0. In the sources directory the file adm/MODULES lists all the available modules with their first level dependencies, it is possible to selectively build a module by specifying -DBUILD_MODULE_<MODULE_NAME>=ON on the cmake command line. The build systems finds all the module dependencies automatically. Up to here everything is fine.

With a similar concept there there is the file adm/TOOLS with a list of different tools to be built. In this case it is not possible to selectively define the tools to build but all of them can be built by defining -DBUILD_Inspector on the command line. This is not a problem right now. Also in this case the build system should automatically detect the dependencies and build the appropriate required modules to get the tools. In practice instead I get an error when I try to build the tools after having disabled all the modules using this command line:

cmake -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_DOC_Overview=no -DBUILD_Inspector=yes -DBUILD_WITH_DEBUG=no -DCMAKE_INSTALL_PREFIX=/usr/lib64/opencascade-7.2.0/ros/lin -DINSTALL_DIR_CMAKE=/usr/lib64/cmake/opencascade-7.2.0 -DINSTALL_DIR_DATA=share/data -DINSTALL_DIR_DOC=/usr/share/doc/opencascade-7.2.0 -DINSTALL_DIR_INCLUDE=inc -DINSTALL_DIR_LIB=lib64 -DINSTALL_DIR_RESOURCE=share/resources -DINSTALL_DIR_SAMPLES=share/samples -DINSTALL_DIR_TESTS=share/tests -DINSTALL_SAMPLES=yes -DINSTALL_TEST_CASES=no -DUSE_FFMPEG=no -DUSE_FREEIMAGE=no -DUSE_FREETYPE=no -DUSE_TCL=no -DUSE_GL2PS=no -DUSE_TBB=yes -DUSE_VTK=no -D3RDPARTY_QT_DIR:PATH=/usr -DBUILD_MODULE_ApplicationFramework=OFF -DBUILD_MODULE_DataExchange=OFF -DBUILD_MODULE_Draw=OFF -DBUILD_MODULE_FoundationClasses=OFF -DBUILD_MODULE_ModelingData=OFF -DBUILD_MODULE_ModelingAlgorithms=OFF -DBUILD_MODULE_Visualization=OFF -DCMAKE_BUILD_TYPE=Gentoo

I expect that the build system finds all the required toolkits to be built to get the final tools. Here is the error I get:

[ 2%] Building CXX object tools/TKView/CMakeFiles/TKView.dir/__/View/View_Displayer.cxx.o
cd /var/tmp/portage/sci-libs/opencascade-7.2.0/work/opencascade-7.2.0_build/tools/TKView && /usr/bin/x86_64-pc-linux-gnu-g++ -DHAVE_QT -DOCC_CONVERT_SIGNALS -DQT_CORE_LIB -DQT_GUI_LIB -DQT_NO_DEBUG -DQT_WIDGETS_LIB -DTKView_EXPORTS -DView_EXPORTS -I/var/tmp/portage/sci-libs/opencascade-7.2.0/work/opencascade-7.2.0_build/tools/TKView/TKView_autogen/include -I/var/tmp/portage/sci-libs/opencascade-7.2.0/work/opencascade-7.2.0_build/inc -isystem /usr/include/qt5 -isystem /usr/include/qt5/QtWidgets -isystem /usr/include/qt5/QtGui -isystem /usr/include/qt5/QtCore -isystem /usr/lib64/qt5/mkspecs/linux-g++ -I/var/tmp/portage/sci-libs/opencascade-7.2.0/work/opencascade-7.2.0_build/inc/tools -DNDEBUG -std=c++0x -march=core2 -O2 -pipe -ggdb -fpermissive -fexceptions -fPIC -Wall -Wextra -fPIC -fPIC -std=gnu++11 -o CMakeFiles/TKView.dir/__/View/View_Displayer.cxx.o -c /var/tmp/portage/sci-libs/opencascade-7.2.0/work/opencascade-7.2.0/tools/View/View_Displayer.cxx
In file included from /var/tmp/portage/sci-libs/opencascade-7.2.0/work/opencascade-7.2.0_build/inc/inspector/View_Displayer.hxx:1:0,
                 from /var/tmp/portage/sci-libs/opencascade-7.2.0/work/opencascade-7.2.0/tools/View/View_Displayer.cxx:16:
/var/tmp/portage/sci-libs/opencascade-7.2.0/work/opencascade-7.2.0/tools/View/View_Displayer.hxx:19:37: fatal error: AIS_ListOfInteractive.hxx: No such file or directory

I was suggested that Inspector depends on the Visualization module but the build system doesn't check for this dependency.
TagsNo tags attached.
Test case number



2017-11-06 14:25

reporter   ~0072001

I have successfully built with -DBUILD_MODULE_ApplicationFramework=ON -DBUILD_MODULE_DataExchange=OFF -DBUILD_MODULE_Draw=ON -DBUILD_MODULE_FoundationClasses=OFF -DBUILD_MODULE_ModelingData=OFF -DBUILD_MODULE_ModelingAlgorithms=OFF -DBUILD_MODULE_Visualization=ON

Instead of requiring the full modules, maybe it should be possible to modify the build system to select only the needed toolkits which are already specified in the EXTERNLIB file for each tool directory.

I mean that the build system should automatically select only the needed toolkits, if possible, when using

-DBUILD_Inspector=yes -DBUILD_MODULE_ApplicationFramework=OFF -DBUILD_MODULE_DataExchange=OFF -DBUILD_MODULE_Draw=OFF -DBUILD_MODULE_FoundationClasses=OFF -DBUILD_MODULE_ModelingData=OFF -DBUILD_MODULE_ModelingAlgorithms=OFF -DBUILD_MODULE_Visualization=OFF

to successfully build Inspector.

Issue History

Date Modified Username Field Change
2017-10-27 20:19 efferre79 New Issue
2017-10-27 20:19 efferre79 Assigned To => bugmaster
2017-10-30 10:29 bugmaster Assigned To bugmaster => apn
2017-10-30 10:29 bugmaster Status new => assigned
2017-11-06 14:25 efferre79 Note Added: 0072001
2020-03-04 11:51 kgv Summary failure of Inspector build when all modules are disabled => Configuration, CMake - failure of Inspector build when all modules are disabled
2020-09-21 17:19 bugmaster Assigned To apn => bugmaster
2021-09-03 14:13 bugmaster Target Version => 7.7.0
2022-10-24 10:38 szy Target Version 7.7.0 => 7.8.0
2023-08-01 15:09 dpasukhi Target Version 7.8.0 => Unscheduled
2023-09-29 17:49 vglukhik Assigned To bugmaster =>