[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

pkgconfig multiarch installation woes



Dear Mentors,

I am packaging magic_enum, a header-only C++ library which uses CMake with GNUInstallDirs. AFAIK the package should be arch-independent as there is no architecture dependent code in it.

Here are the generated files:
debian/libmagicenum-dev
├── DEBIAN
│   ├── control
│   └── md5sums
└── usr
    ├── include
    │   ├── magic_enum.hpp
    │   ├── magic_enum_all.hpp
    │   ├── magic_enum_containers.hpp
    │   ├── magic_enum_flags.hpp
    │   ├── magic_enum_format.hpp
    │   ├── magic_enum_fuse.hpp
    │   ├── magic_enum_iostream.hpp
    │   ├── magic_enum_switch.hpp
    │   └── magic_enum_utility.hpp
    ├── lib
    │   ├── cmake
    │   │   └── magic_enum
    │   │       ├── magic_enumConfig.cmake
    │   │       └── magic_enumConfigVersion.cmake
    │   └── pkgconfig
    │       └── magic_enum.pc
    └── share
        ├── doc
        │   └── libmagicenum-dev
        │       ├── changelog.Debian.gz
        │       └── copyright
        └── magic_enum
            └── package.xml

12 directories, 17 files

Previously I was advised to set it to Architecture: any and Multi-arch: same since I was shipping files to usr/lib, but when I do so, lintian gives me the following warnings:

X: libmagicenum-dev: package-contains-no-arch-dependent-files
N: 
N:   All files in this package are architecture-independent, but the package is not marked Architecture: all.
N:   
N:   The package should probably be marked Architecture: all.
N: 
N:   Please refer to Architecture (Section 5.6.8) in the Debian Policy Manual for details.
N: 
N:   Visibility: info
N:   Show-Always: no
N:   Check: files/architecture
N:   This tag is experimental.

W: libmagicenum-dev: pkg-config-unavailable-for-cross-compilation [usr/lib/pkgconfig/magic_enum.pc]
N: 
N:   The specified pkg-config(1) file is installed to /usr/lib/pkgconfig. As the cross-compilation wrapper of pkg-config does not search this directory
N:   the file is unavailable under cross-compilation.
N:   
N:   Please install the file to /usr/lib/${DEB_HOST_MULTIARCH}/pkgconfig instead.
N:   
N:   For projects that use GNU Autotools, a simple method is moving to a debhelper compat level of 9 or higher. In the rare case that this file is
N:   architecture independent it can be installed to /usr/share/pkgconfig instead.
N: 
N:   Visibility: warning
N:   Show-Always: no
N:   Check: files/pkgconfig

So I switched to Architecture: all and Multi-arch: foreign but the second warning (pkg-config-unavailable-for-cross-compilation) still persists. I have tried modifying the source and also tried setting the CMAKE_INSTALL_LIBDIR variable manually, but somehow I can't get it to install to the multi-arch libdir.

Can you please help me figure this out?

Thanks,
Shriram


Attachment: OpenPGP_0xFC7E951A7BEF0836.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature


Reply to: