1 |
# install cygwin in this folder |
2 |
# cmake -P install_cygwin.cmake |
3 |
# cmake -DREMOVE_TMP=ON -P install_cygwin.cmake |
4 |
set(CYGWIN_ROOT "${CMAKE_CURRENT_LIST_DIR}/cygwin64") |
5 |
if(DEFINED ENV{REMOVE_TMP}) |
6 |
set(REMOVE_TMP ON) |
7 |
else() |
8 |
option(REMOVE_TMP "" OFF) |
9 |
endif() |
10 |
|
11 |
# cygroot |
12 |
if(EXISTS "${CYGWIN_ROOT}") |
13 |
file(MAKE_DIRECTORY "${CYGWIN_ROOT}") |
14 |
endif() |
15 |
|
16 |
if("${CYGWIN_ROOT}" MATCHES "cygdrive") |
17 |
# cygwin の cmake を使用するとpath(CYGWIN_ROOT) が /cygdrive/c.. となり |
18 |
# setup.exe の --root オプションで処理できない |
19 |
message(FATAL_ERROR "check CMAKE_COMMAND (${CMAKE_COMMAND})") |
20 |
endif() |
21 |
|
22 |
############################## |
23 |
# cygwin (64bit) latest |
24 |
|
25 |
set(SETUP_URL "https://cygwin.com/setup-x86_64.exe") |
26 |
set(SETUP_HASH_SHA256 "6bad4555154b3b348d1bfb633a2e9d6086aa46e36952f456a434ecef5b0010e0") |
27 |
set(SETUP "${CYGWIN_ROOT}/setup-x86_64.exe") |
28 |
|
29 |
set(DOWNLOAD_SITE "http://mirrors.kernel.org/sourceware/cygwin/") |
30 |
set(PACKAGE "${CMAKE_CURRENT_LIST_DIR}/download/cygwin_package") |
31 |
|
32 |
# setup-x86_64.exe を準備 |
33 |
file(DOWNLOAD |
34 |
${SETUP_URL} |
35 |
${PACKAGE}/setup-x86_64.exe |
36 |
EXPECTED_HASH SHA256=${SETUP_HASH_SHA256} |
37 |
SHOW_PROGRESS |
38 |
) |
39 |
file(COPY ${PACKAGE}/setup-x86_64.exe DESTINATION ${CYGWIN_ROOT}) |
40 |
|
41 |
# install packages |
42 |
execute_process( |
43 |
COMMAND ${SETUP} --quiet-mode --wait --no-admin --root ${CYGWIN_ROOT} --site ${DOWNLOAD_SITE} --local-package-dir ${PACKAGE} --packages cmake,bash,tar,make,perl,gcc-core,gcc-g++,icoutils |
44 |
WORKING_DIRECTORY ${CYGWIN_ROOT} |
45 |
) |
46 |
|
47 |
# remove archives |
48 |
if(REMOVE_TMP) |
49 |
file(GLOB ARC_FILES "${PACKAGE}/http*") |
50 |
file(REMOVE_RECURSE ${ARC_FILES}) |
51 |
endif() |
52 |
|
53 |
############################## |
54 |
# cygwin 32bit from time machine |
55 |
# http://www.crouchingtigerhiddenfruitbat.org/Cygwin/timemachine.html |
56 |
|
57 |
#set(SETUP_EXE setup-x86_64-2.909.exe) |
58 |
#set(SETUP_HASH_SHA256 b9219acd1241ffa4d38e19587f1ccc2854f951e451f3858efc9d2e1fe19d375c) |
59 |
#set(DOWNLOAD_SITE "http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2021/10/28/174906") |
60 |
set(SETUP_EXE setup-x86_64-2.924.exe) |
61 |
set(SETUP_HASH_SHA256 edd0a64dc65087ffe453ca94b267169b39458a983b29ac31320fcaa983d0f97e) |
62 |
set(DOWNLOAD_SITE "http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/circa/64bit/2022/12/01/145510") |
63 |
|
64 |
set(SETUP_URL "http://ctm.crouchingtigerhiddenfruitbat.org/pub/cygwin/setup/snapshots/${SETUP_EXE}") |
65 |
set(SETUP "${CYGWIN_ROOT}/${SETUP_EXE}") |
66 |
|
67 |
set(PACKAGE "${CMAKE_CURRENT_LIST_DIR}/download/cygwin32_package") |
68 |
|
69 |
# setup-x86_64.exe を準備 |
70 |
file(DOWNLOAD |
71 |
${SETUP_URL} |
72 |
${PACKAGE}/${SETUP_EXE} |
73 |
EXPECTED_HASH SHA256=${SETUP_HASH_SHA256} |
74 |
SHOW_PROGRESS |
75 |
) |
76 |
file(COPY ${PACKAGE}/${SETUP_EXE} DESTINATION ${CYGWIN_ROOT}) |
77 |
|
78 |
# install packages |
79 |
execute_process( |
80 |
COMMAND ${SETUP} -X --quiet-mode --wait --no-admin --root ${CYGWIN_ROOT} --site ${DOWNLOAD_SITE} --local-package-dir ${PACKAGE} --packages cygwin32-gcc-g++ |
81 |
WORKING_DIRECTORY ${CYGWIN_ROOT} |
82 |
) |
83 |
|
84 |
# remove archives |
85 |
if(REMOVE_TMP) |
86 |
file(GLOB ARC_FILES "${PACKAGE}/http*") |
87 |
file(REMOVE_RECURSE ${ARC_FILES}) |
88 |
endif() |