Title: BSD detection Post by: dkaparis on August 11, 2010, 11:00:16 PM There is this piece of code in headers.h:
#ifdef __WXMAC_OSX__ #define __WXMAC__ 1 #define __WXOSX__ 1 #define __BSD__ 1 #endif #endif In my testing it's not caught on FreeBSD 8.1 I propose it be changed to: #if (defined(__unix__) || defined(unix)) && !defined(USG) #include <sys/param.h> #endif And then checks for BSD should be #ifdef BSD This is the recommended way of detecting BSD in the FreeBSD Porter's Handbook (http://www.freebsd.org/doc/en/books/porters-handbook/porting-versions.html). This change is already done in my CMake tree. Title: Re: BSD detection Post by: satoshi on August 12, 2010, 12:02:06 AM There is this piece of code in headers.h: That code was a bad idea anyway, I'm deleting it. Any Mac code should only use __WXMAC_OSX__, not __WXMAC__ or __WXOSX__, and we should stop using __BSD__.#ifdef __WXMAC_OSX__ #define __WXMAC__ 1 #define __WXOSX__ 1 #define __BSD__ 1 #endif #endif Quote #if (defined(__unix__) || defined(unix)) && !defined(USG) #include <sys/param.h> #endif Title: Re: BSD detection Post by: dkaparis on August 12, 2010, 08:24:37 AM Quote #if (defined(__unix__) || defined(unix)) && !defined(USG) #include <sys/param.h> #endif Don't know if Mac OS X is technically a BSD and I don't have access to a Mac, maybe someone else may test it. If there are other Mac (and not BSD) specialties, then we'd need to check both for __WXMAC_OSX__ and BSD or detect these in some other way altogether. Title: Re: BSD detection Post by: satoshi on August 12, 2010, 09:14:20 PM This is in SVN rev 130. Check that it compiles right.
Code: #if (defined(__unix__) || defined(unix)) && !defined(USG) Title: Re: BSD detection Post by: dkaparis on August 13, 2010, 03:38:17 PM Incorporated into the CMake tree. No problems on Windows and FreeBSD.
|