this repo has no description

Merge pull request #19824 from thierry-martinez/conf-libclang.12_and_13

[updated] conf-libclang.12 and [new release] conf-libclang.13

Kate 49e4d285 72166b1e

Changed files
+201 -58
packages
clangml
clangml.4.4.0
conf-libclang
conf-libclang.12
conf-libclang.13
+2 -2
packages/clangml/clangml.4.4.0/opam
···
doc: "https://memcad.gitlabpages.inria.fr/clangml/doc/clangml/index.html"
bug-reports: "https://gitlab.inria.fr/memcad/clangml/issues"
depends: [
-
"conf-libclang"
+
"conf-libclang" {<= "12"}
"conf-ncurses"
"conf-zlib"
"dune" {>= "1.11.0"}
···
available: arch != "arm32" & arch != "ppc64" # Compiler segfaults on those architectures
dev-repo: "git+https://gitlab.inria.fr/memcad/clangml"
build: [
-
["./configure" "--prefix=%{prefix}%" "--with-llvm-config=%{conf-libclang:config}%"]
+
["./configure" "--prefix=%{prefix}%" "--with-llvm-config=%{conf-libclang:config}%" conf-libclang:clangml440_configure_options]
["dune" "build" "-p" name "-j" jobs "@install"
"@runtest" {with-test}
"@doc" {with-doc}]]
+67 -51
packages/conf-libclang/conf-libclang.12/files/configure.sh
···
#!/bin/bash -ex
-
find_llvm_config () {
-
# Locate llvm-config (taken from conf-llvm's configure.sh file)
+
clean_tempdir () {
+
rm -f "$tempdir/test_libclang.c" "$tempdir/test_libclang.o" \
+
"$tempdir/test_libclang"
+
rmdir "$tempdir"
+
}
-
shopt -s nullglob
-
for version in 12 11 10 9 8 7 6 5 4 3; do
+
shopt -s nullglob
+
for version in default 12 11 10 9 8 7 6 5 4 3; do
+
if [ "$version" = default ]; then
+
llvm_config=llvm-config
+
llvm_version="$($llvm_config --version)" || continue
+
if [ $(printf "${llvm_version%%.*}\n13" | sort -n | head -n1) = 13 ]; then
+
continue
+
fi
+
else
if hash brew 2>/dev/null; then
brew_llvm_config="$(brew --cellar)"/llvm*/${version}*/bin/llvm-config
fi
···
llvm-config-mp-$version \
llvm-config-mp-${version}.0 $brew_llvm_config \
/usr/lib64/llvm/${version}/bin/llvm-config \
-
/usr/lib/llvm/${version}/bin/llvm-config \
-
llvm-config; do
-
llvm_version="`$llvm_config --version`" || continue
-
return
+
/usr/lib/llvm/${version}/bin/llvm-config; do
+
llvm_version="$($llvm_config --version)" || continue
+
break
done
-
done
+
if [ -z "$llvm_version" ]; then
+
continue
+
fi
+
fi
-
echo "Error: LLVM is not installed."
-
exit 1
-
}
+
if [ "$llvm_version" = "12.0.1" ]; then
+
clangml440_configure_options="--with-llvm-version=12.0.0" # clangml.4.4.0 does not recognize 12.0.1
+
else
+
clangml440_configure_options="" # rely on clangml's ./configure autodetection
+
fi
-
find_llvm_config
-
-
LLVM_CFLAGS="`\"$llvm_config\" --cflags`"
-
LLVM_LDFLAGS="`\"$llvm_config\" --ldflags`"
-
LLVM_LIBDIR="`\"$llvm_config\" --libdir`"
-
-
# These filters enable compilation with gcc.
-
# Filter -Wstring-conversion for OpenSUSE
-
LLVM_CFLAGS="`echo $LLVM_CFLAGS | sed s/-Wstring-conversion\\ //`"
-
-
# Filter -Werror=unguarded-availability-new and -Wcovered-switch-default
-
# (which appear with LLVM 7)
-
LLVM_CFLAGS="`echo $LLVM_CFLAGS | sed s/-Werror=unguarded-availability-new\\ //`"
-
LLVM_CFLAGS="`echo $LLVM_CFLAGS | sed s/-Wcovered-switch-default\\ //`"
-
-
# Filter "-Wdelete-non-virtual-dtor" (warning only)
-
LLVM_CFLAGS="`echo $LLVM_CFLAGS | sed s/-Wdelete-non-virtual-dtor\\ //`"
-
-
tempdir="`mktemp -d`"
-
-
clean_tempdir () {
-
rm -f "$tempdir/test_libclang.c" "$tempdir/test_libclang.o" \
-
"$tempdir/test_libclang"
-
rmdir "$tempdir"
-
}
+
LLVM_CFLAGS="$($llvm_config --cflags)"
+
LLVM_LDFLAGS="$($llvm_config --ldflags)"
+
LLVM_LIBDIR="$($llvm_config --libdir)"
+
+
# These filters enable compilation with gcc.
+
# Filter -Wstring-conversion for OpenSUSE
+
LLVM_CFLAGS="$(echo $LLVM_CFLAGS | sed 's/-Wstring-conversion //')"
+
+
# Filter -Werror=unguarded-availability-new and -Wcovered-switch-default
+
# (which appear with LLVM 7)
+
LLVM_CFLAGS="$(echo $LLVM_CFLAGS | sed 's/-Werror=unguarded-availability-new //')"
+
LLVM_CFLAGS="$(echo $LLVM_CFLAGS | sed 's/-Wcovered-switch-default //')"
+
+
# Filter "-Wdelete-non-virtual-dtor" (warning only)
+
LLVM_CFLAGS="$(echo $LLVM_CFLAGS | sed 's/-Wdelete-non-virtual-dtor //')"
-
cat >"$tempdir/test_libclang.c" <<EOF
+
tempdir="$(mktemp -d)"
+
cat >"$tempdir/test_libclang.c" <<EOF
#include <clang-c/Index.h>
#include <stdlib.h>
···
return EXIT_SUCCESS;
}
EOF
-
CC=cc
-
"$CC" -o "$tempdir/test_libclang.o" -c $LLVM_CFLAGS \
-
"$tempdir/test_libclang.c" || \
-
( clean_tempdir; echo "Error: cannot compile libclang test."; exit 1 )
-
"$CC" -o "$tempdir/test_libclang" \
-
$LLVM_LDFLAGS "$tempdir/test_libclang.o" \
-
"-lclang" "-Wl,-rpath,$LLVM_LIBDIR" || \
-
( clean_tempdir; echo "Error: cannot link libclang test."; exit 1 )
-
"$tempdir/test_libclang" || \
-
( clean_tempdir; echo "Error: cannot execute libclang test."; exit 1 )
-
clean_tempdir
+
+
CC=cc
+
if "$CC" -o "$tempdir/test_libclang.o" -c $LLVM_CFLAGS \
+
"$tempdir/test_libclang.c" &&
+
"$CC" -o "$tempdir/test_libclang" \
+
$LLVM_LDFLAGS "$tempdir/test_libclang.o" \
+
"-lclang" "-Wl,-rpath,$LLVM_LIBDIR" &&
+
"$tempdir/test_libclang"; then
+
true
+
else
+
clean_tempdir
+
continue
+
fi
+
+
clean_tempdir
+
+
echo "config: \"$llvm_config\"" >> conf-libclang.config
+
echo "version: \"$llvm_version\"" >> conf-libclang.config
+
echo "clangml440_configure_options: \"$clangml440_configure_options\"" >> conf-libclang.config
+
exit 0
+
done
+
+
echo "Error: No usable version of LLVM <=12.0.x found."
+
exit 1
-
echo "config: \"$llvm_config\"" >> conf-libclang.config
-
echo "version: \"$llvm_version\"" >> conf-libclang.config
+8 -5
packages/conf-libclang/conf-libclang.12/opam
···
["bash" "-ex" "configure.sh" version]
]
depexts: [
-
["llvm"] {os = "macos"}
-
["glibc=2.33" "llvm" "clang"] {os-distribution = "arch"} # needs GLIBC_2.33
+
["llvm@12"] {os = "macos"} # Brew already has a package for llvm@13
+
["llvm" "clang"] {os-distribution = "arch"}
["libclang-dev" "llvm-dev"] {os-family = "debian"}
["clang-dev" "llvm-dev" "clang-static"] {os-distribution = "alpine"}
["clang-devel" "llvm-devel" "llvm-static" "zlib-devel"]
···
["clang-devel" "llvm-devel" "llvm-static" "zlib-devel"]
{os-distribution = "ol" & os-version >= "8"}
["llvm-clang-devel"] {os-family = "suse"}
-
["devel/llvm11"] {os = "freebsd"}
+
["devel/llvm12"] {os = "freebsd"}
["sys-devel/clang"] {os-distribution = "gentoo"}
]
x-ci-accept-failures: [
"oraclelinux-7" # clang-devel is not available
+
"alpine-3.13" # unavailable system package 'llvm-dev'
+
"alpine-3.14" # unavailable system package 'llvm-dev'
+
"opensuse-15.3" # unavailable system package 'llvm-clang-devel'
]
extra-files: [[
-
"configure.sh" "sha512=a192170b242769ffd1421a495e63354ddbb60bd810d8039d95e0cf7517b931d4fccfdd9d709977a9af16ee2b6c112023fbacf22f4bd67edec7ca9794c04c85f4"
+
"configure.sh" "sha512=db02fc6eee598041fd019679337eab74dc4180f6e94cfe6099a0b76ca2b10f9695079696ff4ee1b41692db46601211335fda83481dadb33ee65895a3a1369bdd"
]]
-
synopsis: "Virtual package relying on the installation of llvm and clang libraries (any version)"
+
synopsis: "Virtual package relying on the installation of llvm and clang libraries (<= 12.0.x)"
flags: conf
+89
packages/conf-libclang/conf-libclang.13/files/configure.sh
···
+
#!/bin/bash -ex
+
+
clean_tempdir () {
+
rm -f "$tempdir/test_libclang.c" "$tempdir/test_libclang.o" \
+
"$tempdir/test_libclang"
+
rmdir "$tempdir"
+
}
+
+
shopt -s nullglob
+
for version in default 13 12 11 10 9 8 7 6 5 4 3; do
+
if [ "$version" = default ]; then
+
llvm_config=llvm-config
+
llvm_version="$($llvm_config --version)" || continue
+
if [ $(printf "${llvm_version%%.*}\n14" | sort -n | head -n1) = 14 ]; then
+
continue
+
fi
+
else
+
if hash brew 2>/dev/null; then
+
brew_llvm_config="$(brew --cellar)"/llvm*/${version}*/bin/llvm-config
+
fi
+
for llvm_config in \
+
llvm-config-${version} llvm-config-${version}.0 \
+
llvm-config${version}0 llvm-config${version} \
+
llvm-config-${version}-32 llvm-config-${version}-64 \
+
llvm-config-mp-$version \
+
llvm-config-mp-${version}.0 $brew_llvm_config \
+
/usr/lib64/llvm/${version}/bin/llvm-config \
+
/usr/lib/llvm/${version}/bin/llvm-config; do
+
llvm_version="$($llvm_config --version)" || continue
+
break
+
done
+
if [ -z "$llvm_version" ]; then
+
continue
+
fi
+
fi
+
+
LLVM_CFLAGS="$($llvm_config --cflags)"
+
LLVM_LDFLAGS="$($llvm_config --ldflags)"
+
LLVM_LIBDIR="$($llvm_config --libdir)"
+
+
# These filters enable compilation with gcc.
+
# Filter -Wstring-conversion for OpenSUSE
+
LLVM_CFLAGS="$(echo $LLVM_CFLAGS | sed 's/-Wstring-conversion //')"
+
+
# Filter -Werror=unguarded-availability-new and -Wcovered-switch-default
+
# (which appear with LLVM 7)
+
LLVM_CFLAGS="$(echo $LLVM_CFLAGS | sed 's/-Werror=unguarded-availability-new //')"
+
LLVM_CFLAGS="$(echo $LLVM_CFLAGS | sed 's/-Wcovered-switch-default //')"
+
+
# Filter "-Wdelete-non-virtual-dtor" (warning only)
+
LLVM_CFLAGS="$(echo $LLVM_CFLAGS | sed 's/-Wdelete-non-virtual-dtor //')"
+
+
tempdir="$(mktemp -d)"
+
cat >"$tempdir/test_libclang.c" <<EOF
+
#include <clang-c/Index.h>
+
#include <stdlib.h>
+
+
int
+
main(int argc, char *argv[])
+
{
+
CXIndex idx = clang_createIndex(1, 1);
+
clang_disposeIndex(idx);
+
return EXIT_SUCCESS;
+
}
+
EOF
+
+
CC=cc
+
if "$CC" -o "$tempdir/test_libclang.o" -c $LLVM_CFLAGS \
+
"$tempdir/test_libclang.c" &&
+
"$CC" -o "$tempdir/test_libclang" \
+
$LLVM_LDFLAGS "$tempdir/test_libclang.o" \
+
"-lclang" "-Wl,-rpath,$LLVM_LIBDIR" &&
+
"$tempdir/test_libclang"; then
+
true
+
else
+
clean_tempdir
+
continue
+
fi
+
+
clean_tempdir
+
+
echo "config: \"$llvm_config\"" >> conf-libclang.config
+
echo "version: \"$llvm_version\"" >> conf-libclang.config
+
exit 0
+
done
+
+
echo "Error: No usable version of LLVM <=13.0.x found."
+
exit 1
+
+35
packages/conf-libclang/conf-libclang.13/opam
···
+
opam-version: "2.0"
+
maintainer: "Thierry Martinez <martinez@nsup.org>"
+
authors: "The LLVM team"
+
homepage: "http://llvm.org"
+
bug-reports: "https://llvm.org/bugs/"
+
license: "MIT"
+
build: [
+
["bash" "-ex" "configure.sh" version]
+
]
+
depexts: [
+
["llvm"] {os = "macos"}
+
["llvm" "clang"] {os-distribution = "arch"}
+
["libclang-dev" "llvm-dev"] {os-family = "debian"}
+
["clang-dev" "llvm-dev" "clang-static"] {os-distribution = "alpine"}
+
["clang-devel" "llvm-devel" "llvm-static" "zlib-devel"]
+
{os-distribution = "centos"}
+
["clang-devel" "llvm-devel" "zlib-devel" "redhat-rpm-config"]
+
{os-distribution = "fedora"}
+
["clang-devel" "llvm-devel" "llvm-static" "zlib-devel"]
+
{os-distribution = "ol" & os-version >= "8"}
+
["llvm-clang-devel"] {os-family = "suse"}
+
["devel/llvm13"] {os = "freebsd"}
+
["sys-devel/clang"] {os-distribution = "gentoo"}
+
]
+
x-ci-accept-failures: [
+
"oraclelinux-7" # clang-devel is not available
+
"alpine-3.13" # unavailable system package 'llvm-dev'
+
"alpine-3.14" # unavailable system package 'llvm-dev'
+
"opensuse-15.3" # unavailable system package 'llvm-clang-devel'
+
]
+
extra-files: [[
+
"configure.sh" "sha512=39710d395a437c0cb057180ed604e606d4aa3414bf164517fa42a38ffb79a6300406be3591ad1de1bb0779a5058773be0aa381e5dfe2ec670afed2d81ac14739"
+
]]
+
synopsis: "Virtual package relying on the installation of llvm and clang libraries (<= 13.0.x)"
+
flags: conf