[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Discuss-gnuradio] cmake module issue
From: |
Michael Dickens |
Subject: |
[Discuss-gnuradio] cmake module issue |
Date: |
Wed, 16 Oct 2013 10:05:09 -0400 |
I received a report this morning that gr-osmosdr was not configuring correctly
in MacPorts; not able to find GNU Radio. Trying this myself, I can recreate
the issue. After some investigation, the issue is somewhere between a cmake
bug, and GR issue, and "my bad". I've read through the cmake documents on this
topic as well as tried what cmake printed as its error message, but none of
those make sense or work. I can work around the issue, but I think there needs
to be better integration between GR and cmake.
What happened is that yesterday (Tuesday, 15-Oct-2013) I pushed a change which
moved the GR cmake files from their default install location,
${prefix}/lib/cmake, to a common (across all ports) cmake location:
${prefix}/share/cmake/modules/. After install, I moved ${prefix}/lib/cmake/*
into ${prefix}/share/cmake/modules/ -> which means there are 2 directories now:
gnuradio and volk. I thought that this is the way cmake should like things,
and I know it is the way MacPorts prefers non-cmake-provided cmake modules to
be installed.
But, cmake does not like this setup; it cannot find GR using this setup. After
testing a bunch, I find that there are 2 configurations cmake likes:
1) having "FindGnuradio.cmake" in a directory in CMAKE_MODULE_PATH (whether as
an actual file or linked).
2) having "GnuradioConfig.cmake" in a top-level directory in some other cmake
search path -- I don't have a variable name for this one, but it seems to
include "${prefix}/lib/cmake:${prefix}/share/cmake", where the "cmake-X.Y" is
installed (and known) by cmake itself; seems like it is like each value in
CMAKE_MODULE_PATH but with "[Mm]odules" removed from the end.
GR provides just GnuradioConfig.cmake, not FindGnuradio.cmake. Hence, I have
to place the "gnuradio" directory in a top-level directory, not in a modules
directory. It also seems to work that I can link GnuradioConfig.cmake to
FindGnuradio.cmake so long as this link is in a directory in CMAKE_MODULE_PATH.
So ... I'm not sure what to make of this behavior by cmake. I will fix the way
these files are installed within MacPorts, for now, but I hope we come up with
a better solution. - MLD
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Discuss-gnuradio] cmake module issue,
Michael Dickens <=