# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
import time
from spack.package import *
class LibuvJulia(AutotoolsPackage):
"""Multi-platform library with a focus on asynchronous IO"""
homepage = "https://libuv.org"
url = "https://github.com/JuliaLang/libuv/archive/refs/heads/julia-uv2-1.44.2.tar.gz"
git = "https://github.com/JuliaLang/libuv.git"
license("CC-BY-4.0")
# julia's libuv fork doesn't tag (all?) releases, so we fix commits.
version("1.44.3", commit="2723e256e952be0b015b3c0086f717c3d365d97e")
version("1.44.2", commit="e6f0e4900e195c8352f821abe2b3cffc3089547b")
version("1.44.1", commit="1b2d16477fe1142adea952168d828a066e03ee4c")
version("1.42.0", commit="3a63bf71de62c64097989254e4f03212e3bf5fc8")
def autoreconf(self, spec, prefix):
# @haampie: Configure files are checked in, but git does not restore
# mtime by design. Therefore, touch files to avoid regenerating those.
# Make sure to set them all to the same time, otherwise weird problems
# might occur (https://github.com/spack/spack/pull/35945).
cur = time.time()
times = (cur, cur)
os.utime("aclocal.m4", times)
os.utime("Makefile.in", times)
os.utime("configure", times)
@property
def libs(self):
return find_libraries(["libuv"], root=self.prefix, recursive=True, shared=False)
def configure_args(self):
# Only build static libaries for now
# https://github.com/JuliaLang/julia/issues/47620
return ["--disable-shared", "--enable-static", "--with-pic"]