diff --git a/.github/workflows/check-in-tree-build.yml b/.github/workflows/check-in-tree-build.yml new file mode 100644 index 00000000..82d029c7 --- /dev/null +++ b/.github/workflows/check-in-tree-build.yml @@ -0,0 +1,79 @@ +name: In-tree build + +on: + push: + branches: + - ocl-open-90 + paths-ignore: # no need to check build for: + - 'docs/**' # documentation + - '**.md' # README + pull_request: + branches: + - ocl-open-90 + paths-ignore: # no need to check build for: + - 'docs/**' # documentation + - '**.md' # README + schedule: + # Weekly build on Mondays + # Ideally, we might want to simplify our regular nightly build as we + # probably don't need every configuration to be built every day: most of + # them are only necessary in pre-commits to avoid breakages + - cron: 0 0 * * 0 + +env: + LLVM_VERSION: 9 + +jobs: + build_and_test_linux: + name: Linux + strategy: + matrix: + build_type: [Release] + include: + - build_type: Release + fail-fast: false + runs-on: ubuntu-18.04 + steps: + - name: Install dependencies + run: | + curl -L "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add - + curl -L "https://packages.lunarg.com/lunarg-signing-key-pub.asc" | sudo apt-key add - + echo "deb https://apt.llvm.org/bionic/ llvm-toolchain-bionic-${{ env.LLVM_VERSION }} main" | sudo tee -a /etc/apt/sources.list + echo "deb https://packages.lunarg.com/vulkan bionic main" | sudo tee -a /etc/apt/sources.list + sudo apt-get update + - name: setup git config + run: | + git config --global user.email "<>" + git config --global user.name "GitHub Actions Bot" + - name: Checkout LLVM sources + uses: actions/checkout@v2 + with: + repository: llvm/llvm-project + ref: release/9.x + path: llvm-project + - name: Checkout the translator sources + uses: actions/checkout@v2 + with: + repository: KhronosGroup/SPIRV-LLVM-Translator + ref: llvm_release_90 + path: llvm-project/SPIRV-LLVM-Translator + - name: Checkout opencl-clang sources + uses: actions/checkout@v2 + with: + path: llvm-project/opencl-clang + - name: Configure + run: | + mkdir build && cd build + cmake ${{ github.workspace }}/llvm-project/llvm \ + -DLLVM_ENABLE_PROJECTS="clang" \ + -DLLVM_EXTERNAL_PROJECTS="llvm-spirv;opencl-clang" \ + -DLLVM_EXTERNAL_LLVM_SPIRV_SOURCE_DIR=${{ github.workspace }}/llvm-project/SPIRV-LLVM-Translator \ + -DLLVM_EXTERNAL_OPENCL_CLANG_SOURCE_DIR=${{ github.workspace }}/llvm-project/opencl-clang \ + -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ + -DLLVM_TARGETS_TO_BUILD="X86" \ + -G "Unix Makefiles" + - name: Build + run: | + cd build + + make opencl-clang -j2 diff --git a/cmake/modules/CMakeFunctions.cmake b/cmake/modules/CMakeFunctions.cmake index 9dde18b0..861ccfb6 100644 --- a/cmake/modules/CMakeFunctions.cmake +++ b/cmake/modules/CMakeFunctions.cmake @@ -149,6 +149,9 @@ function(apply_patches repo_dir patches_dirs base_revision target_branch ret) RESULT_VARIABLE ret_apply_patch ) message(STATUS "[OPENCL-CLANG] Not present - ${patching_log}") + if (ret_apply_patch) + break() + endif() endif() endforeach(patch) else() # The target branch already exists