title: How do I detect that I am cross-compiling in CMakeLists.txt?
body: <p>The CMake documentation suggests that CMAKE_CROSSCOMPILING is set when cross-compiling. In my CMakeLists.txt I have the lines:</p>
  
  <pre><code>IF(CMAKE_CROSSCOMPILING)
      message(STATUS "Cross-compiling so skipping unit tests.")
      option(GAME_PORTAL_UNIT_TEST "Enable unit testing of Game Portal code" OFF)
  ELSE()
      message(STATUS "Enabling unit testing of Game Portal code")
      option(GAME_PORTAL_UNIT_TEST "Enable unit testing of Game Portal code" ON)
  ENDIF()
  </code></pre>
  
  <p>The output from running:</p>
  
  <pre><code>cmake -DCMAKE_TOOLCHAIN_FILE=../crosscompile/raspberry_pi/CMakeCross.txt .
  </code></pre>
  
  <p>Includes the text "Enabling unit testing of Game Portal code", so clearly this variable is not being set, or not so it evaluates to true anyway.</p>
  
  <p>I tried modifying CMakeCross.txt to include:</p>
  
  <pre><code>set(CMAKE_CROSSCOMPILING ON CACHE BOOL "Cross-compiling" FORCE)
  </code></pre>
  
  <p>and after cleaning the old CMakeCache.txt and rerunning my cmake command I can see that the new CMakeCache.txt now includes this variable, but I still get the same result as previously with regards to the unit tests being enabled.</p>
  
  <p>How can I reliably detect that I am cross-compiling so I can properly disable the unit tests?</p>
  
  <p>As requested, the full cross-compile file is:</p>
  
  <pre><code># Set minimum cmake version required for cross-compiling to work.
  cmake_minimum_required(VERSION 2.6)
  # Build with rm CMakeCache.txt; cmake -DCMAKE_TOOLCHAIN_FILE=/home/crosscompile/dev/raspberry_pi/CMakeCross.txt .. 
  
  # Set target system name.
  SET (CMAKE_SYSTEM_NAME Linux)
  
  # Set compiler name.
  SET (CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
  SET (CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
  
  # Set path(s) to search for libraries/binaries/headers.
  SET (CMAKE_FIND_ROOT_PATH /home/crosscompile/dev/raspberry_pi/rootfs/)
  
  # Ensure only cross-compiler directories are searched.
  SET (ONLY_CMAKE_FIND_ROOT_PATH TRUE)
  
  # search for programs in the build host directories
  SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
  # for libraries and headers in the target directories
  SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
  SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
  
  # Set output/install directory to safe place.
  SET (CMAKE_INSTALL_PREFIX /home/crosscompile/dev/raspberry_pi/install/)
  
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rpath-link=/lib/arm-linux-gnueabihf")
  set(THREADS_PTHREAD_ARG 0)
  set(CMAKE_CROSSCOMPILING ON CACHE BOOL "Cross-compiling" FORCE)
  </code></pre>