Skip to content

Commit

Permalink
Ncurses_jll build 6.1.0+0
Browse files Browse the repository at this point in the history
  • Loading branch information
staticfloat committed Oct 2, 2019
0 parents commit 2009c5f
Show file tree
Hide file tree
Showing 15 changed files with 1,415 additions and 0 deletions.
97 changes: 97 additions & 0 deletions Artifacts.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
[[Ncurses]]
arch = "x86_64"
git-tree-sha1 = "6c3815e94e39d0255863226925f90f49b76eed79"
os = "macos"

[[Ncurses.download]]
sha256 = "80a942dbf24f6262783b0c151cb858590734b960d848fa5b5abf15b50734ad8b"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.x86_64-apple-darwin14.tar.gz"
[[Ncurses]]
arch = "i686"
git-tree-sha1 = "adb944680b1e85c9c6a3eb3fc1cc0d22509135cd"
libc = "glibc"
os = "linux"

[[Ncurses.download]]
sha256 = "70c97f8f8c1e064ea465d3120a0a2f676f4366a1ace1494ff23e3a0804b9e569"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.i686-linux-gnu.tar.gz"
[[Ncurses]]
arch = "x86_64"
git-tree-sha1 = "c1da83a764c1b3aea2b08dea5a242f8f2c7a2893"
os = "freebsd"

[[Ncurses.download]]
sha256 = "e5825c41e2068ac25d3e03a8bd46175d576d8292d01127dc561f82b54f71dcc6"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.x86_64-unknown-freebsd11.1.tar.gz"
[[Ncurses]]
arch = "powerpc64le"
git-tree-sha1 = "c2a167cfe40653040ff0f050eed1c57e94ddf36d"
libc = "glibc"
os = "linux"

[[Ncurses.download]]
sha256 = "a7e968a53091705b60328a48ed63c32af83476a44c1f00c08e572b15e9271198"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.powerpc64le-linux-gnu.tar.gz"
[[Ncurses]]
arch = "x86_64"
git-tree-sha1 = "58b19d310acd9150d07675ada27ccbb117be1ee7"
libc = "musl"
os = "linux"

[[Ncurses.download]]
sha256 = "00be62b737f429aea40eea59fc7349e5062e684c848957adde9514a62691a795"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.x86_64-linux-musl.tar.gz"
[[Ncurses]]
arch = "x86_64"
git-tree-sha1 = "f1401a3bbd94587adf8391eb6c7cd027fa8fc978"
libc = "glibc"
os = "linux"

[[Ncurses.download]]
sha256 = "a2023d253bfd2078eb1df25300df5ad9b6c445b0a4e39d854eecc59973c8bc60"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.x86_64-linux-gnu.tar.gz"
[[Ncurses]]
arch = "aarch64"
git-tree-sha1 = "2eea0c1617d0d74bdf506a532bff4da2f0c9e6e3"
libc = "musl"
os = "linux"

[[Ncurses.download]]
sha256 = "ee15ecea8042dbb7dec37e6d0710788b47a6644b21c157a182727ffb2db6285f"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.aarch64-linux-musl.tar.gz"
[[Ncurses]]
arch = "armv7l"
git-tree-sha1 = "1dc65e996e0ed8d6d2a38d710d56cbe07115cb0f"
libc = "glibc"
os = "linux"

[[Ncurses.download]]
sha256 = "bf54abf2c26947173faf854c9f40fdcae63d9d447aa88cf4cdb26e2d790b7ea2"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.arm-linux-gnueabihf.tar.gz"
[[Ncurses]]
arch = "i686"
git-tree-sha1 = "33164bb0748c3e96556620e5fc60013ab376c662"
libc = "musl"
os = "linux"

[[Ncurses.download]]
sha256 = "6b8316dad8be88aef1f9748c172f90c78d775a7bfc2fef6d70d847899c5ce14a"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.i686-linux-musl.tar.gz"
[[Ncurses]]
arch = "armv7l"
git-tree-sha1 = "9797bda3322f9aa3bf30be58a18fa9649ef65311"
libc = "musl"
os = "linux"

[[Ncurses.download]]
sha256 = "123f627a9e42fd63156e9d8b61b1eb8c23acc01e4122914f8e63358ab0b00045"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.arm-linux-musleabihf.tar.gz"
[[Ncurses]]
arch = "aarch64"
git-tree-sha1 = "fb7612077555a40fc650b9867f343464e429b5ef"
libc = "glibc"
os = "linux"

[[Ncurses.download]]
sha256 = "aa3fdd99949c8475ba6168b2808b4c4bbc5301eb0265aae3894e4e2f62974f33"
url = "https://github.com/JuliaBinaryWrappers/Ncurses_jll.jl/releases/download/Ncurses-v6.1.0+0/Ncurses.v6.1.0.aarch64-linux-gnu.tar.gz"
10 changes: 10 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name = "Ncurses_jll"
uuid = "68e3532b-a499-55ff-9963-d1c0c0748b3a"
version = "6.1.0+0"

[deps]
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Libdl = "8f399da3-3557-5675-b5ff-fb832c97cbdb"

[compat]
julia = "1.3"
34 changes: 34 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Ncurses_jll.jl

This is an autogenerated package constructed using [`BinaryBuilder.jl`](https://github.com/JuliaPackaging/BinaryBuilder.jl).

## Usage

The code bindings within this package are autogenerated from the `Products` defined within the `build_tarballs.jl` file that generated this package. For example purposes, we will assume that the following products were defined:

```julia
products = [
FileProduct("src/data.txt", :data_txt),
LibraryProduct("libdataproc", :libdataproc),
ExecutableProduct("mungify", :mungify_exe)
]
```

With such products defined, this package will contain `data_txt`, `libdataproc` and `mungify_exe` symbols exported. For `FileProduct` variables, the exported value is a string pointing to the location of the file on-disk. For `LibraryProduct` variables, it is a string corresponding to the `SONAME` of the desired library (it will have already been `dlopen()`'ed, so typical `ccall()` usage applies), and for `ExecutableProduct` variables, the exported value is a function that can be called to set appropriate environment variables. Example:

```julia
using Ncurses_jll

# For file products, you can access its file location directly:
data_lines = open(data_txt, "r") do io
readlines(io)
end

# For library products, you can use the exported variable name in `ccall()` invocations directly
num_chars = ccall((libdataproc, :count_characters), Cint, (Cstring, Cint), data_lines[1], length(data_lines[1]))

# For executable products, you can use the exported variable name as a function that you can call
mungify_exe() do mungify_exe_path
run(`$mungify_exe_path $num_chars`)
end
```
31 changes: 31 additions & 0 deletions src/Ncurses_jll.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
module Ncurses_jll
using Pkg, Pkg.BinaryPlatforms, Pkg.Artifacts, Libdl
import Base: UUID

# We put these inter-JLL-package API values here so that they are always defined, even if there
# is no underlying wrapper held within this JLL package.
const PATH_list = String[]
const LIBPATH_list = String[]

# Load Artifacts.toml file
artifacts_toml = joinpath(@__DIR__, "..", "Artifacts.toml")

# Extract all platforms
artifacts = Pkg.Artifacts.load_artifacts_toml(artifacts_toml; pkg_uuid=UUID("68e3532b-a499-55ff-9963-d1c0c0748b3a"))
platforms = [Pkg.Artifacts.unpack_platform(e, "Ncurses", artifacts_toml) for e in artifacts["Ncurses"]]

# Filter platforms based on what wrappers we've generated on-disk
platforms = filter(p -> isfile(joinpath(@__DIR__, "wrappers", triplet(p) * ".jl")), platforms)

# From the available options, choose the best platform
best_platform = select_platform(Dict(p => triplet(p) for p in platforms))

# Silently fail if there's no binaries for this platform
if best_platform === nothing
@debug("Unable to load Ncurses; unsupported platform $(triplet(platform_key_abi()))")
else
# Load the appropriate wrapper
include(joinpath(@__DIR__, "wrappers", "$(best_platform).jl"))
end

end # module Ncurses_jll
113 changes: 113 additions & 0 deletions src/wrappers/aarch64-linux-gnu.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# Autogenerated wrapper script for Ncurses_jll for aarch64-linux-gnu
export libform, libmenu, libpanel, libncurses

## Global variables
PATH = ""
LIBPATH = ""
LIBPATH_env = "LD_LIBRARY_PATH"

# Relative path to `libform`
const libform_splitpath = ["lib", "libform.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libform_path = ""

# libform-specific global declaration
# This will be filled out by __init__()
libform_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libform = "libformw.so.6"


# Relative path to `libmenu`
const libmenu_splitpath = ["lib", "libmenu.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libmenu_path = ""

# libmenu-specific global declaration
# This will be filled out by __init__()
libmenu_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libmenu = "libmenuw.so.6"


# Relative path to `libpanel`
const libpanel_splitpath = ["lib", "libpanel.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libpanel_path = ""

# libpanel-specific global declaration
# This will be filled out by __init__()
libpanel_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libpanel = "libpanelw.so.6"


# Relative path to `libncurses`
const libncurses_splitpath = ["lib", "libncurses.so"]

# This will be filled out by __init__() for all products, as it must be done at runtime
libncurses_path = ""

# libncurses-specific global declaration
# This will be filled out by __init__()
libncurses_handle = C_NULL

# This must be `const` so that we can use it with `ccall()`
const libncurses = "libncursesw.so.6"


"""
Open all libraries
"""
function __init__()
global prefix = abspath(joinpath(@__DIR__, ".."))

# Initialize PATH and LIBPATH environment variable listings
global PATH_list, LIBPATH_list
global libform_path = abspath(joinpath(artifact"Ncurses", libform_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libform_handle = dlopen(libform_path)
push!(LIBPATH_list, dirname(libform_path))

global libmenu_path = abspath(joinpath(artifact"Ncurses", libmenu_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libmenu_handle = dlopen(libmenu_path)
push!(LIBPATH_list, dirname(libmenu_path))

global libpanel_path = abspath(joinpath(artifact"Ncurses", libpanel_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libpanel_handle = dlopen(libpanel_path)
push!(LIBPATH_list, dirname(libpanel_path))

global libncurses_path = abspath(joinpath(artifact"Ncurses", libncurses_splitpath...))

# Manually `dlopen()` this right now so that future invocations
# of `ccall` with its `SONAME` will find this path immediately.
global libncurses_handle = dlopen(libncurses_path)
push!(LIBPATH_list, dirname(libncurses_path))

# Filter out duplicate and empty entries in our PATH and LIBPATH entries
filter!(!isempty, unique!(PATH_list))
filter!(!isempty, unique!(LIBPATH_list))
global PATH = join(PATH_list, ':')
global LIBPATH = join(LIBPATH_list, ':')

# Add each element of LIBPATH to our DL_LOAD_PATH (necessary on platforms
# that don't honor our "already opened" trick)
#for lp in LIBPATH_list
# push!(DL_LOAD_PATH, lp)
#end
end # __init__()

Loading

0 comments on commit 2009c5f

Please sign in to comment.