**Conclusive observation:**
This can be resolved by informing `dub` of `extraDependencyFiles` to rebuild itself. `library.di` non-existance simply does not trigger rebuild of the package and instead only `library.lib` is being copied from the `cache` folder into `build` folder. Leaving `library.di` not being generated.

if `cache` folder exists with a output file, it does not trigger build, only copies from the `\cache`'s `\build` folder. If build is not triggered, `.di` file is not being generated.

### Observations:
* Happens with `dub.json` as well.
* Mostly `.di` stops generating after the first output of `dub`.
* Making any text changes to content of `dub.sdl` triggers `dub` to rebuild package and generate`.di`

* Deleting the `cache` output file will trigger to rebuild the package and generate `.di` * `C:\Users\Windows10\AppData\Local\dub\cache\dheaders\~master\build` * After deleting `library.lib` inside latest cache folder `build`: The `.di` starts to generate.



### Solution:
[**excludedSourceFiles**](https://dub.pm/package-format-sdl#build-settings)   Files that should be 
removed for the set of already added source files (takes precedence over "sourceFiles" 
and "sourcePaths") - Glob matching can be used to pattern match multiple files at once



### Working example:

**dub.sdl**

```
name "dheaders"
description "generates .di header file for a static library."
authors "public domain"
copyright "Public Domain. No rights reserved."
license "public domain"

configuration "staticLibrary" {
        dflags "-Hf=$PACKAGE_DIR/builds/library.di"
        targetName "library"
        targetType "library"
        targetPath "builds"
        sourceFiles "library.d"       
        extraDependencyFiles "$PACKAGE_DIR/builds/library.di"
}
```

Reply via email to