cmake_minimum_required(VERSION 3.14)

find_package(Java REQUIRED)
include(UseJava)

file(GLOB_RECURSE JAVA_SOURCES_SDK ${CMAKE_CURRENT_SOURCE_DIR}/neurosdk/*.java)
set(JAVA_SOURCES ${JAVA_SOURCES_SDK} "${CMAKE_CURRENT_SOURCE_DIR}/Assert.java" "${CMAKE_CURRENT_SOURCE_DIR}/INotificationCallback.java" "${CMAKE_CURRENT_SOURCE_DIR}/SubscribersNotifier.java" PARENT_SCOPE)

add_jar(android_neurosdk_classes			
			"Assert.java"
			"INotificationCallback.java"
			"SubscribersNotifier.java"
			"neurosdk/Device.java"
			"neurosdk/DeviceInfo.java"
			"neurosdk/DeviceType.java"
			"neurosdk/DeviceEnumerator.java"
			"neurosdk/ParameterTypeInfo.java"
			"neurosdk/channels/AnyChannel.java"
			"neurosdk/channels/AnyChannelLengthChangedCallback.java"
			"neurosdk/channels/BaseChannel.java"
			"neurosdk/channels/BaseDoubleChannel.java"
			"neurosdk/channels/BatteryChannel.java"
			"neurosdk/channels/BipolarDoubleChannel.java"
			"neurosdk/channels/ChannelInfo.java"
			"neurosdk/channels/ChannelType.java"
			"neurosdk/channels/DoubleDataChannel.java"
			"neurosdk/channels/ElectrodesStateChannel.java"
			"neurosdk/channels/ElectrodeState.java"
			"neurosdk/channels/Filter.java"
			"neurosdk/channels/IntDataChannel.java"
			"neurosdk/channels/MEMS.java"
			"neurosdk/channels/EmulationSine.java"
			"neurosdk/channels/EmulationChannel.java"
			#"neurosdk/channels/MEMSChannel.java"
			#"neurosdk/channels/OrientationChannel.java"
			"neurosdk/channels/Quaternion.java"
			"neurosdk/channels/ResistanceChannel.java"
			"neurosdk/channels/RespirationChannel.java"
			"neurosdk/channels/SignalChannel.java"
			"neurosdk/channels/SpectrumChannel.java"
			"neurosdk/channels/SpectrumPowerChannel.java"
			"neurosdk/channels/eeg/ArtifactType.java"
			"neurosdk/channels/eeg/ArtifactZone.java"
			"neurosdk/channels/eeg/EegArtifactChannel.java"
			"neurosdk/channels/eeg/EegChannel.java"
			"neurosdk/channels/eeg/EegIndexValues.java"
			"neurosdk/channels/eeg/EegIndexChannel.java"
			"neurosdk/channels/eeg/EmotionalState.java"
			"neurosdk/channels/eeg/EmotionalStateName.java"
			"neurosdk/channels/eeg/EmotionalStateChannel.java"
			"neurosdk/channels/eeg/SourceChannel.java"
			"neurosdk/channels/ecg/EcgChannel.java"
			"neurosdk/channels/ecg/HeartRateChannel.java"
			"neurosdk/channels/ecg/RPeakChannel.java"
			"neurosdk/channels/ecg/StressIndexChannel.java"
			"neurosdk/parameters/Command.java"
			"neurosdk/parameters/Parameter.java"
			"neurosdk/parameters/ParameterAccess.java"
			"neurosdk/parameters/ParameterName.java"
			"neurosdk/parameters/ParameterType.java"
			"neurosdk/parameters/types/AccelerometerSensitivity.java"
			"neurosdk/parameters/types/ADCInput.java"
			"neurosdk/parameters/types/DeviceState.java"
			"neurosdk/parameters/types/ExternalSwitchInput.java"
			"neurosdk/parameters/types/FirmwareMode.java"
			"neurosdk/parameters/types/FirmwareVersion.java"
			"neurosdk/parameters/types/Gain.java"
			"neurosdk/parameters/types/GyroscopeSensitivity.java"
			"neurosdk/parameters/types/MotionAssistantLimb.java"
			"neurosdk/parameters/types/MotionAssistantParams.java"
			"neurosdk/parameters/types/SamplingFrequency.java"
			"neurosdk/parameters/types/StimulationParams.java"
			"neurosdk/parameters/types/StimulatorDeviceState.java"
		OUTPUT_DIR ${SDK_JAVA_CLASSES_PATH}
		OUTPUT_NAME
			classes
		)

