Skip to content

how to build with system-wide qdldl? #71

@dimpase

Description

@dimpase

What is the source (from GitHub tarball) installation procedure to use a system-wide installation of qdldl, installed in /usr/local ?
This would be my preferred way to deal with installing qdldl-python, rather than trying to figure out what goes wrong below and why the qdldl headers are not there.

(qdldl-python-0.1.7.post5) $ uv pip install .
Resolved 3 packages in 2.13s
  × Failed to build `qdldl @ file:///tmp/qdldl-python-0.1.7.post5`
  ├─▶ The build backend returned an error
  ╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)

      [stdout]
      running bdist_wheel
      running build
      running build_ext
      -- The C compiler identification is GNU 15.1.1
      -- The CXX compiler identification is GNU 15.1.1
      -- Detecting C compiler ABI info
      -- Detecting C compiler ABI info - done
      -- Check for working C compiler: /usr/bin/cc - skipped
      -- Detecting C compile features
      -- Detecting C compile features - done
      -- Detecting CXX compiler ABI info
      -- Detecting CXX compiler ABI info - done
      -- Check for working CXX compiler: /usr/bin/c++ - skipped
      -- Detecting CXX compile features
      -- Detecting CXX compile features - done
      -- Configuring incomplete, errors occurred!
      building 'qdldl' extension
      creating build/temp.linux-x86_64-cpython-313/cpp
      x86_64-pc-linux-gnu-g++ -fno-strict-overflow -Wsign-compare -DNDEBUG -fPIC -Ic -Ic/qdldl/include
      -I/home/dima/.cache/uv/builds-v0/.tmpMaTGey/lib/python3.13/site-packages/pybind11/include
      -I/home/dima/.cache/uv/builds-v0/.tmpMaTGey/lib/python3.13/site-packages/pybind11/include
      -I/home/dima/.cache/uv/builds-v0/.tmpMaTGey/include -I/usr/include/python3.13 -c cpp/qdldl.cpp
      -o build/temp.linux-x86_64-cpython-313/cpp/qdldl.o -O3 -std=c++11

      [stderr]
      CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
        Compatibility with CMake < 3.10 will be removed from a future version of
        CMake.

        Update the VERSION argument <min> value.  Or, use the <min>...<max> syntax
        to tell CMake that the project requires at least <min> but has been updated
        to work with policies introduced by <max> or earlier.

      
      CMake Error at CMakeLists.txt:15 (add_subdirectory):
        The source directory

          /tmp/qdldl-python-0.1.7.post5/c/qdldl

        does not contain a CMakeLists.txt file.

      
      gmake: Makefile: No such file or directory
      gmake: *** No rule to make target 'Makefile'.  Stop.
      In file included from cpp/qdldl.cpp:1:
      cpp/qdldl.hpp:2:10: fatal error: qdldl/include/qdldl.h: No such file or directory
          2 | #include "qdldl/include/qdldl.h"
            |          ^~~~~~~~~~~~~~~~~~~~~~~
      compilation terminated.
      error: command '/usr/bin/x86_64-pc-linux-gnu-g++' failed with exit code 1

      hint: This error likely indicates that you need to install a library that provides
      "qdldl/include/qdldl.h" for `file:///tmp/qdldl-python-0.1.7.post5`

here is where the library is installed:

 # make install
[ 14%] Built target qdldlobject
[ 42%] Built target qdldlstatic
[ 71%] Built target qdldl
[100%] Built target qdldl_example
Install the project...
-- Install configuration: ""
-- Installing: /usr/local/lib64/libqdldl.a
-- Installing: /usr/local/include/qdldl/qdldl.h
-- Installing: /usr/local/include/qdldl/qdldl_types.h
-- Installing: /usr/local/include/qdldl/qdldl_version.h
-- Installing: /usr/local/lib64/libqdldl.so
-- Installing: /usr/local/lib64/cmake/qdldl/qdldl-targets.cmake
-- Installing: /usr/local/lib64/cmake/qdldl/qdldl-targets-noconfig.cmake
-- Installing: /usr/local/lib64/cmake/qdldl/qdldl-config.cmake
-- Installing: /usr/local/lib64/cmake/qdldl/qdldl-config-version.cmake

By the way, in the tarball of the current (0.1.7.post5) release c/qdldl/ is empty, so I really don't understand how this can ever work. As well, you are building here libqdldlamd.a - which is probably something a bit different from libqdldl.a which is installed system-wide.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions