-
Notifications
You must be signed in to change notification settings - Fork 1
/
_template_.winlib
253 lines (232 loc) · 13.2 KB
/
_template_.winlib
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
export NAME=""
export STATUS=
export URL=
export BASENAME=
export DESCRIPTION=""
export CATEGORY=
export TYPE=library
export VERSION=
export VERSIONDATE=
wl-showstatus --package-version
export DEPENDENCIES=
export OPTIONALDEPENDENCIES=
export BUILDDEPENDENCIES=
#export BUILDDEPENDENCIES=cmake,ninja
#export BUILDDEPENDENCIES=meson,ninja
export OPTIONALBUILDDEPENDENCIES=
export LICENSEFILE=COPYING
#export LICENSEFILE=LICENSE
export LICENSETYPE=
export DOWNLOADURL=""
export INSTALLPREFIX=`pwd`/inst_$BASENAME-$VERSION
export DOWNLOADSOURCEURL=
wl-showstatus download
wl-download -v -d $TARBALLDIR/$BASENAME $DOWNLOADSOURCEURL
wl-wait4deps
wl-showstatus extract
tar xz --force-local -f $TARBALLDIR/$BASENAME/$BASENAME-$VERSION.tar.gz
#tar xj --force-local -f $TARBALLDIR/$BASENAME/$BASENAME-$VERSION.tar.bz2
#tar xJ --force-local -f $TARBALLDIR/$BASENAME/$BASENAME-$VERSION.tar.xz
cd $BASENAME-$VERSION
./configure --help 2> /dev/null
cat meson_options.txt 2> /dev/null
head COPYING* LICENSE* LICENCE* COPYRIGHT*
ls -ld COPYING* LICENSE* LICENCE* COPYRIGHT* configure* m4 CMakeLists.txt cmake xmake.lua Makefile GNUmakefile setup.py scons SConscript SConstruct meson.build meson_options.txt *.pro *.proj *.sln BUILD.gn .gn build 2> /dev/null
wl-showstatus build &&
make &&
#make CC=${CC:-gcc} CXX=${CXX:-g++} LD=${LD:-ld} AR=${AR:-ar} &&
echo OK
#GCCFLAG_ASNEEDED=$(echo "int main () { return 0; }"|gcc -xc - -Wl,--as-needed &>/dev/null && echo "-Wl,--as-needed")
#GCCFLAG_ASNEEDED=$(if gcc --help -v 2>/dev/null | grep -q " --as-needed"; then echo "-Wl,--as-needed"; fi)
wl-showstatus configure &&
#wl-showstatus preconfigure &&
#mkdir -p m4 &&
##libtoolize -f -i -c &&
##intltoolize -f -c &&
#autoreconf -f -i -I m4 -I $MINGWPREFIX/share/aclocal &&
#./autogen.sh &&
# echo OK
## fix building DLLs on 64-bit
#if ( echo $RUNPLATFORM | grep -q x86_64 ); then
# echo "AM_GNU_GETTEXT_VERSION([$(gettext --version|head -n1|sed -e "s/^.* \([0-9\.]*\) *$/\1/")])" >> configure.ac &&
# autoreconf -f -i -I m4 -I $MINGWPREFIX/share/aclocal
#fi
## allow building shared libraries when using clang
#if ${CC:-gcc} --version|grep -q "^clang" && ! ${CC:-gcc} --help|grep auto-import; then
# sed -i.bak -e "s/\$LD --help 2>&1 | \(\$GREP\|grep\) 'auto-import'/true/" configure
# #sed -i.bak -e "s/\$LD --help 2>&1 | \(\$GREP\|grep\) 'auto-import'/true/" $(find -name configure)
#fi &&
## fix confusion between MSVC and clang
#if ${CC:-gcc} --version|grep -q "^clang"; then
# sed -i.bak2 -e "s/\b\(cl\)\(\*\)/\1.exe\2/g; s/\(ld_shlibs\)=no/\1yes/" configure
#fi &&
#PATH=$PATH:$PERLDIR/../c/bin INTLTOOL_PERL="$PERLDIR/bin/perl.exe"
#PERL="$PERLDIR/bin/perl.exe -I$PERLDIR/lib"
#PYTHON=$PYDIR/python.exe
#PYTHON=$PYDIR/python.exe C_INCLUDE_PATH=$C_INCLUDE_PATH:$PYDIR/include
#PKG_CONFIG_PATH=$MINGWPREFIX/libav/lib/pkgconfig${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}
#./configure --prefix=$INSTALLPREFIX --build=$BUILDPLATFORM --host=$RUNPLATFORM --enable-static --enable-shared LDFLAGS="-Wl,-no-undefined -Wl,--as-needed" &&
./configure --prefix=$INSTALLPREFIX --build=$BUILDPLATFORM --host=$RUNPLATFORM &&
## fix building DLLs
#sed -i.bak -e "s/\(allow_undefined=\)yes/\1no/" libtool &&
## fix detection of shared libraries
#sed -i.bak2 -e "s/\(deplibs_check_method=\"\)[^\"]*/\1file_magic ^x86 archive import|^x86 DLL|PE32+* executable (DLL)|pe-i386|pe-x86-64/; s/'file format pe-i386[^']*'/\"\$deplibs_check_method\"/" libtool &&
#sed -i.bak2 -e "s/\(deplibs_check_method=\"\)[^\"]*/\1none/" libtool &&
#sed -i.bak2 -e "s/\(deplibs_check_method=\"\)[^\"]*/\1pass_all/" libtool &&
#wl-showstatus build &&
#make &&
wl-showstatus build-install &&
make install-strip &&
#( make install-strip || ( make install && strip $INSTALLPREFIX/bin/*.{dll,exe} )) &&
echo OK
ls -l $INSTALLPREFIX/lib/pkgconfig $INSTALLPREFIX/share/pkgconfig
make install-pkgconfigDATA
#grep -wi add_library $(find -name CMakeLists.txt -or -name '*.cmake')
#mkdir -p build_test && cmake.exe -G"MSYS Makefiles" -S. -Bbuild_test -LH && echo OK; rm -rf build_test
#export BUILDDEPENDENCIES=cmake
#PATH=$PATH:$MINGWPREFIX/qt/bin QTDIR=$MINGWPREFIX/qt QMAKESPEC=$MINGWPREFIX/qt/mkspecs/win32-g++
#PATH=$PATH:$MINGWPREFIX/qt6/bin QTDIR=$MINGWPREFIX/qt6 QMAKESPEC=$MINGWPREFIX/qt6/mkspecs/win32-g++
#-DCMAKE_SYSTEM_NAME=Windows
#-DPKG_CONFIG_EXECUTABLE:FILEPATH=$(which pkg-config.exe)
#mkdir -p build_win &&
# wl-showstatus configure &&
# cmake.exe -Wno-dev -G"MSYS Makefiles" -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -S. -Bbuild_win &&
# #wl-showstatus build &&
# #cmake.exe --build build_win &&
# #make -Cbuild_win &&
# wl-showstatus build-install &&
# make -Cbuild_win install/strip &&
# echo OK
#export BUILDDEPENDENCIES=cmake,ninja
#PATH=$PATH:$MINGWPREFIX/qt/bin QTDIR=$MINGWPREFIX/qt QMAKESPEC=$MINGWPREFIX/qt/mkspecs/win32-g++
#-DPKG_CONFIG_EXECUTABLE:FILEPATH=$(which pkg-config.exe)
#mkdir -p build_win &&
# wl-showstatus configure &&
# cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -S. -Bbuild_win &&
# #wl-showstatus build &&
# #cmake.exe --build build_win &&
# #ninja -Cbuild_win &&
# wl-showstatus build-install &&
# #cmake.exe --install build_win --strip &&
# #cmake.exe --build build_win --target "install/strip" &&
# ninja -Cbuild_win install/strip &&
# echo OK
#export BUILDDEPENDENCIES=cmake,ninja
#mkdir -p build_static build_shared &&
# wl-showstatus configure &&
# cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=OFF -S. -Bbuild_static &&
# #-DPKG_CONFIG_EXECUTABLE:FILEPATH=$(which pkg-config.exe)
# wl-showstatus configure &&
# cmake.exe -Wno-dev -GNinja -DCMAKE_INSTALL_PREFIX:PATH=$INSTALLPREFIX -DCMAKE_BUILD_TYPE:STRING=Release -DBUILD_SHARED_LIBS:BOOL=ON -S. -Bbuild_shared &&
# ## fix execution of Python scripts
# #sed -i.bak -e "s?\(COMMAND\|POST_BUILD\)\( *=.*\&\& *\)\([^ ]*\)\(\.py\|glib-mkenums\|glib-genmarshal\|g-ir-scanner\)\( \)?\1\2$(echo $PYDIR/python.exe|sed -e "s?^/\([a-zA-Z]\)/?\1:\\\\\\\\?; s?/?\\\\\\\\?g") \3\4\5?" build_*/build.ninja &&
# ## fix missing link libraries
# #sed -i.bak -e "s/^\s*LINK_LIBRARIES\s*=.*$/& -Wl,--as-needed -lws2_32/" build_shared/build.ninja &&
# #wl-showstatus build &&
# #cmake.exe --build build_static &&
# #ninja -Cbuild_static &&
# #wl-showstatus build &&
# #cmake.exe --build build_shared &&
# #ninja -Cbuild_shared &&
# wl-showstatus build-install &&
# #cmake.exe --install build_static --strip &&
# #cmake.exe --build build_static --target "install/strip" &&
# #cmake.exe --build build_static --target "library/install/strip" &&
# ninja -Cbuild_static install/strip &&
# #ninja -Cbuild_static library/install/strip &&
# wl-showstatus build-install &&
# #cmake.exe --install build_shared --strip &&
# #cmake.exe --build build_shared --target "install/strip" &&
# ninja -Cbuild_shared install/strip &&
# echo OK
#-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
#export BUILDDEPENDENCIES=meson,ninja
#-Dc_args=$CFLAGS -Dcpp_args=$CXXFLAGS -Dc_link_args=$LDFLAGS
## fix missing gio-unix
#sed -i.bak -e "s/gio-unix-/gio-/" meson.build
#mkdir -p build_static build_shared &&
# wl-showstatus configure &&
# PYTHONPATH=${PYTHONPATH:+:$PYTHONPATH}:$MINGWPREFIX/lib $PYDIR/python.exe $(which meson.py) --prefix $INSTALLPREFIX --backend ninja --buildtype release --strip --default-library static -D documentation=true . build_static &&
# wl-showstatus configure &&
# PYTHONPATH=${PYTHONPATH:+:$PYTHONPATH}:$MINGWPREFIX/lib $PYDIR/python.exe $(which meson.py) --prefix $INSTALLPREFIX --backend ninja --buildtype release --strip --default-library shared -D documentation=true . build_shared &&
# ## fix slash/backslash path issue when calling Python from Ninja
# #sed -i.bak -e "s/join_paths/os.path.join/g; /COMMAND =.*python\.exe/ s?\"/\([a-zA-Z]\)/?\"\1:/?; /COMMAND =.*python\.exe/ s?/?\\\\?g" build_*/build.ninja &&
# ## add linker flag
# #sed -i.bak -e "s/^\s*LINK_LIBRARIES\s*=.*-ladvapi32/& -Wl,--as-needed/" build_shared/build.ninja &&
# ## add linker flag
# #sed -i.bak -e "s/^\s*LINK_ARGS\s*=.*\"-ladvapi32\"/& \"-Wl,--as-needed\"/" build_shared/build.ninja &&
# wl-showstatus build-install &&
# #PATH=$PATH:$PYDIR PYTHONPATH=${PYTHONPATH:+:$PYTHONPATH}:$MINGWPREFIX/lib ninja -C build_static install &&
# PATH=$PATH:$PYDIR PYTHONPATH=${PYTHONPATH:+:$PYTHONPATH}:$MINGWPREFIX/lib ninja -C build_static install/strip &&
# wl-showstatus build-install &&
# #PATH=$PATH:$PYDIR PYTHONPATH=${PYTHONPATH:+:$PYTHONPATH}:$MINGWPREFIX/lib ninja -C build_shared install &&
# PATH=$PATH:$PYDIR PYTHONPATH=${PYTHONPATH:+:$PYTHONPATH}:$MINGWPREFIX/lib ninja -C build_shared install/strip &&
# echo OK && find . -name '*.a'
#export BUILDDEPENDENCIES=meson,ninja
#-Dc_args=$CFLAGS -Dcpp_args=$CXXFLAGS -Dc_link_args=$LDFLAGS -Dcpp_link_args=$LDFLAGS
## fix location of Perl
#sed -i.bak -e "s?'perl'?'$(cygpath -w $PERLDIR/bin/perl.exe|sed -e 's/\\/&&&&/g')'?" meson.build
## fix detection of Python
#sed -i.bak -e "s?'python3'?'$(cygpath -w $PYDIR/python.exe|sed -e 's/\\/&&&&/g')'?" meson.build
## fix missing gio-unix
##sed -i.bak -e "s/gio-unix-/gio-/" meson.build
#sed -i.bak -e "s/gio-unix-/gio-windows-/" meson.build
#mkdir -p build_both &&
# wl-showstatus configure &&
# PYTHONPATH=${PYTHONPATH:+:$PYTHONPATH}:$MINGWPREFIX/lib $PYDIR/python.exe $(which meson.py) --prefix $INSTALLPREFIX --backend ninja --buildtype release --strip --default-library both -Ddocumentation=true . build_both &&
# ## fix slash/backslash path issue when calling Python from Ninja
# #sed -i.bak -e "s/join_paths/os.path.join/g; /COMMAND =.*python\.exe/ s?\"/\([a-zA-Z]\)/?\"\1:/?; /COMMAND =.*python\.exe/ s?/?\\\\?g" build_*/build.ninja &&
# ## fix Python path issues in meson_exe
# #sed -i.bak -e "s?$PYDIR?$(echo $PYDIR|sed -e "s?^/\([a-zA-Z]\)/?\1:/?")?" build_both/meson-private/meson_exe_python.exe_*.dat &&
# ## fix execution of Python scripts
# #sed -i.bak -e "s?\(COMMAND\|POST_BUILD\)\( *= *\| *=.*\&\& *\)\(\"\{0,1\}[^ ]*\)\(\.py\|glib-mkenums\|g-ir-scanner\|asciidoc\)\(\"\{0,1\} \)?\1\2$(echo $PYDIR/python.exe|sed -e "s?^/\([a-zA-Z]\)/?\1:\\\\\\\\?; s?/?\\\\\\\\?g") \3\4\5?" build_both/build.ninja &&
# ## fix executing shell scripts
# #sed -i.bak -e "s?^\(\s*COMMAND\s*=\s*\)\(\"[^\"]*\.sh\"\)?\1\"$(cygpath -m $(which sh.exe))\" \2?" build_both/build.ninja &&
# wl-showstatus build-install &&
# #PATH=$PATH:$PYDIR PYTHONPATH=${PYTHONPATH:+:$PYTHONPATH}:$MINGWPREFIX/lib \
# #PATH=$PYDIR:$PATH PYTHONPATH=$MINGWPREFIX/python/Lib/site-packages${PYTHONPATH:+:$PYTHONPATH} \
# #ninja -Cbuild_both install/strip &&
# ninja -Cbuild_both install &&
# echo OK && find . -name '*.a'
#wl-showstatus install &&
# mkdir -p $INSTALLPREFIX/python/Lib/site-packages &&
# PYTHONPATH=$INSTALLPREFIX/python/Lib/site-packages:$MINGWPREFIX/python/Lib/site-packages $PYDIR/python setup.py install --prefix=$(cygpath.exe -w $INSTALLPREFIX/python) &&
# echo OK
#export DEPENDENCIES=qt
#wl-showstatus configure &&
# $MINGWPREFIX/qt/bin/qmake -makefile *.pro -spec $MINGWPREFIX/qt/mkspecs/win32-g++ &&
# wl-showstatus build &&
# mingw32-make &&
# echo OK
#export DEPENDENCIES=qt
#mkdir -p build_static build_shared &&
# wl-showstatus configure &&
# cd build_static &&
# $MINGWPREFIX/qt/bin/qmake -makefile ../*.pro -spec $MINGWPREFIX/qt/mkspecs/win32-g++ CONFIG+=staticlib &&
# cd .. &&
# wl-showstatus configure &&
# cd build_shared &&
# $MINGWPREFIX/qt/bin/qmake -makefile ../*.pro -spec $MINGWPREFIX/qt/mkspecs/win32-g++ &&
# cd .. &&
# wl-showstatus build &&
# mingw32-make -Cbuild_static &&
# wl-showstatus build &&
# mingw32-make -Cbuild_shared &&
# echo OK
#mkdir -p $INSTALLPREFIX/python/Lib/site-packages
##wl-showstatus build &&
## PATH=$PYDIR:$PATH PYTHON=$PYDIR/python.exe PYTHONPATH=$PWD/winfix:$MINGWPREFIX/python/Lib/site-packages:$INSTALLPREFIX/python:$INSTALLPREFIX/python/Lib/site-packages:$PYDIR/Lib/site-packages${PYTHONPATH:+:$PYTHONPATH} PYTHONDONTWRITEBYTECODE=1 $PYDIR/python.exe setup.py build --compiler=mingw32 &&
#wl-showstatus build-install &&
# PATH=$PYDIR:$PATH PYTHON=$PYDIR/python.exe PYTHONPATH=${PYTHONPATH:+$PYTHONPATH:}$MINGWPREFIX/python/Lib/site-packages:$INSTALLPREFIX/python:$PYDIR/Lib/site-packages:$INSTALLPREFIX/python/Lib/site-packages PYTHONDONTWRITEBYTECODE=1 $PYDIR/python.exe setup.py install --prefix=$(cygpath -w $INSTALLPREFIX/python) &&
# ## delete any __pycache__ folder(s)
# #find $INSTALLPREFIX -name __pycache__ -exec echo rm -rf {} \; | sh &&
# echo OK
#wl-showstatus build-install &&
# PYTHONPATH=$MINGWPREFIX/python/Lib/site-packages${PYTHONPATH:+:$PYTHONPATH} PYTHONDONTWRITEBYTECODE=1 $PYDIR/python.exe $MINGWPREFIX/python/Scripts/pip-script.py install . --disable-pip-version-check --no-compile --prefix=$(cygpath -w $INSTALLPREFIX/python) &&
# ## delete any __pycache__ folder(s)
# #find $INSTALLPREFIX -name __pycache__ -exec echo rm -rf {} \; | sh &&
# echo OK
#wl-showstatus build-install &&
# $PYDIR/python.exe -m pip install --target $INSTALLPREFIX/python/Lib/site-packages --disable-pip-version-check --no-compile . &&
# echo OK
# wl-makepackage -c -d && wl-install -d $BASENAME-$VERSION && cd .. && wl-showstatus cleanup && rm -rf $BASENAME-$VERSION