fix: on Windows, pass static libs via -l rather than custom linkWith property so build.dart stays compatible between published & custom versions

This commit is contained in:
Nick Fisher
2024-06-26 01:49:37 +10:00
parent d13ecde7b6
commit e8e1684694

View File

@@ -62,7 +62,7 @@ void main(List<String> args) async {
"${config.packageRoot.toFilePath()}/native/include/material/image.c", "${config.packageRoot.toFilePath()}/native/include/material/image.c",
]); ]);
final libs = [ var libs = [
"filament", "filament",
"backend", "backend",
"filameshio", "filameshio",
@@ -91,12 +91,12 @@ void main(List<String> args) async {
"basis_transcoder" "basis_transcoder"
]; ];
final linkWith = <String>[];
if (platform == "windows") { if (platform == "windows") {
linkWith.addAll(libs.map((lib) => "$libDir/$lib.lib")); libDir = Directory(libDir).uri.toFilePath();
linkWith.addAll(["$libDir/bluevk.lib", "$libDir/bluegl.lib"]); libs = libs.map((lib) => "${libDir}${lib}.lib").toList();
linkWith.addAll([ libs.addAll(["${libDir}bluevk.lib", "${libDir}bluegl.lib"]);
libs.addAll([
"gdi32.lib", "gdi32.lib",
"user32.lib", "user32.lib",
"shell32.lib", "shell32.lib",
@@ -151,14 +151,12 @@ void main(List<String> args) async {
sources: sources, sources: sources,
includes: ['native/include', 'native/include/filament'], includes: ['native/include', 'native/include/filament'],
defines: defines, defines: defines,
// UNCOMMENT THIS IF YOU ARE BUILDING WITH THE CUSTOM native_toolchain_c FORK FOR WINDOWS
// linkWith: linkWith,
flags: [ flags: [
if (platform == "macos") '-mmacosx-version-min=13.0', if (platform == "macos") '-mmacosx-version-min=13.0',
if (platform == "ios") '-mios-version-min=13.0', if (platform == "ios") '-mios-version-min=13.0',
...flags, ...flags,
...frameworks, ...frameworks,
if (platform != "windows") ...libs.map((lib) => "-l$lib"), ...libs.map((lib) => "-l$lib"),
"-L$libDir", "-L$libDir",
], ],
dartBuildFiles: ['hook/build.dart'], dartBuildFiles: ['hook/build.dart'],