-
-
Save peterspackman/8cf73f7f12ba270aa8192d6911972fe8 to your computer and use it in GitHub Desktop.
# Sample toolchain file for building for Windows from an Ubuntu Linux system. | |
# | |
# Typical usage: | |
# *) install cross compiler: `sudo apt-get install mingw-w64` | |
# *) cd build | |
# *) cmake -DCMAKE_TOOLCHAIN_FILE=~/mingw-w64-x86_64.cmake .. | |
# This is free and unencumbered software released into the public domain. | |
set(CMAKE_SYSTEM_NAME Windows) | |
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32) | |
# cross compilers to use for C, C++ and Fortran | |
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc) | |
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++) | |
set(CMAKE_Fortran_COMPILER ${TOOLCHAIN_PREFIX}-gfortran) | |
set(CMAKE_RC_COMPILER ${TOOLCHAIN_PREFIX}-windres) | |
# target environment on the build host system | |
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX}) | |
# modify default behavior of FIND_XXX() commands | |
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) | |
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) | |
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) |
thanks random ppl on the internet
Thank you.
Would you mind releasing this into the public domain or licensing it under a FOSS license and including that in the script?
Would you mind releasing this into the public domain or licensing it under a FOSS license and including that in the script?
Hope that suffices.
@peterspackman Thank you so much for your contribution and for taking the time to do that!
If using pkg-config, you also need to do something like set(PKG_CONFIG_EXECUTABLE ${TOOLCHAIN_PREFIX}-pkg-config)
so that FindPkgConfig searches for cross compiled packages, not those for running where cmake is running.
I had dependencies also checking for CMAKE_SYSTEM_PROCESSOR
, I believe this line should be added:
set(CMAKE_SYSTEM_PROCESSOR x86_64)
This is immensely helpful. Thank you so much.
Wow, this was a lifesaver... for anyone new to cmake just make sure to delete the "cmakecache.txt" file before trying this...