diff --git a/.github/workflows/build_windows.yml b/.github/workflows/build_windows.yml index ffee1965..1297de86 100644 --- a/.github/workflows/build_windows.yml +++ b/.github/workflows/build_windows.yml @@ -3,6 +3,8 @@ name: Build CCExtractor on Windows env: RUSTFLAGS: -Ctarget-feature=+crt-static VCPKG_DEFAULT_TRIPLET: x64-windows-static + VCPKG_DEFAULT_BINARY_CACHE: C:\vcpkg\.cache + VCPKG_COMMIT: fba75d09065fcc76a25dcf386b1d00d33f5175af on: workflow_dispatch: @@ -22,36 +24,45 @@ on: jobs: build_release: - runs-on: windows-2019 + runs-on: windows-2022 steps: - name: Check out repository uses: actions/checkout@v4 - name: Setup MSBuild.exe - uses: microsoft/setup-msbuild@v2.0.0 - - name: Install llvm and clang - run: choco install llvm gpac + uses: microsoft/setup-msbuild@v1.3.1 + with: + msbuild-architecture: x64 + - name: Install gpac + run: choco install gpac --version 2.4.0 + - name: Setup vcpkg + run: mkdir C:\vcpkg\.cache + - name: Cache vcpkg + id: cache + uses: actions/cache@v3 + with: + path: | + C:\vcpkg\.cache + key: vcpkg-${{ runner.os }}-${{ env.VCPKG_COMMIT }} + - name: Build vcpkg + run: | + git clone https://github.com/microsoft/vcpkg + ./vcpkg/bootstrap-vcpkg.bat + - name: Install dependencies + run: ${{ github.workspace }}/vcpkg/vcpkg.exe install --x-install-root ${{ github.workspace }}/vcpkg/installed/ + working-directory: windows - uses: actions-rs/toolchain@v1 with: toolchain: stable override: true - name: Install Win 10 SDK uses: ilammy/msvc-dev-cmd@v1 - - name: Setup Vcpkg - id: vcpkg - uses: friendlyanon/setup-vcpkg@v1 - with: - committish: "2023.08.09" - cache-version: "3" - ignore-reserve-cache-error: true - - name: Install dependencies - run: cd vcpkg && vcpkg integrate install && vcpkg install leptonica tesseract ffmpeg --triplet x64-windows-static - name: build Release-Full env: LIBCLANG_PATH: "C:\\Program Files\\LLVM\\lib" LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config" CARGO_TARGET_DIR: "..\\..\\windows" BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0 - VCPKG_ROOT: ${{ github.workspace }}\vcpkg + VCPKG_ROOT: ${{ github.workspace }}/vcpkg run: msbuild ccextractor.sln /p:Configuration=Release-Full /p:Platform=x64 working-directory: ./windows - name: Display version information @@ -64,23 +75,32 @@ jobs: ./windows/x64/Release-Full/ccextractorwinfull.exe ./windows/x64/Release-Full/*.dll build_debug: - runs-on: windows-2019 + runs-on: windows-2022 steps: - name: Check out repository uses: actions/checkout@v4 - name: Setup MSBuild.exe - uses: microsoft/setup-msbuild@v2.0.0 - - name: Install llvm and clang - run: choco install llvm gpac - - name: Setup Vcpkg - id: vcpkg - uses: friendlyanon/setup-vcpkg@v1 + uses: microsoft/setup-msbuild@v1.3.1 with: - committish: "2023.08.09" - cache-version: "3" - ignore-reserve-cache-error: true + msbuild-architecture: x64 + - name: Install gpac + run: choco install gpac --version 2.4.0 + - name: Setup vcpkg + run: mkdir C:\vcpkg\.cache + - name: Cache vcpkg + id: cache + uses: actions/cache@v3 + with: + path: | + C:\vcpkg\.cache + key: vcpkg-${{ runner.os }}-${{ env.VCPKG_COMMIT }} + - name: Build vcpkg + run: | + git clone https://github.com/microsoft/vcpkg + ./vcpkg/bootstrap-vcpkg.bat - name: Install dependencies - run: cd vcpkg && vcpkg integrate install && vcpkg install leptonica tesseract ffmpeg --triplet x64-windows-static + run: ${{ github.workspace }}/vcpkg/vcpkg.exe install --x-install-root ${{ github.workspace }}/vcpkg/installed/ + working-directory: windows - uses: actions-rs/toolchain@v1 with: toolchain: stable @@ -93,10 +113,11 @@ jobs: LLVM_CONFIG_PATH: "C:\\Program Files\\LLVM\\bin\\llvm-config" CARGO_TARGET_DIR: "..\\..\\windows" BINDGEN_EXTRA_CLANG_ARGS: -fmsc-version=0 - VCPKG_ROOT: ${{ github.workspace }}\vcpkg + VCPKG_ROOT: ${{ github.workspace }}/vcpkg run: msbuild ccextractor.sln /p:Configuration=Debug-Full /p:Platform=x64 working-directory: ./windows - name: Display version information + continue-on-error: true run: ./ccextractorwinfull.exe --version working-directory: ./windows/x64/Debug-Full - uses: actions/upload-artifact@v4 diff --git a/windows/.gitignore b/windows/.gitignore new file mode 100644 index 00000000..6b7a5ab6 --- /dev/null +++ b/windows/.gitignore @@ -0,0 +1,2 @@ +ccextractor +vcpkg_installed \ No newline at end of file diff --git a/windows/ccextractor.vcxproj b/windows/ccextractor.vcxproj index d2190f3c..74f29588 100644 --- a/windows/ccextractor.vcxproj +++ b/windows/ccextractor.vcxproj @@ -62,10 +62,8 @@ - - + + @@ -188,21 +186,26 @@ - + {0F0063C4-BCBC-4379-A6D5-84A5669C940A} ccextractor Win32Proj - 10.0.19041.0 + 10.0.22621.0 + + + true + x64-windows-static + true Application - v142 + v143 Application - v142 + v143 @@ -278,14 +281,14 @@ xcopy /y "$(ProjectDir)\dll\vcruntime140_1.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\libgpac.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\OpenSVCDecoder.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\postproc-56.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\postproc-57.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\swresample-4.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avfilter-8.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\swscale-6.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avdevice-59.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avcodec-59.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avformat-59.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avutil-57.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avfilter-9.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\swscale-7.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avdevice-60.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avcodec-60.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avformat-60.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avutil-58.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\libsslMD.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\libcryptoMD.dll" "$(OutDir)" @@ -325,14 +328,14 @@ xcopy /y "$(ProjectDir)\dll\vcruntime140_1.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\libgpac.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\OpenSVCDecoder.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\postproc-56.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\postproc-57.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\swresample-4.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avfilter-8.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\swscale-6.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avdevice-59.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avcodec-59.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avformat-59.dll" "$(OutDir)" - xcopy /y "C:\Program Files\GPAC\avutil-57.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avfilter-9.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\swscale-7.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avdevice-60.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avcodec-60.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avformat-60.dll" "$(OutDir)" + xcopy /y "C:\Program Files\GPAC\avutil-58.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\libsslMD.dll" "$(OutDir)" xcopy /y "C:\Program Files\GPAC\libcryptoMD.dll" "$(OutDir)" diff --git a/windows/ccextractor.vcxproj.filters b/windows/ccextractor.vcxproj.filters index 27083f55..8a7029ba 100644 --- a/windows/ccextractor.vcxproj.filters +++ b/windows/ccextractor.vcxproj.filters @@ -183,108 +183,6 @@ Header Files\lib_ccx\ccx_encoders - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - Header Files @@ -300,39 +198,6 @@ Header Files - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - Header Files - Header Files @@ -381,603 +246,379 @@ Header Files + + Header Files + + + Header Files + + + Header Files + + + Header Files + - - Source Files - - - Source Files\ccx_decoders - - - Source Files\ccx_decoders - - - Source Files\ccx_decoders - - - Source Files\ccx_decoders - - - Source Files\ccx_decoders - - - Source Files\ccx_decoders - - - Source Files\ccx_common - - - Source Files\ccx_common - - - Source Files\ccx_common - - - Source Files\ccx_common - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\ccx_common - Source Files\ccx_decoders - - Source Files - - - Source Files - - - Source Files\ccx_decoders - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\ccx_decoders - - - Source Files\ccx_decoders - - - Source Files\ccx_decoders - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files\lib_ccx - - - Source Files - - - Source Files\ccx_encoders - - - Source Files\ccx_encoders - Source Files\ccx_decoders Source Files\ccx_decoders - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - + Source Files - - Source Files\zlib - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - + Source Files - + Source Files - - Header Files\lib_ccx - + \ No newline at end of file diff --git a/windows/vcpkg.json b/windows/vcpkg.json new file mode 100644 index 00000000..caef9636 --- /dev/null +++ b/windows/vcpkg.json @@ -0,0 +1,10 @@ +{ + "name": "ccextractor", + "version": "1.0.0", + "dependencies": [ + "leptonica", + "tesseract", + "ffmpeg" + ], + "builtin-baseline": "fba75d09065fcc76a25dcf386b1d00d33f5175af" +} \ No newline at end of file