Skip to content

Commit

Permalink
Create a new release build for linux_x64. (shader-slang#3989)
Browse files Browse the repository at this point in the history
  • Loading branch information
kaizhangNV authored Apr 20, 2024
1 parent beae3a9 commit 8362c2d
Show file tree
Hide file tree
Showing 5 changed files with 97 additions and 1 deletion.
15 changes: 15 additions & 0 deletions .github/workflows/dockerfiles/ubuntu-18.04-x64/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
FROM ubuntu:18.04
RUN apt update
RUN apt install -y software-properties-common wget git build-essential zip libx11-dev zlib1g-dev
RUN add-apt-repository ppa:ubuntu-toolchain-r/test -y
RUN apt update
RUN apt install -y gcc-9 g++-9
RUN update-alternatives \
--install /usr/bin/gcc gcc /usr/bin/gcc-9 100 \
--slave /usr/bin/g++ g++ /usr/bin/g++-9 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-9 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-9 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-9 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-9 \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-9 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-9
63 changes: 63 additions & 0 deletions .github/workflows/release-linux-glibc-2-27.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
on:
push:
# Sequence of patterns matched against refs/tags
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10

name: Linux Release
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v2
with:
submodules: 'true'
fetch-depth: '0'

- name: build docker image
run: docker build -t ubuntu-18.04-gcc-9 ./.github/workflows/dockerfiles/ubuntu-18.04-x64

# build the binary in docker image
- name: Run the build process with Docker
uses: addnab/docker-run-action@v3
with:
image: ubuntu-18.04-gcc-9
options: -v ${{ github.workspace }}:/home/app
run: |
cd /home/app
git config --global --add safe.directory /home/app
export CC=gcc
export CONFIGURATION=release
export ARCH=x64
export TARGETARCH=x64
export TARGETARCH=x64
export GLIBC_COMPATIBLE=1
/bin/bash ./github_build.sh
- name: CreatePackages
id: build
run: |
echo "creating binary archieves..."
export SLANG_OS_NAME=linux
export SLANG_ARCH_NAME=`uname -p`
export TAG_NAME=`git describe --tags`
export SLANG_TAG=${TAG_NAME#v}
echo "tag:$TAG_NAME"
echo "slang-tag:$SLANG_TAG"
export SLANG_BINARY_ARCHIVE=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}-glibc-2.27.zip
export SLANG_BINARY_ARCHIVE_TAR=slang-${SLANG_TAG}-${SLANG_OS_NAME}-${SLANG_ARCH_NAME}-glibc-2.27.tar.gz
echo "creating zip"
zip -r ${SLANG_BINARY_ARCHIVE} bin/*/*/slangc bin/*/*/slangd bin/*/*/libslang.so bin/*/*/libslang-glslang.so bin/*/*/libgfx.so bin/*/*/libslang-llvm.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h
echo "creating tar"
tar -czf ${SLANG_BINARY_ARCHIVE_TAR} bin/*/*/slangc bin/*/*/slangd bin/*/*/libslang.so bin/*/*/libslang-glslang.so bin/*/*/libgfx.so bin/*/*/libslang-llvm.so docs/*.md README.md LICENSE slang.h slang-com-helper.h slang-com-ptr.h slang-tag-version.h slang-gfx.h prelude/*.h
echo "SLANG_BINARY_ARCHIVE=${SLANG_BINARY_ARCHIVE}" >> $GITHUB_OUTPUT
echo "SLANG_BINARY_ARCHIVE_TAR=${SLANG_BINARY_ARCHIVE_TAR}" >> $GITHUB_OUTPUT
- name: UploadBinary
uses: softprops/action-gh-release@v1
with:
files: |
${{ steps.build.outputs.SLANG_BINARY_ARCHIVE }}
${{ steps.build.outputs.SLANG_BINARY_ARCHIVE_TAR }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
1 change: 1 addition & 0 deletions deps/target-deps.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"windows-x86_64" : { "type" : "url", "path" : "windows-x64-release.zip" },
"windows-x86" : { "type": "url", "path" : "windows-win32-release.zip" },
"linux-x86_64" : { "type": "url", "path" : "linux-x64-release.zip" },
"linux-x86_64-glibc-2.27" : { "type": "url", "path" : "linux-x64-release-glibc-2.27.zip" },
"linux-x86" : { "type": "url", "path" : "linux-x86-release.zip" },
"macosx-x86_64" : { "type": "url", "path" : "macosx-x86_64-release.zip" },
"windows-aarch64" : { "type" : "url", "path" : "windows-aarch64-release.zip" }
Expand Down
6 changes: 5 additions & 1 deletion github_build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@ if [[ "aarch64" == "${TARGETARCH}" && "release" == "${CONFIGURATION}" ]]; then
glslangBuildFlag="--build-glslang=true"
fi

if [[ ! -z ${GLIBC_COMPATIBLE} ]]; then
glibcCompatible="--glibcForwardCompatible=true"
fi

if [[ "${ARCH}" != "${TARGETARCH}" ]]; then

# Create the makefile
Expand All @@ -35,7 +39,7 @@ rm -rf ./bin

else
# Create the makefile
./premake5 gmake2 --cc=${CC} --enable-embed-stdlib=true --arch=${TARGETARCH} --deps=true --no-progress=true ${glslangBuildFlag}
./premake5 gmake2 --cc=${CC} --enable-embed-stdlib=true --arch=${TARGETARCH} --deps=true --no-progress=true ${glslangBuildFlag} ${glibcCompatible}
fi

# Build the configuration
Expand Down
13 changes: 13 additions & 0 deletions premake5.lua
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,14 @@ newoption {
allowed = { { "true", "True"}, { "false", "False" } }
}

newoption {
trigger = "glibc-forward-compatible",
description = "(Optional) Build slang against older version of glibc (2.27) to be forward compatible with older systems",
value = "bool",
default = "false",
allowed = { { "true", "True"}, { "false", "False" } }
}

buildLocation = _OPTIONS["build-location"]
executeBinary = (_OPTIONS["execute-binary"] == "true")
buildGlslang = (_OPTIONS["build-glslang"] == "true")
Expand All @@ -254,6 +262,7 @@ enableAsan = (_OPTIONS["enable-asan"] == "true")
dxOnVk = (_OPTIONS["dx-on-vk"] == "true")
enableAftermath = (_OPTIONS["enable-aftermath"] == "true")
defaultSPIRVDirect = (_OPTIONS["default-spirv-direct"] == "true")
glibcForwardCompatible = (_OPTIONS["glibc-forward-compatible"] == "true")

-- If stdlib embedding is enabled, disable stdlib source embedding by default
disableStdlibSource = enableEmbedStdLib
Expand All @@ -278,6 +287,10 @@ end

targetInfo = slangUtil.getTargetInfo()

printf("target name " .. targetInfo.name)
if (targetInfo.name == "linux-x86_64") and (glibcForwardCompatible) then
targetInfo.name = targetInfo.name .. "-glibc-2.27"
end
--
-- Update the dependencies for the target
--
Expand Down

0 comments on commit 8362c2d

Please sign in to comment.