Commit Graph

6844 Commits

Author SHA1 Message Date
Brad King 4c272adbe1 Android: Link position-independent executables with proper flags
Add `-fPIE -pie` to the default executable link flags when
`CMAKE_POSITION_INDEPENDENT_CODE` is enabled.  This is required by
Android 16 and above for executables to run on the device.

Closes: #16382
2016-10-24 11:45:18 -04:00
Brad King 6205f1797e Android: Set CMAKE_POSITION_INDEPENDENT_CODE automatically
If the toolchain file or cache does not set this, enable it
automatically based on the Android API version.  Versions 16
and above expect position independent code.

Use the main `CMAKE_POSITION_INDEPENDENT_CODE` setting in favor of
hard-coding `-fpic` or `-fPIC` in the compiler flags for each ABI.
This allows CMake to use `-fpie` or `-fPIE` as needed when sources
are meant for executables, and `-fpic` or `-fPIC` for other sources.
2016-10-24 11:40:53 -04:00
Brad King 295c8efa35 Android: Add missing link flags for device executables
See `${ndk}/build/core/default-build-commands.mk` for link flags the NDK
uses for executables.  Add them to our default executable link flags.
Suppress `nocopyreloc` on `arm64-v8a` because it does not work with
some STL types.

Closes: #16380
2016-10-21 10:43:45 -04:00
Brad King 43f4326ece Android: Fix support for armeabi with c++_static
Add missing "unwind" and "atomic" libraries needed for this combination.
See `${ndk}/sources/cxx-stl/llvm-libc++/libs/armeabi/libc++.a` for the
libraries the NDK uses.

Issue: #16380
2016-10-21 08:42:25 -04:00
Brad King a0c539b546 Merge branch 'fix-Android-NsightTegra' into release 2016-10-18 14:24:34 -04:00
Brad King 06c396126f VS: Fix NVIDIA Nsight Tegra Visual Studio Edition support
The guard added by commit v3.7.0-rc1~229^2~17 (Android: Suppress new
functionality with Nsight Tegra in VS IDE builds, 2016-06-02) to
`Modules/Platform/Android-Determine.cmake` does not work in that
location because `CMAKE_VS_PLATFORM_NAME` is not set until after the
module is loaded.  Change this particular guard to test for the Visual
Studio generator instead.  If in the future we add support for using
Visual Studio for Android without Nsight Tegra then something more will
be needed, but this is good enough for now.

Closes: #16371
2016-10-18 13:32:50 -04:00
Brad King e3cb3116bc Merge branch 'external-project-source-subdir-usage' into release 2016-10-18 12:56:13 -04:00
Ben Boeckel 615f3ed2b4 ExternalProject: make SOURCE_SUBDIR directly appendable
This allows it to be used in expansions without being conditional based
on its value.
2016-10-18 12:51:38 -04:00
Ben Boeckel fdce782b61 ExternalProject: error out only if the property is unset
Property values may be empty; instead make sure they exist and allow for
empty values.
2016-10-18 12:51:06 -04:00
Brad King df68d8a17e Merge branch 'FindwxWidgets-unversioned-library-path' into release 2016-10-17 11:07:37 -04:00
Brad King 52e8fa2312 FindwxWidgets: Fix finding unversioned VS-built directory prefixes
The change in commit v3.7.0-rc1~217^2 (FindwxWidgets: Add VS-versioned
library directory prefixes, 2016-08-24) works only for official
wxWidgets builds that add the VS-versioned directory prefixes.  Local
wxWidgets builds still have an unversioned prefix.  Search them.

Closes: #16366
2016-10-17 11:06:00 -04:00
Brad King b6e5b6485f Merge branch 'osx-no-deployment-target-on-cross-compile' into release 2016-10-17 10:04:29 -04:00
Gregor Jasny e8bafb6fcb OS X: Do not try to set deployment target when cross-compiling
The change in commit v3.4.0-rc2~6^2 (Xcode: Adjust deployment target SDK
version to host version, 2015-10-11) does not make sense when
cross-compiling.  Make it conditional to fix this regression in some
cross-compiling cases.

Closes: #16355
2016-10-17 10:02:17 -04:00
Brad King 1a64962b7c Merge branch 'ice-3.6.3' into release 2016-10-13 08:20:08 -04:00
Roger Leigh 6e5a3655ca FindIce: Add support for version 3.6.3 2016-10-13 08:19:27 -04:00
Brad King acd2eab2f3 Merge branch 'ExternalProject-fix-CMAKE_CACHE_ARGS-list' into release 2016-10-10 14:49:10 -04:00
Max Smolens a3c98cb30e ExternalProject: Fix regression in passing list to CMAKE_CACHE_ARGS
Fix passing a list to the CMAKE_CACHE_ARGS and CMAKE_CACHE_DEFAULT_ARGS
options of ExternalProject_Add.

Following commit v3.7.0-rc1~273^2~1 (prefer list(APPEND) over
string(APPEND) where appropriate, 2016-08-08), the semicolon list
separator after the first list element was missing in the generated
cache.
2016-10-10 14:40:12 -04:00
Brad King a033f86712 Merge branch 'FindProtobuf-fix-subdirs' into release 2016-10-07 10:16:33 -04:00
Brad King 111d90465f Merge branch 'android-cxxabi' into release 2016-10-07 10:16:28 -04:00
Brad King 8cdac469d1 Android: Fix support for cxxabi.h with libc++
Additional include directories are needed for this on some STL types.

Closes: #16350
2016-10-07 09:53:51 -04:00
Martin Joly 2b9dad694a FindProtobuf: Fix protobuf_generate_*() to handle subdirs
The change in commit v3.7.0-rc1~513^2 (FindProtobuf: fix
protobuf_generate_*() to handle proto files in subdirs, 2016-06-09)
incorrectly adds subdirectories to the path of the generated files when
`*.proto` files are passed to `protobuf_generate_*` with subdirectories.
This behavior is not correct when `PROTOBUF_GENERATE_CPP_APPEND_PATH` is
True (default behavior) as `protoc` will generate output file in the
current build directory.
2016-10-07 09:50:52 -04:00
Brad King ffff5c17a5 Merge branch 'android-ndk-r13' into release 2016-10-06 13:28:14 -04:00
Brad King 0c3a04777c Android: Update libc++ include directories for NDK r13
The Android NDK r13 moved the libc++ include directories.

Closes: #16346
2016-10-06 13:26:40 -04:00
Brad King dcf9729eb9 Merge branch 'cpack-rpm-debuginfo-fixes' into release 2016-10-06 10:16:25 -04:00
Domen Vrankar f53b01ff0f CPack/RPM debuginfo package without binaries
Handle case when a component doesn't contain
any debuginfo symbols.
2016-10-06 10:14:16 -04:00
Domen Vrankar ca50c89e41 CPack/RPM debuginfo package objdump error suppression
objdump prints out error text if file is not an
executable and that should be suppressed as we
don't care about non executable files during that
test
2016-10-06 10:14:11 -04:00
Brad King aac66d7974 Merge branch 'FindMatlab-fix-simulink-cache' into release 2016-10-05 09:45:18 -04:00
Raffi Enficiaud 2f16ab87ae FindMatlab: small documentation fixes 2016-10-05 09:39:27 -04:00
Raffi Enficiaud e8893030e6 FindMatlab: remove SIMULINK path from cache when FindMatlab is reconfigured 2016-10-05 09:39:20 -04:00
Roger Leigh a997cac832 FindBoost: Add 1.62 and 1.62.0 as supported versions 2016-10-03 12:19:33 +01:00
Brad King b4235b7590 Merge topic 'add-setup-projects-tests-module'
130784e0 AndroidTestUtilities: Add module to help drive Android device tests
2016-10-01 08:20:27 -04:00
Schuyler Kylstra 130784e039 AndroidTestUtilities: Add module to help drive Android device tests
Add a module to manage the data needed for the project tests.  It will
move the test data to the build directory and transfer necessary data to
an Android device if that is enabled.
2016-09-30 13:49:47 -04:00
Brad King 26b30c58d0 Merge topic 'FindCxxTest-no-unix-interp'
32ee69c5 FindCxxTest: Do not run cxxtestgen through interpreter unless necessary
2016-09-29 08:09:42 -04:00
Brad King b53a12c29c Merge topic 'vs-clang-llvm-support'
3f300b84 VS: Recognize VS/LLVM toolset names as Clang
2016-09-29 08:09:39 -04:00
Brad King 32ee69c562 FindCxxTest: Do not run cxxtestgen through interpreter unless necessary
On platforms that support shebang lines the `cxxtestgen` script should
be able to execute without an explicit interpreter.  Do this if possible
so that the proper interpreter specified by the shebang line is honored.
Ideally we shouldn't even need to find `python` in this case, but that
will be a larger change better made by a dedicated module maintainer.

Closes: #16331
2016-09-28 11:27:20 -04:00
Roman Wüger 3f300b84f3 VS: Recognize VS/LLVM toolset names as Clang
Update the toolset name matching added by commit v3.6.0-rc1~279^2~10
(VS: in Clang/C2 toolset, setup correct compiler settings, 2016-02-18)
to match VS/LLVM toolset names too.
2016-09-28 10:53:10 -04:00
Brad King c1f97af640 Merge topic 'simplify-license-notices'
19671831 Help: Update cmake-developer(7) module license docs for new notice
756169ac Tests: Update ModuleNotices test for new notice
845d86bc Utilities/Scripts: Remove temporary script that filtered license notices
86578ecc Simplify CMake per-source license notices
b7180cfe Utilities/Scripts: Add temporary script to filter license notices
7feb4ecc Copyright.txt: Add notice of copyright by contributors
78f77f60 Utilities/KWStyle: Remove unused header check reference file
681e0429 Tests: Fix RunCMake.CTest output match to tolerate line number changes
2016-09-28 08:05:10 -04:00
Brad King 8021f64029 Merge topic 'GNUInstallDirs-more-BSD'
956054ae GNUInstallDirs: All *BSDs use ${PREFIX}/{man,info} for man and info pages
2016-09-28 08:05:04 -04:00
Brad King a71a172ebf Merge topic 'findjni'
59eb75d9 FindJNI: Add aarch32 path on arm
2016-09-28 08:05:01 -04:00
Brad King cd89d1998a Merge topic 'silent-nsis-installs'
cb8db285 CPack/NSIS: Fix silent NSIS installs
2016-09-28 08:04:58 -04:00
Brad King 86578eccf2 Simplify CMake per-source license notices
Per-source copyright/license notice headers that spell out copyright holder
names and years are hard to maintain and often out-of-date or plain wrong.
Precise contributor information is already maintained automatically by the
version control tool.  Ultimately it is the receiver of a file who is
responsible for determining its licensing status, and per-source notices are
merely a convenience.  Therefore it is simpler and more accurate for
each source to have a generic notice of the license name and references to
more detailed information on copyright holders and full license terms.

Our `Copyright.txt` file now contains a list of Contributors whose names
appeared source-level copyright notices.  It also references version control
history for more precise information.  Therefore we no longer need to spell
out the list of Contributors in each source file notice.

Replace CMake per-source copyright/license notice headers with a short
description of the license and links to `Copyright.txt` and online information
available from "https://cmake.org/licensing".  The online URL also handles
cases of modules being copied out of our source into other projects, so we
can drop our notices about replacing links with full license text.

Run the `Utilities/Scripts/filter-notices.bash` script to perform the majority
of the replacements mechanically.  Manually fix up shebang lines and trailing
newlines in a few files.  Manually update the notices in a few files that the
script does not handle.
2016-09-27 15:14:44 -04:00
Dmitry Marakasov 956054aeca GNUInstallDirs: All *BSDs use ${PREFIX}/{man,info} for man and info pages 2016-09-27 08:33:57 -04:00
Orion Poplawski 59eb75d9d2 FindJNI: Add aarch32 path on arm 2016-09-27 08:31:02 -04:00
Craig Scott cb8db28559 CPack/NSIS: Fix silent NSIS installs
The installer should not put up a message box to confirm uninstall of a
previous version for silent installs. Furthermore, when the uninstaller
is invoked, do not show its confirmation dialog because either (a) the
installer already asked the user or (b) the installer is running in
silent mode.

Closes: #16328
2016-09-27 08:27:24 -04:00
Brad King 1adcf4917e Merge topic 'cpack-rpm-debuginfo-sources'
39c7d62c CPack/RPM debuginfo packaging documentation
dd3c938a CPack/RPM debuginfo directories to sources
b78fcf0d CPack/RPM debuginfo packages must contain sources
2016-09-27 08:23:03 -04:00
Brad King e56eca3f68 Merge topic 'find-matlab-pthread'
33ec71f3 FindMatlab: Fix -pthread check for projects with only C enabled
2016-09-27 08:22:47 -04:00
Brad King c3cce73e39 Merge topic 'CPackNSIS-per-component-install'
06dea230 CPack/NSIS: Add custom component install directory
2016-09-27 08:22:42 -04:00
Brad King 150d9955f6 Merge topic 'FindBoost-1.62'
9bb8ac8e FindBoost: update to 1.62
2016-09-27 08:22:39 -04:00
Domen Vrankar 39c7d62cbc CPack/RPM debuginfo packaging documentation 2016-09-27 08:18:21 -04:00
Domen Vrankar dd3c938a0f CPack/RPM debuginfo directories to sources
List of sources must be split into paths parts
so that debuginfo package cleans up after
itself.
2016-09-27 08:18:21 -04:00