From: Clayton Smith argilo@gmail.com
Currently gr-osmosdr does not build with GNU Radio's master branch, which declares itself to be version 3.9. This change allows both 3.8 and 3.9. --- CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt index 56c1a6b185..f3186dee0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,13 @@ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "") list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
# Find GNURadio (pmt and runtime are core, always included) -find_package(Gnuradio "3.8" REQUIRED COMPONENTS blocks fft filter) +find_package(Gnuradio "3.8" COMPONENTS blocks fft filter) +if(NOT Gnuradio_FOUND) + find_package(Gnuradio "3.9" COMPONENTS blocks fft filter) + if(NOT Gnuradio_FOUND) + message(FATAL_ERROR "Unable to find GNURadio") + ENDIF(NOT Gnuradio_FOUND) +ENDIF(NOT Gnuradio_FOUND)
# Set the version information here set(VERSION_MAJOR 0)
Nope sorry, not merging those.
I don't want at any point in the code something that says I am "3.9 compatible" when the actual 3.9 API spec isn't fixed / definitive ... Because that could yield in the future (says when 3.9 is released and contains incompatible changes) that you have a git version that pretends to be 3.9 compatible ... but doesn't actually build against 3.9 ...
IMHO the change should be in the gnuradio tree itself where the GnuraidoConfig cmake version check should be ignored (or accept 3.8) for git dev versions. That's something that was discussed / brought up at the hackfest last week.
Cheers,
Sylvain
On Sat, Feb 8, 2020 at 3:48 PM argilo@gmail.com wrote:
From: Clayton Smith argilo@gmail.com
Currently gr-osmosdr does not build with GNU Radio's master branch, which declares itself to be version 3.9. This change allows both 3.8 and 3.9.
CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt index 56c1a6b185..f3186dee0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,13 @@ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "") list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
# Find GNURadio (pmt and runtime are core, always included) -find_package(Gnuradio "3.8" REQUIRED COMPONENTS blocks fft filter) +find_package(Gnuradio "3.8" COMPONENTS blocks fft filter) +if(NOT Gnuradio_FOUND)
- find_package(Gnuradio "3.9" COMPONENTS blocks fft filter)
- if(NOT Gnuradio_FOUND)
message(FATAL_ERROR "Unable to find GNURadio")- ENDIF(NOT Gnuradio_FOUND)
+ENDIF(NOT Gnuradio_FOUND)
# Set the version information here set(VERSION_MAJOR 0) -- 2.17.1
My motivation was to make PyBOMBS installs work, but I agree that this would be better addressed in GNU Radio itself. I'll just patch these locally until that happens.
- Clayton
On Sat, Feb 8, 2020 at 9:54 AM Sylvain Munaut tnt@246tnt.com wrote:
Nope sorry, not merging those.
I don't want at any point in the code something that says I am "3.9 compatible" when the actual 3.9 API spec isn't fixed / definitive ... Because that could yield in the future (says when 3.9 is released and contains incompatible changes) that you have a git version that pretends to be 3.9 compatible ... but doesn't actually build against 3.9 ...
IMHO the change should be in the gnuradio tree itself where the GnuraidoConfig cmake version check should be ignored (or accept 3.8) for git dev versions. That's something that was discussed / brought up at the hackfest last week.
Cheers,
SylvainOn Sat, Feb 8, 2020 at 3:48 PM argilo@gmail.com wrote:
From: Clayton Smith argilo@gmail.com
Currently gr-osmosdr does not build with GNU Radio's master branch, which declares itself to be version 3.9. This change allows both 3.8 and 3.9.
CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt index 56c1a6b185..f3186dee0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,13 @@ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING
"")
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
# Find GNURadio (pmt and runtime are core, always included) -find_package(Gnuradio "3.8" REQUIRED COMPONENTS blocks fft filter) +find_package(Gnuradio "3.8" COMPONENTS blocks fft filter) +if(NOT Gnuradio_FOUND)
- find_package(Gnuradio "3.9" COMPONENTS blocks fft filter)
- if(NOT Gnuradio_FOUND)
message(FATAL_ERROR "Unable to find GNURadio")- ENDIF(NOT Gnuradio_FOUND)
+ENDIF(NOT Gnuradio_FOUND)
# Set the version information here set(VERSION_MAJOR 0) -- 2.17.1
I've opened a pull request with a proposal to fix this in GNU Radio: https://github.com/gnuradio/gnuradio/pull/3187
On Sat, Feb 8, 2020 at 10:11 AM Clayton Smith argilo@gmail.com wrote:
My motivation was to make PyBOMBS installs work, but I agree that this would be better addressed in GNU Radio itself. I'll just patch these locally until that happens.
- Clayton
On Sat, Feb 8, 2020 at 9:54 AM Sylvain Munaut tnt@246tnt.com wrote:
Nope sorry, not merging those.
I don't want at any point in the code something that says I am "3.9 compatible" when the actual 3.9 API spec isn't fixed / definitive ... Because that could yield in the future (says when 3.9 is released and contains incompatible changes) that you have a git version that pretends to be 3.9 compatible ... but doesn't actually build against 3.9 ...
IMHO the change should be in the gnuradio tree itself where the GnuraidoConfig cmake version check should be ignored (or accept 3.8) for git dev versions. That's something that was discussed / brought up at the hackfest last week.
Cheers,
SylvainOn Sat, Feb 8, 2020 at 3:48 PM argilo@gmail.com wrote:
From: Clayton Smith argilo@gmail.com
Currently gr-osmosdr does not build with GNU Radio's master branch, which declares itself to be version 3.9. This change allows both 3.8 and 3.9.
CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt index 56c1a6b185..f3186dee0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,13 @@ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE
STRING "")
list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
# Find GNURadio (pmt and runtime are core, always included) -find_package(Gnuradio "3.8" REQUIRED COMPONENTS blocks fft filter) +find_package(Gnuradio "3.8" COMPONENTS blocks fft filter) +if(NOT Gnuradio_FOUND)
- find_package(Gnuradio "3.9" COMPONENTS blocks fft filter)
- if(NOT Gnuradio_FOUND)
message(FATAL_ERROR "Unable to find GNURadio")- ENDIF(NOT Gnuradio_FOUND)
+ENDIF(NOT Gnuradio_FOUND)
# Set the version information here set(VERSION_MAJOR 0) -- 2.17.1
Hi!
I understand the issue, but as GR maintainer:
I'm sorry Dave, I'm afraid I can't do that.
Two reasons:
1. master hasn't been 3.8 compat in a long time now. The removal of all the Py2 would be one indication, but we've also messed around with enough C++ symbols to break our compatibility contract even if you're already using Py3. 2. How should GR know when changes *don't* break submodules?
So, however, Sylvain is right, we need to change GR a bit. One way forward is to change our ...Version.cmake to
* set PACKAGE_VERSION_COMPATIBLE on REQUESTED MAJOR==GR MAJOR && GR VERSION >= REQUESTED VERSION * set PACKAGE_VERSION_EXACT on GR VERSION == REQUESTED VERSION (all digits specified, not just the first three)
Since this is a very upstream discussion to have, let's move it to GNU Radio's sphere: https://github.com/gnuradio/gnuradio/issues/3188
Best regards, Marcus
On Sat, 2020-02-08 at 15:55 +0100, Sylvain Munaut wrote:
IMHO the change should be in the gnuradio tree itself where the GnuraidoConfig cmake version check should be ignored (or accept 3.8) for git dev versions. That's something that was discussed / brought up at the hackfest last week.
Cheers,
SylvainOn Sat, Feb 8, 2020 at 3:48 PM argilo@gmail.com wrote:
From: Clayton Smith argilo@gmail.com
Currently gr-osmosdr does not build with GNU Radio's master branch, which declares itself to be version 3.9. This change allows both 3.8 and 3.9.
CMakeLists.txt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt index 56c1a6b185..f3186dee0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -42,7 +42,13 @@ set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "") list(INSERT CMAKE_MODULE_PATH 0 ${CMAKE_SOURCE_DIR}/cmake/Modules)
# Find GNURadio (pmt and runtime are core, always included) -find_package(Gnuradio "3.8" REQUIRED COMPONENTS blocks fft filter) +find_package(Gnuradio "3.8" COMPONENTS blocks fft filter) +if(NOT Gnuradio_FOUND)
- find_package(Gnuradio "3.9" COMPONENTS blocks fft filter)
- if(NOT Gnuradio_FOUND)
message(FATAL_ERROR "Unable to find GNURadio")- ENDIF(NOT Gnuradio_FOUND)
+ENDIF(NOT Gnuradio_FOUND)
# Set the version information here set(VERSION_MAJOR 0) -- 2.17.1