diff --git a/changelog/version-identifier-filter.dd b/changelog/version-identifier-filter.dd index c60bb9c..57b8269 100644 --- a/changelog/version-identifier-filter.dd +++ b/changelog/version-identifier-filter.dd @@ -17,9 +17,9 @@ enum debVerRE = ctRegex!`(?:^|\s)debug\s*\(\s*([^\s]*?)\s*\)`; --- -For packages that use version identifiers in mixins or don't want to rely on -grepping, the list of applicable version identifiers can be specified explicitly -in the package file. +For packages that use version identifiers in mixins or auto-generated sources, +the list of applicable version identifiers can be specified explicitly in the +package file. dub.json: --- diff --git a/source/dub/generators/generator.d b/source/dub/generators/generator.d index 41ee77b..6954363 100644 --- a/source/dub/generators/generator.d +++ b/source/dub/generators/generator.d @@ -431,6 +431,7 @@ import std.regex : ctRegex, matchAll; import std.stdio : File; import std.datetime : Clock, SysTime, UTC; + import dub.compilers.utils : isLinkerFile; import dub.internal.vibecompat.data.json : Json, JSONException; auto bs = &ti.buildSettings; @@ -443,8 +444,9 @@ return; } - // check all sources for version identifiers - auto srcs = chain(bs.sourceFiles, bs.importFiles, bs.stringImportFiles); + // check all existing source files for version identifiers + auto srcs = chain(bs.sourceFiles, bs.importFiles, bs.stringImportFiles) + .filter!(f => !f.isLinkerFile).filter!exists; // try to load cached filters first auto cache = ti.pack.metadataCache; try