I've tried `emerge -avtq1 magic_enum` , but it didn't help. build.log: * Package: dev-util/vulkan-utility-libraries-1.3.280.0:0 * Repository: gentoo * Maintainer: x11@gentoo.org sarnex@gentoo.org * USE: abi_x86_32 abi_x86_64 amd64 elibc_glibc kernel_linux test * FEATURES: installsources network-sandbox nostrip preserve-libs sandbox test userpriv usersandbox * Checking whether python3_12 is suitable ... * dev-lang/python:3.12[xml(+)] ... [ ok ] * Using python3.12 to build (via PYTHON_COMPAT iteration) >>> Unpacking source... >>> Unpacking vulkan-utility-libraries-1.3.280.0.tar.gz to /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work >>> Source unpacked in /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work >>> Preparing source in /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0 ... * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0" * Build directory (BUILD_DIR): "/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build" >>> Source prepared. >>> Configuring source in /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0 ... * abi_x86_32.x86: running multilib-minimal_abi_src_configure * Source directory (CMAKE_USE_DIR): "/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0" * Build directory (BUILD_DIR): "/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86" cmake -C /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86/gentoo_common_config.cmake -G Ninja -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=ON -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_TOOLCHAIN_FILE=/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86/gentoo_toolchain.cmake /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0 loading initial cache file /var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86/gentoo_common_config.cmake -- The CXX compiler identification is GNU 13.2.1 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/x86_64-pc-linux-gnu-g++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Performing Test CMAKE_HAVE_LIBC_PTHREAD -- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Success -- Found Threads: TRUE CMake Error at tests/CMakeLists.txt:8 (find_package): Could not find a package configuration file provided by "magic_enum" with any of the following names: magic_enumConfig.cmake magic_enum-config.cmake Add the installation prefix of "magic_enum" to CMAKE_PREFIX_PATH or set "magic_enum_DIR" to a directory containing one of the above files. If "magic_enum" provides a separate development package or SDK, be sure it has been installed. -- Configuring incomplete, errors occurred! * ERROR: dev-util/vulkan-utility-libraries-1.3.280.0::gentoo failed (configure phase): * cmake failed * * Call stack: * ebuild.sh, line 136: Called src_configure * environment, line 3486: Called cmake-multilib_src_configure * environment, line 1251: Called multilib-minimal_src_configure * environment, line 2439: Called multilib_foreach_abi 'multilib-minimal_abi_src_configure' * environment, line 2689: Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure' * environment, line 2394: Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure' * environment, line 2392: Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_configure' * environment, line 578: Called multilib-minimal_abi_src_configure * environment, line 2433: Called multilib_src_configure * environment, line 2914: Called cmake_src_configure * environment, line 1521: Called die * The specific snippet of code: * "${CMAKE_BINARY}" "${cmakeargs[@]}" "${CMAKE_USE_DIR}" || die "cmake failed"; * * If you need support, post the output of `emerge --info '=dev-util/vulkan-utility-libraries-1.3.280.0::gentoo'`, * the complete build log and the output of `emerge -pqv '=dev-util/vulkan-utility-libraries-1.3.280.0::gentoo'`. * The complete build log is located at '/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/temp/environment'. * Working directory: '/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0_build-abi_x86_32.x86' * S: '/var/tmp/portage/dev-util/vulkan-utility-libraries-1.3.280.0/work/Vulkan-Utility-Libraries-vulkan-sdk-1.3.280.0'
installed dev-cpp/magic_enum-0.9.5::gentoo[test]
│ ~ equery f magic_enum ✔ │ 12s │ root@localhost │ 15:52:27 * Searching for magic_enum ... * Contents of dev-cpp/magic_enum-0.9.5: /usr /usr/include /usr/include/magic_enum.hpp /usr/include/magic_enum_all.hpp /usr/include/magic_enum_containers.hpp /usr/include/magic_enum_flags.hpp /usr/include/magic_enum_format.hpp /usr/include/magic_enum_fuse.hpp /usr/include/magic_enum_iostream.hpp /usr/include/magic_enum_switch.hpp /usr/include/magic_enum_utility.hpp /usr/lib64 /usr/lib64/cmake /usr/lib64/cmake/magic_enum /usr/lib64/cmake/magic_enum/magic_enumConfig.cmake /usr/lib64/cmake/magic_enum/magic_enumConfigVersion.cmake /usr/lib64/pkgconfig /usr/lib64/pkgconfig/magic_enum.pc /usr/share /usr/share/doc /usr/share/doc/magic_enum-0.9.5 /usr/share/doc/magic_enum-0.9.5/README.md.bz2 /usr/share/magic_enum /usr/share/magic_enum/package.xml
Created attachment 894995 [details] /etc/portage/make.conf // profile default/linux/amd64/17.1/desktop/plasma gcc-13 O3 pipe march=native(verbose) lto graphite ggdb3 testing FEATUREs : testing
I was able to reproduce this with FEATURES=test USE="test abi_x86_32" and installing the ABI32 of gtest. @Sam, It looks like magic_enum is header only, but it's installing cmake files to the ABI dependent cmake dir (lib64) and that is causing the cmake on abi32 to fail. Should it be installing the cmake files in an ABI independent directory? I tried modifying the magic_enum ebuild to set CMAKE_INSTALL_LIBDIR to install to /usr/share and that fixed it.
https://github.com/Neargye/magic_enum/blob/dae6bbf16c363e9ead4e628a47fdb02956a634f3/CMakeLists.txt#L60C4-L60C111 ``` string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}") ``` https://github.com/Neargye/magic_enum/blob/dae6bbf16c363e9ead4e628a47fdb02956a634f3/CMakeLists.txt#L102 ``` install(EXPORT "${PROJECT_NAME}" FILE "${CMAKE_CONFIG_FILE_BASENAME}" NAMESPACE "${EXPORT_NAMESPACE}" DESTINATION "${CMAKE_INSTALL_LIBDIR_ARCHIND}/cmake/${PROJECT_NAME}" ) ``` I guess magic_enum is ABI-independent, but idk how to check it
Sorry, I'd missed this. Looking.
(In reply to Arniii from comment #5) > https://github.com/Neargye/magic_enum/blob/ > dae6bbf16c363e9ead4e628a47fdb02956a634f3/CMakeLists.txt#L60C4-L60C111 > ``` > string(REPLACE "/${CMAKE_LIBRARY_ARCHITECTURE}" "" > CMAKE_INSTALL_LIBDIR_ARCHIND "${CMAKE_INSTALL_LIBDIR}") > ``` > > https://github.com/Neargye/magic_enum/blob/ > dae6bbf16c363e9ead4e628a47fdb02956a634f3/CMakeLists.txt#L102 > ``` > install(EXPORT "${PROJECT_NAME}" > FILE "${CMAKE_CONFIG_FILE_BASENAME}" > NAMESPACE "${EXPORT_NAMESPACE}" > DESTINATION "${CMAKE_INSTALL_LIBDIR_ARCHIND}/cmake/${PROJECT_NAME}" > ) > ``` > > I guess magic_enum is ABI-independent, but idk how to check it https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html If it's ABI-independent, a simple patch to replace the destination to `"${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}"` would be enough I guess. In another case, I guess we need to change magic_enum to another multilib package...
> I guess magic_enum is ABI-independent, but idk how to check it It installs only header files, so it should be ABI independent. But, it installs its pkgconfig and cmake files into /usr/lib64 so that probably breaks ABI-independence.
(In reply to Matt Turner from comment #8) > > I guess magic_enum is ABI-independent, but idk how to check it > > It installs only header files, so it should be ABI independent. But, it > installs its pkgconfig and cmake files into /usr/lib64 so that probably > breaks ABI-independence. I guess you are right. Then, I'll go try solve it upstream.
Thanks a bunch!