Compile with `-D_WIN32_WINNT=0x501` to use a WinXP-compatible API.
Compile with `-D_USING_V110_SDK71_` to tell the VS standard library
headers that we are building with a WinXP-compatible Windows SDK. Link
executables with `-subsystem:console,5.01` to make them runnable on
Windows XP. Ideally `cmake-gui` should instead be linked with
`-subsystem:windows,5.01` but with the Ninja and Makefile generators
CMake adds `-subsystem:windows` after our `-subsystem:console,5.01` flag
and the linker seems to interpret this combination as we need.
a5dd0c9d Add option to use a system-installed KWIML
036b6ef7 Port CMake from cmIML to KWIML
12293371 Merge branch 'upstream-KWIML' into import-kwiml
3fdbb0a8 KWIML 2015-12-09 (43f9f8d0)
55b21d07 Add script to update KWIML from upstream
c7d9a249 Utilities/KWIML: Drop sources to make room for fresh import
24cdb9df CMake: Mimic NSIS options dialog in WiX installer
de77d4a7 CPackWIX: Allow multiple patch files and diagnose if any are missing
38d723b3 CPackWIX: Allow patching of shortcut components
This script scans Boost headers in order to determine inter-library
dependencies, using the "autolink" information embedded in the
headers for automatic linking on Windows. This information is then
output in a form suitable for use in FindBoost.cmake.
The latter is now the preferred URL for visiting cmake.org with a
browser. Convert using the shell code:
git ls-files -z | xargs -0 sed -i 's|http://www\.cmake|https://cmake|g'
When parsing digits we know our `c - '0'` expression results in a
non-negative value due to preceding conditions. Simply cast the result
to UInt. This fixes compilation on SolarisStudio 12.4.
Starting with OS X 10.11 there is a library called libnetwork
which will be picked up during curl configuration.
This breaks backward compatibility of the resulting binaries
because libnetwork is not available on older OS X versions.
Our upstream-built release tarballs already contain many unversioned
paths and so will never overlap with another version of CMake in the
same installation prefix. Therefore we do not need a versioned name for
the documentation directory. Configure our release binaries to place
the documentation in an unversioned directory so that one can use the
same path to refer to the documentation locally even after updating
CMake. For example, on OS X one may see the documentation in
`/Applications/CMake.app/Contents/doc/cmake/html/index.html`.
Fix the check code to pass 5 arguments instead of 6. This typo was
introduced in curl 7.39 but was not noticed because the result of
this check is used only if ENABLE_IPV6 is OFF.
Resolve conflicts by taking upstream side when possible and otherwise
integrating the changes from both sides. Be carful in CMakeLists.txt
where the OPENSSL code block that we modified previously has moved, and
preserve our previous modifications in the new location.
Disable the CMake_INSTALL_DEPENDENCIES option by default and turn it on
explicitly in our packaging scripts. This simplifies packaging in
distributions that provide the dependencies for us without having to
install them. We only need 3rd-party runtime dependencies to be
installed for packaging with redistributable binaries.
Some versions of HP-UX do not define 'isfinite' or 'finite' in math.h
for Itanium when preprocessing with C++, so we have to add the
definition ourselves instead to map to the internal version.
Create a SPHINX_FLAGS cache entry that users can populate with
command-line flags for sphinx-build. Add an option to the
bootstrap script to populate it up front.
Suggested-by: Felix Geyer <debfx@ubuntu.com>
Port upstream LibArchive commit "compute string pointers after
concatenation" (2014-09-25) and commit "Move variables to top of
function for non-C99 compilers" (2014-11-15) to our CMake copy.
Otherwise we may compute a pointer to memory that is about to be freed
and then compute a bad size to give to CryptGenRandom.
Inspired-by: Tim Kientzle <kientzle@gmail.com>
Revert commit 82c51a8a (liblzma: Disable XL compiler optimizations in
one source to avoid crash, 2015-04-02) and instead add a compiler flag
to disable optimizations in every source of liblzma. Somehow the XL
compiler optimizations create incorrect behavior in liblzma and lead
to crashes or truncated output during compression.
Somehow optimizations of lzma_lzma_optimum_normal by the IBM XL C
compiler cause it to crash. Simply disable optimizations of this source
file with a pragma.
Our Windows API header checks are conditioned on if(NOT UNIX) but
libarchive checks HAVE_WINDOWS_H anyway so the result leaks into
the cache and influenes the curl build. Set the check results to
false explicitly for curl when not on Windows to tolerate this.
Reported-by: Vyacheslav Karpukhin <Vyacheslav.Karpukhin@jetbrains.com>
To link CMake documentation from other documentation sets
like KDE extra-cmake-modules the intersphinx extension depends
on the objects.inv mapping file. The size overhead of 14k seems
to be neglectable.
Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
Move CMAKE_USE_OPENSSL and CURL_CA_BUNDLE up to the top of CMake so that
CMake's own sources can know their values. Add the CURL_CA_PATH option
at the top and honor it as part of the curl build.
Add cm_jsoncpp_value.h and cm_jsoncpp_writer.h headers to include the
CMake-provided copy of the json/value.h and json/writer.h headers from
CMake sources.
Even though we disable warnings when building jsoncpp itself, including
its headers from other CMake sources may still cause warnings. Update
the code to remove these -Wdocumentation warnings.
89cd3d27 jsoncpp: Add README-CMake.txt
7e310624 jsoncpp: Provide 'isfinite' implementation on Solaris
4c496065 jsoncpp: Provide 'isfinite' implementation on ancient glibc
50032bc8 jsoncpp: Add missing assert before strcmp in json_value.cpp
ad94b052 jsoncpp: Add missing <iosfwd> include in json/writer.h
7eba04fd jsoncpp: Include C headers since we use APIs without std::
06f41e98 jsoncpp: Disable warnings to avoid changing 3rd party code
1fc55653 jsoncpp: Build the library within CMake
84d5674d jsoncpp: Include "config.h" before system headers
a263d519 Merge branch 'jsoncpp-upstream' into import-jsoncpp
53f6ccb0 JsonCpp 1.0.0 (reduced)
32fd56b0 jsoncpp: Add .gitattributes to skip whitespace checks
Update json/json.h to account for our lack of autolink.h. Update
json/config.h to include KWSys Large File Support configuration so that
consistent stream libraries are used (on AIX with XL).
Add a cm_jsoncpp_reader.h header to include the CMake-provided copy of
the json/reader.h header from CMake sources.
For the nightly binaries, turn of CMAKE_USE_OPENSSL on Windows and OS X
10.6+ platforms. This will activate the new curl behavior to use the
OS-native SSL/TLS implementation.
In commit v3.1.0-rc1~52^2 (Make the OSX 10.6+ release x86_64 only,
2014-09-29) we forgot to remove the name "universal" from the binary
name. Since the binary is no longer universal, use "x86_64" instead.
While at it, update the deployment target to actually be 10.6.
On OS X, when CMAKE_USE_OPENSSL is OFF, use the OS implementation.
This will allow the OS-configured CA list to be trusted automatically.
This is supported on OS X 10.6 and above using AppleClang, Clang, and
GNU compilers.
When a CMake domain 'command' object is defined by CMakeTransform or the
'cmake:command' directive, generate the link target with a lower-case
name even if the command name is not all lower-case. This is needed to
make cross-references to the command definition work since the
'cmake:command' role is marked with the 'lowercase' property.
Use check_include_file instead of check_include_file_concat to look
for OpenSSL headers. They do not need to participate in a sequence
of dependent system headers. Also they may cause winsock.h to be
included before ws2tcpip.h, causing the latter to not be detected
in the sequence.
Add a document transform to insert index and target nodes just before
any CMake domain cross-reference node. This will make references to
CMake domain objects appear in the index. Also add a comment explaining
why it cannot be done in a result_nodes method of the CMakeXRefRole.
c02c747b Tests: Update expected CTestTestFailedSubmit output
a427ed0c curl: Skip sanity check that triggers Clang warning
17b24d55 curl: Disable warnings to avoid changing 3rd party code
4c3bd340 curl: Skip check for inet_pton on Windows
54cb23c6 curl: Restore installation of OpenSSL DLLs
c50f0327 curl: Restore CURL_CA_BUNDLE option
681693c9 curl: Restore CMake-specific zlib selection code
10d80b68 curl: Restore CMake-specific test and install code
19593042 curl: Configure build to work within CMake
cf54aebb curl: Fix curl.h inclusion of curlbuild.h from CMake sources
c17e3207 curl: Use arch-aware CHECK_TYPE_SIZE results
1f7cb7e2 curl: Fix detection of headers with dependencies
b18c9044 curl: Drop inclusion of .rc file for static lib
860f0a2d curl: Select file APIs on Windows
5a3b55ed curl: Do not use 'dl' on HP-UX
59242702 curl: Simplify if() conditions on check result variables
...
Re-apply part of the logic from commit v2.8.0~802 (ENH: allow for shared
build of libcurl ..., 2009-04-10) to skip inet_pton on Windows. On
versions of Windows prior to Vista the function is not available at
runtime.
Set curl build options as needed for CMake rather than presenting them
to the user in the cache. Drop the CMAKE_BUILD_CURL_SHARED option for
now.
Change the curl library name to 'cmcurl'. Disable blocks of code within
curl CMakeLists.txt files that we do not need for CMake, but leave the
code in place to make merging with curl updates easier.
Use a CMake-specific path to this configured header so that it works
when included from a CMake source file in addition to curl sources.
We do not install the Curl headers with CMake, so this hack is okay.
Re-apply the logic change made by commit v2.8.2~536 (Use arch-aware
CHECK_TYPE_SIZE result, 2009-12-17). The size of some types must be
selected at preprocessing time when building for multiple archs on OS X.
Restore the check_include_file_concat functionality broken
in upstream curl. The <net/if.h> header on older OS X versions
depends on <sys/socket.h> begin included first, for example.
The resource file is only needed for the curl .dll, so skip it when
building the static library. This avoids the need to add the
'/machine:' link flag on MS tools for creating a static library.
The value must be either a full path or relative to the configuration
directory, not relative to the 'static' directory. Use a full path.
This avoids a warning:
WARNING: favicon file 'cmake-favicon.ico' does not exist
It worked before because all 'static' directory content is copied to the
'_static' directory of html output anyway.
Some systems don't define a SIZE_MAX (older versions of HP-UX with aCC).
The logic was already in place to account for this condition but
SIZEOF_SIZE_T was not getting cmoputed at configure time to allow it to
function. This computes sizeof(size_t) at configure time to allow the
appropriate logic to work. It also changes SIZEOF_SIZE_T to SIZE_OF_SIZE_T
for consistency.
Remove use of an old hack that takes advantage of the auto-dereference
behavior of the if() command to detect if a variable is defined. The
hack has the form:
if("${VAR} MATCHES "^${VAR}$")
where "${VAR}" is a macro argument reference. Use if(DEFINED) instead.
This also avoids warnings for CMake Policy CMP0054.
Re-apply change from commit v2.8.0~1683 (add initial support for HAIKU
OS, 2008-09-15) on updated upstream curl. However, leave out the part
that was reverted by commit v3.0.0-rc1~541^2~1 (Haiku: Remove outdated
preprocessor checks, 2013-10-05).
We imported curl from an upstream release, so report the corresponding
release version to servers. This is consistent with the version we
presented when our builtin curl was 7.16.1.