summaryrefslogtreecommitdiffstats
path: root/src/CMakeLists.txt
diff options
context:
space:
mode:
authorScott Murray <scott.murray@konsulko.com>2023-01-03 00:51:50 -0500
committerScott Murray <scott.murray@konsulko.com>2023-01-19 00:37:11 +0000
commit7f26a2d06410fd3a2768612b9c9daf869778e480 (patch)
tree4dfffa78e14c8eadb42a731ae15cc87137e17723 /src/CMakeLists.txt
parent6191be9c1e4b628f60ccaeabcef2aaa9de00800b (diff)
Repurpose into gRPC service
Repurpose repository into a spiritual successor of the previous binding. The backend code is retained behind a new gRPC API defined in protos/radio.proto. The simpler synchronous gRPC API had been used for expediency, this may warrant revisiting to rework into an async or callback API based server instead. As well, authentication has been left until some consensus on an approach can be worked out. Bug-AGL: SPEC-4665 Signed-off-by: Scott Murray <scott.murray@konsulko.com> Change-Id: I28b122ce6e0ecfc7504aa08b90394cb1b9e22976 (cherry picked from commit dd23c157bdba1b25bbb50cdb99a60aa597735f43)
Diffstat (limited to 'src/CMakeLists.txt')
-rw-r--r--src/CMakeLists.txt73
1 files changed, 73 insertions, 0 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
new file mode 100644
index 0000000..560dcaf
--- /dev/null
+++ b/src/CMakeLists.txt
@@ -0,0 +1,73 @@
+###########################################################################
+# Copyright 2015, 2016, 2017 IoT.bzh
+# Copyright (C) 2018, 2019 Konsulko Group
+#
+# author: Fulup Ar Foll <fulup@iot.bzh>
+# contrib: Romain Forlot <romain.forlot@iot.bzh>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+###########################################################################
+
+# Add target to project dependency list
+PROJECT_TARGET_ADD(radio-binding)
+
+ add_definitions(-DAFB_BINDING_VERSION=3)
+
+ # Define project Targets
+ set(radio_SOURCES
+ radio-binding.c
+ radio_impl_kingfisher.c
+ radio_impl_null.c
+ radio_impl_rtlsdr.c
+ radio_impl_tef665x.c)
+
+ PKG_CHECK_MODULES(SOUND REQUIRED gstreamer-1.0)
+
+ add_library(${TARGET_NAME} MODULE ${radio_SOURCES})
+
+ # Binder exposes a unique public entry point
+ SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
+ PREFIX "libafm-"
+ LABELS "BINDING"
+ LINK_FLAGS ${BINDINGS_LINK_FLAG}
+ OUTPUT_NAME ${TARGET_NAME}
+ )
+
+ # Library dependencies (include updates automatically)
+ TARGET_COMPILE_OPTIONS(${TARGET_NAME} PUBLIC ${SOUND_CFLAGS})
+ TARGET_LINK_LIBRARIES(${TARGET_NAME} ${SOUND_LIBRARIES} ${link_libraries})
+
+# Add helper program target
+PROJECT_TARGET_ADD(rtl_fm_helper)
+
+ # Define project targets
+ set(helper_SOURCES
+ ${TARGET_NAME}.c
+ radio_output_gstreamer.c
+ rtl_fm.c
+ convenience/convenience.c)
+
+ PKG_CHECK_MODULES(helper_SOUND REQUIRED gstreamer-1.0)
+ PKG_CHECK_MODULES(helper_RTLSDR REQUIRED librtlsdr)
+ PKG_CHECK_MODULES(helper_LIBUSB REQUIRED libusb-1.0)
+
+ add_executable(${TARGET_NAME} ${helper_SOURCES})
+
+ SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES
+ LABELS "EXECUTABLE"
+ OUTPUT_NAME ${TARGET_NAME}
+ )
+
+ TARGET_COMPILE_OPTIONS(${TARGET_NAME} PUBLIC ${helper_SOUND_CFLAGS})
+ TARGET_LINK_LIBRARIES(${TARGET_NAME}
+ ${helper_RTLSDR_LIBRARIES} ${helper_LIBUSB_LIBRARIES} ${helper_SOUND_LIBRARIES} ${link_libraries} m)