From a33c5d56cb3555b89eef7795cf8edae382aad10f Mon Sep 17 00:00:00 2001 From: Olivier Delannoy Date: Mon, 20 Sep 2010 19:56:44 +0100 Subject: [PATCH] Initial support for cross-compilation with support for cross compilation to win32 --- CMakeLists.txt | 1 + toolchains/README.txt | 10 ++++++++++ toolchains/linux-i686-pc-mingw32.cmake | 13 +++++++++++++ toolchains/linux-mingw32msvc.cmake | 15 +++++++++++++++ 4 files changed, 39 insertions(+) create mode 100644 toolchains/README.txt create mode 100644 toolchains/linux-i686-pc-mingw32.cmake create mode 100644 toolchains/linux-mingw32msvc.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 69b0e17d..f9536a1f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,7 @@ project(GLFW C) cmake_minimum_required(VERSION 2.4) +cmake_policy(VERSION 2.4) set(GLFW_VERSION_MAJOR "3") set(GLFW_VERSION_MINOR "0") diff --git a/toolchains/README.txt b/toolchains/README.txt new file mode 100644 index 00000000..d24854ed --- /dev/null +++ b/toolchains/README.txt @@ -0,0 +1,10 @@ +This folder contains a collection of toolchains definition in order to +support cross compilation. The naming scheme is the following: + host-system-compiler.cmake + +to use this at the time you run the initial cmake command use the +following parameter + -DCMAKE_TOOLCHAIN_FILE=./toolchains/XXX-XXX-XXX.cmake + which maps to file in this folder. + +For more details see: http://www.paraview.org/Wiki/CMake_Cross_Compiling diff --git a/toolchains/linux-i686-pc-mingw32.cmake b/toolchains/linux-i686-pc-mingw32.cmake new file mode 100644 index 00000000..62dc8675 --- /dev/null +++ b/toolchains/linux-i686-pc-mingw32.cmake @@ -0,0 +1,13 @@ +# Define the cross compilation environment for cross compiling from linux +# to win32 +SET(CMAKE_SYSTEM_NAME Windows) # Target system name +SET(CMAKE_SYSTEM_VERSION 1) +SET(CMAKE_C_COMPILER "i686-pc-mingw32-gcc") +SET(CMAKE_CXX_COMPILER "i686-pc-mingw32-g++") +SET(CMAKE_RANLIB "i686-pc-mingw32-ranlib") + +#Configure the behaviour of the find commands +SET(CMAKE_FIND_ROOT_PATH "/opt/mingw/usr/i686-pc-mingw32") +SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) diff --git a/toolchains/linux-mingw32msvc.cmake b/toolchains/linux-mingw32msvc.cmake new file mode 100644 index 00000000..4131bc92 --- /dev/null +++ b/toolchains/linux-mingw32msvc.cmake @@ -0,0 +1,15 @@ +# Define the cross compilation environment for cross compiling from linux +# to win32 it is to be used when debian cross compilation toolchain is +# available. +SET(CMAKE_SYSTEM_NAME Windows) # Target system name +SET(CMAKE_SYSTEM_VERSION 1) # Not really used. +SET(CMAKE_C_COMPILER "i586-mingw32msvc-gcc") +SET(CMAKE_CXX_COMPILER "i586-mingw32msvc-g++") +SET(CMAKE_RANLIB "i586-mingw32msvc-ranlib") + + +#Configure the behaviour of the find commands +SET(CMAKE_FIND_ROOT_PATH "/usr/i586-mingw32msvc") +SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)