Re: Question over the use of powershell in env['SHELL'] or some way to force relative paths

RW via Scons-users <[email protected]>
Newsgroups gmane.comp.programming.tools.scons.user
Message-ID <CAMMCZ5NhxK7tA-BSginoFRNwZKzxAQ4o9V_Vuqmq=z1TYzHNfA@mail.gmail.com>
thanks that was just what I needed
the paths are relative in the script, but because the sconscript lives in a
subdir further down
scons decides to use absoloute paths in it's variable expansion of $TARGET
$SOURCES etc

there are several different ports for different hardware platforms such as
micropython/ports/minimal
micropython/ports/stm32
micropython/ports/esp32 etc
which are independent of each other but all use shared sources under
directories such as micropython/lib for example.

I could link all the scripts together so that everything starts at the top
level directory
then use something like scons -u . in the subdir, but I'd prefer to keep
the ports seperate so that the command line options are different for each
port.

I came up with a tool anyways based on the link you posted which works fine
and supports basic redirection
https://github.com/Grbd-Forks/micropython/blob/scons2/tools/scons/tools/General/WinSpawn/WinSpawn.py

I plan on putting a load of these into a pip installable library at some
point, then seeing if I can add setuptools entry_point type plugin support
to scons (also using namespacing)

Many Thanks
Richard

On Fri, 21 Sep 2018 at 04:48, Bill Deegan <[email protected]> wrote:

> Take a read of:
> https://github.com/SCons/scons/wiki/LongCmdLinesOnWin32
>
> Also, why are you using full paths?
> And/or can't you place your SConstruct at the top of your tree?
>
> On Thu, Sep 20, 2018 at 10:10 PM RW via Scons-users <[email protected]>
> wrote:
>
>> Hi,
>> I've got another question
>> I've recently run into an issue whereby the command I'm trying to run
>> within scons / windows exceeds the 8192 path limit
>> This is partially due to scons using absolute paths during the build
>> phase, possibly due to the way I have the scripts setup
>>
>> This leaves me with two options
>>
>> 1. Try to force the use of relative paths within scons
>> 2. Try to use powershell as the shell since it seems to not have this
>> issue
>>
>> The full setup is here
>> https://github.com/Grbd-Forks/micropython/tree/scons2
>> with the top level script being run under
>> micropthon/ports/minimal (this is the only port I've tried setting up so
>> far)
>>
>> The powershell approach nearly works, but seems to ignore the windows
>> PATH when searching for the arm gcc compiler I have installed
>> ```
>> import distutils.spawn
>> powershell_path = distutils.spawn.find_executable("powershell.exe")
>> env.Replace(SHELL=powershell_path)
>> ```
>>
>> The other approach migh be to force scons to change the absolute path to
>> a relative one
>> with the below example D:\SourceCode\GitRepos.Forks\micropython\py\mpz.c
>> to ..\..\py\mpz.c
>> but I'm unsure if theres a way to do that
>>
>> To give an example of the sort of command line I'm ending up with
>> ```
>> arm-none-eabi-gcc -E -std=c99 -DNO_QSTR -mthumb -mtune=cortex-m4
>> -mabi=aapcs-linux -mcpu=cortex-m4 -mfpu=fpv4-sp-d16 -mfloat-abi=hard
>> -fsingle-precision-constant -Wdouble-promotion -Wall -Werror -nostdlib -Os
>> -fdata-sections -ffunction-sections -DNDEBUG -I.
>> -ID:\SourceCode\GitRepos.Forks\micropython -Ibuild
>> D:\SourceCode\GitRepos.Forks\micropython\py\mpstate.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\nlr.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\nlrx86.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\nlrx64.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\nlrthumb.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\nlrxtensa.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\nlrsetjmp.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\malloc.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\gc.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\pystack.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\qstr.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\vstr.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\mpprint.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\unicode.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\mpz.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\reader.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\lexer.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\parse.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\scope.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\compile.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitcommon.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitbc.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\asmbase.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\asmx64.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitnx64.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\asmx86.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitnx86.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\asmthumb.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitnthumb.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitinlinethumb.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\asmarm.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitnarm.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\asmxtensa.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitnxtensa.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitinlinextensa.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\formatfloat.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\parsenumbase.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\parsenum.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\emitglue.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\persistentcode.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\runtime.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\runtime_utils.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\scheduler.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\nativeglue.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\stackctrl.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\argcheck.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\warning.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\map.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\obj.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objarray.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objattrtuple.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objbool.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objboundmeth.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objcell.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objclosure.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objcomplex.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objdeque.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objdict.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objenumerate.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objexcept.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objfilter.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objfloat.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objfun.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objgenerator.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objgetitemiter.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objint.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objint_longlong.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objint_mpz.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objlist.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objmap.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objmodule.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objobject.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objpolyiter.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objproperty.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objnone.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objnamedtuple.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objrange.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objreversed.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objset.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objsingleton.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objslice.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objstr.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objstrunicode.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objstringio.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objtuple.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objtype.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\objzip.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\opmethods.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\sequence.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\stream.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\binary.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\builtinimport.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\builtinevex.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\builtinhelp.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modarray.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modbuiltins.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modcollections.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modgc.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modio.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modmath.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modcmath.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modmicropython.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modstruct.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modsys.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\moduerrno.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\modthread.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\vm.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\bc.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\showbc.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\repl.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\smallint.c
>> D:\SourceCode\GitRepos.Forks\micropython\py\frozenmod.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\moductypes.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modujson.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modure.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\moduzlib.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\moduheapq.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modutimeq.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\moduhashlib.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\moducryptolib.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modubinascii.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\virtpin.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\machine_mem.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\machine_pinbase.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\machine_signal.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\machine_pulse.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\machine_i2c.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\machine_spi.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modussl_axtls.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modussl_mbedtls.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modurandom.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\moduselect.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modwebsocket.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modwebrepl.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\modframebuf.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\vfs.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\vfs_reader.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\vfs_posix.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\vfs_posix_file.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\vfs_fat.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\vfs_fat_diskio.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\vfs_fat_file.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\utime_mphal.c
>> D:\SourceCode\GitRepos.Forks\micropython\extmod\uos_dupterm.c
>> D:\SourceCode\GitRepos.Forks\micropython\lib\embed\abort_.c
>> D:\SourceCode\GitRepos.Forks\micropython\lib\utils\printf.c >
>> build\genhdr\qstr.i.last
>> ```
>>
>> Many Thanks
>> Richard
>>
>> _______________________________________________
>> Scons-users mailing list
>> [email protected]
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>>
>

_______________________________________________
Scons-users mailing list
[email protected]
https://pairlist4.pair.net/mailman/listinfo/scons-users
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.