aldebaran/libqi-python

Unknown cmake modules compiling the _qi.so library

Closed this issue · 4 comments

Hello,
trying to cmake, I get the following message

-- The C compiler identification is GNU 7.4.0
-- The CXX compiler identification is GNU 7.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Using qibuild 3.14.1
CMake Warning at /usr/share/cmake-3.10/Modules/FindBoost.cmake:1626 (message):
  No header defined for python3; skipping header check
Call Stack (most recent call first):
  ~/.local/share/cmake/qibuild/modules/boostutils.cmake:29 (find_package)
  ~/.local/share/cmake/qibuild/modules/boost_python3-config.cmake:11 (boost_flib)
  ~/.local/share/cmake/qibuild/option.cmake:57 (find_package)
  CMakeLists.txt:13 (qi_add_optional_package)


CMake Warning at tests/CMakeLists.txt:2 (find_package):
  By not providing "Findqimodule.cmake" in CMAKE_MODULE_PATH this project has
  asked CMake to find a package configuration file provided by "qimodule",
  but CMake did not find one.

  Could not find a package configuration file provided by "qimodule" with any
  of the following names:

    qimoduleConfig.cmake
    qimodule-config.cmake

  Add the installation prefix of "qimodule" to CMAKE_PREFIX_PATH or set
  "qimodule_DIR" to a directory containing one of the above files.  If
  "qimodule" provides a separate development package or SDK, be sure it has
  been installed.


CMake Error at tests/CMakeLists.txt:4 (qi_create_module):
  Unknown CMake command "qi_create_module".


-- Configuring incomplete, errors occurred!
See also "/home/vincenzo/x/libqi-python/cbuild/CMakeFiles/CMakeOutput.log"

what should I do to fix it?
Thank you very much in advance.

I'm compiling on x86_64 Ubuntu 18.04. libboost-python is installed.

Hello again,

I thought from the previous issue that you were cross-compiling for ARM, is that not the case ?
If not, you might want to look at the qi Python module that is available on PyPi for Python 2, that you can install with pip2 install --user qi. If all you need is the qi Python module for Python 2, that might be enough for your case.

That being said, the libqi (and therefore libqi-python) project requires the boost libraries at version 1.64. No other version of the boost libraries are supported at the moment, but the boost packages for Ubuntu 18.04 are version 1.65.

The error you're getting is caused by CMake not finding the qimodule-config.cmake file that is in the libqi project. To fix this pecific issue, the simplest solution is to locally clone libqi (git clone https://github.com/aldebaran/libqi.git) and then pass the path to libqi as the qimodule_DIR variable to CMake: cmake -Dqimodule_DIR=<path to libqi source>.

Thank you, I will proceed as you suggested.

My final aim is to compile for arm, but I am using different platforms to do my tests (all of them give the same errors).

Hello,

I did as you suggested, now qimodule-config is found but qi-config is missing. libqi does not contain this file, do you know how can I solve?

Thank you very much

Hello,

The qi-config.cmake file is an output file in the libqi build directory. You need to build libqi before you try to build libqi-python.

Once you've built libqi, you will find the qi-config.cmake file in the path-to-libqi/build-dir/sdk/cmake directory.
You can then pass the following argument to the cmake call of libqi-python: -Dqi_DIR=path-to-libqi/build-dir/sdk