Commit Graph

1021 Commits

Author SHA1 Message Date
Nils Gladitz a12b0f1b19 CMake: Prevent WiX installations over existing NSIS installations
Use a custom action to look for Uninstall.exe in the user
selected installation prefix.

Its presence indicates a previous NSIS installation.
Inform the user and request manual resolution of the issue.
2016-02-09 10:28:57 -05:00
Brad King 7b53e8c6a5 Merge topic 'install-man-conditionally'
8282547e Install ccmake.1 and cmake-gui.1 conditionally with their tools (#15957)
2016-02-09 10:10:20 -05:00
Brad King 8282547e0f Install ccmake.1 and cmake-gui.1 conditionally with their tools (#15957) 2016-02-08 09:38:18 -05:00
Brad King 8a8d22cf1e CMake 3.5.0-rc1 version update 2016-02-02 08:37:05 -05:00
Brad King fae4779864 Utilities/Release: Configure Windows binary to support Windows XP
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.
2015-12-21 10:05:03 -05:00
Brad King 083312a8fd Utilities/Release: Switch to .msi builder for Windows binary
Use a new build machine to produce the Windows binary using the CPack
WiX generator to produce a `.msi` installer.
2015-12-21 09:52:28 -05:00
Brad King 240b065faa Utilities/Release: Optionally load environment on remote build server 2015-12-21 09:52:28 -05:00
Brad King a95b47154e Utilities/Release: Add optional remote launcher to ssh calls 2015-12-21 09:52:28 -05:00
Brad King a53e0168c3 Merge topic 'import-kwiml'
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
2015-12-21 09:41:09 -05:00
Brad King f9e3ca46cb Merge topic 'release-wix-config-ng'
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
2015-12-18 10:55:35 -05:00
Brad King a5dd0c9d42 Add option to use a system-installed KWIML
Do not activate it with the general use-system-libs options for now
because KWIML is not commonly distributed or available.
2015-12-18 10:02:28 -05:00
Brad King 036b6ef7c4 Port CMake from cmIML to KWIML
KWIML no longer uses a configured prefix.
2015-12-18 10:02:07 -05:00
Brad King 12293371ee Merge branch 'upstream-KWIML' into import-kwiml
* upstream-KWIML:
  KWIML 2015-12-09 (43f9f8d0)
2015-12-17 14:56:40 -05:00
Brad King 55b21d072e Add script to update KWIML from upstream 2015-12-17 14:56:31 -05:00
Brad King c7d9a24911 Utilities/KWIML: Drop sources to make room for fresh import 2015-12-17 14:55:38 -05:00
Brad King c4282347e2 Add script to update KWSys from upstream 2015-12-17 14:46:09 -05:00
Ben Boeckel 498c36850b Add a script to help update third-party sources
Use the VTK `ThirdParty/update-common.sh` script as of commit
2f24b7b0f60b67a2a28b9aef210f06f904e7a977.

Co-Author: Brad King <brad.king@kitware.com>
2015-12-17 14:44:53 -05:00
Nils Gladitz 24cdb9df59 CMake: Mimic NSIS options dialog in WiX installer 2015-12-17 15:57:30 +01:00
Brad King a42bf6c5dd Utilities/Release: Add support for copying .msi files 2015-12-10 14:30:55 -05:00
Brad King 93936d78d2 Utilities/Release: Avoid repeat copy of files with same suffix 2015-12-10 14:29:37 -05:00
Roger Leigh 8a60e6961e Utilities: Add BoostScanDeps script
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.
2015-12-02 09:40:17 -05:00
Brad King 58c1840a19 Merge branch 'upstream-kwiml' into update-kwiml 2015-11-30 10:18:24 -05:00
Brad King c09acf4fdd libarchive: Update README-CMake.txt for new snapshot 2015-10-28 08:44:47 -04:00
Brad King 2f940f8995 libarchive: Drop use of pthread.h for CMake build
CMake does not use threads so we do not need this in our libarchive.
2015-10-28 08:44:47 -04:00
Brad King 1e47381730 libarchive: Do not use pthread.h API without header 2015-10-28 08:44:47 -04:00
Brad King 43d577dcb9 libarchive: Test for Clang builtin before using it
The __builtin_bswap16 builtin is not available on Clang 2.1.
2015-10-28 08:44:47 -04:00
Brad King 85e0bb84f5 libarchive: Avoid using 'uint8_t' as bitfield type
The IBM XL compiler does not like it.  Use plain 'unsigned' instead.
2015-10-22 10:18:27 -04:00
Brad King c70491d671 libarchive: Avoid using name 'hz'
AIX system headers define the symbol 'hz' as a preprocessor macro.
2015-10-22 10:18:27 -04:00
Brad King 1bbba477c7 libarchive: Drop outdated CMake portability snprintf
The archive_read_support_format_zip.c source no longer calls snprintf
directly so we do not need a portability macro for it.
2015-10-22 10:18:26 -04:00
Brad King 64bdf0b746 libarchive: Avoid non-portable u_int8_t
Use uint8_t that we prepare in config.h instead.
2015-10-22 10:18:26 -04:00
Brad King 8f837fc9a9 libarchive: Use CommonCrypto APIs on OS X only when available
Use each CommonCrypto API only when using an OS X SDK version new enough
to provide it.
2015-10-22 10:18:26 -04:00
Brad King 61a0251e82 libarchive: Define O_CLOEXEC when missing
Do this in archive_random.c as we do in several other sources already.
2015-10-22 10:18:26 -04:00
Brad King 832fe4b133 libarchive: Fix VS 7.1 Debug build
This version of the MS C runtime library forgets to export
_byteswap_ushort.
2015-10-21 11:34:28 -04:00
Brad King 0b82f51a30 libarchive: Guard bcyrpt.h with HAVE_BCRYPT_H 2015-10-21 11:18:50 -04:00
Brad King 5333c04cd0 libarchive: Drop CMake-specific Borland compiler workaround
We no longer build CMake with the Borland compiler.
2015-10-21 10:31:57 -04:00
Brad King e861e12f6e libarchive: Define version macro before first use 2015-10-21 10:30:29 -04:00
Brad King 932848f420 Merge branch 'libarchive-upstream' into update-libarchive
Resolve conflicts by integrating changes from both sides.
2015-10-21 10:18:52 -04:00
Brad King fab35c95cb Utilities/Release: Move cygwin packages to a subdirectory 2015-10-06 10:13:28 -04:00
Brad King 45fa326b6c Utilities/Release: Drop OS X ppc/i386 binary
Users with OS X 10.5 or below can build from source or use an older
CMake version.
2015-10-05 13:09:04 -04:00
Brad King 86cc45e3e3 CMake 3.4.0-rc1 version update 2015-10-05 10:11:00 -04:00
Brad King ec725815c9 Utilities/Release: Update path to 'cmake.exe' on Windows build machine 2015-10-01 14:11:05 -04:00
Brad King 1d11f3ca68 Merge topic 'link-https-cmake.org'
da7276cf Replace http://www.cmake.org URLs with https://cmake.org
2015-09-29 10:08:02 -04:00
Brad King da7276cf94 Replace http://www.cmake.org URLs with https://cmake.org
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'
2015-09-25 15:47:39 -04:00
Marc Chevrier a7fe4413d5 jsoncpp: Add missing cast to convert from char to UInt
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.
2015-09-25 08:38:20 -04:00
Joerg Sonnenberger 75644dafe5 jsoncpp: Fix compilation as C99 on Solaris
In C99 mode, Solaris variants may already define isfinite, so check for
the existence first.
2015-09-14 09:40:38 -04:00
Gregor Jasny 01b6ecdb41 curl: Do not use libnetwork on Apple platforms
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.
2015-09-10 11:25:42 -04:00
Brad King 6f7edb87ea Utilities/Release: Install docs in unversioned directory (#15692)
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`.
2015-09-02 14:15:59 -04:00
Brad King 7d891cde02 Utilities/Release: Refactor bootstrap argument construction
Pass needed bootstrap arguments directly instead of constructing them
from various conditions.
2015-09-02 14:11:57 -04:00
Brad King 4071a74707 curl: Update README-CMake.txt for new snapshot 2015-08-17 10:17:51 -04:00
Brad King 7727d485d3 curl: Update configuration of build within CMake
Update our curl build option settings as needed for CMake to account for
differences in curl options from 7.38 to 7.44.
2015-08-17 10:17:51 -04:00
Brad King 3f2f1a949c curl: Fix check for gethostbyname_r with 5 arguments
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.
2015-08-17 10:17:50 -04:00
Brad King 91e8d35ab8 Merge branch 'curl-upstream' into update-curl
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.
2015-08-12 15:43:52 -04:00
Brad King 26f5445bb4 Do not install 3rd-party dependencies by default
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.
2015-08-05 13:29:57 -04:00
Brad King 10f2065249 Utilities/Release: Drop IBM AIX release scripts
We no longer produce binaries for AIX.
2015-07-23 11:44:09 -04:00
Brad King fbd7fd0f84 Utilities/Release: Update to openssl-1.0.2d
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.
2015-07-10 14:02:05 -04:00
Brad King 9ce7a663d6 Utilities/Sphinx: Add CMake_OPTIONAL_COMPONENT macro
When building this directory independently define the macro since we
will not get the definition from the top level of the source tree.
2015-07-07 09:38:48 -04:00
Konstantin Podsvirov c823f04e0c CMake: New option CMake_INSTALL_COMPONENTS
By default is OFF.
Now it's used with CPack IFW himself installer.
2015-07-07 09:16:40 -04:00
Konstantin Podsvirov 7383e4d722 CMake: Install COMPONENTs (sphinx-man)
Added component sphinx-man
2015-07-07 08:11:10 +03:00
Konstantin Podsvirov 938bbc4352 CMake: Install COMPONENTs
Added components:
- cmake
- ctest
- cpack
- cmake-gui
- ccmake
- data
- sphinx-html
- sphinx-singlehtml
- sphinx-qthelp

Other now Unspecified.
2015-07-07 08:11:09 +03:00
Brad King 940ea9ff4a Merge topic 'quote-doxygen-tools'
15c6a4c9 Utilities/Doxygen: Support tools installed in paths with spaces
2015-06-18 09:05:15 -04:00
Michael Stürmer 15c6a4c919 Utilities/Doxygen: Support tools installed in paths with spaces
Quote paths to tools in generation script.
2015-06-16 09:07:41 -04:00
Brad King 6d1cef1aed Utilities/Release: Update to openssl-1.0.2c
Update the prebuilt binary build configurations for machines where
we build our own OpenSSL library to use a newer version.
2015-06-15 12:37:44 -04:00
Brad King 1594edba9e Utilities/Release: Update to more recent Qt 4.8 on OS X
Update to a version newer than 4.8.0 to get the fix for this issue:

 https://bugreports.qt.io/browse/QTBUG-23704
 https://codereview.qt-project.org/13576
 http://code.qt.io/cgit/qt/qt.git/commit/?id=e88dbaa7fc

We hit it in the cmake-gui command-line install help dialog.
2015-06-08 16:36:06 -04:00
Brad King c2cb80cbfa CMake 3.3.0-rc1 version update 2015-06-02 11:14:25 -04:00
Michael Scott 9217b678b3 jsoncpp: Provide 'isfinite' impl on more HP-UX versions (#15576)
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.
2015-05-26 10:12:25 -04:00
Brad King dd107b30d2 Add option to pass custom flags to sphinx-build (#15545)
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>
2015-04-30 09:41:31 -04:00
Brad King 8b4c40155a Merge topic 'fix-libarchive-mktemp'
1f33b45d libarchive: Fix string concatentation in Windows mktemp implementation
2015-04-10 08:31:01 -04:00
Brad King bb891710cf Merge topic 'fix-libarchive-gnutar-large-ids'
ad194ae0 libarchive: Use base-256 encoding for UID/GID like GNU tar does
2015-04-09 14:28:23 -04:00
Nils Gladitz ad194ae0b1 libarchive: Use base-256 encoding for UID/GID like GNU tar does 2015-04-09 14:27:16 -04:00
Brad King f941ed7a8f Merge topic 'fix-liblzma-optimize'
e5d336be liblzma: Disable GNU 3.3 compiler optimizations
a2df4a3f liblzma: Disable XL compiler optimizations altogether
2015-04-09 14:19:29 -04:00
Tim Kientzle 1f33b45d5d libarchive: Fix string concatentation in Windows mktemp implementation
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>
2015-04-09 14:08:43 -04:00
Brad King e5d336beb2 liblzma: Disable GNU 3.3 compiler optimizations
The GNU 3.3 optimizer causes bad behavior in liblzma, so disable it.
2015-04-08 13:52:02 -04:00
Brad King a2df4a3f76 liblzma: Disable XL compiler optimizations altogether
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.
2015-04-08 13:08:53 -04:00
Brad King 4bf56c331b Merge topic 'fix-liblzma-XL-optimize'
82c51a8a liblzma: Disable XL compiler optimizations in one source to avoid crash
2015-04-03 10:17:14 -04:00
Brad King 82c51a8ac6 liblzma: Disable XL compiler optimizations in one source to avoid crash
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.
2015-04-02 13:17:57 -04:00
Brad King de97f41cf3 Merge topic 'fix-liblzma-access-alignment'
af61d6cb liblzma: Use unaligned access only on Intel and PowerPC archs
2015-04-02 12:57:35 -04:00
Brad King af61d6cb60 liblzma: Use unaligned access only on Intel and PowerPC archs 2015-04-01 11:05:30 -04:00
Ådne Hovda 7b1cdb0027 jsoncpp: Provide 'isfinite' implementation on older AIX and HP-UX
Newer AIX and HP-UX platforms provide 'isfinite' as a <math.h> macro.
Older versions do not, so add the definition if it is not provided.
2015-03-31 14:55:00 -04:00
Brad King bd96cd5a1e Merge topic 'curl-cygwin-no-windows'
4a2ff2b7 curl: Never consider using Windows APIs on Cygwin
2015-03-27 09:15:16 -04:00
Brad King 4a2ff2b7f2 curl: Never consider using Windows APIs on Cygwin
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>
2015-03-26 14:04:39 -04:00
Gregor Jasny 840f5b89a4 Help: Install Sphinx HTML object mapping file
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>
2015-03-22 11:50:53 +01:00
Brad King 6794079523 Merge branch 'upstream-kwiml' into update-kwiml 2015-03-17 14:27:27 -04:00
Nils Gladitz 1bda8f1fdb CPackWIX: Customize CMake installer theme. 2015-03-12 20:44:27 +01:00
Brad King 7e6608fe64 Utilities/Release: Build OS X and Win binaries without OpenSSL
This will tell our curl to use the OS-native TLS/SSL APIs.
2015-02-18 09:29:50 -05:00
Brad King cb01f15170 CMake 3.2.0-rc1 version update 2015-02-05 09:55:27 -05:00
Brad King 1337576b24 Merge topic 'curl-default-cainfo'
0abd3e53 cmake: Use a default CA path when not using system curl
6ce346c5 curl: Add CURL_CA_PATH option to CMake build process
2015-01-26 09:51:50 -05:00
Brad King 29ef8fb5be Merge topic 'update-curl'
53df9bce curl: Add README-CMake.txt
2015-01-23 10:50:24 -05:00
Brad King 6ce346c53c curl: Add CURL_CA_PATH option to CMake build process
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.
2015-01-23 08:23:52 -05:00
Brad King 53df9bce19 curl: Add README-CMake.txt
Describe how to update curl from upstream.
2015-01-22 10:00:04 -05:00
Brad King 27c6da933e Add option to build CMake against a system jsoncpp
Create a CMAKE_USE_SYSTEM_JSONCPP option.
2015-01-20 10:37:35 -05:00
Brad King bda4f0b661 jsoncpp: Add headers to help CMake include in-source jsoncpp headers
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.
2015-01-20 09:28:59 -05:00
Brad King a02fbec5f3 jsoncpp: Drop doxygen comments that cause Clang warnings
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.
2015-01-20 09:28:28 -05:00
Brad King 3cca39b46d Merge topic 'libarchive-constify-internal-get_date'
6b9a0e17 libarchive: Constify internal __archive_get_date implementation
2015-01-16 09:43:54 -05:00
Brad King 9d4ef58462 Merge topic 'import-jsoncpp'
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
2015-01-16 09:43:52 -05:00
Brad King 6b9a0e1797 libarchive: Constify internal __archive_get_date implementation
The caller of this API already re-declares it as const, so update the
implementation accordingly.
2015-01-15 11:48:10 -05:00
Brad King 89cd3d273d jsoncpp: Add README-CMake.txt
Describe how to update jsoncpp from upstream.
2015-01-15 11:39:20 -05:00
Brad King 7e310624b0 jsoncpp: Provide 'isfinite' implementation on Solaris
Solaris provides a 'finite' function in <ieeefp.h>.
2015-01-15 11:39:20 -05:00
Brad King 4c49606598 jsoncpp: Provide 'isfinite' implementation on ancient glibc
The glibc 2.1 headers provide isfinite only in C99 mode.
Add its definition ourselves.
2015-01-15 11:39:04 -05:00
Brad King 50032bc847 jsoncpp: Add missing assert before strcmp in json_value.cpp
The strcmp function does not allow NULL pointers, so add an
assert to tell Clang scan-build that the code does not expect
a NULL pointer.
2015-01-15 11:39:03 -05:00
Brad King ad94b0521e jsoncpp: Add missing <iosfwd> include in json/writer.h
The header uses std::ostream, so it must be declared.
2015-01-15 11:39:03 -05:00