From d59d33afbb00d510e393a6a3e85c926eec3c6599 Mon Sep 17 00:00:00 2001 From: Rot127 Date: Thu, 6 Feb 2025 06:02:39 -0500 Subject: [PATCH] Fix sdist build and add CI job for testing it. --- .github/workflows/python-publish-release.yml | 8 ++++++++ CMakeLists.txt | 2 +- bindings/python/setup.py | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-publish-release.yml b/.github/workflows/python-publish-release.yml index ebf0a2a386..6348daca26 100644 --- a/.github/workflows/python-publish-release.yml +++ b/.github/workflows/python-publish-release.yml @@ -62,6 +62,14 @@ jobs: cd bindings/python pipx run build --sdist + - name: Test build with sdist + run: | + TMP_DIR=$(mktemp -d) + tar -xf bindings/python/dist/*.tar.gz -C $TMP_DIR/ + cd $TMP_DIR/*/src + cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON -DCAPSTONE_BUILD_TESTS=OFF -DCAPSTONE_BUILD_CSTOOL=OFF -B build + cmake --build build + - uses: actions/upload-artifact@v4 with: path: bindings/python/dist/*.tar.gz diff --git a/CMakeLists.txt b/CMakeLists.txt index 67a46f48b3..aa19513770 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -850,4 +850,4 @@ if(CAPSTONE_BUILD_CSTEST) endif() set(CPACK_PROJECT_CONFIG_FILE "${CMAKE_SOURCE_DIR}/CPackConfig.cmake") -include(CPackConfig.txt) \ No newline at end of file +include(CPackConfig.txt) diff --git a/bindings/python/setup.py b/bindings/python/setup.py index ef1eeb9a2d..e256420271 100755 --- a/bindings/python/setup.py +++ b/bindings/python/setup.py @@ -99,6 +99,8 @@ def copy_sources(): src.extend(glob.glob(os.path.join(BUILD_DIR, "make.sh"))) src.extend(glob.glob(os.path.join(BUILD_DIR, "CMakeLists.txt"))) src.extend(glob.glob(os.path.join(BUILD_DIR, "pkgconfig.mk"))) + src.extend(glob.glob(os.path.join(BUILD_DIR, "CPackConfig.txt"))) + src.extend(glob.glob(os.path.join(BUILD_DIR, "CPackConfig.cmake"))) for filename in src: outpath = os.path.join(SRC_DIR, os.path.basename(filename))