Skip to content

Commit 817032a

Browse files
cfsmp3claude
andcommitted
ci: add dual build artifacts for Windows (min-rust vs migrations)
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) <noreply@anthropic.com>
1 parent 92389cf commit 817032a

2 files changed

Lines changed: 26 additions & 7 deletions

File tree

.github/workflows/build_windows.yml

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -113,15 +113,15 @@ jobs:
113113
with:
114114
arch: ${{ matrix.arch }}
115115

116-
# Build Release-Full
117-
- name: Build Release-Full
116+
# Build Release-Full (min Rust — C paths where available)
117+
- name: Build Release-Full (min Rust)
118118
env:
119119
LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib"
120120
LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config"
121121
BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0
122122
VCPKG_ROOT: ${{ github.workspace }}/vcpkg
123123
VCPKG_DEFAULT_TRIPLET: ${{ matrix.vcpkg_triplet }}
124-
run: msbuild ccextractor.sln /p:Configuration=Release-Full /p:Platform=${{ matrix.platform }} /p:GpacDir="${{ matrix.gpac_install }}"
124+
run: msbuild ccextractor.sln /p:Configuration=Release-Full /p:Platform=${{ matrix.platform }} /p:GpacDir="${{ matrix.gpac_install }}" /p:ExtraDefines=DISABLE_RUST
125125
working-directory: ./windows
126126

127127
- name: Display Release version information
@@ -140,6 +140,25 @@ jobs:
140140
./windows/${{ matrix.outdir }}Release-Full/ccextractorwinfull.exe
141141
./windows/${{ matrix.outdir }}Release-Full/*.dll
142142
143+
# Build Release-Full (with migrations — max Rust)
144+
- name: Build Release-Full (with migrations)
145+
env:
146+
LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib"
147+
LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config"
148+
BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0
149+
VCPKG_ROOT: ${{ github.workspace }}/vcpkg
150+
VCPKG_DEFAULT_TRIPLET: ${{ matrix.vcpkg_triplet }}
151+
run: msbuild ccextractor.sln /t:Rebuild /p:Configuration=Release-Full /p:Platform=${{ matrix.platform }} /p:GpacDir="${{ matrix.gpac_install }}"
152+
working-directory: ./windows
153+
154+
- name: Upload Release artifact (with migrations)
155+
uses: actions/upload-artifact@v7
156+
with:
157+
name: CCExtractor Windows ${{ matrix.arch }} Release build (with migrations)
158+
path: |
159+
./windows/${{ matrix.outdir }}Release-Full/ccextractorwinfull.exe
160+
./windows/${{ matrix.outdir }}Release-Full/*.dll
161+
143162
# Build Debug-Full (reuses cached Cargo artifacts)
144163
- name: Build Debug-Full
145164
env:

windows/ccextractor.vcxproj

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@
289289
..\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;
290290
"$(GpacDir)\sdk\include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
291291
<PreprocessorDefinitions>
292-
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)</PreprocessorDefinitions>
292+
$(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)</PreprocessorDefinitions>
293293
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
294294
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
295295
<PrecompiledHeader>
@@ -337,7 +337,7 @@
337337
..\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;
338338
"$(GpacDir)\sdk\include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
339339
<PreprocessorDefinitions>
340-
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)</PreprocessorDefinitions>
340+
$(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)</PreprocessorDefinitions>
341341
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
342342
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
343343
<PrecompiledHeader>
@@ -384,7 +384,7 @@
384384
..\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;
385385
"$(GpacDir)\sdk\include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
386386
<PreprocessorDefinitions>
387-
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)</PreprocessorDefinitions>
387+
$(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)</PreprocessorDefinitions>
388388
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
389389
<PrecompiledHeader>
390390
</PrecompiledHeader>
@@ -432,7 +432,7 @@
432432
..\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;
433433
"$(GpacDir)\sdk\include";%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
434434
<PreprocessorDefinitions>
435-
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)</PreprocessorDefinitions>
435+
$(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)</PreprocessorDefinitions>
436436
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
437437
<PrecompiledHeader>
438438
</PrecompiledHeader>

0 commit comments

Comments
 (0)