cURL / Mailing Lists / curl-library / Single Mail

curl-library

Re: CMake: fix for Windows x64 build with MSVS Compiler

From: Tetetest <tetetest_at_rambler.ru>
Date: Fri, 30 Mar 2012 00:21:34 +0400

Hello Yang,

Thursday, March 29, 2012, 11:33:32 PM, you wrote:

YT> 2012/3/29 Steve Holme wrote:

>> However, I do like your "more generic the better" approach. As such I am
>> wondering, is it possible to use this approach in curlbuild.h and provide
>> consistency between the two?

YT> No. Even after some years, the cmake build is not even close to build
YT> libcurl in the same way as it would get built when using other build
YT> system. Cross-contamination from libcurl's cmake build system into the
YT> other ones is quite risky.

While I see your point, I cannot completely agree.
First off, CMake build system is not compatible with configure, which
makes cross-contamination hardly ever possible.

Consider curlbuild.h.cmake, for example. While it is basically the
same as curlbuild.h.in, the macros there are incompatible with
configure.

YT> Just for jiggles... I have tried the cmake build a while ago with VS6
YT> and horror of horrors it creates a curl_off_t definition which is only
YT> 32bit instead of a 64bit proper one, and the same for ssize_t. Thise
YT> are so serious that I'm not sure it is worth mentioning that the
YT> following definitions are also wrong or missing :-(

YT> NEED_MALLOC_H
[...]
YT> USE_THREADS_WIN32

There are currently several problems with CMake build on Windows. The
most grave one is, many tests do not succeed under Windows due to
absence of #include <windows.h> directive (I mean file
CMake/CurlTests.c).
There is other, more subtle problem: for some reason that is not yet
clear to me, some variables (like e.g. HAVE_GETADDRINFO) are already
present in CMake before the corresponding test is invoked. This
results in test being skipped altogether (as if it has already been
run).

YT> I really hope that the results are better when using other compilers
YT> or platforms.

For windows, the situation is as described above, and CMake tests need
to be improved.
For UNIX platforms, CMake seems to work better.

-- 
Best regards,
 Tetetest                            mailto:tetetest_at_rambler.ru
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html
Received on 2012-03-29