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") |