-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathconfigure.win
executable file
·109 lines (104 loc) · 3.54 KB
/
configure.win
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
#!/bin/bash
CXX_STD=CXX17
CC=`${R_HOME}/bin${R_ARCH_BIN}/R.exe CMD config CC`
CXX=`${R_HOME}/bin${R_ARCH_BIN}/R.exe CMD config CXX`
JTHREADS=1
CMAKE_BUILD_TYPE=Release
cd ./src
# itkgit=https://github.com/InsightSoftwareConsortium/ITK
# itktag=81c14ce858a530699ee2fbf7fa48b884ad26b984
itkgit=https://github.com/InsightSoftwareConsortium/ITK.git
itktag=f67dd9ac229f92f966452b1cff45c81b8e370c79 # CMAKE_SH fix
mkdir itks itkb
# as per https://discourse.itk.org/t/path-length-limitation-in-windows-lifted/545/12
mkdir -p ../data
echo "Dependency;GitTag" > ../data/softwareVersions.csv
echo "ITK;${itktag}" >> ../data/softwareVersions.csv
echo "ITKURL;${itkgit}" >> ../data/softwareVersions.csv
git_exe=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "x=Sys.which('git'); cat(x)"`
if [ -z "${git_exe}" ]; then
${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e 'if (!requireNamespace("git2r")) install.packages("git2r")'
str="repo = git2r::clone(\""
str="${str}${itkgit}"
str="${str}\", local_path = \"./itks\")"
if [ -n "${itktag}" ]; then
str="${str}; git2r::checkout(repo, branch = \""
str="${str}${itktag}"
str="${str}\");"
fi
${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "${str}"
cd itks
else
longpaths=`git config --get core.longpaths`
git config core.longpaths true
git clone $itkgit itks
cd itks
git checkout master;
git checkout $itktag
# removing the longpaths setting
if [ -n "${longpaths}" ]; then
git config core.longpaths ${longpaths}
else
git config --unset core.longpaths
fi
fi
rm -rf .git
cd ../itkb
# compflags=" -fPIC -O2 "
# -Wno-c++11-long-long
# -DVNL_CONFIG_ENABLE_SSE2_ROUNDING:BOOL=OFF \
compflags=" -fPIC -O2 -lws2_32 -lgdi32 -mwindows -msse4.1 -mssse3 -Wa,-mbig-obj"
cmaker=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "x=Sys.which('cmake'); cat(x)"`
if [ -z "${cmaker}" ]; then
res=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "cat(('cmaker' %in% installed.packages())*1)"`
if [ $res -eq 0 ];
then
git clone https://github.com/stnava/cmaker
R CMD INSTALL cmaker
rm -rf cmaker
fi
cmaker=`${R_HOME}/bin${R_ARCH_BIN}/Rscript.exe -e "x=cmaker::cmake()"`
# cmake_path=`dirname cmaker`
# export PATH=${PATH}:${cmake_path}
# cmaker="cmake"
else
cmaker="cmake.exe"
fi
echo ${cmaker}
${cmaker} \
-G "MinGW Makefiles" \
-DCMAKE_BUILD_TYPE:STRING="${CMAKE_BUILD_TYPE}" \
-DCMAKE_C_FLAGS=" ${CMAKE_C_FLAGS} ${compflags} -DNDEBUG -D_FILE_OFFSET_BITS=64 "\
-DCMAKE_CXX_FLAGS=" ${CMAKE_CXX_FLAGS} ${compflags} -DNDEBUG "\
-DCMAKE_SH:BOOL=OFF \
-DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
-DITK_USE_GIT_PROTOCOL:BOOL=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DBUILD_TESTING:BOOL=OFF \
-DBUILD_EXAMPLES:BOOL=OFF \
-DCMAKE_INSTALL_PREFIX:PATH="${R_PACKAGE_DIR}"/libs/ \
-DITK_LEGACY_REMOVE:BOOL=OFF \
-DITK_FUTURE_LEGACY_REMOVE:BOOL=OFF \
-DITK_BUILD_DEFAULT_MODULES:BOOL=OFF \
-DModule_GenericLabelInterpolator:BOOL=ON \
-DKWSYS_USE_MD5:BOOL=ON \
-DITK_WRAPPING:BOOL=OFF \
-DModule_MGHIO:BOOL=ON \
-DModule_ITKDeprecated:BOOL=OFF \
-DModule_ITKReview:BOOL=ON \
-DModule_ITKVtkGlue:BOOL=OFF \
-DModule_AdaptiveDenoising:BOOL=ON \
-D ITKGroup_Core=ON \
-D Module_ITKReview=ON \
-D ITKGroup_Filtering=ON \
-D ITKGroup_IO=ON \
-D ITKGroup_Numerics=ON \
-D ITKGroup_Registration=ON \
-D ITKGroup_Segmentation=ON \
-DITK_SKIP_PATH_LENGTH_CHECKS:bool=ON \
-DVNL_CONFIG_ENABLE_SSE2_ROUNDING:BOOL=ON \
../itks/
cd ../
# if [ -n "${APPVEYOR}" ]; then
# mv C:/Rtools/bin/_sh.exe C:/Rtools/bin/sh.exe
# fi