Skip to content

Commit fcf7931

Browse files
committed
test
1 parent 796037c commit fcf7931

File tree

5 files changed

+298
-1
lines changed

5 files changed

+298
-1
lines changed

build-libass.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
set -e -x
88
echo SET test
99
SRC_DIR=$(pwd)
10+
1011
export GNULIB_SRCDIR="$SRC_DIR/gnutls/gnulib"
1112
export PATH=$PATH:$GNULIB_SRCDIR
1213

env.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,10 @@ export BUILD_ARCH=${1:-$VSCMD_ARG_TGT_ARCH}
1010
export BUILD_TYPE=${2:-shared}
1111
export BUILD_LICENSE=${3:-gpl}
1212

13+
export TOOLCHAIN_SRCDIR="$(pwd)/toolchain"
14+
export AR=win-ar
15+
export RANLIB=win-ranlib
16+
export PATH=$TOOLCHAIN_SRCDIR:$PATH
17+
1318
export CC=cl
1419
export CXX=cl
15-
export AR=lib

toolchain/ar-lib

Lines changed: 279 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,279 @@
1+
#! /bin/sh
2+
# Wrapper for Microsoft lib.exe
3+
4+
me=ar-lib
5+
scriptversion=2024-06-19.01; # UTC
6+
7+
# Copyright (C) 2010-2024 Free Software Foundation, Inc.
8+
# Written by Peter Rosin <[email protected]>.
9+
#
10+
# This program is free software; you can redistribute it and/or modify
11+
# it under the terms of the GNU General Public License as published by
12+
# the Free Software Foundation; either version 2, or (at your option)
13+
# any later version.
14+
#
15+
# This program is distributed in the hope that it will be useful,
16+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
17+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18+
# GNU General Public License for more details.
19+
#
20+
# You should have received a copy of the GNU General Public License
21+
# along with this program. If not, see <https://www.gnu.org/licenses/>.
22+
23+
# As a special exception to the GNU General Public License, if you
24+
# distribute this file as part of a program that contains a
25+
# configuration script generated by Autoconf, you may include it under
26+
# the same distribution terms that you use for the rest of that program.
27+
28+
# This file is maintained in Automake, please report
29+
# bugs to <[email protected]> or send patches to
30+
31+
32+
33+
# func_error message
34+
func_error ()
35+
{
36+
echo "$me: $1" 1>&2
37+
exit 1
38+
}
39+
40+
file_conv=
41+
42+
# func_file_conv build_file
43+
# Convert a $build file to $host form and store it in $file
44+
# Currently only supports Windows hosts.
45+
func_file_conv ()
46+
{
47+
file=$1
48+
case $file in
49+
/ | /[!/]*) # absolute file, and not a UNC file
50+
if test -z "$file_conv"; then
51+
# lazily determine how to convert abs files
52+
case `uname -s` in
53+
MINGW*)
54+
file_conv=mingw
55+
;;
56+
CYGWIN* | MSYS*)
57+
file_conv=cygwin
58+
;;
59+
*)
60+
file_conv=wine
61+
;;
62+
esac
63+
fi
64+
case $file_conv in
65+
mingw)
66+
file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
67+
;;
68+
cygwin | msys)
69+
file=`cygpath -m "$file" || echo "$file"`
70+
;;
71+
wine)
72+
file=`winepath -w "$file" || echo "$file"`
73+
;;
74+
esac
75+
;;
76+
esac
77+
}
78+
79+
# func_at_file at_file operation archive
80+
# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE
81+
# for each of them.
82+
# When interpreting the content of the @FILE, do NOT use func_file_conv,
83+
# since the user would need to supply preconverted file names to
84+
# binutils ar, at least for MinGW.
85+
func_at_file ()
86+
{
87+
operation=$2
88+
archive=$3
89+
at_file_contents=`cat "$1"`
90+
eval set x "$at_file_contents"
91+
shift
92+
93+
for member
94+
do
95+
$AR -NOLOGO $operation:"$member" "$archive" || exit $?
96+
done
97+
}
98+
99+
case $1 in
100+
'')
101+
func_error "no command. Try '$0 --help' for more information."
102+
;;
103+
-h | --h*)
104+
cat <<EOF
105+
Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...]
106+
107+
Members may be specified in a file named with @FILE.
108+
109+
Report bugs to <[email protected]>.
110+
GNU Automake home page: <https://www.gnu.org/software/automake/>.
111+
General help using GNU software: <https://www.gnu.org/gethelp/>.
112+
EOF
113+
exit $?
114+
;;
115+
-v | --v*)
116+
echo "$me (GNU Automake) $scriptversion"
117+
exit $?
118+
;;
119+
esac
120+
121+
if test $# -lt 3; then
122+
func_error "you must specify a program, an action and an archive"
123+
fi
124+
125+
AR=$1
126+
shift
127+
while :
128+
do
129+
if test $# -lt 2; then
130+
func_error "you must specify a program, an action and an archive"
131+
fi
132+
case $1 in
133+
-lib | -LIB \
134+
| -ltcg | -LTCG \
135+
| -machine* | -MACHINE* \
136+
| -subsystem* | -SUBSYSTEM* \
137+
| -verbose | -VERBOSE \
138+
| -wx* | -WX* )
139+
AR="$AR $1"
140+
shift
141+
;;
142+
-nologo | -NOLOGO)
143+
# We always invoke AR with -nologo, so don't need to add it again.
144+
shift
145+
;;
146+
*)
147+
action=$1
148+
shift
149+
break
150+
;;
151+
esac
152+
done
153+
orig_archive=$1
154+
shift
155+
func_file_conv "$orig_archive"
156+
archive=$file
157+
158+
# strip leading dash in $action
159+
action=${action#-}
160+
161+
delete=
162+
extract=
163+
list=
164+
quick=
165+
replace=
166+
index=
167+
create=
168+
169+
while test -n "$action"
170+
do
171+
case $action in
172+
d*) delete=yes ;;
173+
x*) extract=yes ;;
174+
t*) list=yes ;;
175+
q*) quick=yes ;;
176+
r*) replace=yes ;;
177+
s*) index=yes ;;
178+
S*) ;; # the index is always updated implicitly
179+
c*) create=yes ;;
180+
u*) ;; # TODO: don't ignore the update modifier
181+
v*) ;; # TODO: don't ignore the verbose modifier
182+
*)
183+
func_error "unknown action specified"
184+
;;
185+
esac
186+
action=${action#?}
187+
done
188+
189+
case $delete$extract$list$quick$replace,$index in
190+
yes,* | ,yes)
191+
;;
192+
yesyes*)
193+
func_error "more than one action specified"
194+
;;
195+
*)
196+
func_error "no action specified"
197+
;;
198+
esac
199+
200+
if test -n "$delete"; then
201+
if test ! -f "$orig_archive"; then
202+
func_error "archive not found"
203+
fi
204+
for member
205+
do
206+
case $1 in
207+
@*)
208+
func_at_file "${1#@}" -REMOVE "$archive"
209+
;;
210+
*)
211+
func_file_conv "$1"
212+
$AR -NOLOGO -REMOVE:"$file" "$archive" || exit $?
213+
;;
214+
esac
215+
done
216+
217+
elif test -n "$extract"; then
218+
if test ! -f "$orig_archive"; then
219+
func_error "archive not found"
220+
fi
221+
if test $# -gt 0; then
222+
for member
223+
do
224+
case $1 in
225+
@*)
226+
func_at_file "${1#@}" -EXTRACT "$archive"
227+
;;
228+
*)
229+
func_file_conv "$1"
230+
$AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $?
231+
;;
232+
esac
233+
done
234+
else
235+
$AR -NOLOGO -LIST "$archive" | tr -d '\r' | sed -e 's/\\/\\\\/g' \
236+
| while read member
237+
do
238+
$AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $?
239+
done
240+
fi
241+
242+
elif test -n "$quick$replace"; then
243+
if test ! -f "$orig_archive"; then
244+
if test -z "$create"; then
245+
echo "$me: creating $orig_archive"
246+
fi
247+
orig_archive=
248+
else
249+
orig_archive=$archive
250+
fi
251+
252+
for member
253+
do
254+
case $1 in
255+
@*)
256+
func_file_conv "${1#@}"
257+
set x "$@" "@$file"
258+
;;
259+
*)
260+
func_file_conv "$1"
261+
set x "$@" "$file"
262+
;;
263+
esac
264+
shift
265+
shift
266+
done
267+
268+
if test -n "$orig_archive"; then
269+
$AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $?
270+
else
271+
$AR -NOLOGO -OUT:"$archive" "$@" || exit $?
272+
fi
273+
274+
elif test -n "$list"; then
275+
if test ! -f "$orig_archive"; then
276+
func_error "archive not found"
277+
fi
278+
$AR -NOLOGO -LIST "$archive" || exit $?
279+
fi

toolchain/win-ar

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
#!/bin/bash
2+
# Copyright (c) 2024 System233
3+
4+
# This software is released under the MIT License.
5+
# https://opensource.org/licenses/MIT
6+
set -e
7+
ar-lib lib $@

toolchain/win-ranlib

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
#!/bin/bash
2+
# Copyright (c) 2024 System233
3+
4+
# This software is released under the MIT License.
5+
# https://opensource.org/licenses/MIT
6+

0 commit comments

Comments
 (0)