From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 09E82158043 for ; Fri, 19 Apr 2024 18:46:54 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 50BC2E2AD9; Fri, 19 Apr 2024 18:46:53 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 39D37E2AD4 for ; Fri, 19 Apr 2024 18:46:53 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 72FC434340D for ; Fri, 19 Apr 2024 18:46:52 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id DEAD71739 for ; Fri, 19 Apr 2024 18:46:50 +0000 (UTC) From: "Michał Górny" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Michał Górny" Message-ID: <1713552406.75a308e0686ff3757855e05ff06e9ba7418a0458.mgorny@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: eclass/ X-VCS-Repository: repo/gentoo X-VCS-Files: eclass/distutils-r1.eclass X-VCS-Directories: eclass/ X-VCS-Committer: mgorny X-VCS-Committer-Name: Michał Górny X-VCS-Revision: 75a308e0686ff3757855e05ff06e9ba7418a0458 X-VCS-Branch: master Date: Fri, 19 Apr 2024 18:46:50 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: d78faeeb-018a-4fd5-9694-74184cb7d6ef X-Archives-Hash: 80b9727879808e96c02a3015d753508e commit: 75a308e0686ff3757855e05ff06e9ba7418a0458 Author: Michał Górny gentoo org> AuthorDate: Tue Apr 16 15:26:58 2024 +0000 Commit: Michał Górny gentoo org> CommitDate: Fri Apr 19 18:46:46 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=75a308e0 distutils-r1.eclass: Pass arguments to scikit-build-core Support passing DISTUTILS_ARGS to scikit-build-core, along with some standard arguments that: - ensure that CFLAGS, CXXFLAGS, CPPFLAGS and so on, are respected - respect CMAKE_BUILD_TYPE, along with the default of RelWithDebInfo - enable verbose builds - disable stripping Signed-off-by: Michał Górny gentoo.org> eclass/distutils-r1.eclass | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/eclass/distutils-r1.eclass b/eclass/distutils-r1.eclass index ddcba288d85c..a67122a59a33 100644 --- a/eclass/distutils-r1.eclass +++ b/eclass/distutils-r1.eclass @@ -454,6 +454,9 @@ unset -f _distutils_set_globals # For meson-python, the arguments will be passed as `meson setup` # arguments. # +# For scikit-build-core, the arguments will be passed as `cmake` +# options (e.g. `-DFOO=BAR` form should be used). +# # For setuptools, the arguments will be passed as first parameters # to setup.py invocations (via esetup.py), as well as to the PEP517 # backend. For future compatibility, only global options should be used @@ -1412,6 +1415,46 @@ distutils_pep517_install() { EOF ) ;; + scikit-build-core) + # TODO: split out the config/toolchain logic from cmake.eclass + # for now, we copy the most important bits + local CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE:-RelWithDebInfo} + cat >> "${BUILD_DIR}"/config.cmake <<- _EOF_ || die + set(CMAKE_ASM_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + set(CMAKE_ASM-ATT_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + set(CMAKE_C_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + set(CMAKE_CXX_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + set(CMAKE_Fortran_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + set(CMAKE_EXE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + set(CMAKE_MODULE_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + set(CMAKE_SHARED_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + set(CMAKE_STATIC_LINKER_FLAGS_${CMAKE_BUILD_TYPE^^} "" CACHE STRING "") + _EOF_ + + # hack around CMake ignoring CPPFLAGS + local -x CFLAGS="${CFLAGS} ${CPPFLAGS}" + local -x CXXFLAGS="${CXXFLAGS} ${CPPFLAGS}" + + local cmake_args=( + "-C${BUILD_DIR}/config.cmake" + "${DISTUTILS_ARGS[@]}" + ) + + # NB: we need to pass strings for boolean fields + # https://github.com/scikit-build/scikit-build-core/issues/707 + config_settings=$( + "${EPYTHON}" - "${cmake_args[@]}" <<-EOF || die + import json + import sys + print(json.dumps({ + "cmake.args": ";".join(sys.argv[1:]), + "cmake.build-type": "${CMAKE_BUILD_TYPE}", + "cmake.verbose": "true", + "install.strip": "false", + })) + EOF + ) + ;; setuptools) if in_iuse debug && use debug; then local -x SETUPTOOLS_RUST_CARGO_PROFILE=dev