c993b6059a
Also updates main CMakeLists.txt and CMakeLists.txt for unit tests, also adds additional build directories to .gitignore file
99 lines
3.4 KiB
Bash
Executable File
99 lines
3.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
##############################################################################
|
|
# FreeBSD full build script
|
|
##############################################################################
|
|
#
|
|
# This script contains all steps necessary to:
|
|
#
|
|
# * Build OBS with all default plugins and dependencies
|
|
# * Package a FreeBSD package
|
|
#
|
|
# Parameters:
|
|
# -h, --help : Print usage help
|
|
# -q, --quiet : Suppress most build process output
|
|
# -v, --verbose : Enable more verbose build process output
|
|
# -d, --skip-dependency-checks : Skip dependency checks (default: off)
|
|
# -p, --portable : Create portable build (default: off)
|
|
# -pkg, --package : Create distributable archive
|
|
# (default: off)
|
|
# --build-dir : Specify alternative build directory
|
|
# (default: build)"
|
|
#
|
|
##############################################################################
|
|
|
|
# Halt on errors
|
|
set -eE
|
|
|
|
## SET UP ENVIRONMENT ##
|
|
_RUN_OBS_BUILD_SCRIPT=TRUE
|
|
PRODUCT_NAME="OBS-Studio"
|
|
|
|
CHECKOUT_DIR="$(git rev-parse --show-toplevel)"
|
|
DEPS_BUILD_DIR="${CHECKOUT_DIR}/../obs-build-dependencies"
|
|
source "${CHECKOUT_DIR}/CI/include/build_support.sh"
|
|
source "${CHECKOUT_DIR}/CI/include/build_support_freebsd.sh"
|
|
|
|
## DEPENDENCY INSTALLATION
|
|
source "${CHECKOUT_DIR}/CI/freebsd/01_install_dependencies.sh"
|
|
|
|
## BUILD OBS ##
|
|
source "${CHECKOUT_DIR}/CI/freebsd/02_build_obs.sh"
|
|
|
|
## PACKAGE OBS AND NOTARIZE ##
|
|
source "${CHECKOUT_DIR}/CI/freebsd/03_package_obs.sh"
|
|
|
|
## MAIN SCRIPT FUNCTIONS ##
|
|
print_usage() {
|
|
echo "build-linux.sh - Build script for OBS-Studio\n"
|
|
echo -e "Usage: ${0}\n" \
|
|
"-h, --help : Print this help\n" \
|
|
"-q, --quiet : Suppress most build process output\n" \
|
|
"-v, --verbose : Enable more verbose build process output\n" \
|
|
"-d, --skip-dependency-checks : Skip dependency checks (default: off)\n" \
|
|
"-p, --portable : Create portable build (default: off)\n" \
|
|
"-pkg, --package : Create distributable disk image (default: off)\n" \
|
|
"--build-dir : Specify alternative build directory (default: build)\n"
|
|
}
|
|
|
|
obs-build-main() {
|
|
while true; do
|
|
case "${1}" in
|
|
-h | --help ) print_usage; exit 0 ;;
|
|
-q | --quiet ) export QUIET=TRUE; shift ;;
|
|
-v | --verbose ) export VERBOSE=TRUE; shift ;;
|
|
-d | --skip-dependency-checks ) SKIP_DEP_CHECKS=TRUE; shift ;;
|
|
-p | --portable ) PORTABLE=TRUE; shift ;;
|
|
-pkg | --package ) PACKAGE=TRUE; shift ;;
|
|
--disable-pipewire ) DISABLE_PIPEWIRE=TRUE; shift ;;
|
|
--build-dir ) BUILD_DIR="${2}"; shift 2 ;;
|
|
-- ) shift; break ;;
|
|
* ) break ;;
|
|
esac
|
|
done
|
|
|
|
ensure_dir "${CHECKOUT_DIR}"
|
|
step "Fetching OBS tags..."
|
|
git fetch origin --tags
|
|
|
|
GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
GIT_HASH=$(git rev-parse --short HEAD)
|
|
GIT_TAG=$(git describe --tags --abbrev=0)
|
|
|
|
FILE_NAME="obs-studio-${GIT_TAG}-${GIT_HASH}-FreeBSD"
|
|
|
|
if [ -z "${SKIP_DEP_CHECKS}" ]; then
|
|
install_dependencies
|
|
fi
|
|
|
|
build_obs
|
|
|
|
if [ "${PACKAGE}" ]; then
|
|
package_obs
|
|
fi
|
|
|
|
cleanup
|
|
}
|
|
|
|
obs-build-main $*
|