From 19cac6cb29e664cbeac731964588732b61c8573b Mon Sep 17 00:00:00 2001
From: Davide Gerhard <rainbow@irh.it>
Date: Tue, 5 Nov 2019 18:46:46 +0100
Subject: codec2: fix support for codec2 version < 0.8

codec2 version < 0.8 doesn't provide codec2/version.h header
therefore cmake discovers if it is available.

fix gr-vocoder build on ubuntu < 19.04 and debian < 10

Closes: https://github.com/gnuradio/gnuradio/pull/2858#issuecomment-549391165
---
 cmake/Modules/FindCodec2.cmake | 12 ++++++++++++
 1 file changed, 12 insertions(+)

(limited to 'cmake/Modules')

diff --git a/cmake/Modules/FindCodec2.cmake b/cmake/Modules/FindCodec2.cmake
index 0c94ad0a0a..f33de4dcde 100644
--- a/cmake/Modules/FindCodec2.cmake
+++ b/cmake/Modules/FindCodec2.cmake
@@ -61,6 +61,18 @@ if(LIBCODEC2_INCLUDE_DIR AND LIBCODEC2_LIBRARIES)
   else()
     set(LIBCODEC2_HAS_FREEDV_API false)
   endif()
+
+  # we need to discover if codec2 < 0.9
+  # moreover, codec2 < 0.8 doesn't provide codec2/version.h
+  if(EXISTS "${LIBCODEC2_INCLUDE_DIRS}/version.h")
+    file(READ "${LIBCODEC2_INCLUDE_DIRS}/version.h" _CODEC2_VERSION_H_CONTENTS)
+    string(REGEX MATCH "CODEC2_VERSION_MAJOR ([0-9]+)(.*)CODEC2_VERSION_MINOR ([0-9]+)" _CODEC2_TMP_MATCH " ${_CODEC2_VERSION_H_CONTENTS}")
+    if((CMAKE_MATCH_1 EQUAL 0) AND (CMAKE_MATCH_3 LESS 9))
+      add_definitions(-DCODEC2_LEGACY)
+    endif()
+  else()
+    add_definitions(-DCODEC2_LEGACY)
+  endif()
 endif(LIBCODEC2_INCLUDE_DIR AND LIBCODEC2_LIBRARIES)
 
 FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIBCODEC2 DEFAULT_MSG LIBCODEC2_LIBRARIES LIBCODEC2_INCLUDE_DIRS)
-- 
cgit v1.2.3