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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions