Fuck git
This commit is contained in:
215
external/capstone/.github/workflows/CITest.yml
vendored
Normal file
215
external/capstone/.github/workflows/CITest.yml
vendored
Normal file
@@ -0,0 +1,215 @@
|
||||
name: Run Test
|
||||
on:
|
||||
push:
|
||||
paths-ignore:
|
||||
- ".gitignore"
|
||||
- "docs/**"
|
||||
- "ChangeLog"
|
||||
- "CREDITS.TXT"
|
||||
- "COMPILE_MAKE.TXT"
|
||||
- "BUILDING.md"
|
||||
- "CONTRIBUTING.md"
|
||||
- "LICENSE.TXT"
|
||||
- "LICENSE_LLVM.TXT"
|
||||
- "README.md"
|
||||
- "RELEASE_NOTES"
|
||||
- "SPONSORS.TXT"
|
||||
- "TODO"
|
||||
pull_request:
|
||||
|
||||
# Stop previous runs on the same branch on new push
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
CI: true
|
||||
UBSAN_OPTIONS: "halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1"
|
||||
ASAN_OPTIONS: "halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1"
|
||||
LSAN_OPTIONS: "halt_on_error=1:abort_on_error=1:print_summary=1:print_stacktrace=1"
|
||||
|
||||
jobs:
|
||||
Linux:
|
||||
runs-on: ${{ matrix.config.os }}
|
||||
name: ${{ matrix.config.name }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config:
|
||||
- {
|
||||
name: 'ubuntu-22.04 x64 make',
|
||||
os: ubuntu-22.04,
|
||||
arch: x64,
|
||||
build-system: 'make',
|
||||
diet-build: 'OFF',
|
||||
enable-asan: 'OFF'
|
||||
}
|
||||
- {
|
||||
name: 'ubuntu-22.04 x64 cmake',
|
||||
os: ubuntu-22.04,
|
||||
arch: x64,
|
||||
build-system: 'cmake',
|
||||
diet-build: 'OFF',
|
||||
enable-asan: 'OFF',
|
||||
build_type: 'Debug'
|
||||
}
|
||||
- {
|
||||
name: 'ubuntu-22.04 x64 release - assert warn',
|
||||
os: ubuntu-22.04,
|
||||
arch: x64,
|
||||
build-system: 'cmake',
|
||||
diet-build: 'OFF',
|
||||
enable-asan: 'OFF',
|
||||
build_type: 'Release',
|
||||
build_options: '-DCAPSTONE_ASSERTION_WARNINGS=ON'
|
||||
}
|
||||
- {
|
||||
name: 'ubuntu-22.04 x64 release - no asserts',
|
||||
os: ubuntu-22.04,
|
||||
arch: x64,
|
||||
build-system: 'cmake',
|
||||
diet-build: 'OFF',
|
||||
enable-asan: 'OFF',
|
||||
build_type: 'Release',
|
||||
build_options: '-DCAPSTONE_ASSERTION_WARNINGS=OFF'
|
||||
}
|
||||
- {
|
||||
name: 'ubuntu-24.04 x64 ASAN',
|
||||
os: ubuntu-24.04,
|
||||
arch: x64,
|
||||
build-system: 'cmake',
|
||||
diet-build: 'OFF',
|
||||
enable-asan: 'ON',
|
||||
build_type: 'Debug'
|
||||
}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.config.python-version }}
|
||||
|
||||
- name: Prepare fuzzing
|
||||
run: |
|
||||
export LD_LIBRARY_PATH=`pwd`/tests/:$LD_LIBRARY_PATH
|
||||
wget https://github.com/groundx/capstonefuzz/raw/master/corpus/corpus-libFuzzer-capstone_fuzz_disasmnext-latest.zip
|
||||
unzip -q corpus-libFuzzer-capstone_fuzz_disasmnext-latest.zip -d suite/fuzz
|
||||
|
||||
- name: make
|
||||
if: startsWith(matrix.config.build-system, 'make')
|
||||
run: |
|
||||
./make.sh
|
||||
sudo make install
|
||||
|
||||
- name: cmake
|
||||
if: startsWith(matrix.config.build-system, 'cmake')
|
||||
env:
|
||||
asan: ${{ matrix.config.enable-asan }}
|
||||
build_option: ${{ matrix.config.build_option }}
|
||||
build_type: ${{ matrix.config.build_type }}
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
# build static library
|
||||
cmake -DCAPSTONE_INSTALL=1 -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_ASAN=${asan} -DCAPSTONE_BUILD_DIET=${diet_build} ${build_option} ..
|
||||
cmake --build . --config ${build_type}
|
||||
# build shared library
|
||||
cmake -DCAPSTONE_INSTALL=1 -DCAPSTONE_BUILD_SHARED_LIBS=1 -DCMAKE_INSTALL_PREFIX=/usr -DCAPSTONE_BUILD_CSTEST=ON -DENABLE_ASAN=${asan} ${build_option} ..
|
||||
sudo cmake --build . --config ${build_type} --target install
|
||||
|
||||
- name: Lower number of KASL randomized address bits
|
||||
run: |
|
||||
# Work-around ASAN bug https://github.com/google/sanitizers/issues/1716
|
||||
sudo sysctl vm.mmap_rnd_bits=28
|
||||
|
||||
- name: unit tests
|
||||
if: startsWith(matrix.config.build-system, 'cmake')
|
||||
run: |
|
||||
ctest --test-dir build --output-on-failure -R unit_*
|
||||
|
||||
- name: "Integration tests"
|
||||
if: startsWith(matrix.config.build-system, 'cmake') && matrix.config.diet-build == 'OFF'
|
||||
run: |
|
||||
ctest --test-dir build --output-on-failure -R integration_*
|
||||
|
||||
- name: cstool - reaches disassembler engine
|
||||
run: |
|
||||
sh suite/run_invalid_cstool.sh
|
||||
|
||||
- name: cstest MC
|
||||
if: startsWith(matrix.config.build-system, 'cmake')
|
||||
run: |
|
||||
ctest --test-dir build --output-on-failure -R MCTests
|
||||
|
||||
- name: cstest details
|
||||
if: startsWith(matrix.config.build-system, 'cmake')
|
||||
run: |
|
||||
ctest --test-dir build --output-on-failure -R DetailTests
|
||||
|
||||
- name: cstest issues
|
||||
if: startsWith(matrix.config.build-system, 'cmake')
|
||||
run: |
|
||||
ctest --test-dir build --output-on-failure -R IssueTests
|
||||
|
||||
- name: cstest features
|
||||
if: startsWith(matrix.config.build-system, 'cmake')
|
||||
run: |
|
||||
ctest --test-dir build --output-on-failure -R FeaturesTests
|
||||
|
||||
- name: Legacy integration tests
|
||||
if: startsWith(matrix.config.build-system, 'cmake')
|
||||
run: |
|
||||
ctest --test-dir build --output-on-failure -R legacy*
|
||||
|
||||
- name: Valgrind cstest
|
||||
if: startsWith(matrix.config.build-system, 'cmake') && startsWith(matrix.config.enable-asan, 'OFF')
|
||||
run: |
|
||||
sudo apt-get -y update
|
||||
sudo apt-get -y install valgrind
|
||||
valgrind cstest tests
|
||||
|
||||
- name: Comaptibility header generation
|
||||
if: startsWith(matrix.config.build-system, 'cmake')
|
||||
run: |
|
||||
cp ./include/capstone/arm64.h arm64_compat_current.h
|
||||
cp ./include/capstone/systemz_compatibility.h systemz_compat_current.h
|
||||
./suite/auto-sync/src/autosync/HeaderPatcher.py -c --v6 ./include/capstone/aarch64.h --v5 ./include/capstone/arm64.h
|
||||
./suite/auto-sync/src/autosync/HeaderPatcher.py -c --v6 ./include/capstone/systemz.h --v5 ./include/capstone/systemz_compatibility.h
|
||||
diff ./include/capstone/arm64.h arm64_compat_current.h &&
|
||||
diff ./include/capstone/systemz_compatibility.h systemz_compat_current.h
|
||||
|
||||
Windows:
|
||||
runs-on: ${{ matrix.config.os }}
|
||||
name: ${{ matrix.config.name }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
config:
|
||||
- name: 'windows x64 MSVC 64bit'
|
||||
os: windows-latest
|
||||
arch: x64
|
||||
platform: windows
|
||||
python-arch: x64
|
||||
python-version: '3.9'
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: lukka/get-cmake@latest
|
||||
name: Get CMake
|
||||
|
||||
- name: '🛠️ Win MSVC 64 setup'
|
||||
if: contains(matrix.config.name, 'MSVC 64')
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: 'x64'
|
||||
|
||||
- name: '🚧 Win MSVC 64 build'
|
||||
if: contains(matrix.config.name, 'MSVC 64')
|
||||
shell: bash
|
||||
run: |
|
||||
cmake --version
|
||||
cmake --preset=${{ matrix.config.platform }}-x64
|
||||
cmake --build --preset build-${{ matrix.config.platform }}-release
|
||||
cmake --build --preset install-${{ matrix.config.platform }}-release
|
||||
104
external/capstone/.github/workflows/auto-sync.yml
vendored
Normal file
104
external/capstone/.github/workflows/auto-sync.yml
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
name: Auto-Sync
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- "suite/auto-sync/**"
|
||||
- ".github/workflows/auto-sync.yml"
|
||||
pull_request:
|
||||
|
||||
# Stop previous runs on the same branch on new push
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-24.04
|
||||
defaults:
|
||||
run:
|
||||
working-directory: suite/auto-sync/
|
||||
steps:
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Install auto-sync package
|
||||
run: |
|
||||
pip install .
|
||||
|
||||
- name: Check formatting
|
||||
run: |
|
||||
python3.11 -m black --check src/autosync
|
||||
|
||||
- name: Install llvm-mc
|
||||
run: |
|
||||
sudo apt install llvm-18
|
||||
llvm-mc-18 --version
|
||||
FileCheck-18 --version
|
||||
sudo ln -s $(whereis -b llvm-mc-18 | grep -Eo "/.*") /usr/local/bin/llvm-mc
|
||||
sudo ln -s $(whereis -b FileCheck-18 | grep -Eo "/.*") /usr/local/bin/FileCheck
|
||||
llvm-mc --version
|
||||
FileCheck --version
|
||||
|
||||
- name: Clone llvm-capstone
|
||||
run: |
|
||||
git clone https://github.com/capstone-engine/llvm-capstone.git vendor/llvm_root
|
||||
|
||||
- name: Build llvm-tblgen
|
||||
run: |
|
||||
cd vendor/llvm_root
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -G Ninja -DCMAKE_BUILD_TYPE=Debug -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=ARC ../llvm
|
||||
cmake --build . --target llvm-tblgen --config Debug
|
||||
cd ../../../
|
||||
|
||||
- name: Test Header patcher
|
||||
run: |
|
||||
python -m unittest src/autosync/Tests/test_header_patcher.py
|
||||
python -m unittest src/autosync/Tests/test_mcupdater.py
|
||||
|
||||
- name: Remove llvm-mc
|
||||
run: |
|
||||
sudo apt remove llvm-18
|
||||
sudo rm /usr/local/bin/llvm-mc
|
||||
sudo rm /usr/local/bin/FileCheck
|
||||
|
||||
- name: Test generation of inc files
|
||||
run: |
|
||||
./src/autosync/ASUpdater.py -d -a AArch64 -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a Alpha -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a ARC -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a ARM -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a PPC -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a LoongArch -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a Mips -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a SystemZ -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a Xtensa -s IncGen
|
||||
./src/autosync/ASUpdater.py -d -a TriCore -s IncGen
|
||||
|
||||
- name: CppTranslator - Patch tests
|
||||
run: |
|
||||
python -m unittest src/autosync/cpptranslator/Tests/test_patches.py
|
||||
|
||||
- name: CppTranslator - Differ tests
|
||||
run: |
|
||||
python -m unittest src/autosync/cpptranslator/Tests/test_differ.py
|
||||
|
||||
- name: CppTranslator - Test translation
|
||||
run: |
|
||||
./src/autosync/ASUpdater.py --ci -d -a AArch64 -s Translate
|
||||
./src/autosync/ASUpdater.py --ci -d -a ARC -s Translate
|
||||
./src/autosync/ASUpdater.py --ci -d -a ARM -s Translate
|
||||
./src/autosync/ASUpdater.py --ci -d -a PPC -s Translate
|
||||
./src/autosync/ASUpdater.py --ci -d -a LoongArch -s Translate
|
||||
./src/autosync/ASUpdater.py --ci -d -a Mips -s Translate
|
||||
./src/autosync/ASUpdater.py --ci -d -a SystemZ -s Translate
|
||||
./src/autosync/ASUpdater.py --ci -d -a Xtensa -s Translate
|
||||
./src/autosync/ASUpdater.py --ci -d -a TriCore -s Translate
|
||||
174
external/capstone/.github/workflows/build-wheels-publish.yml
vendored
Normal file
174
external/capstone/.github/workflows/build-wheels-publish.yml
vendored
Normal file
@@ -0,0 +1,174 @@
|
||||
# SPDX-FileCopyrightText: 2024 Antelox <anteloxrce@gmail.com>
|
||||
# SPDX-License-Identifier: BSD-3
|
||||
|
||||
name: Build and publish wheels with cibuildwheel
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
debugMode:
|
||||
description: 'Debug Mode'
|
||||
required: false
|
||||
default: ''
|
||||
type: choice
|
||||
options:
|
||||
- '0'
|
||||
- '1'
|
||||
|
||||
push:
|
||||
paths-ignore:
|
||||
- ".gitignore"
|
||||
- "CREDITS.TXT"
|
||||
- "ChangeLog"
|
||||
- "README.md"
|
||||
- "docs/**"
|
||||
pull_request:
|
||||
|
||||
# Automatically cancel any previous running workflow on new push
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
|
||||
cancel-in-progress: true
|
||||
|
||||
env:
|
||||
# Enable DEBUG flag either according to the tag release or manual override
|
||||
CAPSTONE_DEBUG: ${{ inputs.debugMode != '' && inputs.debugMode || startsWith(github.ref, 'refs/tags') && '0' || '1' }}
|
||||
|
||||
jobs:
|
||||
build_and_test_wheels:
|
||||
name: Building on ${{ matrix.os }} - ${{ matrix.arch }} - ${{ matrix.cibw_build }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
# NOTE: Making this to parallelize and speed up workflow
|
||||
# i686 - manylinux
|
||||
# - { os: ubuntu-latest, arch: i686, cibw_build: 'cp*-manylinux*', cibw_skip: '*36* *37*' }
|
||||
# i686 - musllinux
|
||||
# - { os: ubuntu-latest, arch: i686, cibw_build: 'cp*-musllinux*', cibw_skip: '*36* *37*' }
|
||||
# x86_64 - manylinux
|
||||
- { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp*-manylinux*', cibw_skip: '*36* *37*' }
|
||||
# x86_64 - musllinux
|
||||
- { os: ubuntu-latest, arch: x86_64, cibw_build: 'cp*-musllinux*', cibw_skip: '*36* *37*' }
|
||||
# aarch64 - manylinux
|
||||
- { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp*-manylinux*', cibw_skip: '*36* *37*' }
|
||||
# aarch64 - musllinux
|
||||
- { os: ubuntu-24.04-arm, arch: aarch64, cibw_build: 'cp*-musllinux*', cibw_skip: '*36* *37*' }
|
||||
# macos - x86_64
|
||||
- { os: macos-13, arch: x86_64, cibw_build: 'cp*', cibw_skip: '*36* *37*' }
|
||||
# macos - arm64
|
||||
- { os: macos-latest, arch: arm64, cibw_build: 'cp*', cibw_skip: '*36* *37*' }
|
||||
# windows - amd64
|
||||
- { os: windows-latest, arch: AMD64, cibw_build: 'cp*', cibw_skip: '*36* *37*' }
|
||||
# windows - x86
|
||||
# - { os: windows-latest, arch: x86, cibw_build: 'cp*', cibw_skip: '*36* *37*' }
|
||||
# windows - arm64
|
||||
- { os: windows-latest, arch: ARM64, cibw_build: 'cp*', cibw_skip: '*36* *37* *38*' }
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
# https://github.com/actions/upload-artifact/issues/22
|
||||
- name: Prepare a unique name for Artifacts
|
||||
shell: bash
|
||||
run: |
|
||||
# replace not-allowed chars with dash
|
||||
name="cibw-wheels-${{ matrix.os }}-${{ matrix.arch }}-${{ matrix.cibw_build }}"
|
||||
name=$(echo -n "$name" | sed -e 's/[ \t:\/\\"<>|*?]/-/g' -e 's/--*/-/g' | sed -e 's/\-$//')
|
||||
echo "ARTIFACT_NAME=$name" >> $GITHUB_ENV
|
||||
|
||||
# https://cibuildwheel.pypa.io/en/stable/faq/#macos-building-cpython-38-wheels-on-arm64
|
||||
- uses: actions/setup-python@v5
|
||||
if: runner.os == 'macOS' && runner.arch == 'ARM64'
|
||||
with:
|
||||
python-version: 3.8
|
||||
|
||||
- name: '🛠️ Win MSVC 32 dev cmd setup'
|
||||
if: runner.os == 'Windows' && matrix.arch == 'x86'
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: x86
|
||||
|
||||
- name: '🛠️ Win MSVC 64 dev cmd setup'
|
||||
if: runner.os == 'Windows' && matrix.arch == 'AMD64'
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: x64
|
||||
|
||||
- name: '🛠️ Win MSVC ARM64 dev cmd setup'
|
||||
if: runner.os == 'Windows' && matrix.arch == 'ARM64'
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: amd64_arm64
|
||||
|
||||
- name: '🛠️ Set up QEMU'
|
||||
if: runner.os == 'Linux' && matrix.arch == 'i686'
|
||||
uses: docker/setup-qemu-action@v3
|
||||
|
||||
- name: '🚧 cibuildwheel run'
|
||||
uses: pypa/cibuildwheel@v2.23.3
|
||||
env:
|
||||
CIBW_BUILD_FRONTEND: build
|
||||
CIBW_BUILD: ${{ matrix.cibw_build }}
|
||||
CIBW_SKIP: ${{ matrix.cibw_skip }}
|
||||
CIBW_ARCHS: ${{ matrix.arch }}
|
||||
CIBW_ENVIRONMENT: DEBUG=${{ env.CAPSTONE_DEBUG }}
|
||||
CIBW_ENVIRONMENT_PASS_LINUX: DEBUG
|
||||
# https://cibuildwheel.pypa.io/en/stable/faq/#windows-arm64
|
||||
# https://github.com/pypa/cibuildwheel/pull/1169
|
||||
CIBW_TEST_SKIP: "*-win_arm64 cp38-macosx_*:arm64"
|
||||
CIBW_TEST_COMMAND: >
|
||||
python -m pip install {package}/cstest_py &&
|
||||
python {project}/suite/run_tests.py
|
||||
with:
|
||||
package-dir: bindings/python
|
||||
output-dir: wheelhouse
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ env.ARTIFACT_NAME }}
|
||||
path: ./wheelhouse/*.whl
|
||||
|
||||
make_sdist:
|
||||
name: Make SDist
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
|
||||
- name: Build SDist
|
||||
run: |
|
||||
python3 -m pip install -U pip build
|
||||
python3 -m build --sdist bindings/python
|
||||
python3 -m pip install bindings/python/dist/*.tar.gz
|
||||
python3 -c 'import capstone; print(f"Capstone version installed from sdist: {capstone.__version__}")'
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: sdist-archive
|
||||
path: bindings/python/dist/*.tar.gz
|
||||
|
||||
publish:
|
||||
needs: [ build_and_test_wheels, make_sdist ]
|
||||
environment: pypi
|
||||
permissions:
|
||||
id-token: write
|
||||
runs-on: ubuntu-latest
|
||||
if: startsWith(github.ref, 'refs/tags')
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
merge-multiple: true
|
||||
path: dist
|
||||
|
||||
- name: Show downloaded artifacts
|
||||
run: ls -laR dist
|
||||
|
||||
- name: '📦 Publish distribution to PyPI'
|
||||
uses: pypa/gh-action-pypi-publish@release/v1
|
||||
if: ${{ success() }}
|
||||
with:
|
||||
user: __token__
|
||||
password: ${{ secrets.pypi_pass }}
|
||||
103
external/capstone/.github/workflows/build_release.yml
vendored
Normal file
103
external/capstone/.github/workflows/build_release.yml
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
name: Build Source Release
|
||||
|
||||
# Trigger whenever a release is created
|
||||
on:
|
||||
release:
|
||||
types:
|
||||
- created
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name: build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Create archive
|
||||
id: archive
|
||||
run: |
|
||||
VERSION=${{ github.event.release.tag_name }}
|
||||
PKGNAME="capstone-$VERSION"
|
||||
SHASUM=$PKGNAME.tar.xz.sha256
|
||||
mkdir -p /tmp/$PKGNAME
|
||||
rsync -a --exclude=build --exclude='.*' ./ /tmp/$PKGNAME/
|
||||
TARBALL=$PKGNAME.tar.xz
|
||||
tar -C /tmp -cJf $TARBALL $PKGNAME
|
||||
sha256sum $TARBALL > $SHASUM
|
||||
echo "tarball=$TARBALL" >> $GITHUB_OUTPUT
|
||||
echo "shasum=$SHASUM" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload tarball and shasum to release
|
||||
uses: softprops/action-gh-release@v2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.event.release.tag_name }}
|
||||
files: |
|
||||
${{ steps.archive.outputs.tarball }}
|
||||
${{ steps.archive.outputs.shasum }}
|
||||
|
||||
- name: Configure CMake and build the project
|
||||
run: |
|
||||
cmake -B build \
|
||||
-DPROJECT_VERSION=${{ github.event.release.tag_name }} \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DCAPSTONE_BUILD_SHARED_LIBS=1 \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr
|
||||
cmake --build build
|
||||
|
||||
- name: Package DEB and RPM package
|
||||
run: |
|
||||
cd build
|
||||
cpack -G DEB
|
||||
cpack -G RPM
|
||||
|
||||
- name: Upload debian package to release
|
||||
uses: softprops/action-gh-release@v2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.event.release.tag_name }}
|
||||
files: |
|
||||
./build/*.deb
|
||||
./build/*.rpm
|
||||
|
||||
build_windows:
|
||||
name: build_windows
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: Win MSVC 64 dev cmd setup
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: x64
|
||||
|
||||
- name: Configure CMake and build the project
|
||||
run: |
|
||||
cmake -B build `
|
||||
-T "ClangCL,host=x64" `
|
||||
-A x64 `
|
||||
-DPROJECT_VERSION="${{ github.event.release.tag_name }}" `
|
||||
-DCMAKE_BUILD_TYPE=Release `
|
||||
-DCAPSTONE_BUILD_SHARED_LIBS=1
|
||||
cmake --build build --config Release
|
||||
cmake --install build --config Release
|
||||
|
||||
- name: Package NSIS installer
|
||||
run: |
|
||||
cd build
|
||||
cpack -G NSIS
|
||||
|
||||
- name: Upload NSIS installer to release
|
||||
uses: softprops/action-gh-release@v2
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
with:
|
||||
tag_name: ${{ github.event.release.tag_name }}
|
||||
files: |
|
||||
./build/*.exe
|
||||
48
external/capstone/.github/workflows/clang-tidy.yml
vendored
Normal file
48
external/capstone/.github/workflows/clang-tidy.yml
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
name: Run clang-tidy
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- '**.c'
|
||||
- '**.h'
|
||||
pull_request:
|
||||
|
||||
# Stop previous runs on the same branch on new push
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
name: clang-tidy
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
- name: Install clang-tidy
|
||||
run: |
|
||||
sudo apt install clang-tidy
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
mkdir build && cd build
|
||||
CC=clang cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON -DCAPSTONE_BUILD_SHARED_LIBS=1 ..
|
||||
CC=clang sudo cmake --build . --config Release
|
||||
cd ..
|
||||
|
||||
- name: Install clang-tidy-18
|
||||
run: |
|
||||
sudo apt install clang-tidy-18
|
||||
|
||||
- name: Check for warnings
|
||||
env:
|
||||
base_sha: ${{ github.event.pull_request.base.sha }}
|
||||
head_sha: ${{ github.event.pull_request.head.sha }}
|
||||
run: |
|
||||
./run-clang-tidy.sh build
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: ${{ failure() }}
|
||||
with:
|
||||
path: ct-warnings.txt
|
||||
60
external/capstone/.github/workflows/coverity.yml
vendored
Normal file
60
external/capstone/.github/workflows/coverity.yml
vendored
Normal file
@@ -0,0 +1,60 @@
|
||||
name: Coverity Scan
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * 1' # On every Monday at midnight UTC
|
||||
|
||||
|
||||
# Automatically cancel any previous workflow on new push.
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
latest:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Determine current repository
|
||||
id: "determine-repo"
|
||||
run: echo "repo=${GITHUB_REPOSITORY}" >> $GITHUB_OUTPUT
|
||||
|
||||
- uses: actions/checkout@v4
|
||||
- name: Download Coverity Build Tool
|
||||
run: |
|
||||
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=capstone-next" -O cov-analysis-linux64.tar.gz
|
||||
mkdir cov-analysis-linux64
|
||||
tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
|
||||
env:
|
||||
TOKEN: ${{ secrets.COVERITY_TOKEN }}
|
||||
|
||||
- name: Installing build dependencies
|
||||
run: |
|
||||
sudo apt-get --assume-yes install cmake
|
||||
|
||||
- name: Setup
|
||||
run: |
|
||||
cmake . -B build -DCAPSTONE_BUILD_CSTEST=ON
|
||||
|
||||
- name: Build with cov-build
|
||||
run: |
|
||||
export PATH=`pwd`/cov-analysis-linux64/bin:$PATH
|
||||
cov-build --dir cov-int cmake --build build
|
||||
tar czvf capstone.tgz cov-int
|
||||
|
||||
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
path: capstone.tgz
|
||||
|
||||
- name: Submit the result to Coverity Scan
|
||||
run: |
|
||||
curl \
|
||||
--form token=$TOKEN \
|
||||
--form email=capstone.engine@gmail.com \
|
||||
--form file=@capstone.tgz \
|
||||
--form version=trunk \
|
||||
--form description="capstone" \
|
||||
https://scan.coverity.com/builds?project=capstone-next
|
||||
env:
|
||||
TOKEN: ${{ secrets.COVERITY_TOKEN }}
|
||||
if: steps.determine-repo.outputs.repo == 'capstone-engine/capstone'
|
||||
23
external/capstone/.github/workflows/fuzz.yml
vendored
Normal file
23
external/capstone/.github/workflows/fuzz.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: CIFuzz
|
||||
on: [pull_request]
|
||||
jobs:
|
||||
Fuzzing:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Build Fuzzers
|
||||
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
|
||||
with:
|
||||
oss-fuzz-project-name: 'capstone'
|
||||
dry-run: false
|
||||
- name: Run Fuzzers
|
||||
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
|
||||
with:
|
||||
oss-fuzz-project-name: 'capstone'
|
||||
fuzz-seconds: 600
|
||||
dry-run: false
|
||||
- name: Upload Crash
|
||||
uses: actions/upload-artifact@v4
|
||||
if: failure()
|
||||
with:
|
||||
name: artifacts
|
||||
path: ./out/artifacts
|
||||
20
external/capstone/.github/workflows/labeler.yml
vendored
Normal file
20
external/capstone/.github/workflows/labeler.yml
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
name: "Pull Request Labeler"
|
||||
on:
|
||||
- pull_request_target
|
||||
|
||||
# Automatically cancel any previous workflow on new push.
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/labeler@v4
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
Reference in New Issue
Block a user