From 7ec09890f784ff1182b1651361017d8541d7388a Mon Sep 17 00:00:00 2001 From: Jesper Stemann Andersen Date: Sun, 6 Mar 2022 20:19:17 +0100 Subject: [PATCH] New Recipe: CPUInfo v0.0.20200122 (#4555) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * New Recipe: CPUInfo v0.0.20200122 * Omitted cpuid-dump product to enable aarch64-linux-gnu * Added lowercase windows include patch * Excluded unsupported aarch64-macos and freebsd * Excluded executable products to enable PowerPC64LE * Simplified filtering of platforms Co-authored-by: Mosè Giordano * Added manual install of omitted shared library on Windows Co-authored-by: Mosè Giordano * Excluded i686-windows Co-authored-by: Mosè Giordano --- C/CPUInfo/build_tarballs.jl | 57 +++++++++++++++++++ .../patches/lowercase-windows-include.patch | 13 +++++ 2 files changed, 70 insertions(+) create mode 100644 C/CPUInfo/build_tarballs.jl create mode 100644 C/CPUInfo/bundled/patches/lowercase-windows-include.patch diff --git a/C/CPUInfo/build_tarballs.jl b/C/CPUInfo/build_tarballs.jl new file mode 100644 index 00000000000..e8c3804b3a1 --- /dev/null +++ b/C/CPUInfo/build_tarballs.jl @@ -0,0 +1,57 @@ +# Note that this script can accept some limited command-line arguments, run +# `julia build_tarballs.jl --help` to see a usage message. +using BinaryBuilder, Pkg + +name = "CPUInfo" +version = v"0.0.20200122" + +# Collection of sources required to complete build +sources = [ + GitSource("https://github.com/pytorch/cpuinfo.git", "0e6bde92b343c5fbcfe34ecd41abf9515d54b4a7"), + DirectorySource("./bundled"), +] + +# Bash recipe for building across all platforms +script = raw""" +cd $WORKSPACE/srcdir +cd cpuinfo +if [[ $target == *-w64-mingw32 ]]; then + atomic_patch -p1 ../patches/lowercase-windows-include.patch +fi +mkdir build +cd build +cmake \ + -DCMAKE_INSTALL_PREFIX=$prefix \ + -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TARGET_TOOLCHAIN} \ + -DCMAKE_BUILD_TYPE=Release \ + -DCMAKE_INSTALL_LIBDIR=$libdir \ + -DCPUINFO_BUILD_UNIT_TESTS=OFF \ + -DCPUINFO_BUILD_MOCK_TESTS=OFF \ + -DCPUINFO_BUILD_BENCHMARKS=OFF \ + -DCPUINFO_LIBRARY_TYPE=shared \ + .. +cmake --build . -- -j $nproc +make install +if [[ $target == *-w64-mingw32 ]]; then + install -Dvm 755 libcpuinfo.dll "${libdir}/libcpuinfo.dll" +fi +""" + +# These are the platforms we will build for by default, unless further +# platforms are passed in on the command line +platforms = supported_platforms() +filter!(p -> !(Sys.isapple(p) && arch(p) == "aarch64"), platforms) # aarch64-macos unsupported +filter!(p -> !Sys.isfreebsd(p), platforms) # FreeBSD unsupported +filter!(p -> !(Sys.iswindows(p) && arch(p) == "i686"), platforms) # Failing to link + +# The products that we will ensure are always built +products = [ + LibraryProduct("libcpuinfo", :libcpuinfo), +] + +# Dependencies that must be installed before this package can be built +dependencies = Dependency[ +] + +# Build the tarballs, and possibly a `build.jl` as well. +build_tarballs(ARGS, name, version, sources, script, platforms, products, dependencies; julia_compat="1.6") diff --git a/C/CPUInfo/bundled/patches/lowercase-windows-include.patch b/C/CPUInfo/bundled/patches/lowercase-windows-include.patch new file mode 100644 index 00000000000..3bd7e6555f3 --- /dev/null +++ b/C/CPUInfo/bundled/patches/lowercase-windows-include.patch @@ -0,0 +1,13 @@ +diff --git a/src/x86/windows/init.c b/src/x86/windows/init.c +index 7a2090e..115f366 100644 +--- a/src/x86/windows/init.c ++++ b/src/x86/windows/init.c +@@ -8,7 +8,7 @@ + #include + #include + +-#include ++#include + + static inline uint32_t bit_mask(uint32_t bits) { + return (UINT32_C(1) << bits) - UINT32_C(1);