[Scons-users] include dir with scons variant_dir handling

Bill Deegan bill at baddogconsulting.com
Fri Jul 13 09:19:54 EDT 2018


Brian,

Any chance you could contribute it via the scons-contrib repo?

-Bill

On Fri, Jul 13, 2018 at 8:56 AM, Brian Cody <brian.j.cody at gmail.com> wrote:

> Hua,
>
> I have a VHDL scanner, might want to collab a bit. I could use a system
> verilog scanner.
>
> -Brian
>
> On Jul 13, 2018 at 08:52, <Bill Deegan <bill at baddogconsulting.com>>
> wrote:
>
> Hua,
>
> Yes the scanners purpose is to scan source files and find includes and add
> them the the DAG.
> So you'd need a scanner for verilog and one for VHDL.
> The current scanners are mainly just REGEX's pulling out the include
> statements.
>
> See: https://scons.org/doc/production/HTML/scons-user/ch21.html for an
> example
> Also: https://github.com/SCons/scons/wiki/ToolsForFools
>
> Those should both point you in the right direction
>
> -Bill
>
> On Fri, Jul 13, 2018 at 4:36 AM, Hua Yanghao <huayanghao at gmail.com> wrote:
>
>> Both. for VCS it is something like "+incdir+path/to/include", however
>> this is not my issue.
>>
>> I can use _concat() and INCPREFIX to have the right format of include,
>> but the included files won't be copied into the build folder.
>>
>> I believe this is done in C scanner, need to dig a bit more.
>> On Thu, Jul 12, 2018 at 5:07 PM Bill Deegan <bill at baddogconsulting.com>
>> wrote:
>> >
>> > Which HDL are you using? Verilog or VHDL?
>> > What's the include syntax?
>> > (It's been a while..)
>> >
>> > You should probably create HDLINCFLAGS and user $_concat with your own
>> INCPREFIX... etc.
>> > Take a look at: https://scons.org/doc/production/HTML/scons-man.html
>> and search for _concat
>> >
>> > -Bill
>> >
>> >
>> > On Thu, Jul 12, 2018 at 7:44 AM, Hua Yanghao <huayanghao at gmail.com>
>> wrote:
>> >>
>> >> After digging into a bit more, it looks like C builders will scan for
>> >> included dependencies (not sure how this is done reliably and how deep
>> >> include case are handled), and only those used header files are copied
>> >> to build folder. And from --tree=all it clearly shows scons knows
>> >> these files being used and a dependency is in place.
>> >>
>> >> Seems if I want this to happen for HDL files I then need to either
>> >> write a scanner, or simply makes each and every hdl files depends on
>> >> the entire include files if I want the include files to be copied
>> >> properly. I will give this a try but not sure if this is the best way
>> >> to do it. Otherwise writing a scanner I don't understand how to make
>> >> it reliable without using a real HDL compiler.
>> >> On Thu, Jul 12, 2018 at 4:22 PM Hua Yanghao <huayanghao at gmail.com>
>> wrote:
>> >> >
>> >> > This works as to expand CPPPATH into a list of path however this is
>> >> > not taking care of copying include files into build directory.
>> >> >
>> >> > any idea?
>> >> > On Thu, Jul 12, 2018 at 4:05 PM Hua Yanghao <huayanghao at gmail.com>
>> wrote:
>> >> > >
>> >> > > This is the magic? '_CPPINCFLAGS'  : '$( ${_concat(INCPREFIX,
>> CPPPATH,
>> >> > > INCSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'
>> >> > >
>> >> > > So I guess I need to generate and use this _CPPINCFLAGS in my
>> builder
>> >> > > and define my own INCPREFIX/SUFFIX and it should do? Will give it a
>> >> > > try quickly.
>> >> > > On Thu, Jul 12, 2018 at 4:00 PM Hua Yanghao <huayanghao at gmail.com>
>> wrote:
>> >> > > >
>> >> > > > Hi Bill,
>> >> > > > Yes, I am using SConscript("path/to/SConscript",
>> variant_dir="build"),
>> >> > > > and apparently the CPPPATH is only taken care in my C code
>> build, not
>> >> > > > for my HDL builds.
>> >> > > > And I even want something like "INCPATH" instead of "CPPPATH",
>> and
>> >> > > > generates not "-Ipath/to/my/include" but also other formats e.g.
>> >> > > > "+incdir+path/to/my/include".
>> >> > > >
>> >> > > > Any idea?
>> >> > > >
>> >> > > > Best Regards,
>> >> > > > Yanghao
>> >> > > > On Thu, Jul 12, 2018 at 2:31 PM Bill Deegan <
>> bill at baddogconsulting.com> wrote:
>> >> > > > >
>> >> > > > > so you're using SConscript('src/SConscript',variant_dir='build')
>> for example?
>> >> > > > > You shouldn't need to do anything to make this work with any
>> builder.
>> >> > > > >
>> >> > > > > -Bill
>> >> > > > >
>> >> > > > > On Thu, Jul 12, 2018 at 4:06 AM, Hua Yanghao <
>> huayanghao at gmail.com> wrote:
>> >> > > > >>
>> >> > > > >> Dear Scons Users and Developers,
>> >> > > > >> I am using scons variant_dir so all builds (including a
>> replica of the
>> >> > > > >> original file, e.g. duplicate=1 by default) output in a
>> separate
>> >> > > > >> folder.
>> >> > > > >>
>> >> > > > >> This works out of box for C include files, which also have a
>> nice
>> >> > > > >> duplicate in the output directory (I am not using scanners so
>> I guess
>> >> > > > >> all C include files are duplicated). However now I am
>> enabling new
>> >> > > > >> customized builders, which also have a similar concept of
>> include path
>> >> > > > >> and include files, how can I achieve the same as for C code
>> >> > > > >> compilation, e.g. to have include path and its files
>> dupliated in the
>> >> > > > >> output folder?
>> >> > > > >>
>> >> > > > >> Thanks for any tips before I dive into the source code.
>> >> > > > >>
>> >> > > > >> Best Regards,
>> >> > > > >> Yanghao Hua
>> >> > > > >> _______________________________________________
>> >> > > > >> Scons-users mailing list
>> >> > > > >> Scons-users at scons.org
>> >> > > > >> https://pairlist4.pair.net/mailman/listinfo/scons-users
>> >> > > > >
>> >> > > > >
>> >> > > > > _______________________________________________
>> >> > > > > Scons-users mailing list
>> >> > > > > Scons-users at scons.org
>> >> > > > > https://pairlist4.pair.net/mailman/listinfo/scons-users
>> >> _______________________________________________
>> >> Scons-users mailing list
>> >> Scons-users at scons.org
>> >> https://pairlist4.pair.net/mailman/listinfo/scons-users
>> >
>> >
>> > _______________________________________________
>> > Scons-users mailing list
>> > Scons-users at scons.org
>> > https://pairlist4.pair.net/mailman/listinfo/scons-users
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>
> _______________________________________________ Scons-users mailing list
> Scons-users at scons.org https://pairlist4.pair.net/
> mailman/listinfo/scons-users
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20180713/173687cd/attachment.html>


More information about the Scons-users mailing list