Build Options open_iA - 3dct/open_iA GitHub Wiki

Up to Windows Build / Linux Build.

During CMake configuration, several options are availble for configuring aspects of the build:

  • openiA_AVX_SUPPORT: (default: off) Possible other values AVX and AVX2 enable compilation with auto-vectorization utilizing AVX/AVX2 instructions. Note that the targeted CPU must support these instructions in order for binaries compiled with those options enabled to work.
  • openiA_BUILD_ALL_MODULES: (default: OFF) Disabled by default. When enabled, always all modules (all Module_ options) will be automatically enabled. Note that you need to disable this option if you want to disable any single module option!
  • openiA_CHART_OPENGL: (default: ON) Determines whether charts (histogram, scatter plots etc.) use OpenGL for drawing. Disable if you see drawing glitches in any of the charts; please consider submitting an issue if you see any such problems!
  • openiA_CHART_SP_OLDOPENGL: (default: OFF) When enabled, switches on usage of old OpenGL code in the scatter plot (used in FeatureScout, PorosityAnalyzer and some other places). Enabling this might enhance performance in the scatter plot, but can also cause display problems, see also open_iA issue #58.
  • openiA_COMPRESS_PDB: (default: ON) Only available when building with Visual Studio. When enabled, .pdb files are generated as compressed file. This can save considerable disk space for the generated debbuger symbol (.pdb) files (reduction to approximately a third of the file size), but might lead to slightly slower debugging performance.
  • openiA_CUDA_ENABLED: (default: ON) Whether a search for the CUDA toolkit should be performed; disable if you don't require any CUDA-dependant module ([AI]], [Astra)
  • openiA_DEPENDENCY_INFO: (default: OFF) Purely informational, mainly useful for developing or extending an open_iA module and debugging module dependencies. When enabled, the CMake configure output shows detailed information on the determined module dependencies.
  • openiA_MODULE_GUI_DEPENDENCY: (default: ON) Determines whether the module libraries have a dependency on the GUI project. This dependency simplifies development since one can then configure the IDE (e.g. Visual Studio) to have a module library as "active project", and still the GUI exe will be properly updated if required before a debug or run session. If disabled, there is no such dependency set up; this can speed up build times since module builds can be started before the GUI has been compiled.
  • openiA_OPENCL_VERSION: (default: 1.2.0) Sets the targetted OpenCL version. Option might be removed soon, leave at default value.
  • openiA_OPENGL_DEBUG: (default: OFF) When enabled, OpenGL contexts (mainly for charts) are created with the debug flag enabled, enabling detailed debugging information.
  • openiA_PRECOMPILE: (default: OFF). When enabled, precompiled headers will be used (via the target_precompile_headers command, introduced in CMake 3.15). Can speed up build times a bit (~ factor 1.3), but also increases build folder size.
  • openiA_TESTING_ENABLED: (default: OFF). When enabled, a few additional targets/projects are generated, such as "Nightly", "Experimental" and so on, which are used for building and running tests using CTest/CDash. Only enable this if you want to run CDash builds or the unit tests.
  • BUILD_TESTING: (default: OFF), only available when the TESTING_ENABLED flag is enabled. When enabled, unit tests are created.
  • openiA_TEST_ITK: (default: OFF) Only available when the TESTING_ENABLED flag is enabled. This creates a special ITK test project.
  • openiA_USE_IDE_FOLDERS: (default: ON) When enabled, projects will be grouped into subfolders in the Visual Studio's Solution Explorer: _CMake and _CTest for CMake/CTest-specific projects, "Libraries" for toolkit libraries used in any of the moudles, "Modules" for Filter/Tool modules with functionality available directly in the GUI, and "Tests" for any kind of test projects, e.g. unit tests. The core library (open_iA_core) and the applications (open_iA and open_iA_cmd) will always be placed in the "root" folder.
  • openiA_ONNX_CUDA: (default: OFF) whether to use CUDA as AI backend; if disabled, DirectML is chosen. On Linux, currently CUDA is chosen as backend. DirectML is the recommended option (i.e., disable this option), and currently the only working one (i.e., under Linux, the AI module does not work).
  • DIRECTML_LIBRARY: (default: unset) Only available under windows curently. In case you are using AI's DirectML backend (see openiA_ONNX_CUDA - so if that option is disabled) specify here the path to the DirectML.dll.