Commit Graph

6840 Commits

Author SHA1 Message Date
Brad King 4389664a26 Android: Detect and save a toolchain from the NDK 2016-08-12 10:40:53 -04:00
Brad King 328191f65f Android: Set CMAKE_SYSROOT automatically
Compute CMAKE_SYSROOT automatically for the current API and architecture
selection.  This causes the --sysroot option to be passed to GNU and
Clang compilers.
2016-08-12 10:40:52 -04:00
Brad King 9e032304ea Android: Detect and save the architecture, ABI, and processor
Add new CMakeSystem.cmake entries for the architecture and ABI.
Store the processor in CMAKE_SYSTEM_PROCESSOR.
2016-08-12 10:40:52 -04:00
Brad King fde59c4d88 Android: Detect and save the API level
Store the Android API level in CMAKE_SYSTEM_VERSION.  If it is not
provided by the user, initialize it from CMAKE_ANDROID_API or fall back
to finding the latest available in the NDK.
2016-08-12 10:40:52 -04:00
Brad King 52b6effd81 Android: Detect and save the NDK directory
Add a new CMakeSystem.cmake entry for the NDK location.
2016-08-12 10:40:52 -04:00
Brad King 8e0cb45e55 Android: Suppress new functionality with Nsight Tegra in VS IDE builds
Support for NVIDIA Nsight Tegra Visual Studio Edition was previously
implemented in the CMake VS IDE generators.  Avoid interfering with
that functionality for now.  Later we may try to integrate this.
2016-08-12 10:40:52 -04:00
Brad King d5e7d5f3eb Android: Add placeholders for platform-specific initialization
Add infrastructure modules to be loaded when initializing builds
targeting Android platforms.
2016-08-12 10:40:51 -04:00
Brad King 64be1ae4a3 Android: Add placeholders for platform-specific compiler selection
Add infrastructure modules to be loaded for determining a compiler
selection when targeting Android platforms.
2016-08-12 10:40:51 -04:00
Brad King 47866770ce Android: Add placeholders for platform-specific compiler settings
Add infrastructure modules to be loaded for Clang and GNU compilers
when targeting Android platforms.
2016-08-12 10:40:51 -04:00
Brad King 735f168bf0 CMakeDetermine*Compiler: Add hook to save custom compiler information
Provide a way for Platform/<os>-Determine-<lang>.cmake modules to save
platform-specific information about the compiler in the configured
CMake<lang>Compiler.cmake modules.
2016-08-12 10:40:51 -04:00
Brad King c148803a57 CMakeDetermineSystem: Load platform-specific helper modules
Once CMAKE_SYSTEM_NAME is known, load a platform-specific

  Platform/<os>-Determine

module in order to enable custom determination of the other settings
needed for the CMakeSystem module (e.g. CMAKE_SYSTEM_PROCESSOR).  Also
add a hook in Modules/CMakeSystem.cmake.in to allow platform-specific
information to be saved.
2016-08-12 10:40:51 -04:00
Brad King a2d5c25a7a GetPrerequisites: Fix regression in gp_resolved_file_type
Since commit v3.6.0-rc1~287^2 (GetPrerequisites: Fix
gp_resolved_file_type on non-canonical paths, 2016-03-08) we
accidentally convert relative paths (e.g. system dll file names) to
absolute paths even when we do not know the base directory.  Fix this by
canonicalizing only paths that are already absolute.

Closes: #16240
2016-08-12 10:24:48 -04:00
Stephen Sorley 1aa5c1bec8 FindCUDA: Fix missing librt on Linux when using static cuda runtime.
Commit 7229ae72 (FindCUDA: Refactor Android(Tegra) support, 2016-04-19)
changed the logic to only add librt to the link line for CUDA versions
6.5 and older.  However, newer versions of CUDA still require librt.
2016-08-12 09:28:38 -04:00
Stephen Sorley aab1f6e984 FindCUDA: Restore default behavior of CUDA_USE_STATIC_CUDA_RUNTIME
Fix bug introduced by commit 7229ae72 (FindCUDA: Refactor Android(Tegra)
support, 2016-04-19).  `CUDA_USE_STATIC_CUDA_RUNTIME` should be enabled
by default if `cudart_static` is available, and silently disabled if
it is not.
2016-08-12 09:26:30 -04:00
Brad King 50ada755e3 Merge topic '15687-xcode-support-system-include'
93ac2a78 Xcode: Obey SYSTEM keyword for includes (#15687)
2016-08-10 11:16:01 -04:00
Gregor Jasny 93ac2a78d5 Xcode: Obey SYSTEM keyword for includes (#15687)
CMake used to put all header search paths into HEADER_SEARCH_PATHS
attribute. Unfortunately this attribute does not support to declare
a search path as a system include.

As a hack one could add a -isystem /path to the cflags but then include
ordering is not deterministic. A better approach was chosen with this
patch by not filling HEADER_SEARCH_PATHS at all and to populate
the C, C++, and Fortran flags directly. The include paths used by
Xcode should be now identical to the ones used by Unix Makefiles and
Ninja generator.
2016-08-09 20:30:07 +02:00
Neil Carlson e9c984267e NAG: Use -PIC for Fortran position-independent executable code
The Numerical Algorithms Group (NAG) Fortran compiler documents -PIC for
position-independent code and does not have a separate option for PIE.
We added `-PIC` for PIC in commit v2.8.11~174^2 (NAG: Use -PIC for
Fortran position-independent code, 2013-02-18).  Follow up for PIE.

Closes: #16236
2016-08-09 11:15:14 -04:00
Brad King 4689d16e8a Merge topic 'fix-string-append'
551b4c90 Revert the use of string(APPEND) in .cmake.in files
3a7be4f3 prefer list(APPEND) over string(APPEND) where appropriate
2016-08-09 09:20:21 -04:00
Brad King a5b73e719a Merge topic 'GetPrerequisites-grep-a'
5f3c8f6a GetPrerequisites: Always filter objdump output as text
2016-08-09 09:20:18 -04:00
Brad King 892ffe4ebd Merge topic 'wix-custom-install-dir'
17bbf6af CPackWIX: Implement new CPACK_WIX_SKIP_PROGRAM_FOLDER feature
2016-08-09 09:20:13 -04:00
Daniel Pfeifer 551b4c9062 Revert the use of string(APPEND) in .cmake.in files
The generated files may be consumed by older cmake versions which do not
support string(APPEND).
2016-08-08 21:45:41 +02:00
Daniel Pfeifer 3a7be4f394 prefer list(APPEND) over string(APPEND) where appropriate 2016-08-08 21:28:52 +02:00
Alexander Shishenko 5f3c8f6ab2 GetPrerequisites: Always filter objdump output as text
When using `grep` to filter the output, add the `-a` flag to tell
it never to treat the output as binary.  Otherwise when LANG != C
in the environment the non-ascii text may break the filter.
2016-08-08 14:05:21 -04:00
Brad King 314a953982 Merge topic 'update-cle-version-info'
e52302d6 CrayLinuxEnvironment: Add alternative methods to get version info
2016-08-08 10:02:11 -04:00
Matthäus G. Chajdas 88f2455f04 FindOpenCL: Fix search on macOS.
The original patch was provided by jerry <jerry.c.t@web.de>.
2016-08-08 09:57:30 -04:00
Michael Stürmer 17bbf6af1e CPackWIX: Implement new CPACK_WIX_SKIP_PROGRAM_FOLDER feature
The new variable allows setting of a custom absolute installation prefix
outside of the ProgramFiles folders.
2016-08-08 13:42:23 +02:00
Chuck Atkins e52302d6cb CrayLinuxEnvironment: Add alternative methods to get version info
Closes: #16229
2016-08-05 09:01:43 -04:00
Brad King ff386d1121 Modules: Make imported targets fall back to `Release`
Find modules only detect Debug and Release configurations.  All other
configurations will fall back to the configuration listed as the first
entry in `IMPORTED_CONFIGURATIONS`.  Switch the order so that `Release`
is listed first, as this is a better fallback than `Debug` for the
`RelWithDebInfo` and `MinSizeRel` configurations.  See issue #16091.

This approach is recommended by documentation in `cmake-developer(7)`
added by commit v3.2.0-rc1~286^2~1 (Help: Document IMPORTED_CONFIGURATIONS
target property for Find modules, 2014-12-04).
2016-08-03 11:14:29 -04:00
Brad King c2bc47f266 Merge topic 'CMakeFindFrameworks-custom-locations'
9970cdcb CMakeFindFrameworks: Allow custom framework locations
2016-08-03 09:20:56 -04:00
Brad King aabf8772fd Merge topic 'gcc-fvisibility-version'
85e03142 GNU: Use -fvisibility on GCC 4.0 and 4.1 too
2016-08-03 09:20:54 -04:00
Brad King a85e2a89de Merge topic 'FindProtobuf-restore-PROTOBUF_IMPORT_DIRS'
5790d9b6 FindProtobuf: Restore support for PROTOBUF_IMPORT_DIRS
2016-08-03 09:20:50 -04:00
Brad King ec807f6edf Merge topic 'port-to-sco'
56539d89 SCO_SV: Enable so filename versioning
16a3a735 cmELF: Port to SCO OpenServer 5.0.7/3.2
2016-08-03 09:20:47 -04:00
Brad King ef729c5bc2 Merge topic 'ExternalProject-no-DS_Store'
52aecc0c ExternalProject: Ignore macOS .DS_Store files in tarball extraction
2016-08-03 09:20:44 -04:00
Brad King 7b65e49529 Merge topic 'wix-root-description'
e29bfbf2 CPackWIX: Support custom title and description for the root feature
2016-08-03 09:20:38 -04:00
Brad King 8ba870bad6 Merge topic 'FindCUDA-no-windows-librt'
f4e979b1 FindCUDA: Do not look for librt on Windows
2016-08-03 09:20:35 -04:00
Brad King 573397bb54 Merge topic 'FindCUDA-arch'
15a6ae5c FindCUDA: Add search path for nvcc on Arch
2016-08-03 09:20:32 -04:00
Brad King 16e449cc72 Merge topic 'intel-gnu11-support'
088f14eb Intel-C: standard flags are also supported in 12.0
27a3ca15 Intel-C: support gnu89 and gnu99 extension flags
cc223e1e Intel-C: declare support for gnu11
2016-08-03 09:20:25 -04:00
Brad King a382c3013c Merge topic 'fix-findhdf5-definitions'
8eb0b56c FindHDF5: Make sure compile definition vars keep the -D flag
2016-08-03 09:20:19 -04:00
Hans Gaiser 15a6ae5cb7 FindCUDA: Add search path for nvcc on Arch 2016-08-02 15:36:07 -04:00
Ben Boeckel 088f14eb72 Intel-C: standard flags are also supported in 12.0 2016-08-02 13:10:56 -04:00
Ben Boeckel 27a3ca15e5 Intel-C: support gnu89 and gnu99 extension flags 2016-08-02 13:10:41 -04:00
Ben Boeckel cc223e1eed Intel-C: declare support for gnu11
Without extensions, functions like `strdup` are not available since they
are actually controlled by feature flags such as _SVID_SOURCE and
_BSD_SOURCE. When using `-std=c11` on Intel, none of these flags are
set, so the functions are not declared properly leading to compile
errors.

Reported-by: Adam J. Stewart <ajstewart426@gmail.com>
Closes: #16226
2016-08-02 11:42:45 -04:00
Konstantin Sinitsyn 5790d9b6f5 FindProtobuf: Restore support for PROTOBUF_IMPORT_DIRS
Support was accidentally dropped by commit v3.6.0-rc1~273^2
(FindProtobuf: Rename variables to match case of module name,
2016-03-01).
2016-08-02 10:50:24 -04:00
David Keller 9970cdcb59 CMakeFindFrameworks: Allow custom framework locations
Read a variable to get non-standard locations to be searched,
e.g. brew, port.

Signed-off-by: David Keller <david.keller@litchis.fr>
2016-08-02 10:41:40 -04:00
Chuck Atkins 8eb0b56c2a FindHDF5: Make sure compile definition vars keep the -D flag 2016-08-02 10:34:51 -04:00
Brad King 52aecc0c38 ExternalProject: Ignore macOS .DS_Store files in tarball extraction
Do not consider a top-level `.DS_Store` file when deciding whether a
tarball contains exactly one directory whose contents should be used as
the resulting top-level of the extraction.

Fixes #16218.

Suggested-by: Patrice Kouame
2016-08-02 10:14:26 -04:00
Patrick Welche 56539d89da SCO_SV: Enable so filename versioning
Take changes used by pkgsrc [1]:

* so filename versioning requires CMAKE_SHARED_LIBRARY_SONAME_C_FLAG.

[1] http://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc/devel/cmake/patches/
2016-08-02 10:09:52 -04:00
Brad King 85e0314201 GNU: Use -fvisibility on GCC 4.0 and 4.1 too
This flag is needed for the `<LANG>_VISIBILITY_PRESET` target property.
It has been supported since GCC 4.0, not 4.2 as we previously recorded.

Fixes #16222.
2016-08-02 09:24:54 -04:00
Stephen Sorley f4e979b126 FindCUDA: Do not look for librt on Windows
Otherwise an incorrect warning appears when compiling with CUDA SDK 6.5
or older and CUDA_USE_STATIC_CUDA_RUNTIME is true.
2016-08-02 09:15:22 -04:00
Michael Stürmer e29bfbf272 CPackWIX: Support custom title and description for the root feature
These can now be specified through the WIX generator specific
CPack variables CPACK_WIX_ROOT_FEATURE_TITLE and
CPACK_WIX_ROOT_FEATURE_DESCRIPTION.
2016-08-02 14:05:08 +02:00
Brad King 5ec03c93fc Merge topic 'wix-disabled-components'
ad453f05 CPackWIX: Support CPACK_COMPONENT_<compName>_DISABLED
6f108f84 CPackComponent: Document the *_HIDDEN and *_DISABLED variables
2016-08-01 14:59:53 -04:00
Daniel Pfeifer 5d0d980d99 Use string(APPEND) in Modules
Automate with:

find Modules -type f -print0 | xargs -0 perl -i -0pe \
's/set\(([a-zA-Z0-9_]+)(\s+)"\$\{\1\}([^"])/string(APPEND \1\2"\3/g'
2016-07-28 00:41:13 +02:00
Brad King e09518ca50 Merge topic 'nsis-protect-uninst-exec'
11768733 NSIS: Quote uninstaller path when executing it in a shell
2016-07-22 09:17:19 -04:00
Nils Gladitz 6f108f84d0 CPackComponent: Document the *_HIDDEN and *_DISABLED variables 2016-07-22 08:41:22 +02:00
Brad King 40d5375cf1 Merge branch 'nsis-protect-uninst-exec' into release 2016-07-21 10:08:33 -04:00
Justin Clift 11768733d3 NSIS: Quote uninstaller path when executing it in a shell
Protect our `$0` reference in the shell as `"$0"`.  Otherwise it works
with a space in the path only due to an insecure Windows feature.

Prior to this fix, any installer using the option added by commit
v2.8.9~234^2 (Added CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL,
2011-06-11) exposes a local privilege escalation vulnerability.

Reported-by: Amir Szekely <kichik@gmail.com>
Reported-by: Ug_0 Security
2016-07-21 10:05:46 -04:00
Eon Jeong ab8d5d0fdb FindBISON: Refactor public and inner macro routines 2016-07-18 09:06:36 -04:00
Eon Jeong c42e63a97e FindBISON: Add REPORT_FILE option to pass --report-file=FILE 2016-07-18 09:06:31 -04:00
Eon Jeong ad2497aa05 FindBISON: Change usage of [VERBOSE <file>] to [VERBOSE [<file>]] 2016-07-18 09:06:16 -04:00
Ben Campbell 0a6c227d64 FindGIF: Detect version from GIF 4.1.6 and above
GIF 4.1.6 introduced version macros in the header file.  Use them
to get a full version.

Fixes #16196.
2016-07-15 09:10:59 -04:00
Brad King c8e59d2dfa Merge topic 'toolchain-flag-init'
8a98cf64 Honor CMAKE_*_LINKER_FLAGS[_<CONFIG>]_INIT set in toolchain files
37d15c39 MSVC: Set all CMAKE_*_LINKER_FLAGS_INIT directly
55c884ed Embarcadero: Set all CMAKE_*_LINKER_FLAGS_INIT directly
aec3c79a Strip CMAKE_*_LINKER_FLAGS[_<CONFIG>] initializer whitespace
2016-07-15 09:04:30 -04:00
Brad King 8a98cf6432 Honor CMAKE_*_LINKER_FLAGS[_<CONFIG>]_INIT set in toolchain files
Document these variables.

Change our convention for setting these variables from:

    set(CMAKE_EXE_LINKER_FLAGS_INIT "...")

to

    string(APPEND CMAKE_EXE_LINKER_FLAGS_INIT " ...")

so that any value previously set by a toolchain file will be used.
2016-07-14 15:47:32 -04:00
Nils Gladitz 58677c327f FindPostgreSQL: Fix initialization of PostgreSQL_LIBRARIES 2016-07-14 18:18:26 +02:00
Brad King 4e427f4949 Merge topic 'FindOpenMP-updates'
73e9f36e FindOpenMP: Detect version (specification date) from compiler
8f1103c0 FindOpenMP: Cleanup all variables unconditionally
ec963f04 FindOpenMP: Improve documentation formatting
2016-07-14 09:24:14 -04:00
Brad King 6f36dce0cf Merge topic 'ExternalData-SecurityFix'
9b588b2b ExternalData: Hide security-sensitive details from output
2016-07-14 09:24:05 -04:00
Brad King 2364819d37 Merge topic 'ExternalProject-alt-urls'
2eec433f ExternalProject: Add support for multiple alternative URLs
2016-07-14 09:23:50 -04:00
Brad King f5c19a9dcc Merge topic 'no-implicit-link-clang-rt'
35322226 CMakeParseImplicitLinkInfo: Exclude libclang_rt libraries
2016-07-14 09:23:35 -04:00
Brad King 37d15c399e MSVC: Set all CMAKE_*_LINKER_FLAGS_INIT directly
Avoid copying CMAKE_EXE_LINKER_FLAGS_INIT to the others.
2016-07-13 15:05:32 -04:00
Brad King 55c884ed3b Embarcadero: Set all CMAKE_*_LINKER_FLAGS_INIT directly
Avoid copying CMAKE_EXE_LINKER_FLAGS_INIT to the others.
2016-07-13 15:01:26 -04:00
Brad King aec3c79acb Strip CMAKE_*_LINKER_FLAGS[_<CONFIG>] initializer whitespace 2016-07-13 14:41:21 -04:00
Sujin Philip 73e9f36ea6 FindOpenMP: Detect version (specification date) from compiler
Port changes from VTK commit fda6a31cb9 (Added Improved FindOpenMP
module, 2015-04-23).  Improve use of try_compile to avoid needing
to pass OpenMP flags as libraries.
2016-07-13 11:49:01 -04:00
Alex Turbov 9b588b2bdf ExternalData: Hide security-sensitive details from output
Do not disclose credentials when printing URIs used to fetch external resources.
2016-07-13 18:41:57 +03:00
Brad King 8f1103c0fd FindOpenMP: Cleanup all variables unconditionally 2016-07-13 11:02:01 -04:00
Brad King ec963f04cb FindOpenMP: Improve documentation formatting
Also drop link to OpenMP compilers because our supported list may
not include all compilers.
2016-07-13 10:56:46 -04:00
Lars Schmertmann 2eec433f98 ExternalProject: Add support for multiple alternative URLs
Now it is possible to pass multiple URLs as a list that will be tried in
and foreach(). So it will try next URL if the previous failed.

Fixes #15749.
2016-07-13 09:44:34 -04:00
Brad King 291e41855c Merge topic 'findicu'
e3bff7b3 Help: Add notes for topic 'findicu'
4a63be15 FindICU: New module
2016-07-13 09:26:55 -04:00
Brad King 7a31a2717b Merge topic 'FindHDF5-fix-misc-issues'
d5e4516e FindHDF5: Cleanup inconsistent use of HDF5_ROOT
4ece8bdd FindHDF5: Properly fail when required components are not found.
87c1cd9c FindHDF5: Fix h5cc arg parsing to work with homebrew on Mac
2016-07-13 09:26:52 -04:00
Brad King 64095e36ee Merge topic 'cpack-rpm-debug-logging-fix'
83799aa9 CPack/RPM: Debug logging should only print if requested for
2016-07-13 09:26:44 -04:00
Brad King 4b726a3f5c Merge topic 'fix-cpack-rpm-different-package-names'
672e6d2e CPack/RPM: Add missed CPACK_RPM_FILE_NAME fallback variable
2016-07-13 09:26:40 -04:00
Harry Mallon 83799aa934 CPack/RPM: Debug logging should only print if requested for 2016-07-13 09:23:24 -04:00
Roger Leigh 4a63be15dd FindICU: New module 2016-07-13 09:15:16 -04:00
Brad King 9c9ac043b4 Merge branch 'FindHDF5-fix-misc-issues' into release 2016-07-13 08:57:16 -04:00
Chuck Atkins d5e4516ec2 FindHDF5: Cleanup inconsistent use of HDF5_ROOT 2016-07-12 15:32:10 -04:00
Chuck Atkins 4ece8bdd0f FindHDF5: Properly fail when required components are not found. 2016-07-12 13:40:41 -04:00
Chuck Atkins 87c1cd9c51 FindHDF5: Fix h5cc arg parsing to work with homebrew on Mac 2016-07-12 11:08:11 -04:00
Brad King 353222262a CMakeParseImplicitLinkInfo: Exclude libclang_rt libraries
These libraries are used for Clang runtime analysis support with
flags like `-fsanitize=memory` and are not actually implicitly
linked libraries.

Fixes #16194.
2016-07-11 16:30:02 -04:00
Alex Turbov 672e6d2e20 CPack/RPM: Add missed CPACK_RPM_FILE_NAME fallback variable
In commit v3.6.0-rc1~66^2 (CPack/RPM different package names,
2016-05-15) we forgot the non-uppercased fallback variable name
`CPACK_RPM_<COMPONENT>_FILE_NAME`.  Add it now.
2016-07-11 11:19:24 -04:00
Felix Geyer 566086187f Fix typos. 2016-07-10 11:05:56 +02:00
Ruslan Baratov af7da934a7 ExternalProject: Use default file name if extracting from URL fails
The download/extract step uses the file name only internally so we can
just use a fallback default name if one cannot be extracted from the
URL.
2016-07-07 09:35:42 -04:00
Brad King 0ca8f3e699 Merge topic 'toolchain-flag-init'
a66004be Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain files
cdde77e5 OpenWatcom: Partially modernize platform information modules
f9dbe22c Intel: Do not use GNU-like flags on Windows
5a3ed0d7 Intel: Do not use MSVC-like flags for Fortran
2016-07-07 09:02:23 -04:00
Brad King a66004bee0 Honor CMAKE_<LANG>_FLAGS[_<CONFIG>]_INIT set in toolchain files
Document these variables.

Change our convention for setting these variables from:

    set(CMAKE_C_FLAGS_INIT "...")

to

    string(APPEND CMAKE_C_FLAGS_INIT " ...")

so that any value previously set by a toolchain file will be used.

Automate the conversion with:

    sed -i 's/set *(\(CMAKE_\(C\|CXX\|Fortran\|RC\|ASM\|${[^}]\+}\)_FLAGS\(_[^_]\+\)\?_INIT \+"\)/string(APPEND \1 /' \
      Modules/Compiler/*.cmake Modules/Platform/*.cmake

and follow up with some manual fixes (e.g. to cases that already
meant to append).  Also revert the automated changes to contexts
that are not protected from running multiple times.
2016-07-06 10:13:31 -04:00
Brad King cdde77e5f6 OpenWatcom: Partially modernize platform information modules
Migrate from the old `<os>-<cc>.cmake` layout to the modern
`<os>-<id>-<lang>.cmake` layout.  Keep settings common to C and C++ in a
`Windows-OpenWatcom.cmake` helper module with an include blocker.
For now just add both C and CXX settings in the helper module.
2016-07-06 10:10:10 -04:00
Brad King 7e53e6c9cc Merge topic 'ExternalProject-more-url-filenames'
57c337e2 ExternalProject: Match filenames in URLs with query strings and anchors
2016-07-06 09:36:13 -04:00
Brad King 7c8c07d03c Merge topic 'FindJNI-cleanup'
4e11c966 FindJNI: Improve formatting of FPHSA call
2016-07-06 09:36:10 -04:00
Brad King 0bcb9efdff Merge topic 'FindJNI-ubuntu-paths'
26d16380 FindJNI: Fix support for Ubuntu 15.10
2016-07-06 09:36:00 -04:00
Brad King 73f480b0ad Merge topic 'FindJava-doc-update'
10a7459a FindJava: Do not document variables we do not provide
2016-07-06 09:35:51 -04:00
Brad King f45befed3a Merge topic 'FindBoost-extras'
cb1a434c FindBoost: Add check headers for `zlib` and `bzip2`
2016-07-06 09:35:47 -04:00
Brad King 8df2e68614 Merge topic 'cpack-rpm-better-directive-match'
a351edd2 CPackRPM: Handle directives of form %foo and %foo(anything)
2016-07-06 09:35:29 -04:00
Brad King 06af626ef2 Merge topic 'cpack-ifw-list-variable'
9e505285 CPackIFW: Using cpack_append_list_variable_set_command
cd1415b5 CPackComponents: add cpack_append_list_variable_set_command
2016-07-06 09:35:06 -04:00
Andrew Fuller a351edd245 CPackRPM: Handle directives of form %foo and %foo(anything)
Directives that are legal inside the %files section of an RPM spec may
contain a variety of characters particularly when specifying %caps which
can include +, _, and space.  Watch for parenthesis to determine what
forms the prefix vs. path.

Fixes #14362.
2016-07-05 15:27:56 -04:00
Brad King 57c337e2ef ExternalProject: Match filenames in URLs with query strings and anchors
While at it, refactor logic to consolidate the filename extraction
and verification into a single match.

Inspired-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
2016-07-05 14:57:13 -04:00
O Libre 4e11c9660f FindJNI: Improve formatting of FPHSA call
Pass one argument per line for better readability.
2016-07-05 14:35:24 -04:00
Brad King c7e0c3005b Merge branch 'FindJNI-ubuntu-paths' into release 2016-07-05 14:34:02 -04:00
O Libre 26d16380b0 FindJNI: Fix support for Ubuntu 15.10
The library search paths added by commit v3.6.0-rc1~281^2~1 (FindJNI:
Add support for Ubuntu 15.10, 2016-03-08) were incorrect.  Fix them.
2016-07-05 14:33:46 -04:00
Alex Turbov cb1a434ce0 FindBoost: Add check headers for `zlib` and `bzip2`
The official Windows builds of Boost have internal implementations for
`zlib` and `bzip2` libraries used by Boost::iostreams library, e.g.

* boost_bzip2-vc140-mt-1_59.lib
* boost_zlib-vc140-mt-1_59.lib

Add check headers for these so that users can specify them as
components without any warnings.

Reviewed-by: Roger Leigh <rleigh@dundee.ac.uk>
2016-07-05 14:22:01 -04:00
Brad King 10a7459a22 FindJava: Do not document variables we do not provide
Drop Java_INCLUDE_DIRS and Java_LIBRARIES from the documentation since
we do not provide them.  Also add a link to FindJNI to help users find
it.  Fixes #16180.
2016-07-05 14:18:21 -04:00
Brad King f9dbe22ca2 Intel: Do not use GNU-like flags on Windows
Refactor options out of `Modules/Compiler/Intel-{ASM,C,CXX,Fortran}.cmake`
into a common helper in `Modules/Compiler/Intel.cmake`.  Condition
them to be used only on non-Windows hosts where the Intel compiler
is GNU-like instead of MSVC-like.

Previously this worked only because the options were later overridden
by `Modules/Platform/Windows-Intel*.cmake`, but it is cleaner to not
set the options in the first place.
2016-07-05 13:58:42 -04:00
Brad King 5a3ed0d780 Intel: Do not use MSVC-like flags for Fortran
Teach `Modules/Platform/Windows-MSVC.cmake` not to use MSVC options
for Fortran.  We use the `__windows_compiler_msvc` for the Intel
Fortran compiler on Windows for other settings, but we do not want
the flags.

Previously this worked only because the options were later overridden
by `Modules/Platform/Windows-Intel*.cmake`, but it is cleaner to not
set the options in the first place.
2016-07-05 13:58:36 -04:00
Brad King 3643390d49 Strip CMAKE_<LANG>_FLAGS[_<CONFIG>] initializer whitespace 2016-07-01 14:01:41 -04:00
Brad King cff9c11de7 Merge topic 'doc-updates'
c05d240e Help: Document CMAKE_TRY_COMPILE_PLATFORM_VARIABLES example
dab3ccf2 InstallRequiredSystemLibraries: Document UCRT option use case
2016-07-01 09:12:36 -04:00
Brad King dab3ccf294 InstallRequiredSystemLibraries: Document UCRT option use case
Suggested-by: Hendrik Sattler <post@hendrik-sattler.de>
2016-06-30 08:54:46 -04:00
Konstantin Podsvirov 9e505285e3 CPackIFW: Using cpack_append_list_variable_set_command
This is necessary for proper processing of the list items.
2016-06-29 19:14:05 +03:00
Konstantin Podsvirov cd1415b548 CPackComponents: add cpack_append_list_variable_set_command
It's like add variable, but wrap each item to quotes.
Can be used for multi args properties.
2016-06-29 19:10:41 +03:00
Brad King 843402b04a GenerateExportHeader: Add option to specify custom content 2016-06-28 09:43:52 -04:00
Brad King f23d846a97 Merge topic 'FindHDF5-handle-unsuffixed'
234deec2 FindHDF5: create all the *_LIBRARIES when using hdf5-config.cmake
963b576f FindHDF5: cache the correct path to the high level libraries
9f2728ce FindHDF5: When component targets not found fallback to compiler wrappers
149539d9 FindHDF5: Handle HDF5 builds with non-suffixed components
f30b0fec FindHDF5: correctly add lang to each component target name.
2016-06-28 09:06:37 -04:00
Brad King 4adab7093a Merge topic 'ios-universal-fixes'
11c3a8dc CMakeIOSInstallCombined: add some sanity checks
aff1e77f CMakeIOSInstallCombined: do not merge content of OUTPUT and ERROR variables
2016-06-27 10:40:33 -04:00
Brad King cd29388615 Merge branch 'FindHDF5-handle-unsuffixed' into release 2016-06-27 10:29:09 -04:00
Ruslan Baratov 11c3a8dc11 CMakeIOSInstallCombined: add some sanity checks 2016-06-25 13:48:31 +02:00
Ruslan Baratov aff1e77f48 CMakeIOSInstallCombined: do not merge content of OUTPUT and ERROR variables 2016-06-25 13:37:44 +02:00
Robert Maynard 234deec2ea FindHDF5: create all the *_LIBRARIES when using hdf5-config.cmake 2016-06-24 15:28:23 -04:00
Robert Maynard 963b576fd2 FindHDF5: cache the correct path to the high level libraries 2016-06-24 15:26:22 -04:00
Robert Maynard 9f2728cef3 FindHDF5: When component targets not found fallback to compiler wrappers 2016-06-23 12:31:26 -04:00
Robert Maynard 149539d9c2 FindHDF5: Handle HDF5 builds with non-suffixed components 2016-06-23 10:57:58 -04:00
Robert Maynard f30b0fec74 FindHDF5: correctly add lang to each component target name. 2016-06-23 10:56:29 -04:00
Rolf Eike Beer 8b3ffbe4af GetPrerequisites: fix typo in comment 2016-06-23 08:55:07 -04:00
Rolf Eike Beer 460a589d20 GetPrerequisites: fix typo in comment 2016-06-22 21:38:08 +02:00
Brad King 54e293db06 Merge topic 'FindZLIB-fixup'
4bb83514 FindZLIB: Do not mark unused variable as advanced
2016-06-22 08:53:04 -04:00
Brad King ed59f4ba67 Merge topic 'GetPrerequisites-findstr'
867b73e2 GetPrerequisites: Optimize on Windows by filtering `objdump` output
2016-06-22 08:53:02 -04:00
Brad King cc9f6f3b98 Merge topic '14068-ctest-target-set-buildname-with-only-c-compiler'
6509ad29 CTest: Properly set buildname if only C langage is enabled
2016-06-21 13:57:14 -04:00
Brad King e260f30d23 Merge topic 'FindGLEW-debug'
6087b9e4 FindGLEW: Search for debug and release configurations separately
2016-06-21 13:57:11 -04:00
Brad King 91392a66e1 Merge topic 'FindLua-match-header-and-lib'
eecd307e FindLua: Iterate through all include subdirs to find a suitable header
3532cbce FindLua: Check header file against suitable versions
281c707b FindLua: Factor out a helper function for version extraction
92c67b9f FindLua: Prefix private APIs with `_lua_`
2016-06-21 13:57:09 -04:00
Brad King 447f0618db Merge topic 'FindBoost-imported-fallback-to-release'
c9fca42f FindBoost: Make imported targets fall back to `Release`
2016-06-21 13:57:04 -04:00
Brad King 736ffc627c Merge topic 'aix-clang'
5cc34162 AIX: Add support for Clang compiler
2016-06-21 13:57:02 -04:00
Brad King 4bb8351414 FindZLIB: Do not mark unused variable as advanced
We no longer define the ZLIB_LIBRARY cache entry, so we should not mark
it as advanced either.  We only use this variable when someone else
defines it in order to remain compatible with older versions of this
module, but we never create the entry ourselves anymore.
2016-06-21 08:56:56 -04:00
Laurent Tarrisse 867b73e275 GetPrerequisites: Optimize on Windows by filtering `objdump` output
Extend the optimization from commit v3.4.0-rc1~264^2 (GetPrerequisites:
Optionally filter "objdump" output for speed, 2015-07-29) to work
on Windows by using `findstr` in place of `grep`.
2016-06-21 08:48:09 -04:00
Jean-Christophe Fillion-Robin 6509ad29f6 CTest: Properly set buildname if only C langage is enabled
Fixes #14068
2016-06-20 15:45:25 -04:00
FARBOS Arnaud 6087b9e439 FindGLEW: Search for debug and release configurations separately 2016-06-20 15:07:32 -04:00
Ivan Ivanov eecd307e24 FindLua: Iterate through all include subdirs to find a suitable header
Fixes #15756.
2016-06-20 14:46:06 -04:00
Ivan Ivanov 3532cbce18 FindLua: Check header file against suitable versions 2016-06-20 14:40:40 -04:00
Ivan Ivanov 281c707b65 FindLua: Factor out a helper function for version extraction 2016-06-20 14:38:32 -04:00
Ivan Ivanov 92c67b9f01 FindLua: Prefix private APIs with `_lua_` 2016-06-20 14:37:49 -04:00
Andreas Weis c9fca42fd1 FindBoost: Make imported targets fall back to `Release`
FindBoost only detects Debug and Release configurations.  All other
configurations will fall back to the configuration listed as the first
entry in `IMPORTED_CONFIGURATIONS`.  Switch the order so that `Release`
is listed first, as this is a better fallback than `Debug` for the
`RelWithDebInfo` and `MinSizeRel` configurations.  See issue #16091.
2016-06-20 10:14:10 -04:00
Wu Zhao 5cc34162ad AIX: Add support for Clang compiler
The platform information module for GNU on AIX can be reused for Clang
on AIX because clang accepts almost all of the same options.
2016-06-20 09:59:31 -04:00
Brad King efb6d317e3 Merge topic 'FindQt4-doc-QtDeclarative-imported'
5ed2881c FindQt4: Document Qt4::QtDeclarative imported target (#16157)
2016-06-20 09:56:04 -04:00
Brad King 95c5e00186 Merge topic 'pkgconfig-targets'
8345c646 FindPkgConfig: define the imported targets also when the data comes from cache
2016-06-20 09:55:59 -04:00
Brad King 5f3bfab7b7 Merge topic 'FindFreetype-debug-lib'
b213a7f6 FindFreetype: Find release and debug libraries separately
2016-06-20 09:55:52 -04:00
Brad King 5c7b2aafbd Merge topic 'revert-vs-clang-minsize'
78249be2 VS: Fix regressed mapping for the cl `/Os` compiler flag
2016-06-20 09:55:48 -04:00
Brad King 4fdb97db8d Merge branch 'pkgconfig-targets' into release 2016-06-20 09:24:30 -04:00
Brad King 45b62646db Merge branch 'FindQt4-doc-QtDeclarative-imported' into release 2016-06-20 09:09:08 -04:00
Brad King 5ed2881cb2 FindQt4: Document Qt4::QtDeclarative imported target (#16157) 2016-06-20 08:49:31 -04:00
Rolf Eike Beer 8345c6463d FindPkgConfig: define the imported targets also when the data comes from cache 2016-06-19 09:35:05 +02:00
Stuart Mentzer b213a7f6ab FindFreetype: Find release and debug libraries separately 2016-06-17 11:52:18 -04:00
Brad King 5889eb43ea Merge topic 'ice-debug'
86bcdbcd FindIce: Support finding both release and debug libraries
2016-06-17 11:06:42 -04:00
Brad King 4160d68189 Merge branch 'revert-vs-clang-minsize' into release 2016-06-17 10:20:16 -04:00
Brad King 78249be29d VS: Fix regressed mapping for the cl `/Os` compiler flag
In commit v3.6.0-rc1~279^2~10 (VS: in Clang/C2 toolset, setup correct
compiler settings, 2016-02-18) a flag mapping was added for the clang
`-Os` flag.  However, this collides with a mapping we already had for
the MSVC flag of the same name.  This is a symptom of a larger problem
in that the VS generators need a per-toolset flag map (issue #16153).

For now, simply drop the new mapping and drop `-Os` from clang compiler
flags in the MinSizeRel configuration.

Reported-by: Felix Bruns <felixbruns@gmail.com>
2016-06-17 10:18:47 -04:00
Brad King f3d76a88b7 Merge topic 'ice-3.6.2'
82ecc2a3 FindIce: Add versions 3.6.1 and 3.6.2
2016-06-16 09:52:58 -04:00
Brad King 993991a07d Merge topic 'findcuda-use-correct-runtime-for-required'
90d114ed FindCUDA: Use the correct runtime in REQUIRED_VARS check
2016-06-16 09:46:52 -04:00
Roger Leigh 86bcdbcde5 FindIce: Support finding both release and debug libraries
Search for both release and debug library variants, and use
SelectLibraryConfigurations to choose the appropriate
library.  Also add both release and debug libraries to the
imported targets.
2016-06-16 12:23:37 +01:00
Roger Leigh 82ecc2a3a8 FindIce: Add versions 3.6.1 and 3.6.2 2016-06-15 15:35:06 +01:00
Chuck Atkins 90d114ed8c FindCUDA: Use the correct runtime in REQUIRED_VARS check
When enabling the CUDA static runtime, the current module always uses
the shared runtime in the REQUIRED_VARS check.  This change should
select the correct runtime to be checked for as required based on the
CUDA_USE_STATIC_CUDA_RUNTIME option.

Fixes #16096
2016-06-14 09:55:35 -04:00
Daniel Scharrer 896ad251de Teach find_library and find_package to search lib32 paths (#11260)
Add a ``FIND_LIBRARY_USE_LIB32_PATHS`` global property analogous to the
``FIND_LIBRARY_USE_LIB64_PATHS`` property.  This helps find commands on
multilib systems that use ``lib32`` directories and either do not have
``lib`` symlinks or point ``lib`` to ``lib64``.
2016-06-10 11:09:16 -04:00
Brad King ff4697fc94 Merge topic 'FindProtobuf-proto-in-subdirs'
d4b8e813 FindProtobuf: fix protobuf_generate_*() to handle proto files in subdirs.
2016-06-10 09:10:02 -04:00
Brad King fbf461dde2 Merge topic 'FindFreetype-dedup-arguments'
746a4245 FindFreetype: Factor out common find command arguments
2016-06-10 09:09:59 -04:00
Brad King 09e6c9eba7 Merge topic 'FindCUDA-android'
7229ae72 FindCUDA: Refactor Android(Tegra) support
e9bfe8da FindCUDA: Adjust vertical whitespace
2016-06-10 09:09:57 -04:00
Brad King b29f1514d0 Merge topic 'FindOpenSSL-BoringSSL'
e937b4c3 FindOpenSSL: Do not assume that the version regex finds something
2016-06-10 09:09:54 -04:00
Vladimír Vondruš d4b8e81353 FindProtobuf: fix protobuf_generate_*() to handle proto files in subdirs. 2016-06-09 16:13:45 +02:00
Boris Fomitchev 7229ae728f FindCUDA: Refactor Android(Tegra) support
Reviewed-by: James Bigler <jamesbigler@gmail.com>
2016-06-09 09:25:55 -04:00
Boris Fomitchev e9bfe8da04 FindCUDA: Adjust vertical whitespace 2016-06-09 09:24:40 -04:00
Brad King 5aa89a1ae0 Merge topic 'java-export-targets'
0bd91ad4 UseJava: Fix race condition creating java class list
89df91b9 Help: Add notes for topic 'java-export-targets'
95d84369 Tests: Add test for exported JARs
5341c0d8 UseJava: Add infrastructure to export targets
d91ec044 Tests/Java: Clean up style of Java test code
2016-06-09 09:18:17 -04:00
Matthew Woehlke 0bd91ad405 UseJava: Fix race condition creating java class list
Modify logic to unconditionally create an empty class list response file
to instead only create the empty file if no classes are being compiled.
Otherwise, the response file is created via a custom command that
generates the correct list.

This fixes a race condition on certain systems (e.g. HFS on OS X) where
the dependency for creating the "correct" list can have the "same" (due
to limited precision of the filesystem) timestamp as the empty file
created at configure time, resulting in an empty class list being
incorrectly used to invoke `jar` (resulting in `jar` being unhappy that
it was not given any input files). Although one would have some hope
that this doesn't affect "real" projects, it definitely does affect the
JavaExportImport unit test, causing the same to fail randomly when run
on an HFS partition.
2016-06-09 09:12:15 -04:00
Stuart Mentzer 746a424573 FindFreetype: Factor out common find command arguments 2016-06-09 08:55:24 -04:00
Vladimír Vondruš e937b4c387 FindOpenSSL: Do not assume that the version regex finds something
BoringSSL's openslv.h does not have the version information.
2016-06-09 08:51:01 -04:00
Brad King fb8b8dd106 Merge topic 'add-FindVulkan'
adf4df28 Add FindVulkan.cmake.
2016-06-08 12:56:07 -04:00
Matthäus G. Chajdas adf4df28ca Add FindVulkan.cmake.
This adds FindVulkan with corresponding tests.
2016-06-08 12:44:03 -04:00
Roger Leigh 132b898968 FindBZip2: Search for additional bz2d debug library name 2016-06-07 22:46:40 +01:00
Matthew Woehlke 5341c0d84a UseJava: Add infrastructure to export targets
Add additional functions to UseJava.cmake to create "exported" targets,
similar to those of C/C++ libraries. In support of this, ensure that the
JAR_FILE property of jar targets is always an absolute path.
2016-06-07 08:50:35 -04:00
Brad King 9b15a15fe9 Merge topic 'SunOS-PathScale'
fcfe121f Platform: add flag definitions for PathScale compiler on SunOS (#16135)
2016-06-07 08:34:07 -04:00
Brad King d546456765 Merge topic 'productbuild'
63e5eb5f Help: Add notes for 'productbuild' topic
2e3c67d1 productbuild: Add new productbuild cpack generator.
50a3d340 PackageMaker: factor out common code for creating pkg files.
2016-06-06 11:19:20 -04:00
Brad King c3b268e40d Merge topic 'FindBoost-vs-prebuilt'
c3a281fd FindBoost: Search in official Windows prebuilt binary library directory
3720d5f4 FindBoost: Test `CMAKE_CXX_COMPILER_{ID,VERSION}` instead of `MSVC*`
2016-06-06 09:20:07 -04:00
Brad King ab7d649fae Merge topic 'FindLibArchive-3.2'
38d18bab FindLibArchive: Support libarchive 3.2 version string format
2016-06-06 09:20:03 -04:00
Brad King cd1327bb9c Merge branch 'SunOS-PathScale' into release 2016-06-06 09:01:00 -04:00
Michał Górny fcfe121fd8 Platform: add flag definitions for PathScale compiler on SunOS (#16135) 2016-06-06 08:58:20 -04:00
Clinton Stimpson 2e3c67d1b6 productbuild: Add new productbuild cpack generator.
This cpack generator basically replaces the obsolete PackageMaker generator.
2016-06-03 14:41:57 -06:00
Brad King 236b7cbe6e Merge branch 'FindLibArchive-3.2' into release 2016-06-03 13:27:34 -04:00
Orion Poplawski 38d18bab54 FindLibArchive: Support libarchive 3.2 version string format 2016-06-03 13:18:03 -04:00
Alex Turbov c3a281fd32 FindBoost: Search in official Windows prebuilt binary library directory
Avoid the need to specify `BOOST_LIBRARYDIR` along with `BOOST_ROOT`
when using prebuilt binaries such as these:

  https://sourceforge.net/projects/boost/files/boost-binaries/
2016-06-03 11:15:02 -04:00
Alex Turbov 3720d5f4a3 FindBoost: Test `CMAKE_CXX_COMPILER_{ID,VERSION}` instead of `MSVC*` 2016-06-03 11:11:38 -04:00
Brad King 0663dbf133 Merge topic 'minor-cleanups'
f6c21894 Modules: Rename internal platform-specific compiler determination modules
0c7951a9 cmLocalGenerator: Consolidate conditions in AddArchitectureFlags
2016-06-03 10:45:59 -04:00
Brad King 2f1d82bd7b Merge topic 'cpack-nsis-remove-duplicate-include'
e847b6c8 CPack/NSIS: Remove duplicate include from NSIS.template.in (#16132)
2016-06-03 10:45:54 -04:00
Brad King e3f7637659 Merge topic 'FindOpenCL-imported-target'
b66d4739 FindOpenCL: Add an imported target
2016-06-03 10:45:48 -04:00
Brad King 4b7834467c Merge topic 'compiler-id-with-bracket-in-path'
a7d1c4ec CMakeDetermineCompilerId: Fix compiler id with square brackets in the path
2016-06-03 10:45:46 -04:00
Brad King 6f1f7965af Merge topic 'fix-ti-link-order'
89317915 Compiler/TI: Pass libraries as last part to linker
2016-06-03 10:45:43 -04:00
Brad King 9703b32c1c Merge branch 'FindHDF5-fix-already-found' into release 2016-06-02 14:56:09 -04:00
Chuck Atkins f11243d13e FindHDF5: Add backwards compatability for already-found searches 2016-06-02 14:46:32 -04:00
Brad King a7d1c4ec3f CMakeDetermineCompilerId: Fix compiler id with square brackets in the path
We use file(GLOB) to load the list of files produced by compiling the
compiler identification source.  Encode square brackets in the path to
the directory so that they are not treated as special characters in the
globbing expression.  Otherwise we fail to find any files when the path
contains square brackets and the compiler id is unknown.

Reported-by: Esch Nigma <eschnigma@openmailbox.org>
2016-06-02 14:32:07 -04:00
Brad King e847b6c864 CPack/NSIS: Remove duplicate include from NSIS.template.in (#16132)
In commit v2.6.0~3438 (ENH: Better support for adding and removing path,
2006-04-27) an include of "WinMessages.NSH" was added without removing
the original include.  Remove it now.
2016-06-02 11:49:44 -04:00
Brad King f6c2189495 Modules: Rename internal platform-specific compiler determination modules
Rename Modules/Platform/<os>-<lang>.cmake files to
Modules/Platform/<os>-Determine-<lang>.cmake to clarify their role.
For compatibility with user-provided modules, load the old names
if they exist.
2016-06-02 09:51:43 -04:00
Alexander Stein 89317915d9 Compiler/TI: Pass libraries as last part to linker
If e.g. libc.a is passed before any objects the linker raises the follwing
warning: cannot resolve archive libc.a to a compatible library, as no
input files have been encountered
In the end the library is skipped and missing symbols occur.

Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
2016-06-02 09:39:25 -04:00
Matthäus G. Chajdas b66d4739b5 FindOpenCL: Add an imported target 2016-06-02 08:46:43 -04:00
Brad King 62adedbf5e Merge topic 'UseJava-fix-typo'
bcf39688 UseJava: Fix grammar error in documentation
2016-06-01 09:05:58 -04:00