Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Yushin Cho
aom-rav1e
Commits
4416b448
Commit
4416b448
authored
Jun 13, 2014
by
Tom Finegan
Committed by
Gerrit Code Review
Jun 13, 2014
Browse files
Merge "Add VPX.framework built script."
parents
123cd3a5
c41d3584
Changes
1
Hide whitespace changes
Inline
Side-by-side
iosbuild.sh
0 → 100755
View file @
4416b448
#!/bin/sh
##
## Copyright (c) 2014 The WebM project authors. All Rights Reserved.
##
## Use of this source code is governed by a BSD-style license
## that can be found in the LICENSE file in the root of the source
## tree. An additional intellectual property rights grant can be found
## in the file PATENTS. All contributing project authors may
## be found in the AUTHORS file in the root of the source tree.
##
##
## This script generates 'VPX.framework'. An iOS app can encode and decode VPx
## video by including 'VPX.framework'.
##
## Run iosbuild.sh to create 'VPX.framework' in the current directory.
##
set
-e
devnull
=
'> /dev/null 2>&1'
BUILD_ROOT
=
"_iosbuild"
DIST_DIR
=
"_dist"
FRAMEWORK_DIR
=
"VPX.framework"
HEADER_DIR
=
"
${
FRAMEWORK_DIR
}
/Headers/vpx"
MAKE_JOBS
=
1
LIBVPX_SOURCE_DIR
=
$(
dirname
"
$0
"
)
LIPO
=
$(
xcrun
-sdk
iphoneos
${
SDK
}
-find
lipo
)
ORIG_PWD
=
"
$(
pwd
)
"
TARGETS
=
"armv6-darwin-gcc
armv7-darwin-gcc
armv7s-darwin-gcc
x86-iphonesimulator-gcc
x86_64-iphonesimulator-gcc"
# This variable is set to the last dist dir used with make dist, and reused when
# populating the framework directory to get the path to the most recent
# includes.
TARGET_DIST_DIR
=
""
# List of library files passed to lipo.
LIBS
=
""
build_target
()
{
local
target
=
"
$1
"
local
old_pwd
=
"
$(
pwd
)
"
vlog
"***Building target:
${
target
}
***"
mkdir
"
${
target
}
"
cd
"
${
target
}
"
eval
"../../
${
LIBVPX_SOURCE_DIR
}
/configure"
--target
=
"
${
target
}
"
\
--disable-docs
${
devnull
}
export
DIST_DIR
eval
make
-j
${
MAKE_JOBS
}
dist
${
devnull
}
cd
"
${
old_pwd
}
"
vlog
"***Done building target:
${
target
}
***"
}
build_targets
()
{
local
targets
=
"
$1
"
local
target
# Clean up from previous build(s).
rm
-rf
"
${
BUILD_ROOT
}
"
"
${
FRAMEWORK_DIR
}
"
# Create output dirs.
mkdir
-p
"
${
BUILD_ROOT
}
"
mkdir
-p
"
${
HEADER_DIR
}
"
cd
"
${
BUILD_ROOT
}
"
for
target
in
${
targets
}
;
do
build_target
"
${
target
}
"
TARGET_DIST_DIR
=
"
${
BUILD_ROOT
}
/
${
target
}
/
${
DIST_DIR
}
"
LIBS
=
"
${
LIBS
}
${
TARGET_DIST_DIR
}
/lib/libvpx.a"
done
cd
"
${
ORIG_PWD
}
"
}
cleanup
()
{
cd
"
${
ORIG_PWD
}
"
if
[
"
${
PRESERVE_BUILD_OUTPUT
}
"
!=
"yes"
]
;
then
rm
-rf
"
${
BUILD_ROOT
}
"
fi
}
iosbuild_usage
()
{
cat
<<
EOF
Usage:
${
0
##*/
}
[arguments]
--help: Display this message and exit.
--jobs: Number of make jobs.
--preserve-build-output: Do not delete the build directory.
--show-build-output: Show output from each library build.
--verbose: Output information about the environment and each stage of the
build.
EOF
}
vlog
()
{
if
[
"
${
VERBOSE
}
"
=
"yes"
]
;
then
echo
"
$@
"
fi
}
trap
cleanup EXIT
# Parse the command line.
while
[
-n
"
$1
"
]
;
do
case
"
$1
"
in
--help
)
iosbuild_usage
exit
;;
--jobs
)
MAKE_JOBS
=
"
$2
"
shift
;;
--preserve-build-output
)
PRESERVE_BUILD_OUTPUT
=
yes
;;
--show-build-output
)
devnull
=
;;
--verbose
)
VERBOSE
=
yes
;;
*
)
iosbuild_usage
exit
1
;;
esac
shift
done
if
[
"
${
VERBOSE
}
"
=
"yes"
]
;
then
cat
<<
EOF
BUILD_ROOT=
${
BUILD_ROOT
}
DIST_DIR=
${
DIST_DIR
}
FRAMEWORK_DIR=
${
FRAMEWORK_DIR
}
HEADER_DIR=
${
HEADER_DIR
}
MAKE_JOBS=
${
MAKE_JOBS
}
PRESERVE_BUILD_OUTPUT=
${
PRESERVE_BUILD_OUTPUT
}
LIBVPX_SOURCE_DIR=
${
LIBVPX_SOURCE_DIR
}
LIPO=
${
LIPO
}
ORIG_PWD=
${
ORIG_PWD
}
TARGETS="
${
TARGETS
}
"
EOF
fi
build_targets
"
${
TARGETS
}
"
# Includes are identical for all platforms, and according to dist target
# behavior vpx_config.h and vpx_version.h aren't actually necessary for user
# apps built with libvpx. So, just copy the includes from the last target built.
# TODO(tomfinegan): The above is a lame excuse. Build common config/version
# includes that use the preprocessor to include the correct file.
cp
-p
"
${
TARGET_DIST_DIR
}
"
/include/vpx/
*
"
${
HEADER_DIR
}
"
${
LIPO
}
-create
${
LIBS
}
-output
${
FRAMEWORK_DIR
}
/VPX
vlog
"Created fat library
${
FRAMEWORK_DIR
}
/VPX containing:"
for
lib
in
${
LIBS
}
;
do
vlog
"
$(
echo
${
lib
}
|
awk
-F
/
'{print $2, $NF}'
)
"
done
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment