浏览代码

Help: Add Cross Compiling subsections in cmake-toolchains.7 manual

Organize the "Cross Compiling" section into subsections by platform.
This will make it easier to add more subsections for more platforms.
Pascal Bach 11 年之前
父节点
当前提交
0d72451a05
共有 1 个文件被更改,包括 30 次插入14 次删除
  1. 30 14
      Help/manual/cmake-toolchains.7.rst

+ 30 - 14
Help/manual/cmake-toolchains.7.rst

@@ -97,12 +97,20 @@ Cross Compiling
 
 
 If :manual:`cmake(1)` is invoked with the command line parameter
 If :manual:`cmake(1)` is invoked with the command line parameter
 ``-DCMAKE_TOOLCHAIN_FILE=path/to/file``, the file will be loaded early to set
 ``-DCMAKE_TOOLCHAIN_FILE=path/to/file``, the file will be loaded early to set
-values for the compilers. A typical cross-compiling toolchain has content such
+values for the compilers.
+The :variable:`CMAKE_CROSSCOMPILING` variable is set to true when CMake is
+cross-compiling.
+
+Cross Compiling for Linux
+-------------------------
+
+A typical cross-compiling toolchain for Linux has content such
 as:
 as:
 
 
 .. code-block:: cmake
 .. code-block:: cmake
 
 
   set(CMAKE_SYSTEM_NAME Linux)
   set(CMAKE_SYSTEM_NAME Linux)
+  set(CMAKE_SYSTEM_PROCESSOR arm)
 
 
   set(CMAKE_SYSROOT /home/devel/rasp-pi-rootfs)
   set(CMAKE_SYSROOT /home/devel/rasp-pi-rootfs)
   set(CMAKE_STAGING_PREFIX /home/devel/stage)
   set(CMAKE_STAGING_PREFIX /home/devel/stage)
@@ -118,6 +126,9 @@ as:
 The :variable:`CMAKE_SYSTEM_NAME` is the CMake-identifier of the target platform
 The :variable:`CMAKE_SYSTEM_NAME` is the CMake-identifier of the target platform
 to build for.
 to build for.
 
 
+The :variable:`CMAKE_SYSTEM_PROCESSOR` is the CMake-identifier of the target architecture
+to build for.
+
 The :variable:`CMAKE_SYSROOT` is optional, and may be specified if a sysroot
 The :variable:`CMAKE_SYSROOT` is optional, and may be specified if a sysroot
 is available.
 is available.
 
 
@@ -139,13 +150,17 @@ target system prefixes, whereas executables which must be run as part of the bui
 should be found only on the host and not on the target. This is the purpose of
 should be found only on the host and not on the target. This is the purpose of
 the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables.
 the ``CMAKE_FIND_ROOT_PATH_MODE_*`` variables.
 
 
-Some compilers are inherently cross compilers, such as Clang and the QNX QCC
-compiler. The :variable:`CMAKE_<LANG>_COMPILER_TARGET` can be set to pass a
+Cross Compiling using Clang
+---------------------------
+
+Some compilers such as Clang are inherently cross compilers.
+The :variable:`CMAKE_<LANG>_COMPILER_TARGET` can be set to pass a
 value to those supported compilers when compiling:
 value to those supported compilers when compiling:
 
 
 .. code-block:: cmake
 .. code-block:: cmake
 
 
   set(CMAKE_SYSTEM_NAME Linux)
   set(CMAKE_SYSTEM_NAME Linux)
+  set(CMAKE_SYSTEM_PROCESSOR arm)
 
 
   set(triple arm-linux-gnueabihf)
   set(triple arm-linux-gnueabihf)
 
 
@@ -154,7 +169,18 @@ value to those supported compilers when compiling:
   set(CMAKE_CXX_COMPILER clang++)
   set(CMAKE_CXX_COMPILER clang++)
   set(CMAKE_CXX_COMPILER_TARGET ${triple})
   set(CMAKE_CXX_COMPILER_TARGET ${triple})
 
 
-Or, for QCC:
+Similarly, some compilers do not ship their own supplementary utilities
+such as linkers, but provide a way to specify the location of the external
+toolchain which will be used by the compiler driver. The
+:variable:`CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN` variable can be set in a
+toolchain file to pass the path to the compiler driver.
+
+Cross Compiling for QNX
+-----------------------
+
+As the Clang compiler the QNX QCC compile is inherently a cross compiler.
+And the :variable:`CMAKE_<LANG>_COMPILER_TARGET` can be set to pass a
+value to those supported compilers when compiling:
 
 
 .. code-block:: cmake
 .. code-block:: cmake
 
 
@@ -166,13 +192,3 @@ Or, for QCC:
   set(CMAKE_C_COMPILER_TARGET ${arch})
   set(CMAKE_C_COMPILER_TARGET ${arch})
   set(CMAKE_CXX_COMPILER QCC)
   set(CMAKE_CXX_COMPILER QCC)
   set(CMAKE_CXX_COMPILER_TARGET ${arch})
   set(CMAKE_CXX_COMPILER_TARGET ${arch})
-
-
-Similarly, some compilers do not ship their own supplementary utilities
-such as linkers, but provide a way to specify the location of the external
-toolchain which will be used by the compiler driver. The
-:variable:`CMAKE_<LANG>_COMPILER_EXTERNAL_TOOLCHAIN` variable can be set in a
-toolchain file to pass the path to the compiler driver.
-
-The :variable:`CMAKE_CROSSCOMPILING` variable is set to true when CMake is
-cross-compiling.