From 09a9219c9e74c63911ad8e991d909052c1c0f492 Mon Sep 17 00:00:00 2001 From: Ronald M Zielaznicki Date: Fri, 18 Oct 2024 16:06:44 -0400 Subject: [PATCH 1/7] fix(#1142) --- build.zig | 2 +- msvc.zig | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/build.zig b/build.zig index 6c2d45d..d91cc2a 100644 --- a/build.zig +++ b/build.zig @@ -254,7 +254,7 @@ pub fn build(b: *Build) !void { // For some reason, msvc target needs atls.lib to be in the 'zig build' working directory. // Addomg tp the library path like this has no effect: - dxc_exe.addLibraryPath(b.path(lib_dir_path)); + dxc_exe.addLibraryPath(.{ .cwd_relative = lib_dir_path }); // So instead we must copy the lib into this directory: try std.fs.cwd().copyFile(lib_path, std.fs.cwd(), "atls.lib", .{}); try std.fs.cwd().copyFile(pdb_path, std.fs.cwd(), pdb_name, .{}); diff --git a/msvc.zig b/msvc.zig index 307818e..0c4c455 100644 --- a/msvc.zig +++ b/msvc.zig @@ -135,7 +135,7 @@ const RegistryUtf8 = struct { const value_utf16le = try registry_utf16le.getString(allocator, subkey_utf16le, value_name_utf16le); defer allocator.free(value_utf16le); - const value_utf8: []u8 = std.unicode.utf16leToUtf8Alloc(allocator, value_utf16le) catch |err| switch (err) { + const value_utf8: []u8 = std.unicode.utf16LeToUtf8Alloc(allocator, value_utf16le) catch |err| switch (err) { error.OutOfMemory => return error.OutOfMemory, else => return error.StringNotFound, }; @@ -368,7 +368,7 @@ pub const Windows10Sdk = struct { error.OutOfMemory => return error.OutOfMemory, }; - if (path_maybe_with_trailing_slash.len > std.fs.MAX_PATH_BYTES or !std.fs.path.isAbsolute(path_maybe_with_trailing_slash)) { + if (path_maybe_with_trailing_slash.len > std.fs.max_path_bytes or !std.fs.path.isAbsolute(path_maybe_with_trailing_slash)) { allocator.free(path_maybe_with_trailing_slash); return error.PathTooLong; } @@ -414,7 +414,7 @@ pub const Windows10Sdk = struct { /// Check whether this version is enumerated in registry. fn isValidVersion(windows10sdk: *const Windows10Sdk) bool { - var buf: [std.fs.MAX_PATH_BYTES]u8 = undefined; + var buf: [std.fs.max_path_bytes]u8 = undefined; const reg_query_as_utf8 = std.fmt.bufPrint(buf[0..], "{s}\\{s}\\Installed Options", .{ WINDOWS_KIT_REG_KEY, windows10sdk.version }) catch |err| switch (err) { error.NoSpaceLeft => return false, }; @@ -458,7 +458,7 @@ pub const Windows81Sdk = struct { error.OutOfMemory => return error.OutOfMemory, }; - if (path_maybe_with_trailing_slash.len > std.fs.MAX_PATH_BYTES or !std.fs.path.isAbsolute(path_maybe_with_trailing_slash)) { + if (path_maybe_with_trailing_slash.len > std.fs.max_path_bytes or !std.fs.path.isAbsolute(path_maybe_with_trailing_slash)) { allocator.free(path_maybe_with_trailing_slash); return error.PathTooLong; } @@ -475,7 +475,7 @@ pub const Windows81Sdk = struct { errdefer allocator.free(path); const version: []const u8 = version81: { - var buf: [std.fs.MAX_PATH_BYTES]u8 = undefined; + var buf: [std.fs.max_path_bytes]u8 = undefined; const sdk_lib_dir_path = std.fmt.bufPrint(buf[0..], "{s}\\Lib\\", .{path}) catch |err| switch (err) { error.NoSpaceLeft => return error.PathTooLong, }; @@ -822,7 +822,7 @@ pub const MsvcLibDir = struct { error.OutOfMemory => return error.OutOfMemory, else => continue, }; - if (source_directories_value.len > (std.fs.MAX_PATH_BYTES * 30)) { // note(bratishkaerik): guessing from the fact that on my computer it has 15 pathes and at least some of them are not of max length + if (source_directories_value.len > (std.fs.max_path_bytes * 30)) { // note(bratishkaerik): guessing from the fact that on my computer it has 15 pathes and at least some of them are not of max length allocator.free(source_directories_value); continue; } @@ -836,7 +836,7 @@ pub const MsvcLibDir = struct { const msvc_dir: []const u8 = msvc_dir: { const msvc_include_dir_maybe_with_trailing_slash = try allocator.dupe(u8, source_directories_splitted.first()); - if (msvc_include_dir_maybe_with_trailing_slash.len > std.fs.MAX_PATH_BYTES or !std.fs.path.isAbsolute(msvc_include_dir_maybe_with_trailing_slash)) { + if (msvc_include_dir_maybe_with_trailing_slash.len > std.fs.max_path_bytes or !std.fs.path.isAbsolute(msvc_include_dir_maybe_with_trailing_slash)) { allocator.free(msvc_include_dir_maybe_with_trailing_slash); return error.PathNotFound; } @@ -904,7 +904,7 @@ pub const MsvcLibDir = struct { else => break :try_vs7_key, }; - if (path_maybe_with_trailing_slash.len > std.fs.MAX_PATH_BYTES or !std.fs.path.isAbsolute(path_maybe_with_trailing_slash)) { + if (path_maybe_with_trailing_slash.len > std.fs.max_path_bytes or !std.fs.path.isAbsolute(path_maybe_with_trailing_slash)) { allocator.free(path_maybe_with_trailing_slash); break :try_vs7_key; } From 3858b30d31f2614311a0cf4d0f671010690640bb Mon Sep 17 00:00:00 2001 From: Douglas Dwyer Date: Fri, 22 Nov 2024 13:01:47 -0500 Subject: [PATCH 2/7] Fix compilation of windows-msvc target --- msvc/wrl/internal.h | 2 +- src/mach_dxc.cpp | 50 +++++++++++++++++++++++++-------------------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/msvc/wrl/internal.h b/msvc/wrl/internal.h index 715ef74..f1a19fc 100644 --- a/msvc/wrl/internal.h +++ b/msvc/wrl/internal.h @@ -18,7 +18,7 @@ namespace Microsoft { typedef int BoolStruct::* BoolType; - inline void DECLSPEC_NORETURN RaiseException(HRESULT hr, DWORD flags = EXCEPTION_NONCONTINUABLE) throw() { + inline void RaiseException(HRESULT hr, DWORD flags = EXCEPTION_NONCONTINUABLE) throw() { ::RaiseException(static_cast(hr), flags, 0, NULL); } diff --git a/src/mach_dxc.cpp b/src/mach_dxc.cpp index 4a04731..cbf2235 100644 --- a/src/mach_dxc.cpp +++ b/src/mach_dxc.cpp @@ -3,10 +3,8 @@ #ifdef _MSC_VER #define __C89_NAMELESS #define __C89_NAMELESSUNIONNAME - #define WIN32_LEAN_AND_MEAN #include #include - #define CComPtr Microsoft::WRL::ComPtr #else // _MSC_VER #include #include @@ -23,6 +21,14 @@ #include "mach_dxc.h" #include "dxc/Support/FileIOHelper.h" + +#ifdef _WIN32 + #ifdef _MSC_VER + #define CComPtr Microsoft::WRL::ComPtr + #endif + #include +#endif + #ifdef __cplusplus extern "C" { #endif @@ -35,7 +41,7 @@ char* wcstombsAlloc(const wchar_t* inval) auto buf = (char*)std::malloc(outsz); std::memset(buf, 0, outsz); - std::setlocale(LC_CTYPE,""); + setlocale(LC_CTYPE,""); size = std::wcstombs(buf, inval, size * sizeof(wchar_t)); if (size == (size_t)(-1)) { @@ -79,7 +85,7 @@ class MachDxcIncludeHandler : public IDxcIncludeHandler char* filename_utf8 = wcstombsAlloc(filename); if (filename_utf8 == nullptr) - filename_utf8 = strdup(u8""); + filename_utf8 = _strdup(u8""); MachDxcIncludeResult* include_result = callbacks->include_func(callbacks->include_ctx, filename_utf8); @@ -117,8 +123,8 @@ MACH_EXPORT MachDxcCompiler machDxcInit() { } MACH_EXPORT void machDxcDeinit(MachDxcCompiler compiler) { - CComPtr dxcInstance = CComPtr(reinterpret_cast(compiler)); - dxcInstance.Release(); + CComPtr dxcInstance = CComPtr(reinterpret_cast(compiler)); + dxcInstance.Reset(); MachDxcompilerInvokeDllShutdown(); } @@ -130,7 +136,7 @@ MACH_EXPORT MachDxcCompileResult machDxcCompile( MachDxcCompiler compiler, MachDxcCompileOptions* options ) { - CComPtr dxcInstance = CComPtr(reinterpret_cast(compiler)); + CComPtr dxcInstance = CComPtr(reinterpret_cast(compiler)); CComPtr pUtils; DxcCreateInstance(CLSID_DxcUtils, IID_PPV_ARGS(&pUtils)); @@ -158,7 +164,7 @@ MACH_EXPORT MachDxcCompileResult machDxcCompile( MachDxcIncludeHandler* handler = nullptr; if (options->include_callbacks != nullptr) // Leave include handler as default (nullptr) unless there's available callbacks - handler = new MachDxcIncludeHandler(options->include_callbacks, pUtils); + handler = new MachDxcIncludeHandler(options->include_callbacks, pUtils.Get()); CComPtr pCompileResult; HRESULT hr = dxcInstance->Compile( @@ -180,12 +186,12 @@ MACH_EXPORT MachDxcCompileResult machDxcCompile( } MACH_EXPORT MachDxcCompileError machDxcCompileResultGetError(MachDxcCompileResult err) { - CComPtr pCompileResult = CComPtr(reinterpret_cast(err)); + CComPtr pCompileResult = CComPtr(reinterpret_cast(err)); CComPtr pErrors = nullptr; HRESULT hr = pCompileResult->GetErrorBuffer(&pErrors); - if (hr == S_OK && !hlsl::IsBlobNullOrEmpty(pErrors)) { + if (hr == S_OK && !hlsl::IsBlobNullOrEmpty(pErrors.Get())) { return reinterpret_cast(pErrors.Detach()); } @@ -193,12 +199,12 @@ MACH_EXPORT MachDxcCompileError machDxcCompileResultGetError(MachDxcCompileResul } MACH_EXPORT MachDxcCompileObject machDxcCompileResultGetObject(MachDxcCompileResult err) { - CComPtr pCompileResult = CComPtr(reinterpret_cast(err)); + CComPtr pCompileResult = CComPtr(reinterpret_cast(err)); CComPtr pObject = nullptr; HRESULT hr = pCompileResult->GetResult(&pObject); - if (hr == S_OK && !hlsl::IsBlobNullOrEmpty(pObject)) { + if (hr == S_OK && !hlsl::IsBlobNullOrEmpty(pObject.Get())) { return reinterpret_cast(pObject.Detach()); } @@ -206,44 +212,44 @@ MACH_EXPORT MachDxcCompileObject machDxcCompileResultGetObject(MachDxcCompileRes } MACH_EXPORT void machDxcCompileResultDeinit(MachDxcCompileResult err) { - CComPtr pCompileResult = CComPtr(reinterpret_cast(err)); - pCompileResult.Release(); + CComPtr pCompileResult = CComPtr(reinterpret_cast(err)); + pCompileResult.Reset(); } //--------------------- // MachDxcCompileObject //--------------------- MACH_EXPORT char const* machDxcCompileObjectGetBytes(MachDxcCompileObject err) { - CComPtr pObject = CComPtr(reinterpret_cast(err)); + CComPtr pObject = CComPtr(reinterpret_cast(err)); return (char const*)(pObject->GetBufferPointer()); } MACH_EXPORT size_t machDxcCompileObjectGetBytesLength(MachDxcCompileObject err) { - CComPtr pObject = CComPtr(reinterpret_cast(err)); + CComPtr pObject = CComPtr(reinterpret_cast(err)); return pObject->GetBufferSize(); } MACH_EXPORT void machDxcCompileObjectDeinit(MachDxcCompileObject err) { - CComPtr pObject = CComPtr(reinterpret_cast(err)); - pObject.Release(); + CComPtr pObject = CComPtr(reinterpret_cast(err)); + pObject.Reset(); } //-------------------- // MachDxcCompileError //-------------------- MACH_EXPORT char const* machDxcCompileErrorGetString(MachDxcCompileError err) { - CComPtr pErrors = CComPtr(reinterpret_cast(err)); + CComPtr pErrors = CComPtr(reinterpret_cast(err)); return (char const*)(pErrors->GetBufferPointer()); } MACH_EXPORT size_t machDxcCompileErrorGetStringLength(MachDxcCompileError err) { - CComPtr pErrors = CComPtr(reinterpret_cast(err)); + CComPtr pErrors = CComPtr(reinterpret_cast(err)); return pErrors->GetStringLength(); } MACH_EXPORT void machDxcCompileErrorDeinit(MachDxcCompileError err) { - CComPtr pErrors = CComPtr(reinterpret_cast(err)); - pErrors.Release(); + CComPtr pErrors = CComPtr(reinterpret_cast(err)); + pErrors.Reset(); } #ifdef __cplusplus From df583a3152c748c1a808ed6c579bb9fd95ab2864 Mon Sep 17 00:00:00 2001 From: Douglas Dwyer Date: Fri, 22 Nov 2024 14:43:45 -0500 Subject: [PATCH 3/7] Use atlbase.h CComPtr rather than WRL ComPtr --- src/mach_dxc.cpp | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/src/mach_dxc.cpp b/src/mach_dxc.cpp index cbf2235..3cf5e26 100644 --- a/src/mach_dxc.cpp +++ b/src/mach_dxc.cpp @@ -3,8 +3,9 @@ #ifdef _MSC_VER #define __C89_NAMELESS #define __C89_NAMELESSUNIONNAME + #include + #include #include - #include #else // _MSC_VER #include #include @@ -21,14 +22,6 @@ #include "mach_dxc.h" #include "dxc/Support/FileIOHelper.h" - -#ifdef _WIN32 - #ifdef _MSC_VER - #define CComPtr Microsoft::WRL::ComPtr - #endif - #include -#endif - #ifdef __cplusplus extern "C" { #endif @@ -124,7 +117,7 @@ MACH_EXPORT MachDxcCompiler machDxcInit() { MACH_EXPORT void machDxcDeinit(MachDxcCompiler compiler) { CComPtr dxcInstance = CComPtr(reinterpret_cast(compiler)); - dxcInstance.Reset(); + dxcInstance.Release(); MachDxcompilerInvokeDllShutdown(); } @@ -164,7 +157,7 @@ MACH_EXPORT MachDxcCompileResult machDxcCompile( MachDxcIncludeHandler* handler = nullptr; if (options->include_callbacks != nullptr) // Leave include handler as default (nullptr) unless there's available callbacks - handler = new MachDxcIncludeHandler(options->include_callbacks, pUtils.Get()); + handler = new MachDxcIncludeHandler(options->include_callbacks, pUtils); CComPtr pCompileResult; HRESULT hr = dxcInstance->Compile( @@ -191,7 +184,7 @@ MACH_EXPORT MachDxcCompileError machDxcCompileResultGetError(MachDxcCompileResul CComPtr pErrors = nullptr; HRESULT hr = pCompileResult->GetErrorBuffer(&pErrors); - if (hr == S_OK && !hlsl::IsBlobNullOrEmpty(pErrors.Get())) { + if (hr == S_OK && !hlsl::IsBlobNullOrEmpty(pErrors)) { return reinterpret_cast(pErrors.Detach()); } @@ -204,7 +197,7 @@ MACH_EXPORT MachDxcCompileObject machDxcCompileResultGetObject(MachDxcCompileRes CComPtr pObject = nullptr; HRESULT hr = pCompileResult->GetResult(&pObject); - if (hr == S_OK && !hlsl::IsBlobNullOrEmpty(pObject.Get())) { + if (hr == S_OK && !hlsl::IsBlobNullOrEmpty(pObject)) { return reinterpret_cast(pObject.Detach()); } @@ -213,7 +206,7 @@ MACH_EXPORT MachDxcCompileObject machDxcCompileResultGetObject(MachDxcCompileRes MACH_EXPORT void machDxcCompileResultDeinit(MachDxcCompileResult err) { CComPtr pCompileResult = CComPtr(reinterpret_cast(err)); - pCompileResult.Reset(); + pCompileResult.Release(); } //--------------------- @@ -231,7 +224,7 @@ MACH_EXPORT size_t machDxcCompileObjectGetBytesLength(MachDxcCompileObject err) MACH_EXPORT void machDxcCompileObjectDeinit(MachDxcCompileObject err) { CComPtr pObject = CComPtr(reinterpret_cast(err)); - pObject.Reset(); + pObject.Release(); } //-------------------- @@ -249,7 +242,7 @@ MACH_EXPORT size_t machDxcCompileErrorGetStringLength(MachDxcCompileError err) { MACH_EXPORT void machDxcCompileErrorDeinit(MachDxcCompileError err) { CComPtr pErrors = CComPtr(reinterpret_cast(err)); - pErrors.Reset(); + pErrors.Release(); } #ifdef __cplusplus From 234609279fcee185befca1a33508b802096807a5 Mon Sep 17 00:00:00 2001 From: Douglas Dwyer Date: Fri, 22 Nov 2024 15:41:23 -0500 Subject: [PATCH 4/7] Add compiler flag for dynamic MSVC RT --- build.zig | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/build.zig b/build.zig index d91cc2a..0193924 100644 --- a/build.zig +++ b/build.zig @@ -19,6 +19,7 @@ pub fn build(b: *Build) !void { const debug_symbols = b.option(bool, "debug_symbols", "Whether to produce detailed debug symbols (g0) or not. These increase binary size considerably.") orelse false; const build_shared = b.option(bool, "shared", "Build dxcompiler shared libraries") orelse false; const build_spirv = b.option(bool, "spirv", "Build spir-v compilation support") orelse false; + const msvcrt_dynamic = b.option(bool, "msvcrt_dynamic", "Link with the dynamic MSVC runtime") orelse false; const skip_executables = b.option(bool, "skip_executables", "Skip building executables") orelse false; const skip_tests = b.option(bool, "skip_tests", "Skip building tests") orelse false; @@ -64,7 +65,10 @@ pub fn build(b: *Build) !void { lib.addCSourceFile(.{ .file = b.path("src/mach_dxc.cpp"), - .flags = &.{ + .flags = if (msvcrt_dynamic) &.{ + "-fms-extensions", // __uuidof and friends (on non-windows targets) + "-fms-runtime-lib=dll", + } else &.{ "-fms-extensions", // __uuidof and friends (on non-windows targets) }, }); @@ -96,6 +100,11 @@ pub fn build(b: *Build) !void { try cflags.appendSlice(base_flags); try cppflags.appendSlice(base_flags); + if (msvcrt_dynamic) { + try cflags.append("-fms-runtime-lib=dll"); + try cppflags.append("-fms-runtime-lib=dll"); + } + addConfigHeaders(b, lib); addIncludes(b, lib); From 68e847d98f0e9a782af233ab99eeb80c6ad493f0 Mon Sep 17 00:00:00 2001 From: Douglas Dwyer Date: Fri, 22 Nov 2024 16:07:01 -0500 Subject: [PATCH 5/7] Update CI to build dynamic releases --- .github/workflows/ci.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f96568c..0c301f5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -85,6 +85,14 @@ jobs: include: - target: 'x86_64-windows-msvc' cpu: '-Dcpu=x86_64_v2' + link-flags: '' + post-build: 'install dxc' + target-postfix: '' + - target: 'x86_64-windows-msvc' + cpu: '-Dcpu=x86_64_v2' + link-flags: '-Dmsvcrt_dynamic' + post-build: '' + target-postfix: '_Dynamic' runs-on: windows-latest steps: - name: Checkout @@ -97,7 +105,7 @@ jobs: 7z x zig.zip Add-Content $env:GITHUB_PATH "C:\zig-windows-x86_64-0.14.0-dev.1911+3bf89f55c\" - name: build - run: zig build -Dfrom_source -Dtarget=${{ matrix.target }} -Doptimize=${{ matrix.optimize }} ${{ matrix.cpu }} install dxc + run: zig build -Dfrom_source -Dtarget=${{ matrix.target }} -Doptimize=${{ matrix.optimize }} ${{ matrix.cpu }} ${{ matrix.link-flags }} ${{ matrix.post-build }} - name: upload run: | ZSTD_CLEVEL=19 tar -acf "${TARGET_OPT}_lib.tar.zst" -C zig-out/lib . @@ -112,7 +120,7 @@ jobs: shell: bash env: WINDOWS: true - TARGET_OPT: ${{ matrix.target }}_${{ matrix.optimize }} + TARGET_OPT: ${{ matrix.target }}_${{ matrix.optimize }}${{ matrix.target-postfix }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} publish: # TODO: re-enable required MSVC builds From bfceb9a8ba3d5a7503673796050f8851babe0dcd Mon Sep 17 00:00:00 2001 From: Douglas Dwyer Date: Fri, 22 Nov 2024 16:14:35 -0500 Subject: [PATCH 6/7] Work on publishing both static + dynamic windows releases --- .github/workflows/ci.yml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0c301f5..6eccb67 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,6 +24,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} all: needs: draft_release + if: false strategy: matrix: target: [ @@ -82,15 +83,18 @@ jobs: # 'aarch64-windows-msvc', ] optimize: [Debug, ReleaseFast] + link-mode: ['Static', 'Dynamic'] include: - target: 'x86_64-windows-msvc' + link-mode: 'Static' cpu: '-Dcpu=x86_64_v2' link-flags: '' post-build: 'install dxc' target-postfix: '' - target: 'x86_64-windows-msvc' + link-mode: 'Dynamic' cpu: '-Dcpu=x86_64_v2' - link-flags: '-Dmsvcrt_dynamic' + link-flags: '-Dmsvcrt_dynamic -Dskip_executables' post-build: '' target-postfix: '_Dynamic' runs-on: windows-latest @@ -109,14 +113,14 @@ jobs: - name: upload run: | ZSTD_CLEVEL=19 tar -acf "${TARGET_OPT}_lib.tar.zst" -C zig-out/lib . - ZSTD_CLEVEL=19 tar -acf "${TARGET_OPT}_bin.tar.zst" -C zig-out/bin . + if [[ "${{ matrix.link-mode }}" == "Static" ]]; then ZSTD_CLEVEL=19 tar -acf "${TARGET_OPT}_bin.tar.zst" -C zig-out/bin . ; fi ZSTD_CLEVEL=19 tar -acf "${TARGET_OPT}_lib.tar.gz" -C zig-out/lib . - ZSTD_CLEVEL=19 tar -acf "${TARGET_OPT}_bin.tar.gz" -C zig-out/bin . + if [[ "${{ matrix.link-mode }}" == "Static" ]]; then ZSTD_CLEVEL=19 tar -acf "${TARGET_OPT}_bin.tar.gz" -C zig-out/bin . ; fi export RELEASE="$(date -u +%Y.%m.%d)+$(git rev-parse --short HEAD).${{ github.run_attempt }}" gh release upload "$RELEASE" "${TARGET_OPT}_lib.tar.zst" - gh release upload "$RELEASE" "${TARGET_OPT}_bin.tar.zst" + if [[ "${{ matrix.link-mode }}" == "Static" ]]; then gh release upload "$RELEASE" "${TARGET_OPT}_bin.tar.zst"; fi gh release upload "$RELEASE" "${TARGET_OPT}_lib.tar.gz" - gh release upload "$RELEASE" "${TARGET_OPT}_bin.tar.gz" + if [[ "${{ matrix.link-mode }}" == "Static" ]]; then gh release upload "$RELEASE" "${TARGET_OPT}_bin.tar.gz"; fi shell: bash env: WINDOWS: true From 284d9569d08fc0307732b43a7d642d771dbb8a34 Mon Sep 17 00:00:00 2001 From: Douglas Dwyer Date: Fri, 22 Nov 2024 16:57:24 -0500 Subject: [PATCH 7/7] Update ci.yml --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6eccb67..f38391c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -24,7 +24,6 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} all: needs: draft_release - if: false strategy: matrix: target: [