[Scons-users] Scons using msys/mingw.
    Jos De Laender 
    jos at de-laender.be
       
    Sun Feb 10 12:39:59 EST 2013
    
    
  
Dmitry (sorry for the earlier missspelling in the name),
Bill,
I just was about reporting it turned out quite well after all !
Using the native python and following the two advices of Dmitry :
- religious use of os.path, os.sep, os.pathsep, os.path.join, and friends.
- safeguarding escapes, as in p.replace('/', '\\\\').replace('\\', '\\\\')
Additionally, but that might be as well a problem as my project setup, 
the "default env" was pretty useless.
(PATH set in msys environment, PKG_CONFIG_PATH communicated via env, CC 
options via env etc ..)
But importing lots of stuff of the os.environ solved that one.
Have a working one. Surely not yet bullet proof, but way further than I 
was hoping !
Jos
Op 10-02-13 18:14, Bill Deegan schreef:
> Jos,
>
> SCons is good with cross platform, but msys is sort of cross/cross 
> platform.. :)
>
> Hopefully when we rework our tools infrastructure we'll be able to 
> handle this better.
>
> -Bill
>
> On Sun, Feb 10, 2013 at 1:48 AM, Jos De Laender <jos at de-laender.be 
> <mailto:jos at de-laender.be>> wrote:
>
>
>     Hi Dimitri,
>
>     Thanks for the extensive answer.
>     It is what I was already afraid of ... though glad it is 'doable'.
>     Probably I just expected a little bit too much of 'cross-platform' ...
>
>     Jos
>
>     Op 10-02-13 05:51, Dmitry Mikhin schreef:
>
>         Hi Jos,
>
>         I have a fairly big and multi-lingual project
>         (C/C++/Fortran/Python/LaTeX/RPM or InnoSetup/etc.) built under
>         mingw
>         and linux. Uses native Python on Windows.
>
>         Overall, it is not only a question whether msys Python is like the
>         Unix one. The MinGW SCons calls cmd.exe shell whenever using any
>         external program, and therefore, paths passed into the DOS
>         shell must
>         conform. Also, some utilities and compilers were happy with
>         Unix-style
>         paths in their arguments, while others insisted on '\\\\'.
>         Sometimes
>         it was down to how the string would be used: in a shell
>         invocation or
>         in Python code. Every time it was try and error. So, both
>         converting
>         all arguments to Windows-style did not work, and leaving it
>         all Unix
>         style did not work, at least in my case.
>
>         A brief run over the changes I had to make:
>         - religious use of os.path, os.sep, os.pathsep, os.path.join,
>         and friends.
>         - safeguarding escapes, as in p.replace('/',
>         '\\\\').replace('\\', '\\\\')
>         - for unknown reason had to use duplicate=1 in VariantDir
>         - adding resource files, icons, etc. on Windows
>         - switching between *.sh and *.bat versions of my own,
>         in-project scripts,
>         - bypassing use of fifo pipes when on Windows
>         - switching between RPM/InnoSetup as needed
>         - no '-fPIC'
>         - adding env['PROGSUFFIX'] whenever searching with WhereIs
>         - selecting between 'cmp' and 'fc /b', 'copy' and 'cp', 'move' and
>         'mv' whenever these were invoked directly.
>
>         The main effort was in the first two items. Regrettably, there
>         was no
>         common recipe with safeguarding, as explained above. Hey, it
>         worked!
>
>         Best of luck,
>         Dmitry
>
>         On Sun, Feb 10, 2013 at 8:45 AM, Jos De Laender
>         <jos at de-laender.be <mailto:jos at de-laender.be>> wrote:
>
>             Gents,
>
>             I have a fairly common problem. Nevertheless I don't
>             succeed finding a
>             successful path ...
>
>             The project is a linux project that is replicated in
>             msys/mingw.
>
>             There are some issues with the default compiler, but those
>             I can manage with
>             a little help of google.
>
>             The real issue is though that I have install paths and
>             alike that should be
>             expressed in msys separators ('/') even though the os
>             specific one is '\'.
>             There I go nuts ...
>             It appeared to me that building python on msys would be
>             the way to go, but
>             much to my surprise that seems far from straightforward ..
>             (and no thanks, I don't want to pull in cygwin :)).
>
>             Someone got this issue before ? So I'm looking for two
>             potential resolutions
>             :
>             - Setting the separator, independently ...
>             or
>             - Building python under msys (assuming that then it will
>             behave like a linux
>             one ...)
>
>         _______________________________________________
>         Scons-users mailing list
>         Scons-users at scons.org <mailto:Scons-users at scons.org>
>         http://four.pairlist.net/mailman/listinfo/scons-users
>
>
>
>     -- 
>     Jos De Laender
>     www.jodela.be <http://www.jodela.be>
>
>     _______________________________________________
>     Scons-users mailing list
>     Scons-users at scons.org <mailto:Scons-users at scons.org>
>     http://four.pairlist.net/mailman/listinfo/scons-users
>
>
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> http://four.pairlist.net/mailman/listinfo/scons-users
-- 
Jos De Laender
www.jodela.be
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://four.pairlist.net/pipermail/scons-users/attachments/20130210/aaa73ebe/attachment.html>
    
    
More information about the Scons-users
mailing list