Thread overview | ||||||
---|---|---|---|---|---|---|
|
January 06, 2018 Does dub support generating source files? | ||||
---|---|---|---|---|
| ||||
Hi, One of my source files (epparser.d) should be generated by calling rdmd on another soure file (make.d) and therefore should depend on changes in make.d and an additional module (epgrammar.d). An include path to Pegged is required for compilation. epparser.d should be part of the main project, but make.d and epgrammar.d should not. I have tried using a dub subpackage for this with preBuildCommands ("cd ./subpackage && dub run") in the main project, but that doesn't update epparser.d when epgrammar.d changes (oddly enough; is does update when subpackage targetType is "library", but it must be "executable"). epparser.d should not be generated unnecessarily. I could script a custom preBuildCommand that checks modification dates and supplies the Pegged include path explicitly but that seems hackish and non-portable and typically something that the build system should do. Can dub do this or is this a thing for reggae? It must work on Windows though. Thanks! |
January 06, 2018 Re: Does dub support generating source files? | ||||
---|---|---|---|---|
| ||||
Posted in reply to Bastiaan Veelo | On 06/01/2018 1:23 PM, Bastiaan Veelo wrote: > Hi, > > One of my source files (epparser.d) should be generated by calling rdmd on another soure file (make.d) and therefore should depend on changes in make.d and an additional module (epgrammar.d). An include path to Pegged is required for compilation. epparser.d should be part of the main project, but make.d and epgrammar.d should not. I have tried using a dub subpackage for this with preBuildCommands ("cd ./subpackage && dub run") in the main project, but that doesn't update epparser.d when epgrammar.d changes (oddly enough; is does update when subpackage targetType is "library", but it must be "executable"). epparser.d should not be generated unnecessarily. > > I could script a custom preBuildCommand that checks modification dates and supplies the Pegged include path explicitly but that seems hackish and non-portable and typically something that the build system should do. > > Can dub do this or is this a thing for reggae? It must work on Windows though. > > Thanks! See: https://github.com/Abscissa/gen-package-version |
January 06, 2018 Re: Does dub support generating source files? | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Saturday, 6 January 2018 at 13:40:54 UTC, rikki cattermole wrote:
> On 06/01/2018 1:23 PM, Bastiaan Veelo wrote:
>> Can dub do this or is this a thing for reggae? It must work on Windows though.
>>
>> Thanks!
>
> See: https://github.com/Abscissa/gen-package-version
That seems to be a good tip, thanks. I'll need to study what's going on there.
|
January 06, 2018 Re: Does dub support generating source files? | ||||
---|---|---|---|---|
| ||||
Posted in reply to rikki cattermole | On Saturday, 6 January 2018 at 13:40:54 UTC, rikki cattermole wrote: > On 06/01/2018 1:23 PM, Bastiaan Veelo wrote: >> I could script a custom preBuildCommand that checks modification dates and supplies the Pegged include path explicitly but that seems hackish and non-portable and typically something that the build system should do. > > See: https://github.com/Abscissa/gen-package-version If I read this correctly, it basically takes the script route (rdmd) somewhat like the above [1], but taking care to stay portable by inquiring dub. I should be able to make this work, but I wish dub supported adding simple make rules... [1] https://github.com/Abscissa/gen-package-version/blob/515138077fb78af5c4154f13990cee23e54ed9e7/src/genPackageVersion/genDModule.d#L60 |
Copyright © 1999-2021 by the D Language Foundation