Currently regardless of the -Hd switch the compiler will output all header files as flat files in a single folder: $ dmd -H -o- atk/Action.d gio/DBusProxy.d -Hdinclude Expected result: include/atk/Action.d include/gio/DBusProxy.d Actual result: include/Action.d include/DBusProxy.d These files are completely unusable like this, they must be stored in the original folder layout or they can't be imported. Using a build script to compile them one by one and using -Hf is *NOT* an option because this considerably slows down header generation (for example GtkD header generation can take almost 10 minutes by doing it on a file-by-file basis). To avoid accidentally storing the .di files in the same place as the D files I propose that folder layout recreation should only occur if the -Hd flag is set.
It turns out -op does this. It's not very well documented though, I'll file a different bug for that.
*** Issue 4495 has been marked as a duplicate of this issue. ***