Newer CMake v. 3.12.4 v. OP25 project

Many users are following tutorials/HOWTO/FAQ’s etc. on installing the
OP25 radio software for use with SDR’s…

http://osmocom.org/issues/4225

OP25 Project:

Example HOWTO:
https://www.hagensieker.com/wordpress/2018/07/17/op25-for-dummies/

Changes/updates to CMake have caused all these to fail to compile the project.

USING OLDER 3.12.4 corrects the issues what ever they are…

The creator has not found a way to fix the issue: “magic incantation
in GrSwig.cmake to fix the incorrect dependency ordering.”

If any user or guru on CMake could help to figure this out and changes
needed for the make files to bring it current, and not create a hard
depend on NEWER CMake, ie: forward and backward compatibility.

Any help would be grateful… Thank you in advance.

The fatal error also referenced in the links above:

arget scan4sync
[ 87%] Built target BER
[ 90%] Built target test-op25_repeater
make[2]: *** No rule to make target
‘op25/gr-op25_repeater/swig/op25_repeater_swig.py’, needed by
‘op25/gr-op25_repeater/swig/op25_repeater_swig.pyc’. Stop.
make[1]: *** [CMakeFiles/Makefile2:954:
op25/gr-op25_repeater/swig/CMakeFiles/pygen_op25_gr_op25_repeater_swig_a9103.dir/all]
Error 2
make: *** [Makefile:130: all] Error 2
ddejr@ddejr-pc:~/op25/build$

same result using “./install.sh” method

http://osmocom.org/issues/4225

“make2: * No rule to make target
‘op25/gr-op25_repeater/swig/op25_repeater_swig.py’, needed by
‘op25/gr-op25_repeater/swig/op25_repeater_swig.pyc’. Stop.
make1: [CMakeFiles/Makefile2:874:
op25/gr-op25_repeater/swig/CMakeFiles/pygen_op25_gr_op25_repeater_swig_26094.dir/all]
Error 2
make: [Makefile:130: all] Error 2
[ 26%] Built target gnuradio-op25
[ 29%] Built target test-op25
[ 30%] Built target _op25_swig_swig_tag
[ 32%] Built target _op25_swig_doc_tag
[ 36%] Built target op25_swig_swig_compilation
[ 38%] Built target _op25_swig
[ 40%] Built target pygen_op25_gr_op25_swig_388ba
[ 42%] Built target pygen_op25_gr_op25_python_4bea1
[ 42%] Built target pygen_op25_gr_op25_apps_383eb
[ 63%] Built target imbe_vocoder
[ 86%] Built target gnuradio-op25_repeater
[ 89%] Built target test-op25_repeater
[ 91%] Built target _op25_repeater_swig_swig_tag
make2: No rule to make target
‘op25/gr-op25_repeater/swig/op25_repeater_swig.py’, needed by
‘op25/gr-op25_repeater/swig/op25_repeater_swig.pyc’. Stop.
make1: [CMakeFiles/Makefile2:874:
op25/gr-op25_repeater/swig/CMakeFiles/pygen_op25_gr_op25_repeater_swig_26094.dir/all]
Error 2
make: * [Makefile:130: all] Error 2”

I’ve replied on the issue. Setting up a local container to test it out.

Triaged; see my comments on the linked issue and on the CMake issue I’ve filed for this: https://gitlab.kitware.com/cmake/cmake/issues/20067

Quoting Ben Boeckel via CMake Discourse noreply@discourse.cmake.org:

Triaged; see my comments on the linked issue and on the CMake issue
I’ve filed for this:
https://gitlab.kitware.com/cmake/cmake/issues/20067

Thanks! THANKS!

Do you have suggested edits for file(s) to correct/workaround this???

I’d like to try it some test systems so that the FAQ/HOWTO’s etc. can
work again with latest releases and not have to send users looking for
more source code to dl, pray it compiles etc…

THANKS AGAIN! REALLY APPRECEITE THE QUICK WORK AND REPLY!

Thanks.

To work with SWIG as it exists post-3.10, you’ll need to update the DEPENDS lists in GrPython’s add_custom_commands to not list the .py files and instead use the returned timestamp file. It’s going to need to check for 3.11 before doing this and newer and, possibly, again for the CMake version where this is fixed to avoid doing that.