diff --git a/cmake/set_control_system_adapter.cmake b/cmake/set_control_system_adapter.cmake new file mode 100644 index 0000000000000000000000000000000000000000..77fbd716bee3cadad76f4484a05b05433ac80f57 --- /dev/null +++ b/cmake/set_control_system_adapter.cmake @@ -0,0 +1,49 @@ +####################################################################################################################### +# set_control_system_adapter.cmake +# +# Set the ControlSystemAdapter for a ApplicationCore server +# +# Expects the following input variable: +# ADAPTER - String specifiing the adapter, either DOOCS, OPCUA or EPICSIOC +# +# This macro will add the selected adapter as a dependency and set the following variables: +# +# Adapter_LINK_FLAGS - Link flags provided by the adapter library +# Adapter_LIBRARIES - Libraries that are dependencies of the adapter +# +####################################################################################################################### + +####################################################################################################################### +# +# IMPORTANT NOTE: +# +# DO NOT MODIFY THIS FILE inside a project. Instead update the project-template repository and pull the change from +# there. Make sure to keep the file generic, since it will be used by other projects, too. +# +# If you have modified this file inside a project despite this warning, make sure to cherry-pick all your changes +# into the project-template repository immediately. +# +####################################################################################################################### + +# Select control system adapter +IF(ADAPTER STREQUAL "OPCUA") + message("Building against the OPC UA ControlSystemAdater") + add_dependency(ChimeraTK-ControlSystemAdapter-OPCUAAdapter REQUIRED) + set(Adapter_LINK_FLAGS ${ChimeraTK-ControlSystemAdapter-OPCUAAdapter_LINK_FLAGS}) + set(Adapter_LIBRARIES ${ChimeraTK-ControlSystemAdapter-OPCUAAdapter_LIBRARIES}) +ELSEIF(ADAPTER STREQUAL "DOOCS") + message("Building against the DOOCS ControlSystemAdater") + add_dependency(ChimeraTK-ControlSystemAdapter-DoocsAdapter REQUIRED) + set(Adapter_LINK_FLAGS ${ChimeraTK-ControlSystemAdapter-DoocsAdapter_LINK_FLAGS}) + set(Adapter_LIBRARIES ${ChimeraTK-ControlSystemAdapter-DoocsAdapter_LIBRARIES}) +ELSEIF(ADAPTER STREQUAL "EPICSIOC") + message("Building against the EPICS IOC ControlSystemAdater") + add_dependency(ChimeraTK-ControlSystemAdapter-EPICS-IOC-Adapter REQUIRED) + set(Adapter_LINK_FLAGS ${ChimeraTK-ControlSystemAdapter-EPICS-IOC-Adapter_LINK_FLAGS}) + set(Adapter_LIBRARIES ${ChimeraTK-ControlSystemAdapter-EPICS-IOC-Adapter_LIBRARIES}) +ELSE() + message(FATAL_ERROR "Please select your ControlSystemAdapter to use by passing to the cmake command line:\n" + " -DADAPTER=DOOCS to build a DOOCS server\n" + " -DADAPTER=OPCUA to build an OPC UA server\n" + " -DADAPTER=EPICSIOC to build an EPICS IOC") +ENDIF()