mirror of
https://github.com/levogevo/ffmpeg-builder.git
synced 2026-01-16 11:26:17 +00:00
Compare commits
3 Commits
7cd3f03417
...
81a2cde5c7
| Author | SHA1 | Date | |
|---|---|---|---|
| 81a2cde5c7 | |||
| 8a5ed69f86 | |||
| 014448ac55 |
20
lib/build.sh
20
lib/build.sh
@@ -32,7 +32,7 @@ set_compile_opts() {
|
|||||||
testfile="${PREFIX}/ffmpeg-build-testfile"
|
testfile="${PREFIX}/ffmpeg-build-testfile"
|
||||||
else
|
else
|
||||||
# try creating in parent path
|
# try creating in parent path
|
||||||
testfile="$(bash_basename "${PREFIX}")/ffmpeg-build-testfile"
|
testfile="$(bash_dirname "${PREFIX}")/ffmpeg-build-testfile"
|
||||||
fi
|
fi
|
||||||
unset SUDO_MODIFY
|
unset SUDO_MODIFY
|
||||||
if touch "${testfile}" 2>/dev/null; then
|
if touch "${testfile}" 2>/dev/null; then
|
||||||
@@ -442,10 +442,6 @@ FB_FUNC_NAMES+=('build')
|
|||||||
# shellcheck disable=SC2034
|
# shellcheck disable=SC2034
|
||||||
FB_FUNC_DESCS['build']='build ffmpeg with desired configuration'
|
FB_FUNC_DESCS['build']='build ffmpeg with desired configuration'
|
||||||
build() {
|
build() {
|
||||||
test -d "${DL_DIR}" || { mkdir -p "${DL_DIR}" || return 1; }
|
|
||||||
test -d "${CCACHE_DIR}" || { mkdir -p "${CCACHE_DIR}" || return 1; }
|
|
||||||
test -d "${BUILD_DIR}" || { mkdir -p "${BUILD_DIR}" || return 1; }
|
|
||||||
|
|
||||||
set_compile_opts || return 1
|
set_compile_opts || return 1
|
||||||
|
|
||||||
for build in ${ENABLE}; do
|
for build in ${ENABLE}; do
|
||||||
@@ -517,9 +513,19 @@ del_pkgconfig_gcc_s() {
|
|||||||
### RUST ###
|
### RUST ###
|
||||||
cargo_cbuild() {
|
cargo_cbuild() {
|
||||||
cargo cinstall \
|
cargo cinstall \
|
||||||
--destdir ./local-install \
|
--destdir "${PWD}/local-install" \
|
||||||
"${CARGO_CINSTALL_FLAGS[@]}"
|
"${CARGO_CINSTALL_FLAGS[@]}"
|
||||||
${SUDO_MODIFY} cp -r ./local-install "${PREFIX}/"
|
# cargo cinstall destdir prepends with entire prefix
|
||||||
|
# this breaks windows with msys path augmentation
|
||||||
|
# so recurse into directories until sysroot is there
|
||||||
|
cd ./local-install || return 1
|
||||||
|
local sysrootDir="$(bash_basename "${PREFIX}")"
|
||||||
|
while ! test -d "${sysrootDir}"; do
|
||||||
|
cd ./* || return 1
|
||||||
|
done
|
||||||
|
# final cd
|
||||||
|
cd "${sysrootDir}" || return 1
|
||||||
|
${SUDO_MODIFY} cp -r ./* "${PREFIX}/"
|
||||||
}
|
}
|
||||||
|
|
||||||
build_hdr10plus_tool() {
|
build_hdr10plus_tool() {
|
||||||
|
|||||||
@@ -106,7 +106,6 @@ docker_build_image() {
|
|||||||
local image="$1"
|
local image="$1"
|
||||||
validate_selected_image "${image}" || return 1
|
validate_selected_image "${image}" || return 1
|
||||||
check_docker || return 1
|
check_docker || return 1
|
||||||
test -d "${DOCKER_DIR}" || mkdir -p "${DOCKER_DIR}"
|
|
||||||
PLATFORM="${PLATFORM:-$(echo_platform)}"
|
PLATFORM="${PLATFORM:-$(echo_platform)}"
|
||||||
|
|
||||||
echo_info "sourcing package manager for ${image}"
|
echo_info "sourcing package manager for ${image}"
|
||||||
|
|||||||
@@ -293,7 +293,6 @@ set_encode_opts() {
|
|||||||
# shellcheck disable=SC2155
|
# shellcheck disable=SC2155
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
gen_encode_script() {
|
gen_encode_script() {
|
||||||
test -d "${TMP_DIR}" || mkdir -p "${TMP_DIR}"
|
|
||||||
local genScript="${TMP_DIR}/$(bash_basename "${OUTPUT}").sh"
|
local genScript="${TMP_DIR}/$(bash_basename "${OUTPUT}").sh"
|
||||||
|
|
||||||
# single string params
|
# single string params
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ brew:brew update:brew upgrade:brew install:brew list --formula ${pkg}
|
|||||||
apt-get:${SUDO}apt-get update:${SUDO}apt-get upgrade -y:${SUDO}apt-get install -y:dpkg -l ${pkg}
|
apt-get:${SUDO}apt-get update:${SUDO}apt-get upgrade -y:${SUDO}apt-get install -y:dpkg -l ${pkg}
|
||||||
pacman:${SUDO}pacman -Syy:${SUDO}pacman -Syu --noconfirm:${SUDO}pacman -S --noconfirm --needed:pacman -Qi ${pkg}
|
pacman:${SUDO}pacman -Syy:${SUDO}pacman -Syu --noconfirm:${SUDO}pacman -S --noconfirm --needed:pacman -Qi ${pkg}
|
||||||
dnf:${SUDO}dnf check-update || true:${SUDO}dnf upgrade --refresh -y:${SUDO}dnf install -y:dnf list -q --installed ${pkg}
|
dnf:${SUDO}dnf check-update || true:${SUDO}dnf upgrade --refresh -y:${SUDO}dnf install -y:dnf list -q --installed ${pkg}
|
||||||
|
winget:winget update:true:${SUDO}winget install:winget list ${pkg}
|
||||||
'
|
'
|
||||||
local supported_pkg_mgr=()
|
local supported_pkg_mgr=()
|
||||||
unset pkg_mgr pkg_mgr_update pkg_mgr_upgrade pkg_install pkg_check
|
unset pkg_mgr pkg_mgr_update pkg_mgr_upgrade pkg_install pkg_check
|
||||||
|
|||||||
19
lib/utils.sh
19
lib/utils.sh
@@ -45,7 +45,6 @@ echo_if_fail() {
|
|||||||
|
|
||||||
# set trace to the cmdEvalTrace and open file descriptor
|
# set trace to the cmdEvalTrace and open file descriptor
|
||||||
local cmdEvalTrace="${TMP_DIR}/${logName}cmdEvalTrace"
|
local cmdEvalTrace="${TMP_DIR}/${logName}cmdEvalTrace"
|
||||||
test -d "${TMP_DIR}" || mkdir -p "${TMP_DIR}"
|
|
||||||
exec 5>"${cmdEvalTrace}"
|
exec 5>"${cmdEvalTrace}"
|
||||||
export BASH_XTRACEFD=5
|
export BASH_XTRACEFD=5
|
||||||
|
|
||||||
@@ -220,25 +219,35 @@ is_darwin() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
print_os() {
|
print_os() {
|
||||||
|
# cached response
|
||||||
if [[ -n ${FB_OS} ]]; then
|
if [[ -n ${FB_OS} ]]; then
|
||||||
echo "${FB_OS}"
|
echo "${FB_OS}"
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
FB_OS=''
|
|
||||||
|
unset FB_OS
|
||||||
if [[ -f /etc/os-release ]]; then
|
if [[ -f /etc/os-release ]]; then
|
||||||
source /etc/os-release
|
source /etc/os-release
|
||||||
FB_OS="${ID}"
|
FB_OS="${ID}"
|
||||||
if [[ ${VERSION_ID} != '' ]]; then
|
if [[ ${VERSION_ID} != '' ]]; then
|
||||||
FB_OS+="-${VERSION_ID}"
|
FB_OS+="-${VERSION_ID}"
|
||||||
fi
|
fi
|
||||||
if [[ ${FB_OS} == 'arch'* ]]; then
|
if line_starts_with "${FB_OS}" 'arch'; then
|
||||||
FB_OS=archlinux
|
FB_OS='archlinux'
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
FB_OS="$(uname -o)"
|
FB_OS="$(uname -o)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "${FB_OS,,}"
|
# lowercase
|
||||||
|
FB_OS="${FB_OS,,}"
|
||||||
|
|
||||||
|
# special treatment for windows
|
||||||
|
if line_contains "${FB_OS}" 'windows' || line_contains "${FB_OS}" 'msys'; then
|
||||||
|
FB_OS='windows'
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${FB_OS}"
|
||||||
}
|
}
|
||||||
|
|
||||||
is_positive_integer() {
|
is_positive_integer() {
|
||||||
|
|||||||
17
main.sh
17
main.sh
@@ -15,6 +15,19 @@ DOCKER_DIR="${IGN_DIR}/docker"
|
|||||||
PATCHES_DIR="${REPO_DIR}/patches"
|
PATCHES_DIR="${REPO_DIR}/patches"
|
||||||
export REPO_DIR IGN_DIR TMP_DIR DL_DIR BUILD_DIR CCACHE_DIR DOCKER_DIR PATCHES_DIR
|
export REPO_DIR IGN_DIR TMP_DIR DL_DIR BUILD_DIR CCACHE_DIR DOCKER_DIR PATCHES_DIR
|
||||||
|
|
||||||
|
# make paths if needed
|
||||||
|
IGN_DIRS=(
|
||||||
|
"${TMP_DIR}"
|
||||||
|
"${DL_DIR}"
|
||||||
|
"${BUILD_DIR}"
|
||||||
|
"${CCACHE_DIR}"
|
||||||
|
"${DOCKER_DIR}"
|
||||||
|
)
|
||||||
|
for dir in "${IGN_DIRS[@]}"; do
|
||||||
|
test -d "${dir}" || mkdir -p "${dir}"
|
||||||
|
done
|
||||||
|
unset IGN_DIRS
|
||||||
|
|
||||||
# function names, descriptions, completions
|
# function names, descriptions, completions
|
||||||
unset FB_FUNC_NAMES FB_FUNC_DESCS FB_FUNC_COMPLETION
|
unset FB_FUNC_NAMES FB_FUNC_DESCS FB_FUNC_COMPLETION
|
||||||
FB_FUNC_NAMES=()
|
FB_FUNC_NAMES=()
|
||||||
@@ -38,7 +51,7 @@ src_scripts() {
|
|||||||
export FB_RUNNING_AS_SCRIPT=1
|
export FB_RUNNING_AS_SCRIPT=1
|
||||||
thisFile="$(readlink -f "$0")"
|
thisFile="$(readlink -f "$0")"
|
||||||
export REPO_DIR="$(cd "$(dirname "${thisFile}")/.." && echo "$PWD")"
|
export REPO_DIR="$(cd "$(dirname "${thisFile}")/.." && echo "$PWD")"
|
||||||
source "${REPO_DIR}/main.sh" || return 1
|
source "${REPO_DIR}/main.sh" || exit 1
|
||||||
scr_name="$(bash_basename $0)"
|
scr_name="$(bash_basename $0)"
|
||||||
cmd="${scr_name//.sh/}"
|
cmd="${scr_name//.sh/}"
|
||||||
if [[ $DEBUG == 1 ]]; then set -x; fi
|
if [[ $DEBUG == 1 ]]; then set -x; fi
|
||||||
@@ -71,8 +84,6 @@ set_completions() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
# shellcheck disable=SC1091
|
|
||||||
test -f "${HOME}/.bashrc" && source "${HOME}/.bashrc"
|
|
||||||
src_scripts || return 1
|
src_scripts || return 1
|
||||||
determine_pkg_mgr || return 1
|
determine_pkg_mgr || return 1
|
||||||
check_compile_opts_override || return 1
|
check_compile_opts_override || return 1
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
export FB_RUNNING_AS_SCRIPT=1
|
export FB_RUNNING_AS_SCRIPT=1
|
||||||
thisFile="$(readlink -f "$0")"
|
thisFile="$(readlink -f "$0")"
|
||||||
export REPO_DIR="$(cd "$(dirname "${thisFile}")/.." && echo "$PWD")"
|
export REPO_DIR="$(cd "$(dirname "${thisFile}")/.." && echo "$PWD")"
|
||||||
source "${REPO_DIR}/main.sh" || return 1
|
source "${REPO_DIR}/main.sh" || exit 1
|
||||||
scr_name="$(bash_basename $0)"
|
scr_name="$(bash_basename $0)"
|
||||||
cmd="${scr_name//.sh/}"
|
cmd="${scr_name//.sh/}"
|
||||||
if [[ $DEBUG == 1 ]]; then set -x; fi
|
if [[ $DEBUG == 1 ]]; then set -x; fi
|
||||||
|
|||||||
Reference in New Issue
Block a user