diff --git a/source/dub/generators/build.d b/source/dub/generators/build.d index d92e0bf..72b6f3b 100644 --- a/source/dub/generators/build.d +++ b/source/dub/generators/build.d @@ -376,9 +376,33 @@ private bool isLinkerFile(string f) { - version (Windows) { - return f.endsWith(".lib") || f.endsWith(".obj"); - } else { - return f.endsWith(".a") || f.endsWith(".o") || f.endsWith(".so") || f.endsWith(".dylib"); + import std.path; + switch (extension(f)) { + default: + return false; + version (Windows) { + case ".lib", ".obj", ".res": + return true; + } else { + case ".a", ".o", ".so", ".dylib": + return true; + } } } + +unittest { + version (Windows) { + assert(isLinkerFile("test.obj")); + assert(isLinkerFile("test.lib")); + assert(isLinkerFile("test.res")); + assert(!isLinkerFile("test.o")); + assert(!isLinkerFile("test.d")); + } else { + assert(isLinkerFile("test.o")); + assert(isLinkerFile("test.a")); + assert(isLinkerFile("test.so")); + assert(isLinkerFile("test.dylib")); + assert(!isLinkerFile("test.obj")); + assert(!isLinkerFile("test.d")); + } +} \ No newline at end of file