8000 Improve platform bundles (#9) · awakecoding/llvm-prebuilt@fccc146 · GitHub
[go: up one dir, main page]

Skip to content

Commit fccc146

Browse files
awakecodingMarc-André Moreau
and
Marc-André Moreau
authored
Improve platform bundles (#9)
* update xcode-bundle * update xcode-bundle * update * update xcode bundle * fix fix * fix again * fix fix * update MSVC bundle * update xcode bundle * fix msvc bundle * add halide workflow * update xcode bundle Co-authored-by: Marc-André Moreau <mamoreau@devolutions.net>
1 parent 6a67104 commit fccc146

File tree

3 files changed

+175
-28
lines changed

3 files changed

+175
-28
lines changed

.github/workflows/halide-prebuilt.yml

Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
name: halide prebuilt
2+
on: workflow_dispatch
3+
jobs:
4+
build:
5+
name: halide [${{matrix.arch}}-${{matrix.os}}]
6+
runs-on: ${{matrix.runner}}
7+
strategy:
8+
fail-fast: false
9+
matrix:
10+
arch: [ x86_64 ]
11+
os: [ windows, macos, ubuntu-18.04, ubuntu-20.04 ]
12+
version: [ 12.0.1 ]
13+
14+
include:
15+
- os: windows
16+
runner: windows-2019
17+
- os: macos
18+
runner: macos-latest
19+
- os: ubuntu-18.04
20+
runner: ubuntu-18.04
21+
- os: ubuntu-20.04
22+
runner: ubuntu-20.04
23+
24+
steps:
25+
- name: Configure Windows runner
26+
if: runner.os == 'Windows'
27+
run: |
28+
choco install ninja 7zip
29+
30+
- name: Configure macOS runner
31+
if: runner.os == 'macOS'
32+
run: |
33+
brew install ninja
34+
echo "MACOSX_DEPLOYMENT_TARGET=10.12" >> $GITHUB_ENV
35+
36+
- name: Configure Linux runner
37+
run: |
38+
sudo apt update
39+
sudo apt install git xz-utils ninja-build
40+
41+
- name: Enable Windows environment
42+
if: runner.os == 'Windows'
43+
uses: ilammy/msvc-dev-cmd@v1
44+
with:
45+
arch: amd64
46+
47+
- name: Install clang+llvm
48+
if: runner.os == 'Windows'
49+
shell: pwsh
50+
run: |
51+
$CLANG_LLVM_OS="windows"
52+
$CLANG_LLVM_BASE_URL="https://github.com/awakecoding/llvm-prebuilt/releases/download/v2021.2.3"
53+
$CLANG_LLVM_NAME="clang+llvm-12.0.1-x86_64-${CLANG_LLVM_OS}"
54+
wget -q "${CLANG_LLVM_BASE_URL}/${CLANG_LLVM_NAME}.tar.xz"
55+
tar -xf "${CLANG_LLVM_NAME}.tar.xz" -C "C:/temp"
56+
mv "C:/temp/${CLANG_LLVM_NAME}" "C:/llvm"
57+
echo "LLVM_DIR=C:/llvm/lib/cmake/llvm" >> $Env:GITHUB_ENV
58+
echo "PATH=$PATH;C:/llvm/bin" >> $Env:GITHUB_ENV
59+
60+
- name: Install clang+llvm
61+
if: runner.os == 'macOS'
62+
run: |
63+
CLANG_LLVM_OS="macos"
64+
CLANG_LLVM_BASE_URL="https://github.com/awakecoding/llvm-prebuilt/releases/download/v2021.2.3"
65+
CLANG_LLVM_NAME="clang+llvm-12.0.1-x86_64-${CLANG_LLVM_OS}"
66+
wget -q "${CLANG_LLVM_BASE_URL}/${CLANG_LLVM_NAME}.tar.xz"
67+
tar -xf "${CLANG_LLVM_NAME}.tar.xz" -C /tmp
68+
sudo mv "/tmp/${CLANG_LLVM_NAME}" /opt/llvm
69+
echo "LLVM_DIR=/opt/llvm/lib/cmake/llvm" >> $GITHUB_ENV
70+
echo "PATH=$PATH:/opt/llvm/bin" >> $GITHUB_ENV
71+
72+
- name: Install clang+llvm
73+
if: runner.os == 'Linux'
74+
run: |
75+
CLANG_LLVM_OS="ubuntu-$(lsb_release -rs)"
76+
CLANG_LLVM_BASE_URL="https://github.com/awakecoding/llvm-prebuilt/releases/download/v2021.2.3"
77+
CLANG_LLVM_NAME="clang+llvm-12.0.1-x86_64-${CLANG_LLVM_OS}"
78+
wget -q "${CLANG_LLVM_BASE_URL}/${CLANG_LLVM_NAME}.tar.xz"
79+
tar -xf "${CLANG_LLVM_NAME}.tar.xz" -C /tmp
80+
sudo mv "/tmp/${CLANG_LLVM_NAME}" /opt/llvm
81+
echo "LLVM_DIR=/opt/llvm/lib/cmake/llvm" >> $GITHUB_ENV
82+
echo "PATH=$PATH:/opt/llvm/bin" >> $GITHUB_ENV
83+
84+
- name: Clone Halide ${{matrix.version}}
85+
uses: actions/checkout@v2
86+
with:
87+
repository: halide/Halide
88+
ref: v${{matrix.version}}
89+
path: halide
90+
91+
- name: Configure Halide
92+
shell: pwsh
93+
run: |
94+
cmake -G Ninja -S halide -B halide-build `
95+
-DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON `
96+
-DWITH_TESTS=OFF -DWITH_APPS=OFF -DWITH_TUTORIALS=OFF `
97+
-DWITH_DOCS=OFF -DWITH_UTILS=OFF -DWITH_PYTHON_BINDINGS=OFF `
98+
-DTARGET_WEBASSEMBLY=OFF -DLLVM_DIR="$Env:LLVM_DIR" -Wno-dev `
99+
-DCMAKE_INSTALL_PREFIX="halide-install"
100+
101+
- name: Build Halide
102+
run: cmake --build halide-build
103+
104+
- name: Install Halide
105+
run: cmake --install halide-build
106+
107+
- name: Package Halide
108+
if: runner.os != 'Windows'
109+
run: |
110+
PACKAGE_NAME="halide-${{matrix.version}}-${{matrix.arch}}-${{matrix.os}}"
111+
mv halide-install ./${PACKAGE_NAME}
112+
tar -cJf ${PACKAGE_NAME}.tar.xz ${PACKAGE_NAME}
113+
114+
- name: Package Halide
115+
if: runner.os == 'Windows'
116+
shell: pwsh
117+
run: |
118+
$PACKAGE_NAME="halide-${{matrix.version}}-${{matrix.arch}}-${{matrix.os}}"
119+
mv llvm-install $PACKAGE_NAME
120+
cmd.exe /c "7z a -ttar -snl -so $PACKAGE_NAME.tar $PACKAGE_NAME | 7z a -si $PACKAGE_NAME.tar.xz"
121+
122+
123+
- name: Upload Halide package
124+
uses: actions/upload-artifact@v2
125+
with:
126+
name: halide-${{matrix.version}}-${{matrix.arch}}-${{matrix.os}}
127+
path: halide-${{matrix.version}}-${{matrix.arch}}-${{matrix.os}}.tar.xz

.github/workflows/msvc-bundle.yml

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,19 +14,32 @@ jobs:
1414
with:
1515
arch: amd64
1616

17-
- name: Copy MSVC bundle
17+
- name: Copy vctools
1818
shell: pwsh
1919
run: |
2020
$BundlePath = $Env:GITHUB_WORKSPACE
21+
New-Item -Path "$BundlePath\vctools" -ItemType Directory | Out-Null
2122
Copy-Item -Recurse -Path $Env:VCToolsInstallDir\include -Destination $BundlePath\vctools\include
22-
Copy-Item -Recurse -Path $Env:VCToolsInstallDir\lib -Destination $BundlePath\vctools\lib
23+
Copy-Item -Recurse -Path $Env:VCToolsInstallDir\lib\x86 -Destination $BundlePath\vctools\lib\x86
24+
Copy-Item -Recurse -Path $Env:VCToolsInstallDir\lib\x64 -Destination $BundlePath\vctools\lib\x64
25+
Copy-Item -Recurse -Path $Env:VCToolsInstallDir\lib\arm64 -Destination $BundlePath\vctools\lib\arm64
26+
27+
- name: Copy winsdk
28+
shell: pwsh
29+
run: |
30+
$BundlePath = $Env:GITHUB_WORKSPACE
31+
New-Item -Path "$BundlePath\winsdk" -ItemType Directory | Out-Null
2332
Copy-Item -Recurse -Path $Env:WindowsSdkDir\Include\$Env:WindowsSDKVersion\ $BundlePath\winsdk\Include\$Env:WindowsSDKVersion
2433
Copy-Item -Recurse -Path $Env:WindowsSdkDir\Lib\$Env:WindowsSDKVersion\ $BundlePath\winsdk\Lib\$Env:WindowsSDKVersion
2534
26-
- name: Package MSVC bundle
35+
- name: Package vctools
2736
shell: pwsh
2837
run: |
2938
cmd.exe /c "7z a -ttar -snl -so vctools.tar vctools | 7z a -si vctools.tar.xz"
39+
40+
- name: Package winsdk
41+
shell: pwsh
42+
run: |
3043
cmd.exe /c "7z a -ttar -snl -so winsdk.tar winsdk | 7z a -si winsdk.tar.xz"
3144
3245
- name: Upload vctools package

.github/workflows/xcode-bundle.yml

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -5,38 +5,45 @@ jobs:
55
name: Xcode bundle
66
runs-on: macos-10.15
77
steps:
8-
- name: Configure macOS runner
8+
- name: Copy Xcode toolchain
99
run: |
10-
brew install --cask powershell
10+
XCODE_DEVELOPER_PATH=$(xcode-select -p)
11+
XCODE_TOOLCHAINS_PATH="$XCODE_DEVELOPER_PATH/Toolchains"
12+
XCODE_TOOLCHAIN_PATH="$XCODE_TOOLCHAINS_PATH/XcodeDefault.xctoolchain"
13+
DESTINATION_PATH="./xcode-bundle/XcodeDefault.xctoolchain"
14+
mkdir -p "./$DESTINATION_PATH/usr/include"
15+
mkdir -p "./$DESTINATION_PATH/usr/lib"
16+
cp -r "$XCODE_TOOLCHAIN_PATH/usr/include" "./$DESTINATION_PATH/usr/include"
17+
cp -r "$XCODE_TOOLCHAIN_PATH/usr/lib" "./$DESTINATION_PATH/usr/lib"
1118
12-
- name: Copy Xcode bundle
13-
shell: pwsh
19+
- name: Copy macOS SDK
1420
run: |
15-
$XcodeDeveloperPath = $(xcode-select -p)
16-
$XcodePlatformsPath = Join-Path $XcodeDeveloperPath "Platforms"
17-
18-
$BundlePath = Join-Path $Env:GITHUB_WORKSPACE "xcode-bundle"
19-
New-Item -Path $BundlePath -ItemType Directory | Out-Null
20-
21-
foreach ($Platform in @('MacOSX','iPhoneOS','iPhoneSimulator')) {
22-
Write-Host "Copying $Platform SDK"
23-
$PlatformPath = Join-Path $XcodePlatformsPath "$Platform.platform"
24-
$PlatformSdkPath = Join-Path $PlatformPath "Developer" "SDKs" "$Platform.sdk"
25-
Copy-Item -Recurse -Path $PlatformSdkPath -Destination $BundlePath
26-
}
27-
28-
Write-Host "Copying Xcode xctoolchain"
29-
$XcodeToolchainsPath = Join-Path $XcodeDeveloperPath "Toolchains"
30-
$XcodeToolchainPath = Join-Path $XcodeToolchainsPath "XcodeDefault.xctoolchain"
31-
$DestinationPath = Join-Path $BundlePath "XcodeDefault.xctoolchain"
32-
New-Item -Path $DestinationPath -ItemType Directory | Out-Null
33-
Copy-Item -Recurse -Path "$XcodeToolchainPath\usr\include" -Destination "$DestinationPath\usr\include"
34-
Copy-Item -Recurse -Path "$XcodeToolchainPath\usr\lib" -Destination "$DestinationPath\usr\lib"
21+
XCODE_DEVELOPER_PATH=$(xcode-select -p)
22+
XCODE_PLATFORMS_PATH="$XCODE_DEVELOPER_PATH/Platforms"
23+
24+
PLATFORM_NAME=MacOSX
25+
PLATFORM_PATH="$XCODE_PLATFORMS_PATH/$PLATFORM_NAME.platform"
26+
PLATFORM_SDK_PATH="$PLATFORM_PATH/Developer/SDKs/$PLATFORM_NAME.sdk"
27+
28+
mkdir -p xcode-bundle
29+
cp -r $PLATFORM_SDK_PATH "./xcode-bundle/$PLATFORM_NAME.sdk" 2>/dev/null || :
30+
31+
- name: Copy iOS SDK
32+
run: |
33+
XCODE_DEVELOPER_PATH=$(xcode-select -p)
34+
XCODE_PLATFORMS_PATH="$XCODE_DEVELOPER_PATH/Platforms"
35+
36+
PLATFORM_NAME=iPhoneOS
37+
PLATFORM_PATH="$XCODE_PLATFORMS_PATH/$PLATFORM_NAME.platform"
38+
PLATFORM_SDK_PATH="$PLATFORM_PATH/Developer/SDKs/$PLATFORM_NAME.sdk"
39+
40+
mkdir -p xcode-bundle
41+
cp -r $PLATFORM_SDK_PATH "./xcode-bundle/$PLATFORM_NAME.sdk" 2>/dev/null || :
3542
3643
- name: Package Xcode bundle
3744
shell: pwsh
3845
run: |
39-
tar -cJf xcode-bundle.tar.xz xcode-bundle
46+
tar -cJf xcode-bundle.tar.xz ./xcode-bundle
4047
4148
- name: Upload xcode-bundle package
4249
uses: actions/upload-artifact@v2

0 commit comments

Comments
 (0)
0