[CMake] cmake for cygwin
Michael Wild
themiwi at gmail.com
Fri Oct 22 06:52:39 EDT 2010
On 22. Oct, 2010, at 11:37 , Marco Atzeri wrote:
> --- Ven 22/10/10, Michael Wild ha scritto:
>
>>
>> On 22. Oct, 2010, at 11:07 , Marco Atzeri wrote:
>>
>>> Dear developers,
>>> the current cmake package for cygwin is unsuitable to
>> build
>>> cmake package as it defines WIN32.
>>> Cygwin programs are unix-like ones while WIN32 is
>> needed only
>>> for pure windows programs.
>>> Defining WIN32 breaks building normal unix programs.
>>>
>>> To build the last qhull package
>>> http://cygwin.com/ml/cygwin-announce/2010-09/msg00015.html
>>> I was obliged to use the cmake Ports version.
>>>
>>> http://cygwin-ports.git.sourceforge.net/git/gitweb.cgi?p=cygwin-ports/ports;a=tree;f=devel/cmake;hb=HEAD
>>>
>>> Using such package I was also able to build VTK, with
>> very minor
>>> change of the source.
>>> http://www.vtk.org/pipermail/vtk-developers/2010-September/008590.html
>>>
>>>
>>> As the first target of a cygwin package is to allow
>> to
>>> build other cygwin packages, the current package
>>> does NOT satisfy this requirement.
>>>
>>> Regards
>>> Marco
>>
>> That's why one should check for CYGWIN in the
>> CMakeLists.txt files. IMHO this is a user-error and not
>> CMake's fault. The doc clearly states about the WIN32
>> variable:
>>
>> WIN32 True on windows
>> systems, including win64.
>
> But for cygwin is WRONG. It should be false
One could also argue that cygwin is running under WIN32. A matter of convention.
>
> WIN32 in not defined when you compile for cygwin any
> package.
> It is defined if your target is non cygwin but a pure
> win32 program like mingw ones.
> Eg. Autoconf/Automake don't set WIN32.
WIN32 is the super-set of pure Windows, CYGWIN and MSYS/MINGW. And in case you haven't noticed: CMake is not a Autoconf clone...
>
> Checking for CYGWIN in the CMakeLists.txt
> oblige to modify upstream source for any package
> we want to port on cygwin. While not setting WIN32
> allow to use upstream source without change and building
> like any other Unix system.
Not checking for CYGWIN is an error in the upstream package and should be reported there or patched by you.
>
>>
>> Set to
>> true when the target system is Windows and on cygwin.
>>
>> Michael
>
>
> Marco
My 2c.
Michael
--
There is always a well-known solution to every human problem -- neat, plausible, and wrong.
H. L. Mencken
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PGP.sig
Type: application/pgp-signature
Size: 195 bytes
Desc: This is a digitally signed message part
URL: <http://www.cmake.org/pipermail/cmake/attachments/20101022/bb8e3eab/attachment.pgp>
More information about the CMake
mailing list