Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 101 additions & 13 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,9 @@ on:
branches: [ main ]
pull_request:
branches: [ main ]

env:
ICU_SOURCE_ZIP_URL: https://github.com/unicode-org/icu/archive/refs/tags/release-77-1.zip

jobs:
build_unoicu:
Expand Down Expand Up @@ -33,8 +36,6 @@ jobs:
- uses: actions/checkout@v2

- name: Build icudt.dat
env:
ICU_SOURCE_ZIP_URL: https://github.com/unicode-org/icu/archive/refs/tags/release-77-1.zip
run: |
pushd src/cldr_data
docker build --build-arg ICU_SOURCE_ZIP_URL=${ICU_SOURCE_ZIP_URL} --output type=local,dest=. .
Expand All @@ -46,28 +47,110 @@ jobs:
name: icudt.dat
path: ./src/cldr_data/icudt.dat

build_libicu_darwin:
strategy:
matrix:
arch: [ 'x86_64','arm64' ]
runs-on: ${{ matrix.arch == 'x86_64' && 'macos-15-intel' || 'macos-15' }}
steps:
- uses: actions/checkout@v2

- name: Build icudt.dat
run: |
curl -L -o icu.zip ${ICU_SOURCE_ZIP_URL}
mkdir icu
unzip -d icu icu.zip
export ICU_DATA_FILTER_FILE="$PWD/src/cldr_data/filters_macosios.json"
pushd icu/$(ls icu)/icu4c/source
./runConfigureICU macOS
make -j $(sysctl -n hw.physicalcpu)
popd
mkdir artifacts
cp icu/$(ls icu)/icu4c/source/lib/libicuuc.dylib icu/$(ls icu)/icu4c/source/lib/libicudata.dylib artifacts

- name: Upload binaries
uses: actions/upload-artifact@v4
with:
name: libicu-darwin-${{ matrix.arch }}
path: ./artifacts

build_libicu_darwin_universal:
needs: [build_libicu_darwin]
runs-on: 'macos-15'
steps:
- name: Merge libicu binaries
uses: actions/upload-artifact/merge@v4
with:
name: libicu-darwin-merged
pattern: 'libicu-darwin-*'
separate-directories: true

- name: Download merged libicu binaries
uses: actions/download-artifact@v4
with:
name: libicu-darwin-merged
path: ./libicu-darwin-merged

- name: Create universal libicu binaries
run: |
mkdir libicu_darwin_universal
lipo -create libicu-darwin-merged/**/libicuuc.dylib -output libicu_darwin_universal/libicuuc.dylib
lipo -create libicu-darwin-merged/**/libicudata.dylib -output libicu_darwin_universal/libicudata.dylib

- name: Upload universal libicu binaries
uses: actions/upload-artifact@v4
with:
name: libicu_darwin_universal
path: ./libicu_darwin_universal/*

package:
needs: [build_unoicu, build_icudt]
needs: [build_unoicu, build_icudt, build_libicu_darwin_universal]
runs-on: windows-latest

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Merge artifacts
- name: Download universal libicu binaries
uses: actions/download-artifact@v4
with:
name: libicu_darwin_universal
path: .

- name: List files
run: |
Get-ChildItem -Recurse .

- name: Move binaries to correct locations
shell: bash
run: |
mkdir nuget/uno.icu-macos/libicu
mv {libicuuc,libicudata}.dylib ./nuget/uno.icu-macos/libicu

- name: List files
run: |
Get-ChildItem -Recurse .

- name: Merge unoicu.a artifacts
uses: actions/upload-artifact/merge@v4
with:
name: merged-artifacts
pattern: '*'
name: unoicu-merged
pattern: 'unoicu-*'
separate-directories: true

- name: Download merged artifacts
- name: Download merged unoicu.a artifacts
uses: actions/download-artifact@v4
with:
name: merged-artifacts
name: unoicu-merged
path: ./merged-artifacts

- name: Download icudt.dat
uses: actions/download-artifact@v4
with:
name: icudt.dat
path: ./merged-artifacts/icudt.dat

- uses: dotnet/nbgv@f088059084cb5d872e9d1a994433ca6440c2bf72 # v0.4.2
id: nbgv
with:
Expand All @@ -81,14 +164,14 @@ jobs:
- name: Move downloaded artifacts to correct locations
shell: bash
run: |
mv ./merged-artifacts/icudt.dat/icudt.dat ./nuget/build
mv ./merged-artifacts/icudt.dat/icudt.dat ./nuget/uno.icu-wasm/build

mkdir -p ./nuget/buildTransitive/native/unoicu.a
mkdir -p ./nuget/uno.icu-wasm/buildTransitive/native/unoicu.a
pushd merged-artifacts
for dir in unoicu-*; do
new_name="${dir#unoicu-}"
mkdir -p ../nuget/buildTransitive/native/unoicu.a/"$new_name"/st
cp -r "$dir"/unoicu.a ../nuget/buildTransitive/native/unoicu.a/"$new_name"/st/unoicu.a
mkdir -p ../nuget/uno.icu-wasm/buildTransitive/native/unoicu.a/"$new_name"/st
cp -r "$dir"/unoicu.a ../nuget/uno.icu-wasm/buildTransitive/native/unoicu.a/"$new_name"/st/unoicu.a
done
popd

Expand All @@ -104,7 +187,8 @@ jobs:
- name: Build nuget
run: |
pushd nuget
.\nuget.exe pack uno.icu-wasm.nuspec -version ${{ steps.nbgv.outputs.SemVer2 }}
.\nuget.exe pack uno.icu-wasm/uno.icu-wasm.nuspec -version ${{ steps.nbgv.outputs.SemVer2 }}
.\nuget.exe pack uno.icu-macos/uno.icu-macos.nuspec -version ${{ steps.nbgv.outputs.SemVer2 }}
popd

- uses: actions/upload-artifact@v4
Expand Down Expand Up @@ -152,6 +236,10 @@ jobs:
tenant-id: ${{ secrets.SIGN_AZURE_TENANT_ID }}
subscription-id: ${{ secrets.SIGN_AZURE_SUBSCRIPTION_ID }}

- name: List files
run: |
Get-ChildItem -Recurse .

# Run the signing command
- name: Sign artifacts
shell: pwsh
Expand Down
11 changes: 0 additions & 11 deletions nuget/buildTransitive/Uno.icu-wasm.targets

This file was deleted.

20 changes: 20 additions & 0 deletions nuget/uno.icu-macos/uno.icu-macos.nuspec
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata minClientVersion="5.0.0">
<id>Uno.icu-macos</id>
<version>0.0.1</version>
<title>Uno ICU for MacOS</title>
<authors>Uno Platform</authors>
<owners>unoplatform</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<projectUrl>https://github.com/unoplatform/uno.icu</projectUrl>
<iconUrl>https://nv-assets.azurewebsites.net/logos/uno.png</iconUrl>
<description>The International Components for Unicode for macOS</description>
<copyright>Copyright (C) 2015-2025 Uno Platform inc. - all rights reserved</copyright>
<repository type="git" url="https://github.com/unoplatform/uno.icu.git" />
</metadata>
<files>
<file src="libicu/libicuuc.dylib" target="runtimes/osx/native" />
<file src="libicu/libicudata.dylib" target="runtimes/osx/native" />
</files>
</package>
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup Condition="'$(UnoWinRTRuntimeIdentifier)' == 'WebAssembly')">
<ItemGroup>
<EmbeddedResource Include="$(MSBuildThisFileDirectory)icudt.dat" />
</ItemGroup>

Expand Down
8 changes: 8 additions & 0 deletions nuget/uno.icu-wasm/buildTransitive/Uno.icu-wasm.targets
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<ItemGroup Condition="'$(IsUnoHead)' == 'True'">
<NativeFileReference Include="$(MSBuildThisFileDirectory)**/unoicu.a" />
</ItemGroup>

</Project>
File renamed without changes.
4 changes: 2 additions & 2 deletions src/cldr_data/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ RUN apt-get update && apt-get install -y make git python3 doxygen zip wget g++

WORKDIR /icu

ENV ICU_DATA_FILTER_FILE=/icu/filters.json
COPY filters.json .
ENV ICU_DATA_FILTER_FILE=/icu/filters_wasm.json
COPY filters_wasm.json .

RUN wget ${ICU_SOURCE_ZIP_URL}
RUN unzip release-77-1.zip
Expand Down
Loading
Loading