Marcus,
   I have tracked this up one more file.  The file:
build/gnuradio-runtime/swig/CMakeFiles/Export/lib/cmake/gnuradio/runtime_swigTargets.cmake
on the host system has lines starting around line 44:

# Compute the installation prefix relative to this file.
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
if(_IMPORT_PREFIX STREQUAL "/")
  set(_IMPORT_PREFIX "")
endif()

Where as the on on the cross-compile has lines:
# Compute the installation prefix relative to this file.
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
# Use original install prefix when loaded through a
# cross-prefix symbolic link such as /lib -> /usr/lib.
get_filename_component(_realCurr "${_IMPORT_PREFIX}" REALPATH)
get_filename_component(_realOrig "/usr/lib/cmake/gnuradio" REALPATH)
if(_realCurr STREQUAL _realOrig)
  set(_IMPORT_PREFIX "/usr/lib/cmake/gnuradio")
endif()
unset(_realOrig)
unset(_realCurr)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
if(_IMPORT_PREFIX STREQUAL "/")
  set(_IMPORT_PREFIX "")
endif()

I have found a bug report with another project, which looks close to my
error, but I cannot see that is was ever fixed:
https://bugs.launchpad.net/ubuntu/+source/pugixml/+bug/1799660

Thanks
Toby




On Mon, May 20, 2019 at 11:55 AM Müller, Marcus (CEL) <muel...@kit.edu>
wrote:

> Hi Toby,
>
> I don't really doubt it's a CMake issue; to be precise, I think it's an
> issue in the triangle between CMake, CMake instructing SWIG and
> detecting the right Python libs along the way.
>
> Anyway, I'll take a minute to literally parse your email :)
>
> Thanks!
> Marcus
>
> On Mon, 2019-05-20 at 09:09 -0400, Toby Flynn wrote:
> > Marcus,
> >    I think what you want to see if the configuration for CMake, the
> actual build line is fairly normal.  This is the contents of the file which
> configures CMake.  I believe this is a CMake issue, not a Python issue.
>  It is only the creation of one .cmake file which leads to OOT building
> errors.
> > Thanks
> > Toby
> >
> > # CMake system name must be something like "Linux".
> > # This is important for cross-compiling.
> >
> > set( CMAKE_SYSTEM_NAME Linux )
> > set( CMAKE_SYSTEM_PROCESSOR aarch64 )
> > set( CMAKE_C_COMPILER aarch64-poky-linux-gcc )
> > set( CMAKE_CXX_COMPILER aarch64-poky-linux-g++ )
> > set( CMAKE_ASM_COMPILER aarch64-poky-linux-gcc )
> > set( CMAKE_AR aarch64-poky-linux-ar CACHE FILEPATH "Archiver" )
> > set( CMAKE_C_FLAGS "
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot
> -O2 -pipe -g -feliminate-unused-debug-types
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0=/usr/src/debug/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot=
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot-native=
>
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot"
> CACHE STRING "CFLAGS" )
> > set( CMAKE_CXX_FLAGS "
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot
> -O2 -pipe -g -feliminate-unused-debug-types
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0=/usr/src/debug/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot=
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot-native=
> -fvisibility-inlines-hidden
>  
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot"
> CACHE STRING "CXXFLAGS" )
> > set( CMAKE_ASM_FLAGS "
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot
> -O2 -pipe -g -feliminate-unused-debug-types
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0=/usr/src/debug/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot=
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot-native=
>
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot"
> CACHE STRING "ASM FLAGS" )
> > set( CMAKE_C_FLAGS_RELEASE "-DNDEBUG" CACHE STRING "Additional CFLAGS
> for release" )
> > set( CMAKE_CXX_FLAGS_RELEASE "-DNDEBUG" CACHE STRING "Additional
> CXXFLAGS for release" )
> > set( CMAKE_ASM_FLAGS_RELEASE "-DNDEBUG" CACHE STRING "Additional ASM
> FLAGS for release" )
> > set( CMAKE_C_LINK_FLAGS "
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot
> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed" CACHE STRING "LDFLAGS" )
> > set( CMAKE_CXX_LINK_FLAGS "
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot
> -O2 -pipe -g -feliminate-unused-debug-types
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0=/usr/src/debug/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot=
> -fdebug-prefix-map=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot-native=
> -fvisibility-inlines-hidden
>  
> --sysroot=/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot
> -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed" CACHE STRING "LDFLAGS" )
> >
> > # only search in the paths provided so cmake doesnt pick
> > # up libraries and tools from the native build machine
> > set( CMAKE_FIND_ROOT_PATH
> /home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot
> /home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot-native
>   )
> > set( CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY )
> > set( CMAKE_FIND_ROOT_PATH_MODE_PROGRAM ONLY )
> > set( CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY )
> > set( CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY )
> >
> > # Use qt.conf settings
> > set( ENV{QT_CONF_PATH}
> /home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/qt.conf
> )
> >
> > # We need to set the rpath to the correct directory as cmake does not
> provide any
> > # directory as rpath by default
> > set( CMAKE_INSTALL_RPATH  )
> >
> > # Use native cmake modules
> > list(APPEND CMAKE_MODULE_PATH
> "/home/builduser/Development/38test/ultra/oe/build/tmp/work/aarch64-poky-linux/gnuradio/3.8.0+gitAUTOINC+72aa97daab-r0/recipe-sysroot/usr/share/cmake/Modules/")
> >
> > # add for non /usr/lib libdir, e.g. /usr/lib64
> > set( CMAKE_LIBRARY_PATH /usr/lib /lib)
> >
> >
> > On Fri, May 17, 2019 at 4:46 PM Müller, Marcus (CEL) <muel...@kit.edu>
> wrote:
> > > Hi Toby,
> > >
> > > what's the verbatim cmake command line Yocto is executing?
> > >
> > > Since it's impossible for the build system to know by itself what the
> > > target python will be, unless you tell it which, we'll have to figure
> > > out a way to consistently set Python used during CMake, Python used
> > > during build, and Python used on target.
> > > It's a complicated thing, actually – the python that the build system
> > > internally (a lot!) doesn't have to be the one the used to link SWIG
> > > files against.
> > > So, I see no way but to set the PYTHON_LIBRARIES and
> > > PYTHON_INCLUDE_DIRS explitly in the cmake command line. (If anyone
> > > could point me towards an easier solution that doesn't trade project
> > > sanity for having one argument fewer in a OE layer, I'd be very happy.)
> > >
> > > Now, I don't know if all this is related to your problem. But then
> > > again, I don't know anything about the OOT module you're trying to
> > > build. So far, we don't have overly many 3.8-compatible OOTs, so if you
> > > can point us to the one you're working with, that would be highly
> > > appreciated. One of the main reasons of breakage is that the old CMake
> > > constructs we used to employ in GNU Radio have been replaced by more
> > > modern CMake patterns, which especially means that the notion of
> > > component dependencies and hence install targets has changed.
> > >
> > > Best regards,
> > > Marcus
> > >
> > > On Fri, 2019-05-17 at 13:21 -0400, Toby Flynn wrote:
> > > > I am attempting to install OOT modules using a Yocto/Openembedded
> > > > enviroment and the latest GNURadio 3.8.  This process was working
> > > > before the latest cmake changes to 3.8 were incorporated.  I am now
> > > > having issues with the cross-complitaion.  I have tracked the issue
> > > > down to a file I believe is created by cmake:
> > > > build/gnuradio-
> > > > runtime/swig/CMakeFiles/Export/lib/cmake/gnuradio/runtime_swigTargets
> > > > -release.cmake
> > > >
> > > > When building directly on a computer this file has difference, line
> > > > 10 than the one build using Yocto.
> > > > Direct build on a computer the line is:
> > > > IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib/python3.6/dist-
> > > > packages/gnuradio/gr/_runtime_swig.so"
> > > >
> > > > On the Yocto build the line is:
> > > >
> > > > IMPORTED_LOCATION_RELEASE "/usr/lib/python3.5/site-
> > > > packages/gnuradio/gr/_runtime_swig.so"
> > > >
> > > > The missing ${_IMPORT_PREFIX} leads to cmake issues since
> > > > _runtime_swig.so cannot be found.
> > > >
> > > > Does anyone have a suggestion for something I can try to fix the
> > > > issue.
> > > >
> > > > Thanks
> > > > Toby
> > > >
> > > >
> > > > _______________________________________________
> > > > Discuss-gnuradio mailing list
> > > > Discuss-gnuradio@gnu.org
> > > > https://lists.gnu.org/mailman/listinfo/discuss-gnuradio
>
_______________________________________________
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio

Reply via email to