diff --git a/source/dub/compilers/dmd.d b/source/dub/compilers/dmd.d index 9018529..5e1ba32 100644 --- a/source/dub/compilers/dmd.d +++ b/source/dub/compilers/dmd.d @@ -123,7 +123,8 @@ { import std.string; auto tpath = Path(settings.targetPath) ~ getTargetFileName(settings, platform); - auto args = ["dmd", "-of"~tpath.toNativeString()] ~ objects ~ settings.lflags.map!(l => "-L"~l)().array() ~ settings.sourceFiles; + string[] dflags = settings.targetType == TargetType.library || settings.targetType == TargetType.staticLibrary ? ["-lib"] : []; + auto args = ["dmd", "-of"~tpath.toNativeString()] ~ objects ~ dflags ~ settings.lflags.map!(l => "-L"~l)().array() ~ settings.sourceFiles; logDebug("%s", args.join(" ")); auto res = spawnProcess(args).wait(); enforce(res == 0, "Link command failed with exit code "~to!string(res)); diff --git a/source/dub/generators/build.d b/source/dub/generators/build.d index 3ee8714..452b498 100644 --- a/source/dub/generators/build.d +++ b/source/dub/generators/build.d @@ -106,6 +106,9 @@ if (generate_binary && settings.run) rmdirRecurse(buildsettings.targetPath); } + + if (buildsettings.targetType == TargetType.library || buildsettings.targetType == TargetType.staticLibrary) + settings.run = false; // fix default command for libraries - replace run with build /* NOTE: for DMD experimental separate compile/link is used, but this is not yet implemented