From 817032a2a05df87c42d022fdd54f2466967abad1 Mon Sep 17 00:00:00 2001 From: Carlos Fernandez Date: Mon, 16 Mar 2026 21:55:14 -0700 Subject: [PATCH] ci: add dual build artifacts for Windows (min-rust vs migrations) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add $(ExtraDefines) to PreprocessorDefinitions in all 4 configurations of the vcxproj. This allows passing /p:ExtraDefines=DISABLE_RUST from the MSBuild command line to use C code paths for switchable modules. The Windows CI now produces two Release artifacts per architecture: - "CCExtractor Windows x64 Release build" — min Rust (DISABLE_RUST) - "CCExtractor Windows x64 Release build (with migrations)" — max Rust The migrations build uses /t:Rebuild to do a clean rebuild without DISABLE_RUST after the min-rust build completes. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/build_windows.yml | 25 ++++++++++++++++++++++--- windows/ccextractor.vcxproj | 8 ++++---- 2 files changed, 26 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index fbc4d4b65..de654226c 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -113,15 +113,15 @@ jobs: with: arch: ${{ matrix.arch }} - # Build Release-Full - - name: Build Release-Full + # Build Release-Full (min Rust — C paths where available) + - name: Build Release-Full (min Rust) env: LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib" LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config" BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0 VCPKG_ROOT: ${{ github.workspace }}/vcpkg VCPKG_DEFAULT_TRIPLET: ${{ matrix.vcpkg_triplet }} - run: msbuild ccextractor.sln /p:Configuration=Release-Full /p:Platform=${{ matrix.platform }} /p:GpacDir="${{ matrix.gpac_install }}" + run: msbuild ccextractor.sln /p:Configuration=Release-Full /p:Platform=${{ matrix.platform }} /p:GpacDir="${{ matrix.gpac_install }}" /p:ExtraDefines=DISABLE_RUST working-directory: ./windows - name: Display Release version information @@ -140,6 +140,25 @@ jobs: ./windows/${{ matrix.outdir }}Release-Full/ccextractorwinfull.exe ./windows/${{ matrix.outdir }}Release-Full/*.dll + # Build Release-Full (with migrations — max Rust) + - name: Build Release-Full (with migrations) + env: + LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib" + LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config" + BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0 + VCPKG_ROOT: ${{ github.workspace }}/vcpkg + VCPKG_DEFAULT_TRIPLET: ${{ matrix.vcpkg_triplet }} + run: msbuild ccextractor.sln /t:Rebuild /p:Configuration=Release-Full /p:Platform=${{ matrix.platform }} /p:GpacDir="${{ matrix.gpac_install }}" + working-directory: ./windows + + - name: Upload Release artifact (with migrations) + uses: actions/upload-artifact@v7 + with: + name: CCExtractor Windows ${{ matrix.arch }} Release build (with migrations) + path: | + ./windows/${{ matrix.outdir }}Release-Full/ccextractorwinfull.exe + ./windows/${{ matrix.outdir }}Release-Full/*.dll + # Build Debug-Full (reuses cached Cargo artifacts) - name: Build Debug-Full env: diff --git a/windows/ccextractor.vcxproj b/windows/ccextractor.vcxproj index 40b10f3db..03271462c 100644 --- a/windows/ccextractor.vcxproj +++ b/windows/ccextractor.vcxproj @@ -289,7 +289,7 @@ ..\src\thirdparty\freetype\include;..\src;..\src\thirdparty\win_spec_incld;..\src\lib_ccx;..\src\thirdparty\lib_hash;..\src\lib_ccx\zvbi;..\src\thirdparty\win_iconv;..\src\thirdparty\;..\src;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include; "$(GpacDir)\sdk\include";%(AdditionalIncludeDirectories) - SEGMENT_BY_FILE_TIME;ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;ENABLE_OCR;WIN32;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions) + $(ExtraDefines);SEGMENT_BY_FILE_TIME;ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;ENABLE_OCR;WIN32;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions) Default MultiThreadedDebug @@ -337,7 +337,7 @@ ..\src\thirdparty\freetype\include;..\src;..\src\thirdparty\win_spec_incld;..\src\lib_ccx;..\src\thirdparty\lib_hash;..\src\lib_ccx\zvbi;..\src\thirdparty\win_iconv;..\src\thirdparty\;..\src;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include; "$(GpacDir)\sdk\include";%(AdditionalIncludeDirectories) - SEGMENT_BY_FILE_TIME;ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;ENABLE_OCR;WIN32;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions) + $(ExtraDefines);SEGMENT_BY_FILE_TIME;ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;ENABLE_OCR;WIN32;_DEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions) Default MultiThreadedDebug @@ -384,7 +384,7 @@ ..\src\thirdparty\freetype\include;..\src;..\src\thirdparty\win_spec_incld;..\src\lib_ccx;..\src\thirdparty\lib_hash;..\src\lib_ccx\zvbi;..\src\thirdparty\win_iconv;..\src\thirdparty\;..\src;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include; "$(GpacDir)\sdk\include";%(AdditionalIncludeDirectories) - ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;VERSION_FILE_PRESENT;ENABLE_OCR;WIN32;NDEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions) + $(ExtraDefines);ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;VERSION_FILE_PRESENT;ENABLE_OCR;WIN32;NDEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions) MultiThreaded @@ -432,7 +432,7 @@ ..\src\thirdparty\freetype\include;..\src;..\src\thirdparty\win_spec_incld;..\src\lib_ccx;..\src\thirdparty\lib_hash;..\src\lib_ccx\zvbi;..\src\thirdparty\win_iconv;..\src\thirdparty\;..\src;$(VCPKG_ROOT)\installed\$(VCPKG_DEFAULT_TRIPLET)\include; "$(GpacDir)\sdk\include";%(AdditionalIncludeDirectories) - ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;VERSION_FILE_PRESENT;ENABLE_OCR;WIN32;NDEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions) + $(ExtraDefines);ENABLE_HARDSUBX;FT2_BUILD_LIBRARY;GPAC_DISABLE_VTT;GPAC_DISABLE_OD_DUMP;VERSION_FILE_PRESENT;ENABLE_OCR;WIN32;NDEBUG;_CONSOLE;_FILE_OFFSET_BITS=64;GPAC_DISABLE_REMOTERY;GPAC_DISABLE_ZLIB;%(PreprocessorDefinitions) MultiThreaded