| 1 |
zmatsuo |
7456 |
# how to build: |
| 2 |
|
|
# mkdir build; cd build |
| 3 |
|
|
# cmake .. -G "Unix Makefiles" -DCMAKE_TOOLCHAIN_FILE=../mingw.toolchain.cmake |
| 4 |
|
|
# cmake --build . |
| 5 |
|
|
|
| 6 |
|
|
# target |
| 7 |
|
|
set(CMAKE_SYSTEM_NAME Windows) |
| 8 |
|
|
|
| 9 |
|
|
# option |
| 10 |
zmatsuo |
10723 |
option(USE_GCC_32 "use gcc 32bit compiler" OFF) |
| 11 |
|
|
option(USE_GCC_64 "use gcc 64bit compiler" OFF) |
| 12 |
|
|
option(USE_CLANG_32 "use clang 32bit compiler" OFF) |
| 13 |
|
|
option(USE_CLANG_64 "use clang 64bit compiler" OFF) |
| 14 |
zmatsuo |
7456 |
|
| 15 |
zmatsuo |
10723 |
if((NOT USE_GCC_32) AND (NOT USE_GCC_64) AND |
| 16 |
|
|
(NOT USE_CLANG_32) AND (NOT USE_CLANG_64)) |
| 17 |
|
|
# default compiler |
| 18 |
|
|
set(USE_GCC_32 ON) |
| 19 |
|
|
endif() |
| 20 |
zmatsuo |
7456 |
|
| 21 |
zmatsuo |
10723 |
if(USE_GCC_32 OR USE_CLANG_32) |
| 22 |
|
|
set(PREFIX "i686-w64-mingw32-") |
| 23 |
|
|
set(CMAKE_FIND_ROOT_PATH /usr/i686-w64-mingw32) |
| 24 |
|
|
endif() |
| 25 |
|
|
if(USE_GCC_64 OR USE_CLANG_64) |
| 26 |
|
|
set(PREFIX "x86_64-w64-mingw32-") |
| 27 |
|
|
set(CMAKE_FIND_ROOT_PATH /usr/x86_64-w64-mingw32) |
| 28 |
|
|
endif() |
| 29 |
zmatsuo |
7456 |
|
| 30 |
zmatsuo |
10723 |
set(THREAD_MODEL "-win32") |
| 31 |
|
|
#set(THREAD_MODEL "-posix") |
| 32 |
|
|
if(${CMAKE_COMMAND} MATCHES "msys2") |
| 33 |
|
|
# msys2にはposix版のみ |
| 34 |
|
|
unset(THREAD_MODEL) |
| 35 |
|
|
endif() |
| 36 |
|
|
|
| 37 |
|
|
if(USE_GCC_32 OR USE_GCC_64) |
| 38 |
|
|
set(CMAKE_C_COMPILER ${PREFIX}gcc${THREAD_MODEL}) |
| 39 |
|
|
set(CMAKE_CXX_COMPILER ${PREFIX}g++${THREAD_MODEL}) |
| 40 |
|
|
set(CMAKE_RC_COMPILER ${PREFIX}windres) |
| 41 |
|
|
elseif(USE_CLANG_32 OR USE_CLANG_64) |
| 42 |
|
|
set(CMAKE_C_COMPILER ${PREFIX}clang${THREAD_MODEL}) |
| 43 |
|
|
set(CMAKE_CXX_COMPILER ${PREFIX}clang++${THREAD_MODEL}) |
| 44 |
|
|
set(CMAKE_RC_COMPILER ${PREFIX}windres) |
| 45 |
zmatsuo |
7456 |
else() |
| 46 |
zmatsuo |
10723 |
message(FATAL_ERROR "check compiler") |
| 47 |
zmatsuo |
7456 |
endif() |
| 48 |
|
|
|
| 49 |
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) |
| 50 |
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) |
| 51 |
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) |
| 52 |
|
|
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) |
| 53 |
|
|
|
| 54 |
|
|
set(CMAKE_TOOLCHAIN_FILE ${CMAKE_TOOLCHAIN_FILE} CACHE PATH "toolchain file") |