diff --git a/platform/windows/detect.py b/platform/windows/detect.py
index b4830c5..bdaa150 100644
--- a/platform/windows/detect.py
+++ b/platform/windows/detect.py
@@ -825,6 +825,79 @@ def configure_mingw(env: "SConsEnvironment"):
     # resrc
     env.Append(BUILDERS={"RES": env.Builder(action=build_res_file, suffix=".o", src_suffix=".rc")})
 
+    # freetype depends on libpng and zlib, so bundling one of them while keeping others
+    # as shared libraries leads to weird issues
+    if env["builtin_freetype"] or env["builtin_libpng"] or env["builtin_zlib"]:
+        env["builtin_freetype"] = True
+        env["builtin_libpng"] = True
+        env["builtin_zlib"] = True
+
+    if not env["builtin_brotli"]:
+        env.ParseConfig("pkg-config libbrotlicommon --cflags --libs")
+        env.ParseConfig("pkg-config libbrotlidec --cflags --libs")
+        env.ParseConfig("pkg-config libbrotlienc --cflags --libs")
+
+    if not env["builtin_embree"]:
+        env.Append(LIBS=["embree4"])
+
+    if not env["builtin_enet"]:
+        env.ParseConfig("pkg-config libenet --cflags --libs")
+
+    if not env["builtin_freetype"]:
+        env.ParseConfig("pkg-config freetype2 --cflags --libs")
+
+    if not env["builtin_glslang"]:
+        env.Append(LIBS=["GenericCodeGen","Machineindependent","OSDependent","SPIRV", "glslang-default-resource-limits.dll", "glslang.dll"])
+    
+    if not env["builtin_graphite"]:
+        env.ParseConfig("pkg-config graphite2 --cflags --libs")
+    
+    if not env["builtin_harfbuzz"]:
+        env.ParseConfig("pkg-config harfbuzz --cflags --libs")
+        env.ParseConfig("pkg-config harfbuzz-icu --cflags --libs")
+    
+    if not env["builtin_icu4c"]:
+        env.ParseConfig("pkg-config icu-i18n --cflags --libs")
+        env.ParseConfig("pkg-config icu-io --cflags --libs")
+        env.ParseConfig("pkg-config icu-uc --cflags --libs")
+
+    if not env["builtin_libogg"]:
+        env.ParseConfig("pkg-config ogg --cflags --libs")
+
+    if not env["builtin_libpng"]:
+        env.ParseConfig("pkg-config libpng16 --cflags --libs")
+
+    if not env["builtin_libtheora"]:
+        env.ParseConfig("pkg-config theora --cflags --libs")
+        env.ParseConfig("pkg-config theoradec --cflags --libs")
+
+    if not env["builtin_libvorbis"]:
+        env.ParseConfig("pkg-config vorbis vorbisfile vorbisenc --cflags --libs")
+
+    if not env["builtin_libwebp"]:
+        env.ParseConfig("pkg-config libwebp --cflags --libs")
+        env.ParseConfig("pkg-config libsharpyuv --cflags --libs")
+
+    if not env["builtin_wslay"]:
+        env.ParseConfig("pkg-config libwslay --cflags --libs")
+        
+    if not env["builtin_mbedtls"]:
+        env.ParseConfig("pkg-config mbedtls --cflags --libs")
+        env.ParseConfig("pkg-config mbedx509 --cflags --libs")
+        env.ParseConfig("pkg-config mbedcrypto --cflags --libs")
+
+    if not env["builtin_miniupnpc"]:
+        env.ParseConfig("pkg-config miniupnpc --cflags --libs")
+
+    if not env["builtin_openxr"]:
+        env.ParseConfig("pkg-config openxr --cflags --libs")
+
+    if not env["builtin_zlib"]:
+        env.ParseConfig("pkg-config zlib --cflags --libs")
+
+    if not env["builtin_zstd"]:
+        env.ParseConfig("pkg-config libzstd --cflags --libs")
+
 
 def configure(env: "SConsEnvironment"):
     # Validate arch.
