CMakeでクロスコンパイル用の.cmakeファイルを書く

/devel/mingwをprefixにツールチェーンをインストールしているとして、

SET(CMAKE_SYSTEM_NAME Windows)
SET(CMAKE_C_COMPILER /devel/mingw/bin/i686-mingw32-gcc)
SET(CMAKE_CXX_COMPILER /devel/mingw/bin/i686-mingw32-g++)
SET(CMAKE_RC_COMPILER /devel/mingw/bin/i686-mingw32-windres)
SET(CMAKE_RC_COMPILE_OBJECT "<CMAKE_RC_COMPILER> -O coff <FLAGS> <DEFINES> <SOURCE> <OBJECT>")


SET(CMAKE_FIND_ROOT_PATH /devel/mingw/i686-mingw32 /devel/mingw/target)

SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)

SET(CMAKE_HOST_WIN32 1)
SET(CMAKE_SYSTEM_PROCESSOR "x86")

のようなファイルをwindows-mingw.cmakeのようなファイル名で作れば良い。地味にファイル名が重要なようだ(プラットフォーム-適当な名前.cmakeのようにする)
サンプルが必要なら /usr/local/share/cmake/Modules/Platform あたりにある。Xenixのような渋いプラットフォームもあって面白い(単に普通のUNIXエイリアスにしているだけだが。。)。