On Sat, 18 Feb 2005, Vincent Béron wrote:
Hi François,
I tried to use winemaker on an app, and I had the following notes about it.
- Some subdirs were not visited by winemaker, while some others were.
Should it visit all of them recursively? Does it stops if there are no source file in a dir (but there are subdirs)? The last point looks like the culprit.
This does not seem to be the problem. Rather, winemaker generates a makefile only if it finds a .dsp, .mak or makefile in the directory. Maybe this is why some directories got ignored?
- Would it be possible to make winemaker understand the i64 postfix and
do something about it? I believe the most portable way would be to change from "1234567890i64" to "(((__int64) 12) * ((__int64) 100000000)
- ((__int64) 34567890))", as just replacing i64 by LL would be too easy.
I have attached a patch that does this. Does it work for you? Note that all large decimal numbers are converted to hexadecimal. When splitting them in two the decimal representation does not mean much anyway.
- winemaker changed the name of some .txt files from "a name.txt" to
"a_name.txt". Since those are not source code, and their endlines were not unixified, I'm not sure it's such a good idea to touch those files.
I sent a patch fixing this this morning.
- Would there be a way to transform __try {}/__finally{} blocks to
__TRY {}/__FINALLY()? I'm not sure the changes I did are now compilable under MSVC nor MingW.
Unfortunately they don't work exactly the same. There has been many attempts to improve exception support in Winelib but none that were deemed good enough to be committed to CVS.
Sidenote about exception.h: you need to use glibc's setjmp.h to get sigsetjmp(), but the default use of winemaker is to use wine's msvcrt's setjmp.h, which doesn't provide it.
When creating a new project in Visual C++, that new project gets linked with msvcrt, so this is also what winemaker does. If that's not what you want, use the --nomsvcrt option and winemaker should no longer put msvcrt's headers in the include path and link dlls and applications with it.