On 26/07/2013 15:34, Alan Livingston wrote: > On Thursday, July 25, 2013 6:21:39 PM UTC-4, Cactus wrote: >> You are building multiple configurations in parallel, which is very >> different to the current philosophy of the Visual Studio build. The >> current design is 'select the architecture for which you want to build >> and then build it'. >> >> It is certainly possible that mpir_config.py could be modified to >> support the build approach you are using but it would probably be better >> to supply this as another version of the file rather than attempting to >> support both build styles from one build generator (mpir_config.py is >> complex enough already!). > > Hi Brian, > > I realized this when I tried to create a better solution that had the > pre-build steps in a separate project in the solution. It's unfortunate that > VS comes with parallel builds enabled, and the VS build fails in this way. > But a Google search provides a quick solution.
I am on holiday right now but I will take a look at what could be done here but I will admit that I am far from confident that this will be easy to automate within mpir_config.h > >>> 2. mpir.h is not generated correctly. Exclamation marks are deleted. >>> Exclamation marks are used to specify delayed expansion in variables >>> under the Win32 command parser. Delayed expansion can be disabled >>> and >>> enabled as needed. I have added a command to disable delayed >>> expansion after the first line, @echo off, in gen_mpir_h.bat and >>> tested successfully: >>> >>> @echo off >>> setlocal DisableDelayedExpansion >>> echo creating mpir.h for %1 >> >> I don't understand this one as I wasn't aware that we use delayed >> variable expansion anywhere in generating mpir.h - gen_mpir_h.bat is one >> of my files and I certainly didn't intend to use any !VAR! variables >> when I created it. >> >> In which files are the exclamation marks that are being deleted? > > I'm sorry. i meant that the existence of an exclamation mark in the > processed file is treated by the win32 command processor as a tag for delayed > variable expansion in the "for /f" used to tokenize each line of gmp-h.in. > > Line 32 of gmp-h.in is: > > #if ! defined (__GMP_WITHIN_CONFIGURE) > > and on my system, what is emitted into gmp.h is: > > #if defined (__GMP_WITHIN_CONFIGURE) > > I felt that this was related to the implementation of delayed expansion vars > in my WinXP system. Disabling delayed expansion solved the problem. I > haven't tried this on Win7. It may not be a problem there. I can try later > tonight. > > Since, as you've now clarified, too, I didn't think you were using delayed > var expansion, the quickest solution was to just disable it at the top of the > file with the setlocal command. This error is very odd because we would have had thousands of error reports if this was happening normally - I have never seen this happen on any of the Windows OS's I have been using. However the fix you suggest is low cost and benign so it is an easy fix for this one at least! Brian > > Regards, > > Alan > -- You received this message because you are subscribed to the Google Groups "mpir-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/mpir-devel. For more options, visit https://groups.google.com/groups/opt_out.
