summaryrefslogtreecommitdiffstats
path: root/Help/manual/cmake-toolchains.7.rst
Commit message (Collapse)AuthorAgeFilesLines
* cmake: add support for --toolchain command argumentRobert Maynard2021-04-151-2/+2
|
* Help: Document CMAKE_ANDROID_NDK_VERSION variableBrad King2021-03-031-0/+4
|
* Android: update documentation for NDK integrationHaibo Huang2020-12-081-2/+2
|
* Help: Add note about Visual Studio tools for AndroidKyle Edwards2020-10-071-4/+6
|
* QNX: Add support for CMAKE_SYSROOTStephen Kelly2020-01-271-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QCC is a wrapper around GCC, but it is not a fully transparent wrapper. Some compile options need to be passed to GCC using a `-Wc` option. QCC does not support --sysroot, so setting CMAKE_SYSROOT in a toolchain file currently does not work. This means that it is likely that no one is setting CMAKE_SYSROOT in existing QNC toolchain files. Override the GCC option for sysroot in the QCC.cmake file with -Wc,-isysroot. This exposes a further issue in that the QNX SDK does not follow the same architectural folder structure as linux uses. That is, on linux systems, architecture-specific libraries might be in <sysroot>/usr/lib/<arch> such as /usr/lib/x86_64-linux-gnu/libcurl.so CMake models this by suffixing the <arch> onto lib directories when searching for libraries. The QNX SDK is structured differently such that the <arch> should be used as a prefix: <sysroot>/<arch>/usr/lib such as <sysroot>/x86_64/usr/lib/libcurl.so Add a variable for platform configuration to set whether to prefix or suffix the <arch> and set that in the QCC.cmake. Use the directory structure of the QNX SDK to compute the <arch> from the implicit library directories. The assumption is that the arch will be a single directory directly below the CMAKE_SYSROOT, below which the usr/ prefix occurs. It would not be appropriate to instruct users to make the <arch> part of the sysroot when specified in the toolchain file because: 1. That would be non-DRY - The QCC wrapper already determines the <arch> by the -V argument passed to the compiler, specified in the toolchain file as the CMAKE_C_COMPILER_TARGET variable. 2. The includes in the QNX SDK are not below the <arch> directory. So, the location of the <arch> in the full path is different on QNX compared to, say an embedded linux platform, but the intent is the same. Add documentation to recommend the use of CMAKE_SYSROOT in a QNX toolchain file. As the CMAKE_SYSROOT is always the same for QNX, it would be possible to simply set it in QCC.cmake. However, that would change behavior for existing users as when CMAKE_SYSROOT is set, files/paths outside of the CMAKE_SYSROOT do not get found. The <arch> prefixing is only enabled in cmSearchPath.cxx if CMAKE_SYSROOT is set. This ensures that the user gets consistency in the current state without CMAKE_SYSROOT, and gets better consistency when using CMAKE_SYSROOT.
* Android: Use unified toolchain in NDK r19+Brad King2019-07-261-2/+4
| | | | | | | | | | | | | | | | | | | The NDK build system now uses only a single toolchain in <ndk>/toolchains/llvm/prebuilt/<host> Its compilers are always `bin/{clang,clang++}` and its binutils are always `bin/<triple>-*`. It is a standalone toolchain: * The Anrdoid API level is specified at the end of `--target=`. * The standard library may be specified via `-stdlib=`. * No need to pass system includes or libraries explicitly. * No need to pass `--sysroot` or `-gcc-toolchain`. Teach CMake to recognize NDK versions that have a unified toolchain with its own sysroot and use the above approach. Fixes: #18739
* Help: Discourage using CMAKE_SOURCE_DIR in toolchain filesOleg Chernovskiy2019-07-021-0/+8
| | | | Fixes: #19390
* Help: Improve formatting of Help documentationBartosz Kosiorek2019-04-081-6/+6
|
* Help: Example of tweaking iOS/tvOS/watchOS buildRuslan Baratov2019-03-051-0/+48
| | | | | CMAKE_OSX_ARCHITECTURES and CMAKE_OSX_DEPLOYMENT_TARGET variables can be used to tweak iOS/tvOS/watchOS build
* Help: find_package with fat iOS librariesRuslan Baratov2019-03-051-1/+11
|
* Xcode: Completely disable code signing for compiler id detectionGregor Jasny2019-02-041-0/+2
| | | | Issue: #17870
* Apple: Introduce separate system name for iOS, tvOS, and watchOSGregor Jasny2019-02-041-0/+69
| | | | | | | | | | | - Remove code signing requirements for non-macOS - Do not set deployment target for non-macOS - Build static library for compiler feature detection for non-macOS - Use framework to run CompilerId tests for watchOS - Port tests to new SDK handling - Add new Apple cross-compiling section to toolchain documentation Closes: #17870
* Android: Add support for unified headersBrad King2017-06-121-0/+5
| | | | | | | | The unified headers are preferred as of NDK r15, so use them by default if available and provide an option to use the deprecated headers. Inspired-by: Florent Castelli <florent.castelli@gmail.com> Fixes: #16584
* Android: Always set CMAKE_ANDROID_NDK_TOOLCHAIN_VERSIONBrad King2016-11-141-1/+1
| | | | | | | | | When this variable is not set by the user or toolchain file, set it to the default selected. This will be useful for client code that needs to pass the value to an external tool that needs to find the same toolchain in the NDK. Leave it empty for a standalone toolchain. Suggested-by: Ruslan Baratov <ruslan_baratov@yahoo.com>
* Help: Document cross compiling for AndroidBrad King2016-08-231-5/+199
| | | | | | 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.
* CMakeForceCompiler: Deprecate this module and its macrosBrad King2016-03-081-3/+4
| | | | | | | | | | We originally deprecated this module in commit v3.5.0-rc1~295^2 (CMakeForceCompiler: Deprecate this module and its macros, 2015-10-19). Then a use case was found to still require the module so the deprecation was reverted for CMake 3.5 by commit v3.5.0-rc3~4^2 (CMakeForceCompiler: De-deprecate until more use cases have alternatives, 2016-02-17). Since then `CMAKE_TRY_COMPILE_TARGET_TYPE` was introduced to provide an alternative solution for that use case. Deprecate the module again.
* Cray: Added documentation for cross compiling on a CrayChuck Atkins2015-11-141-0/+30
|
* Help: Document Windows 10 Universal Applications in cmake-toolchains(7)Brad King2015-10-051-0/+17
|
* VS: Add more Nsight Tegra generator Android property settingsMikhail Filimonov2015-07-141-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend the Nsight Tegra project generator to add bunch of properties with the backing variables to fine-tune the generated projects. Add target properties that map to all "Configuration" PropertyGroups for each configuration: * ANDROID_ARCH * ANDROID_STL_TYPE Add target properties that map to the AntBuild section of vcxproj files: * ANDROID_ANT_ADDITIONAL_OPTIONS * ANDROID_ASSETS_DIRECTORIES * ANDROID_JAR_DEPENDENCIES * ANDROID_JAR_DIRECTORIES * ANDROID_JAVA_SOURCE_DIR * ANDROID_NATIVE_LIB_DEPENDENCIES * ANDROID_NATIVE_LIB_DIRECTORIES * ANDROID_PROCESS_MAX * ANDROID_PROGUARD * ANDROID_PROGUARD_CONFIG_PATH * ANDROID_SECURE_PROPS_PATH * ANDROID_SKIP_ANT_STEP Reviewed-by: Dmitry Polyanitsa <dpolyanitsa@nvidia.com>
* Add 'ANDROID_API_MIN' target property to set Android Target MIN APIDmitry Polyanitsa2014-12-171-2/+3
| | | | | | Also add a 'CMAKE_ANDROID_API_MIN' variable to set the property default. Teach the VS generator to write the MIN API value into Nsight Tegra project files.
* Help: Document Nsight Tegra toolchain configuration (#15276)Brad King2014-12-021-0/+17
|
* Help: Drop TOC from latex manualsBrad King2014-11-061-1/+1
| | | | A latex document can have its own TOC.
* Help/manual: Avoid long lines in code blocksBrad King2014-10-221-2/+3
| | | | | | Update the wording of some examples to avoid long lines in code blocks. Otherwise the formatted documentation can exceed certain column width limitations.
* Help: Add Windows Phone/Store cross-compiling to cmake-toolchains.7Brad King2014-09-191-0/+22
| | | | Show simple example toolchain files for each.
* Help: Add Windows CE cross-compiling to cmake-toolchains.7 manualPascal Bach2014-09-191-0/+26
|
* Help: Add Cross Compiling subsections in cmake-toolchains.7 manualPascal Bach2014-09-191-14/+30
| | | | | Organize the "Cross Compiling" section into subsections by platform. This will make it easier to add more subsections for more platforms.
* Help: Add additional hyperlink targetsStephen Kelly2014-02-091-0/+2
|
* Help: Note that language-specific 'built-ins' are set by the project command.Stephen Kelly2014-01-071-1/+5
|
* Help: Mark some code blocks as containing cmake code.Stephen Kelly2014-01-041-6/+18
|
* Help: Add cmake-toolchains.7 manualStephen Kelly2013-12-031-0/+160
Create a manual for toolchain related docs.