Skip to content

Commit 59e234a

Browse files
committed
Initial package to build ICU shared library and data for BinaryProvider
1 parent e67cd8e commit 59e234a

File tree

5 files changed

+129
-0
lines changed

5 files changed

+129
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
products/
2+
downloads/
3+
build/

.travis.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
language: julia
2+
os:
3+
- linux
4+
julia:
5+
- 1.0
6+
- 1.1
7+
8+
notifications:
9+
email: false
10+
git:
11+
depth: 99999999
12+
cache:
13+
timeout: 1000
14+
directories:
15+
- downloads
16+
17+
env:
18+
global:
19+
- BINARYBUILDER_DOWNLOADS_CACHE=downloads
20+
- BINARYBUILDER_AUTOMATIC_APPLE=true
21+
22+
sudo: required
23+
24+
# Before anything else, get the latest versions of things
25+
before_script:
26+
- julia -e 'p="https://github.com/JuliaPackaging/Binary"; using Pkg; Pkg.clone(p*"Provider.jl"); Pkg.clone(p*"Builder.jl"); Pkg.build()'
27+
28+
script:
29+
- julia --color=yes build_tarballs.jl --verbose
30+
31+
deploy:
32+
provider: releases
33+
api_key:
34+
secure: E8im3B/zQD4ZLlneaDVkq8hUmdP3uMtckqkAN1Vcm1pgsStZ3aRVtrhI7UrogEeDMdbuINJJescXcRKZSshEX+xllQXQAgo8mq2xzz2eG/kZe9xZsCIc0/QlWsrcIYUE/nvHA7vzJ4if0S2mXNS/0X9rx65XDkHUuO8XgdCaS37clZAetPRWM6IsHQfpSQcptpZclUSEq2E18N3BsFm7GwyHeatRr9sY5E8PtzHgCMkraioDq6WKH4S2RUBYyKzO3uyjhUmKOMSK+xsJoxzmqdyfs3BlJbFCH3i7bup/gfjkUHxVwhxX+grU0u+UWe2DeF+EFNQUvJqimvat0tGG/DXxcYywqu3uOxLp06lik+ByXy4ziKgIphjf63VbI/HG6BtxQYF4dWPBQlbOw0tXJd5yKj3iS736PYZWF62/aM116DMgDrWdTP5byFhuydocFXX8X4Cb+y4IJA/XHqp15bOBMqh86K6NZglynPkAdykCZCE4rZOVqYU5F6RSG2Cxn5QrizIUeiQVK2FC92YZ5jntbGzjKJ+dJgn6gM6cf4fsMpryMAJw8O9qmKGvKBXiPVd+n7qmm70Pm40FhommwWAnX2bAL8HyAp+gqbjXE7xVcqLbgfbWeP8Nmi8L8tEjhGFiAY3HyRsW5tLCAIhmLRkruRhyl86YRg390qGBJn8=
35+
file_glob: true
36+
file: products/*
37+
skip_cleanup: true
38+
on:
39+
repo: JuliaString/ICUBuilder
40+
tags: true
41+
# all_branches: true

LICENSE.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
2+
Permission is hereby granted, free of charge, to any person obtaining a copy
3+
of this software and associated documentation files (the "Software"), to deal
4+
in the Software without restriction, including without limitation the rights
5+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
6+
copies of the Software, and to permit persons to whom the Software is
7+
furnished to do so, subject to the following conditions:
8+
9+
The above copyright notice and this permission notice shall be included in all
10+
copies or substantial portions of the Software.
11+
12+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18+
SOFTWARE.

README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# ICU builder
2+
3+
[![Build Status](https://travis-ci.org/JuliaString/ICUBuilder.svg?branch=master)](https://travis-ci.org/JuliaString/ICUBuilder)
4+
5+
This repository builds binary artifacts for the StrICU project. Binary artifacts are automatically uploaded to [this repository's GitHub releases page](https://github.com/JuliaString/ICUBuilder/releases) whenever a tag is created on this repository.
6+
7+
This repository was created using [BinaryBuilder.jl](https://github.com/JuliaPackaging/BinaryBuilder.jl)
8+

build_tarballs.jl

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
const ICU_VERSION = "63.1"
2+
const ICU_VERSION_US = replace(ICU_VERSION, '.' => '_')
3+
4+
using BinaryBuilder
5+
6+
# Collection of sources required to build ICU
7+
sources = [
8+
"http://download.icu-project.org/files/icu4c/$(ICU_VERSION)/icu4c-$(ICU_VERSION_US)-src.tgz" =>
9+
"05c490b69454fce5860b7e8e2821231674af0a11d7ef2febea9a32512998cb9d"
10+
#"9ab407ed840a00cdda7470dcc4c40299a125ad246ae4d019c4b1ede54781157fd63af015a8228cd95dbc47e4d15a0932b2c657489046a19788e5e8266eac079c"
11+
]
12+
13+
# Bash recipe for building across all platforms
14+
# (note, need to have way of converting from BinaryBuilder target names to
15+
# ICU target names)
16+
17+
script = raw"""
18+
cd $WORKSPACE/srcdir/icu/source
19+
if [[ "$target" == "*linux*" ]]
20+
then icutarget="Linux"
21+
elif [[ "$target" == "*macos*" ]]
22+
then icutarget="MacOSX"
23+
elif [[ "$target" == "*windows*" ]]
24+
then icutarget="Windows"
25+
else echo "Unsupported platform" ; exit
26+
fi
27+
echo $target
28+
echo $icutarget
29+
./runConfigureICU $icutarget --prefix=$prefix
30+
make
31+
make install
32+
"""
33+
34+
# These are the platforms we will build for by default, unless further
35+
# platforms are passed in on the command line
36+
platforms = [
37+
Windows(:i686),
38+
Windows(:x86_64),
39+
Linux(:i686, :glibc),
40+
Linux(:x86_64, :glibc),
41+
Linux(:aarch64, :glibc),
42+
Linux(:armv7l, :glibc),
43+
Linux(:powerpc64le, :glibc),
44+
MacOS(:x86_64)
45+
]
46+
47+
# The products that we will ensure are always built
48+
products = prefix -> [
49+
LibraryProduct(prefix, ["icu"], :libicu)
50+
]
51+
52+
# Dependencies that must be installed before this package can be built
53+
dependencies = [
54+
55+
]
56+
57+
# Build the tarballs, and possibly a `build.jl` as well.
58+
build_tarballs(ARGS, "ICUBuilder", VersionNumber(ICU_VERSION), sources, script, platforms,
59+
products, dependencies)

0 commit comments

Comments
 (0)