# SPDX-FileCopyrightText: 2023 DESY and the Constellation authors
# SPDX-License-Identifier: CC0-1.0

option('impl_cxx', type: 'feature', value: 'enabled', description: 'Build C++ implementation')
option('impl_py', type: 'feature', value: 'disabled', description: 'Build Python implementation')

option('cxx_tools', type: 'boolean', value: true, description: 'Build C++ tools')
option('cxx_tests', type: 'feature', value: 'auto', description: 'Build C++ tests')

option('memory_allocator', type: 'combo', choices: ['auto', 'jemalloc', 'mimalloc', 'system'], value: 'auto', description: 'Custom memory allocator')

# GUI framework version
option('build_gui', type: 'combo', choices: ['none', 'qt5', 'qt6'], value: 'qt6', description: 'Build Qt graphical UIs')

# Controllers
option('controller_missioncontrol', type: 'boolean', value: true, description: 'Build the MissionControl Qt Controller GUI')

# Listeners
option('listener_observatory', type: 'boolean', value: true, description: 'Build the Observatory Qt Log Listener GUI')

# Satellites
option('build_satellites', type: 'boolean', value: true, description: 'Build satellites')
# Individual satellites
option('satellite_dev_null_receiver', type: 'boolean', value: false, description: 'Build DevNullReceiver satellite')
option('satellite_eudaq_native_writer', type: 'boolean', value: true, description: 'Build EudaqNativeWriter satellite')
option('satellite_flight_recorder', type: 'boolean', value: true, description: 'Build FlightRecorder satellite')
option('satellite_mattermost', type: 'boolean', value: false, description: 'Build Mattermost satellite')
option('satellite_random_transmitter', type: 'boolean', value: false, description: 'Build RandomTransmitter satellite')
option('satellite_sputnik', type: 'boolean', value: true, description: 'Build Sputnik satellite')
