-
-
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...