### Project Initialization and Version Source: https://github.com/oac-tree/oac-tree-bundle/blob/master/CMakeLists.txt Sets the minimum required CMake version and defines the project name and version. This is a standard starting point for any CMake build script. ```cmake cmake_minimum_required(VERSION 3.13...3.31) project(oac-tree-bundle VERSION 1.0.0) ``` -------------------------------- ### Build Configuration Options Source: https://github.com/oac-tree/oac-tree-bundle/blob/master/CMakeLists.txt Defines boolean options that allow users to customize the build process, such as disabling plugins or the GUI. These options control conditional compilation and installation steps. ```cmake option(COA_NO_PLUGINS "Do not build/install oac-tree plugins" OFF) option(COA_NO_GUI "Do not build/install oac-tree GUI" OFF) ``` -------------------------------- ### Module Path Setup Source: https://github.com/oac-tree/oac-tree-bundle/blob/master/CMakeLists.txt Configures the search path for CMake modules, allowing the build system to find custom CMake scripts located in a specific directory relative to the current file. ```cmake set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}/cmake/module) ``` -------------------------------- ### Include CMake Modules Source: https://github.com/oac-tree/oac-tree-bundle/blob/master/CMakeLists.txt Includes external CMake scripts or modules to extend the build system's functionality. The 'configuration' module likely contains project-specific build logic. ```cmake include(configuration) ``` -------------------------------- ### Local Module Definitions and Dependencies Source: https://github.com/oac-tree/oac-tree-bundle/blob/master/CMakeLists.txt Defines various local modules (libraries or components) and specifies their interdependencies. The `add_local_module` command is used to declare these components and their build requirements. ```cmake add_local_module(sup-dto) add_local_module(sup-utils) add_local_module(sup-di DEPENDS sup-utils) add_local_module(sup-protocol DEPENDS sup-dto sup-utils sup-di) add_local_module(sup-epics DEPENDS sup-protocol) add_local_module(oac-tree DEPENDS sup-dto sup-utils) add_local_module(oac-tree-server DEPENDS oac-tree sup-epics) ``` -------------------------------- ### Conditional GUI Module Definitions Source: https://github.com/oac-tree/oac-tree-bundle/blob/master/CMakeLists.txt Defines modules related to the graphical user interface, but only if the `COA_NO_GUI` option is not set. This enables conditional building of GUI components. ```cmake if (NOT COA_NO_GUI) add_local_module(sup-gui-extra) add_local_module(sup-mvvm) add_local_module(sup-gui-core DEPENDS sup-gui-extra sup-mvvm sup-dto) add_local_module(oac-tree-gui DEPENDS oac-tree oac-tree-server sup-gui-core sup-epics) endif() ``` -------------------------------- ### Conditional Plugin Module Definitions Source: https://github.com/oac-tree/oac-tree-bundle/blob/master/CMakeLists.txt Defines additional modules related to plugins, but only if the `COA_NO_PLUGINS` option is not set. This allows for selective building of plugin-related components. ```cmake if (NOT COA_NO_PLUGINS) add_local_module(oac-tree-control DEPENDS oac-tree) add_local_module(oac-tree-epics DEPENDS oac-tree sup-epics) add_local_module(sup-mathexpr) add_local_module(oac-tree-mathexpr DEPENDS oac-tree sup-mathexpr) endif() ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.