summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Help: Document cross compiling for AndroidBrad King2016-08-2318-27/+375
| | | | | | CMake now supports cross compiling for Android using the NDK or a standalone toolchain. Document the associated variables and how how to write toolchain files for Android.
* Android: Select the STL type for NDK buildsBrad King2016-08-2315-0/+184
| | | | | | | Populate standard include directories and link libraries for the platform. Select the STL corresponding to CMAKE_ANDROID_STL_TYPE and matching the current ABI and toolchain to be used. Refer to the NDK sources/cxx-stl/*/Android.mk files for the needed file locations.
* Android: Populate compiler flags for current ABIBrad King2016-08-2317-0/+192
| | | | | Initialize the CMAKE_{C,CXX}_FLAGS{,_<CONFIG>} cache entries with flags for each ABI as specified by NDK toolchain `setup.mk` files.
* Android: Add a CMAKE_BUILD_TYPE defaultBrad King2016-08-121-0/+2
| | | | | | Android NDK builds are always `debug` or `release`. We may populate flags for these configurations that are needed to produce compatible binaries. Ensure they are used by default.
* Android: Add Clang -target option for current ABIBrad King2016-08-129-0/+17
|
* Android: Add placeholders for compiler/abi-specific settingsBrad King2016-08-1221-0/+38
| | | | | | | | | | The Android NDK source repository at https://android.googlesource.com/platform/ndk.git has `<ndk>/build/core/toolchains/*/setup.mk` files that store tables of information for their build system. Add an equivalent file for each compiler/abi combination.
* Android: Avoid interfering with common pre-existing toolchain filesBrad King2016-08-125-0/+36
| | | | | | | | | Commonly used Android toolchain files that pre-date CMake upstream support may need to be updated to work with our new functionality. They typically set CMAKE_SYSTEM_VERSION to 1, so detect that and skip our upstream Android settings. When such toolchain files are updated to account for our upstream support, they can then set CMAKE_SYSTEM_VERSION to a valid Android API and get new behavior.
* Android: Search for NDK and standalone toolchain in more placesBrad King2016-08-121-0/+8
| | | | | | Commonly used Android toolchain files that pre-date CMake upstream support use a few environment and CMake variables as search locations. Use them too to aid transition.
* Android: Detect and save a standalone toolchain without the NDKBrad King2016-08-124-5/+115
|
* Android: Detect settings from the CMAKE_SYSROOT if it is setBrad King2016-08-121-1/+68
|
* Android: Detect and save a toolchain from the NDKBrad King2016-08-122-0/+296
|
* Android: Set CMAKE_SYSROOT automaticallyBrad King2016-08-121-0/+19
| | | | | | Compute CMAKE_SYSROOT automatically for the current API and architecture selection. This causes the --sysroot option to be passed to GNU and Clang compilers.
* Android: Detect and save the architecture, ABI, and processorBrad King2016-08-121-1/+88
| | | | | Add new CMakeSystem.cmake entries for the architecture and ABI. Store the processor in CMAKE_SYSTEM_PROCESSOR.
* Android: Detect and save the API levelBrad King2016-08-121-0/+48
| | | | | | 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.
* Android: Detect and save the NDK directoryBrad King2016-08-121-0/+27
| | | | Add a new CMakeSystem.cmake entry for the NDK location.
* Android: Suppress new functionality with Nsight Tegra in VS IDE buildsBrad King2016-08-125-0/+41
| | | | | | 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.
* Android: Add placeholders for platform-specific initializationBrad King2016-08-122-0/+29
| | | | | Add infrastructure modules to be loaded when initializing builds targeting Android platforms.
* Android: Add placeholders for platform-specific compiler selectionBrad King2016-08-123-0/+25
| | | | | Add infrastructure modules to be loaded for determining a compiler selection when targeting Android platforms.
* Android: Add placeholders for platform-specific compiler settingsBrad King2016-08-127-0/+77
| | | | | Add infrastructure modules to be loaded for Clang and GNU compilers when targeting Android platforms.
* CMakeDetermine*Compiler: Add hook to save custom compiler informationBrad King2016-08-123-0/+4
| | | | | | 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.
* CMakeDetermineSystem: Load platform-specific helper modulesBrad King2016-08-122-1/+2
| | | | | | | | | | | 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.
* CMake Nightly Date StampKitware Robot2016-08-121-1/+1
|
* Merge topic 'cmCryptoHash-raw-digest'Brad King2016-08-112-36/+117
|\ | | | | | | | | | | | | | | 3a5f609c cmCryptoHash: New ByteHash methods that return a byte vector f582dba6 cmCryptoHash: Return byte vector from internal Finalize method 74f0d4ab cmCryptoHash: New byte hash to string function 94c29976 cmCryptoHash: Documentation comments
| * cmCryptoHash: New ByteHash methods that return a byte vectorSebastian Holtermann2016-08-102-26/+55
| |
| * cmCryptoHash: Return byte vector from internal Finalize methodSebastian Holtermann2016-08-102-13/+13
| | | | | | | | | | | | Some callers may want the raw byte vector instead of the hex character string. Convert the internal implementation to use this so that we can later add public APIs to get it.
| * cmCryptoHash: New byte hash to string functionSebastian Holtermann2016-08-102-0/+38
| |
| * cmCryptoHash: Documentation commentsSebastian Holtermann2016-08-101-0/+14
| |
* | CMake Nightly Date StampKitware Robot2016-08-111-1/+1
| |
* | Merge topic '15687-xcode-support-system-include'Brad King2016-08-104-19/+49
|\ \ | | | | | | | | | | | | 93ac2a78 Xcode: Obey SYSTEM keyword for includes (#15687)
| * | Xcode: Obey SYSTEM keyword for includes (#15687)Gregor Jasny2016-08-094-19/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge topic 'fix-test-macOS-case-sensitive'Brad King2016-08-101-1/+1
|\ \ \ | | | | | | | | | | | | | | | | 677e73cb Tests: Fix RunCMake.Framework on case sensitive file systems.
| * | | Tests: Fix RunCMake.Framework on case sensitive file systems.Chaoren Lin2016-08-091-1/+1
| |/ / | | | | | | | | | The file is lowercase: Tests/RunCMake/Framework/osx.cmake
* | | Merge topic 'ninja-directory-targets'Brad King2016-08-1010-29/+61
|\ \ \ | | | | | | | | | | | | | | | | | | | | 02789894 Ninja: Add `$subdir/{test,install,package}` targets a88c99f1 Ninja: Simplify computation of GLOBAL_TARGET outputs
| * | | Ninja: Add `$subdir/{test,install,package}` targetsBrad King2016-08-0910-23/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the Makefile generator one can use `cd $subdir; make install` to build and install targets associated with a given subdirectory. This is not possible to do with the Ninja generator since there is only one `build.ninja` file at the top of the build tree. However, we can approximate it by allowing one to run `ninja $subdir/install` at the top of the tree to build the targets in the corresponding subdirectory and install them. This also makes sense for `test`, `package`, and other GLOBAL_TARGET targets. It was already done for `all` by commit v3.6.0-rc1~240^2~2 (Ninja: Add `$subdir/all` targets, 2016-03-11).
| * | | Ninja: Simplify computation of GLOBAL_TARGET outputsBrad King2016-08-091-6/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | In cmGlobalNinjaGenerator::AppendTargetOutputs we previously handled GLOBAL_TARGET outputs specially in order to avoid adding directory components to the output. However, this is not necessary because cmNinjaTargetGenerator::New already filters out copies of these targets that are not at the top level. Instead we can simply follow the same output computation code path as UTILITY targets.
* | | Merge topic 'NAG-Fortran-no-fPIE'Brad King2016-08-101-0/+1
|\ \ \ | | | | | | | | | | | | | | | | e9c98426 NAG: Use -PIC for Fortran position-independent executable code
| * | | NAG: Use -PIC for Fortran position-independent executable codeNeil Carlson2016-08-091-0/+1
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Merge topic 'install-export-staging-dir'Brad King2016-08-102-2/+26
|\ \ \ | | | | | | | | | | | | | | | | c7a319ab install(EXPORT): Fix support for mid-length install destinations on Windows
| * | | install(EXPORT): Fix support for mid-length install destinations on WindowsBrad King2016-08-092-2/+26
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The implementation of `install(EXPORT)` generates files into a staging directory for later installation. We use the full install destination in the path to the staging directory to avoid collisions. In order to avoid exceeding maximum path lengths (especially on Windows) we compute a hash of the install destination when it is too long. Fix this logic to account for the length of the file name(s) when deciding whether to switch to the hashed name. Reported-by: Alan W. Irwin <irwin@beluga.phys.uvic.ca>
* | | Merge topic 'add-extra-boolean-comparisons'Brad King2016-08-1018-79/+693
|\ \ \ | | | | | | | | | | | | | | | | 02d177c9 Add additional <= and >= comparison operators
| * | | Add additional <= and >= comparison operatorsChuck Atkins2016-08-0918-79/+693
| | | | | | | | | | | | | | | | | | | | This adds the LESS_EQUAL, GREATER_EQUAL, and associated STR and VERSION equivalents to use the combined <= and >= functionality.
* | | | CMake Nightly Date StampKitware Robot2016-08-101-1/+1
| |/ / |/| |
* | | Merge topic 'fix-string-append'Brad King2016-08-098-11/+11
|\ \ \ | | | | | | | | | | | | | | | | | | | | 551b4c90 Revert the use of string(APPEND) in .cmake.in files 3a7be4f3 prefer list(APPEND) over string(APPEND) where appropriate
| * | | Revert the use of string(APPEND) in .cmake.in filesDaniel Pfeifer2016-08-083-3/+3
| | | | | | | | | | | | | | | | | | | | The generated files may be consumed by older cmake versions which do not support string(APPEND).
| * | | prefer list(APPEND) over string(APPEND) where appropriateDaniel Pfeifer2016-08-085-8/+8
| | |/ | |/|
* | | Merge topic 'GetPrerequisites-grep-a'Brad King2016-08-091-1/+1
|\ \ \ | | | | | | | | | | | | | | | | 5f3c8f6a GetPrerequisites: Always filter objdump output as text
| * | | GetPrerequisites: Always filter objdump output as textAlexander Shishenko2016-08-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge topic 'ninja-full-path'Brad King2016-08-091-3/+4
|\ \ \ \ | |/ / / | | | | | | | | | | | | 955c2a63 Ninja: Use full path for all source files
| * | | Ninja: Use full path for all source filesChaoren Lin2016-08-081-3/+4
| |/ / | | | | | | | | | | | | | | | This is consistent with the behavior of the Makefile generators. Relative paths are difficult for an IDE to parse the output of a build error.
* | | Merge topic 'wix-custom-install-dir'Brad King2016-08-096-4/+55
|\ \ \ | | | | | | | | | | | | | | | | 17bbf6af CPackWIX: Implement new CPACK_WIX_SKIP_PROGRAM_FOLDER feature