Merge branch 'master' of https://github.com/olive-editor/olive into render-singleton
@@ -1,117 +0,0 @@
|
||||
REM Get git hash in variable [this seems to be the most efficient way]
|
||||
git rev-parse --short=8 HEAD > hash.txt
|
||||
git rev-parse HEAD > longhash.txt
|
||||
set /p GITHASH= < hash.txt
|
||||
set /p GITLONGHASH= < longhash.txt
|
||||
set /p TRAVIS_COMMIT= < longhash.txt
|
||||
|
||||
REM Set up Visual Studio x64 environment
|
||||
call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat"
|
||||
|
||||
REM Install 64-bit packages
|
||||
set VCPKG_DEFAULT_TRIPLET=x64-windows
|
||||
|
||||
REM Hack to only install release builds for time
|
||||
echo set(VCPKG_BUILD_TYPE release) >> C:\Tools\vcpkg\triplets\x64-windows.cmake
|
||||
|
||||
REM Install Open*IO libraries
|
||||
vcpkg install opencolorio
|
||||
vcpkg install openimageio
|
||||
|
||||
REM Integrate libraries
|
||||
cd c:\tools\vcpkg
|
||||
vcpkg integrate install
|
||||
cd %APPVEYOR_BUILD_FOLDER%
|
||||
|
||||
REM Acquire FFmpeg
|
||||
set FFMPEG_VER=ffmpeg-4.2.3-win64
|
||||
curl https://ffmpeg.zeranoe.com/builds/win64/dev/%FFMPEG_VER%-dev.zip > %FFMPEG_VER%-dev.zip
|
||||
curl https://ffmpeg.zeranoe.com/builds/win64/shared/%FFMPEG_VER%-shared.zip > %FFMPEG_VER%-shared.zip
|
||||
7z x %FFMPEG_VER%-dev.zip
|
||||
7z x %FFMPEG_VER%-shared.zip
|
||||
|
||||
REM Acquire Google Crashpad
|
||||
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
|
||||
set PATH=%PATH%;%APPVEYOR_BUILD_FOLDER%\depot_tools
|
||||
|
||||
REM Run `fetch` through cmd /c since fetch is a batch file that seems to call exit
|
||||
cmd /c fetch crashpad
|
||||
cd crashpad
|
||||
cmd /c gn gen out/Default
|
||||
|
||||
REM Patch to build a dynamic release instead of a static release
|
||||
ren out\Default\toolchain.ninja toolchain.ninja.old
|
||||
sed "s/${cflags_c}/${cflags_c} \/MD/g" out\Default\toolchain.ninja.old > out\Default\toolchain.ninja
|
||||
|
||||
REM Build Crashpad
|
||||
ninja.exe -C out/Default
|
||||
cd ..
|
||||
|
||||
REM Add Qt, FFmpeg, and Crashpad to path
|
||||
set PATH=%PATH%;C:\Qt\5.13.2\msvc2017_64\bin;%APPVEYOR_BUILD_FOLDER%\%FFMPEG_VER%-dev;%APPVEYOR_BUILD_FOLDER%\crashpad;%APPVEYOR_BUILD_FOLDER%\crashpad\out\Default
|
||||
|
||||
REM Run cmake
|
||||
cmake -G "Ninja" . -DCMAKE_TOOLCHAIN_FILE=c:/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
|
||||
REM Build with Ninja
|
||||
ninja.exe || exit /B 1
|
||||
|
||||
REM If this is a pull request, no further packaging/deploying needs to be done
|
||||
if NOT "%APPVEYOR_PULL_REQUEST_NUMBER%" == "" goto end
|
||||
|
||||
REM Create Crashpad symbol file and upload it
|
||||
C:\msys64\usr\bin\wget.exe https://github.com/google/breakpad/blob/master/src/tools/windows/binaries/dump_syms.exe?raw=true -O dump_syms.exe
|
||||
dump_syms app\olive-editor.pdb > olive-editor.sym
|
||||
curl -F symfile=@olive-editor.sym https://olivevideoeditor.org/crashpad/symbols.php
|
||||
|
||||
REM Start building package
|
||||
mkdir olive-editor
|
||||
cd olive-editor
|
||||
copy ..\app\olive-editor.exe .
|
||||
copy ..\app\olive-editor.pdb .
|
||||
copy ..\app\crashhandler.exe .
|
||||
copy ..\crashpad\out\Default\crashpad_handler.exe .
|
||||
windeployqt olive-editor.exe
|
||||
copy ..\%FFMPEG_VER%-shared\bin\*.dll .
|
||||
copy ..\app\*.dll .
|
||||
|
||||
REM Package done, begin deployment
|
||||
cd ..
|
||||
set PKGNAME=Olive-%GITHASH%-Windows-x86_64
|
||||
|
||||
REM Create installer
|
||||
copy app\packaging\windows\nsis\* .
|
||||
"C:/Program Files (x86)/NSIS/makensis.exe" -V4 -DX64 "-XOutFile %PKGNAME%.exe" olive.nsi
|
||||
|
||||
REM Create portable
|
||||
copy nul olive-editor\portable
|
||||
7z a %PKGNAME%.zip olive-editor
|
||||
|
||||
REM If this was a tagged build, upload
|
||||
if "%APPVEYOR_REPO_TAG%"=="true" GOTO upload
|
||||
|
||||
REM Else, if this is a continuous build, check if this commit is the most recent
|
||||
|
||||
REM Force locale to UTF-8 or grep -P fails
|
||||
set LC_ALL=en_US.UTF-8
|
||||
|
||||
curl -H "Authorization: token %GITHUB_TOKEN%" https://api.github.com/repos/olive-editor/olive/commits/master > repoinfo.txt
|
||||
grep -Po '(?^<=: \")(([a-z0-9])\w+)(?=\")' -m 1 repoinfo.txt > latestcommit.txt
|
||||
set /p REMOTEHASH= < latestcommit.txt
|
||||
if "%REMOTEHASH%"=="%GITLONGHASH%" GOTO upload
|
||||
|
||||
REM The previous if statements failed, skip to the end
|
||||
GOTO end
|
||||
|
||||
:upload
|
||||
set /p UPLOADTOOL_BODY= < latestcommit.txt
|
||||
|
||||
curl -L https://github.com/probonopd/uploadtool/raw/master/upload.sh > upload.sh
|
||||
bash upload.sh Olive*.zip
|
||||
bash upload.sh Olive*.exe
|
||||
|
||||
:end
|
||||
REM Check if this build should set up a debugging session
|
||||
IF "%ENABLE_RDP%"=="1" (
|
||||
powershell -command "$blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1'))"
|
||||
)
|
||||
@@ -5,10 +5,12 @@ title: '[CRASH] '
|
||||
labels: 'Crash, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
---
|
||||
name: Build/Packaging
|
||||
about: >-
|
||||
Report an issue related to compiling or packaging (including continuous
|
||||
integration). Note that we do not officially support custom build
|
||||
Report an issue related to compiling or packaging.
|
||||
Note that we do not officially support custom build
|
||||
configurations and may not address issues involving them.
|
||||
title: '[BUILD] '
|
||||
labels: 'Building/Packaging, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -8,10 +8,12 @@ title: '[CACHE] '
|
||||
labels: 'Disk Cache, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[CODEC] '
|
||||
labels: 'Codec, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[COLOR] '
|
||||
labels: 'Color Management, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[EDIT] '
|
||||
labels: 'Timeline/Editing, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[EXPORT] '
|
||||
labels: 'Export, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[NODES] '
|
||||
labels: 'Nodes/Compositing, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[PLAYBACK] '
|
||||
labels: 'Playback, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[PROJECT] '
|
||||
labels: 'Project, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[RENDER] '
|
||||
labels: 'Renderer, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -7,10 +7,12 @@ title: '[UI] '
|
||||
labels: 'User Interface, Triage'
|
||||
assignees: ''
|
||||
---
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
|
||||
<!-- ⚠ Do not delete this issue template! ⚠ -->
|
||||
|
||||
**Commit Hash** <!-- 8 character string of letters/numbers in title bar or Help > About dialog (e.g. 3ea173c9) -->
|
||||
|
||||
|
||||
**Platform**
|
||||
**Platform** <!-- e.g. Windows 10, Ubuntu 20.04 or macOS 10.15 -->
|
||||
|
||||
|
||||
**Summary**
|
||||
|
||||
@@ -158,29 +158,11 @@ jobs:
|
||||
with:
|
||||
version: 5.15.1
|
||||
|
||||
- name: Acquire FFmpeg
|
||||
- name: Acquire Dependencies
|
||||
shell: bash
|
||||
run: |
|
||||
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ffmpeg-win.7z
|
||||
$EXTRACT_TOOL ffmpeg-win.7z
|
||||
|
||||
- name: Acquire OpenColorIO
|
||||
shell: bash
|
||||
run: |
|
||||
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ocio-win.7z
|
||||
$EXTRACT_TOOL ocio-win.7z
|
||||
|
||||
- name: Acquire OpenEXR
|
||||
shell: bash
|
||||
run: |
|
||||
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/openexr-win.7z
|
||||
$EXTRACT_TOOL openexr-win.7z
|
||||
|
||||
- name: Acquire OpenImageIO
|
||||
shell: bash
|
||||
run: |
|
||||
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/oiio-win.7z
|
||||
$EXTRACT_TOOL oiio-win.7z
|
||||
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/dep-win.7z
|
||||
$EXTRACT_TOOL dep-win.7z
|
||||
|
||||
- name: Acquire Crashpad
|
||||
shell: bash
|
||||
|
||||
@@ -1,19 +1,39 @@
|
||||
*.pro.user*
|
||||
Makefile
|
||||
.qmake.stash
|
||||
effects/frei0r
|
||||
ts/*.qm
|
||||
docs
|
||||
history
|
||||
build/
|
||||
.DS_Store
|
||||
# CMake artifacts
|
||||
/build*/
|
||||
|
||||
.vscode
|
||||
.vs
|
||||
# Doxygen
|
||||
/docs/
|
||||
|
||||
# Visual Studio (Code)
|
||||
.localhistory/
|
||||
.history/
|
||||
.vscode/
|
||||
.vs/
|
||||
/out/
|
||||
CmakeSettings.json
|
||||
|
||||
# macOS General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Windows thumbnail cache files
|
||||
Thumbs.db
|
||||
Thumbs.db:encryptable
|
||||
ehthumbs.db
|
||||
ehthumbs_vista.db
|
||||
|
||||
# Windows folder config file
|
||||
[Dd]esktop.ini
|
||||
|
||||
# Recycle Bin used on file shares (Windows)
|
||||
$RECYCLE.BIN/
|
||||
|
||||
# Windows shortcuts
|
||||
*.lnk
|
||||
|
||||
#
|
||||
# Qt ignores taken from https://github.com/github/gitignore
|
||||
# Qt ignores taken from https://github.com/github/gitignore/blob/master/Qt.gitignore
|
||||
#
|
||||
|
||||
# C++ objects and libs
|
||||
@@ -24,6 +44,7 @@ CmakeSettings.json
|
||||
*.la
|
||||
*.lai
|
||||
*.so
|
||||
*.so.*
|
||||
*.dll
|
||||
*.dylib
|
||||
|
||||
@@ -46,6 +67,8 @@ ui_*.h
|
||||
*.jsc
|
||||
Makefile*
|
||||
*build-*
|
||||
*.qm
|
||||
*.prl
|
||||
|
||||
# Qt unit tests
|
||||
target_wrapper.*
|
||||
@@ -65,3 +88,5 @@ compile_commands.json
|
||||
|
||||
# QtCreator local machine specific files for imported projects
|
||||
*creator.user*
|
||||
|
||||
*_qmlcache.qrc
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
language: cpp
|
||||
|
||||
matrix:
|
||||
include:
|
||||
- os: linux
|
||||
env: ARCH=x86_64
|
||||
compiler: gcc
|
||||
sudo: require
|
||||
dist: xenial
|
||||
- os: osx
|
||||
osx_image: xcode10.3
|
||||
before_cache:
|
||||
- brew cleanup
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/Library/Caches/Homebrew
|
||||
addons:
|
||||
homebrew:
|
||||
packages:
|
||||
- ffmpeg
|
||||
- qt5
|
||||
- grep
|
||||
- opencolorio
|
||||
- openimageio
|
||||
update: true
|
||||
# Can't build on Windows - affected by https://travis-ci.community/t/current-known-issues-please-read-this-before-posting-a-new-topic/264/10
|
||||
# - os: windows
|
||||
|
||||
before_install:
|
||||
- source ./.travis/before_install.sh
|
||||
|
||||
install:
|
||||
- source ./.travis/install.sh
|
||||
|
||||
script:
|
||||
- source ./.travis/script.sh
|
||||
|
||||
after_success:
|
||||
- source ./.travis/after_success.sh
|
||||
|
||||
branches:
|
||||
except:
|
||||
- # Do not build tags that we create when we upload to GitHub Releases
|
||||
- /^(?i:continuous)/
|
||||
@@ -1,40 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Check if there's been a new commit since this build, and if so don't upload it
|
||||
|
||||
GREP_PATH=grep
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
GREP_PATH=ggrep
|
||||
fi
|
||||
|
||||
# Get current repo commit from GitHub (problems arose from trying to pipe cURL directly into grep, so we buffer it through a file)
|
||||
REMOTE=$(curl -H "Authorization: token $GITHUB_TOKEN" https://api.github.com/repos/olive-editor/olive/commits/master | $GREP_PATH -Po '(?<=: \")(([a-z0-9])\w+)(?=\")' -m 1 --)
|
||||
LOCAL=$(git rev-parse HEAD)
|
||||
|
||||
if [ "$TRAVIS_TAG" != "" ] || [ "$REMOTE" == "$LOCAL" ]
|
||||
then
|
||||
echo "[INFO] Still current. Uploading..."
|
||||
|
||||
export UPLOADTOOL_BODY=$(cat release.txt)
|
||||
|
||||
# Retrieve upload tool
|
||||
wget -c https://github.com/probonopd/uploadtool/raw/master/upload.sh
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
|
||||
bash upload.sh Olive*.zip
|
||||
|
||||
elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
|
||||
find appdir -executable -type f -exec ldd {} \; | grep " => /usr" | cut -d " " -f 2-3 | sort | uniq
|
||||
|
||||
bash upload.sh Olive*.AppImage*
|
||||
|
||||
fi
|
||||
|
||||
else
|
||||
|
||||
echo "[INFO] No longer current. $REMOTE vs $LOCAL - aborting upload."
|
||||
|
||||
fi
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
|
||||
# Qt 5.11
|
||||
sudo add-apt-repository ppa:beineri/opt-qt-5.11.0-xenial -y
|
||||
|
||||
# FFmpeg 4.x
|
||||
sudo add-apt-repository ppa:jonathonf/ffmpeg-4 -y
|
||||
|
||||
# OpenColorIO
|
||||
sudo add-apt-repository ppa:olive-editor/opencolorio -y
|
||||
|
||||
# Update apt
|
||||
sudo apt-get update -qq
|
||||
|
||||
fi
|
||||
@@ -1,18 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
|
||||
export PATH="/usr/local/opt/qt/bin:/usr/local/opt/python@2/libexec/bin:$PATH"
|
||||
|
||||
elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
|
||||
sudo apt-get -y -o Dpkg::Options::="--force-overwrite" install qt511base qt511multimedia qt511svg qt511tools libavformat-dev libavcodec-dev libavfilter-dev libavutil-dev libswscale-dev libswresample-dev libopencolorio-dev libopenimageio-dev libgl1-mesa-dev
|
||||
source /opt/qt*/bin/qt*-env.sh
|
||||
|
||||
# Acquire latest cmake (apt somehow gets the wrong version?)
|
||||
wget -c https://github.com/Kitware/CMake/releases/download/v3.17.2/cmake-3.17.2-Linux-x86_64.sh -O cmake.sh
|
||||
chmod +x cmake.sh
|
||||
./cmake.sh --skip-license --prefix=cmake --exclude-dir
|
||||
export PATH=$PWD/cmake/bin:$PATH
|
||||
|
||||
fi
|
||||
@@ -1,76 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# linuxdeployqt uses this for naming the file
|
||||
export VERSION=$(git rev-parse --short=8 HEAD)
|
||||
|
||||
if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
|
||||
|
||||
# Generate Makefile
|
||||
cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
|
||||
# Make
|
||||
make -j$(sysctl -n hw.ncpu)
|
||||
|
||||
# Handle compile failure
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BUNDLE_NAME=Olive.app
|
||||
|
||||
# Move bundle to working directory
|
||||
mv app/$BUNDLE_NAME .
|
||||
|
||||
# Move Qt deps into bundle
|
||||
macdeployqt $BUNDLE_NAME
|
||||
|
||||
# Fix other deps that macdeployqt missed
|
||||
curl -fLOSs --retry 3 https://github.com/arl/macdeployqtfix/raw/master/macdeployqtfix.py
|
||||
python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/Olive /usr/local/Cellar/qt5/5.*/
|
||||
|
||||
# Fix deps on crash handler
|
||||
python2 macdeployqtfix.py $BUNDLE_NAME/Contents/MacOS/olive-crashhandler /usr/local/Cellar/qt5/5.*/
|
||||
|
||||
# Fix OpenEXR libs that seem to be missed by both macdeployqt _and_ macdeployqtfix
|
||||
cd $BUNDLE_NAME/Contents/Frameworks
|
||||
exrlib=(libImath-*.dylib libHalf-*.dylib libIexMath-*.dylib libIex-*.dylib libIlmThread-*.dylib)
|
||||
|
||||
for a in ${exrlib[@]}; do
|
||||
for b in ${exrlib[@]}; do
|
||||
install_name_tool -change @rpath/$b @executable_path/../Frameworks/$b $a
|
||||
done
|
||||
done
|
||||
|
||||
cd ../../..
|
||||
|
||||
# Distribute in zip
|
||||
zip -r Olive-$VERSION-macOS.zip $BUNDLE_NAME
|
||||
|
||||
elif [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
|
||||
|
||||
# Generate Makefile
|
||||
cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo
|
||||
|
||||
# Make
|
||||
make -j$(nproc)
|
||||
|
||||
# Handle compile failure
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Use `make install` on `appdir` to place files in the correct place
|
||||
make DESTDIR=appdir install
|
||||
|
||||
# Download linuxdeployqt
|
||||
wget -c -nv "https://github.com/probonopd/linuxdeployqt/releases/download/continuous/linuxdeployqt-continuous-x86_64.AppImage"
|
||||
chmod a+x linuxdeployqt-continuous-x86_64.AppImage
|
||||
|
||||
unset QTDIR; unset QT_PLUGIN_PATH ; unset LD_LIBRARY_PATH
|
||||
|
||||
# Use linuxdeployqt to set up dependencies
|
||||
./linuxdeployqt-continuous-x86_64.AppImage appdir/usr/local/share/applications/*.desktop -extra-plugins=imageformats/libqsvg.so -appimage
|
||||
|
||||
fi
|
||||
@@ -1,12 +1,29 @@
|
||||
# Contributing to Olive
|
||||
|
||||
Thank you for your interest in contributing to Olive! In order to keep the code as readable and maintainable as possible, code submitted should abide by the following standards:
|
||||
Thank you for your interest in contributing to Olive!
|
||||
|
||||
### Standards
|
||||
## Reporting issues
|
||||
|
||||
When contributing to Olive, it's recommended to use the following rules:
|
||||
Bug reports help to make the software more stable and usable.
|
||||
Please read the pinned [issue #1175](https://github.com/olive-editor/olive/issues/1175)
|
||||
for guidelines before you create a new issue.
|
||||
|
||||
* The code style generally follows the [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html) including, but not limited to:
|
||||
## Writing code
|
||||
|
||||
Code contributions are welcome. Note that the code base is rapidly changing in
|
||||
the current stage of development however. There is some documentation in the form
|
||||
of code comments, including Javadoc in header files. Feel free to reach out via
|
||||
an issue or pull request if you have questions about the architecture or
|
||||
implementation details.
|
||||
|
||||
### Code Standards
|
||||
|
||||
In order to keep the code as readable and maintainable as possible, code
|
||||
submitted should abide by the following standards:
|
||||
|
||||
* The code style generally follows the
|
||||
[Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html)
|
||||
including, but not limited to:
|
||||
* Indentation is 2 spaces wide, spaces only (no tabs)
|
||||
* `lowercase_underscored_variable_names`
|
||||
* `lowercase_underscored_functions()` or `SentenceCaseFunctions()`
|
||||
|
||||
@@ -924,6 +924,7 @@ bool Core::SaveProjectAs(ProjectPtr p)
|
||||
{
|
||||
QFileDialog fd(main_window_, tr("Save Project As"));
|
||||
|
||||
fd.setAcceptMode(QFileDialog::AcceptSave);
|
||||
fd.setNameFilter(GetProjectFilter(false));
|
||||
|
||||
if (fd.exec() == QDialog::Accepted) {
|
||||
|
||||
@@ -69,11 +69,10 @@ OCIO::ConstConfigRcPtr ColorManager::GetDefaultConfig()
|
||||
|
||||
void ColorManager::SetUpDefaultConfig()
|
||||
{
|
||||
OCIO_SET_C_LOCALE_FOR_SCOPE;
|
||||
|
||||
if (!qgetenv("OCIO").isEmpty()) {
|
||||
// Attempt to set config from "OCIO" environment variable
|
||||
try {
|
||||
OCIO_SET_C_LOCALE_FOR_SCOPE;
|
||||
default_config_ = OCIO::Config::CreateFromEnv();
|
||||
|
||||
return;
|
||||
@@ -91,7 +90,10 @@ void ColorManager::SetUpDefaultConfig()
|
||||
|
||||
qDebug() << "Extracting default OCIO config to" << dir;
|
||||
|
||||
default_config_ = CreateConfigFromFile(QDir(dir).filePath(QStringLiteral("config.ocio")));
|
||||
{
|
||||
OCIO_SET_C_LOCALE_FOR_SCOPE;
|
||||
default_config_ = CreateConfigFromFile(QDir(dir).filePath(QStringLiteral("config.ocio")));
|
||||
}
|
||||
}
|
||||
|
||||
void ColorManager::SetConfig(const QString &filename)
|
||||
|
||||
|
Before Width: | Height: | Size: 1.0 KiB After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 419 B After Width: | Height: | Size: 407 B |
|
Before Width: | Height: | Size: 504 B After Width: | Height: | Size: 518 B |
|
Before Width: | Height: | Size: 667 B After Width: | Height: | Size: 707 B |
@@ -1,6 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
@@ -10,8 +8,8 @@
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="new.svg"
|
||||
inkscape:version="0.91+devel+osxmenu r12922"
|
||||
sodipodi:docname="new_menu_white.svg"
|
||||
inkscape:version="1.0.1 (c497b03c, 2020-09-10)"
|
||||
sodipodi:version="0.32"
|
||||
id="svg2"
|
||||
height="64"
|
||||
@@ -10955,7 +10953,8 @@
|
||||
inkscape:snap-bbox-midpoints="false"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:snap-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true">
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:document-rotation="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid0001"
|
||||
@@ -11023,18 +11022,22 @@
|
||||
id="layer1"
|
||||
transform="translate(0,16)">
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:0.86274511;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 14,1 c -1.656786,1.657e-4 -2.999834,1.3432144 -3,3 0,18 0,36 0,54 1.66e-4,1.656786 1.343214,2.999834 3,3 l 36,0 c 1.656786,-1.66e-4 2.999834,-1.343214 3,-3 0,-13 0,-26 0,-39 -1.53e-4,-0.795597 -0.316297,-1.558559 -0.878906,-2.121094 l -15,-14.9999998 C 36.558559,1.3162974 35.795597,1.0001531 35,1 Z m 3,6 13,0 0,14 c 1.66e-4,1.656786 1.343214,2.999834 3,3 l 14,0 0,31 -30,0 z M 36,9.2421875 44.757812,18 36,18 Z"
|
||||
transform="translate(0,-16)"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:0.862745;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 9,-15 c -1.656786,1.66e-4 -2.999834,1.343214 -3,3 0,18 0,36 0,54 1.66e-4,1.656786 1.343214,2.999834 3,3 h 36 c 1.656786,-1.66e-4 2.999834,-1.343214 3,-3 C 48,29 48,16 48,3 47.999847,2.204403 47.683703,1.441441 47.121094,0.878906 l -15,-15 C 31.558559,-14.683703 30.795597,-14.999847 30,-15 Z m 3,6 H 25 V 5 c 1.66e-4,1.656786 1.343214,2.999834 3,3 H 42 V 39 H 12 Z M 31,-6.7578125 39.757812,2 H 31 Z"
|
||||
id="path10890"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccc" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:0.23529412;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 17,7 0,48 30,0 0,-31 -14,0 c -1.656786,-1.66e-4 -2.999834,-1.343214 -3,-3 L 30,7 Z M 36,9.2421875 36,18 l 8.757812,0 z"
|
||||
transform="translate(0,-16)"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:0.235294;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="M 12,-9 V 39 H 42 V 8 H 28 C 26.343214,7.999834 25.000166,6.656786 25,5 V -9 Z m 19,2.2421875 V 2 h 8.757812 z"
|
||||
id="path10888"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccc" />
|
||||
<path
|
||||
style="opacity:1;fill:#ffffff;fill-opacity:0.862745;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.627451"
|
||||
d="M 64,48 H 48 L 64,32 Z"
|
||||
id="path8446"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 360 KiB |
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 460 B After Width: | Height: | Size: 442 B |
|
Before Width: | Height: | Size: 559 B After Width: | Height: | Size: 547 B |
|
Before Width: | Height: | Size: 750 B After Width: | Height: | Size: 798 B |
@@ -1,6 +1,4 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
@@ -10,8 +8,8 @@
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
sodipodi:docname="new.svg"
|
||||
inkscape:version="0.91+devel+osxmenu r12922"
|
||||
sodipodi:docname="new_menu_black.svg"
|
||||
inkscape:version="1.0.1 (c497b03c, 2020-09-10)"
|
||||
sodipodi:version="0.32"
|
||||
id="svg2"
|
||||
height="64"
|
||||
@@ -10938,9 +10936,9 @@
|
||||
inkscape:grid-bbox="true"
|
||||
showgrid="true"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:cy="29.16282"
|
||||
inkscape:cx="18.524958"
|
||||
inkscape:zoom="8.7057474"
|
||||
inkscape:cy="32.5"
|
||||
inkscape:cx="35"
|
||||
inkscape:zoom="11.603175"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
borderopacity="1"
|
||||
@@ -10955,7 +10953,8 @@
|
||||
inkscape:snap-bbox-midpoints="false"
|
||||
inkscape:bbox-nodes="true"
|
||||
inkscape:snap-nodes="true"
|
||||
inkscape:snap-smooth-nodes="true">
|
||||
inkscape:snap-smooth-nodes="true"
|
||||
inkscape:document-rotation="0">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid0001"
|
||||
@@ -11023,18 +11022,22 @@
|
||||
id="layer1"
|
||||
transform="translate(0,16)">
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#202020;fill-opacity:0.86274511;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 14,1 c -1.656786,1.657e-4 -2.999834,1.3432144 -3,3 0,18 0,36 0,54 1.66e-4,1.656786 1.343214,2.999834 3,3 l 36,0 c 1.656786,-1.66e-4 2.999834,-1.343214 3,-3 0,-13 0,-26 0,-39 -1.53e-4,-0.795597 -0.316297,-1.558559 -0.878906,-2.121094 l -15,-14.9999998 C 36.558559,1.3162974 35.795597,1.0001531 35,1 Z m 3,6 13,0 0,14 c 1.66e-4,1.656786 1.343214,2.999834 3,3 l 14,0 0,31 -30,0 z M 36,9.2421875 44.757812,18 36,18 Z"
|
||||
transform="translate(0,-16)"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#202020;fill-opacity:0.862745;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 9,-15 c -1.656786,1.66e-4 -2.999834,1.343214 -3,3 0,18 0,36 0,54 1.66e-4,1.656786 1.343214,2.999834 3,3 h 36 c 1.656786,-1.66e-4 2.999834,-1.343214 3,-3 C 48,29 48,16 48,3 47.999847,2.204403 47.683703,1.441441 47.121094,0.878906 l -15,-15 C 31.558559,-14.683703 30.795597,-14.999847 30,-15 Z m 3,6 H 25 V 5 c 1.66e-4,1.656786 1.343214,2.999834 3,3 H 42 V 39 H 12 Z M 31,-6.7578125 39.757812,2 H 31 Z"
|
||||
id="path10890"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccccccccccccccccccc" />
|
||||
<path
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#202020;fill-opacity:0.23529412;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="m 17,7 0,48 30,0 0,-31 -14,0 c -1.656786,-1.66e-4 -2.999834,-1.343214 -3,-3 L 30,7 Z M 36,9.2421875 36,18 l 8.757812,0 z"
|
||||
transform="translate(0,-16)"
|
||||
style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:none;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#202020;fill-opacity:0.235294;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
|
||||
d="M 12,-9 V 39 H 42 V 8 H 28 C 26.343214,7.999834 25.000166,6.656786 25,5 V -9 Z m 19,2.2421875 V 2 h 8.757812 z"
|
||||
id="path10888"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccccccccccc" />
|
||||
<path
|
||||
style="opacity:1;fill:#212121;fill-opacity:0.86274499;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.627451"
|
||||
d="M 64,48 H 48 L 64,32 Z"
|
||||
id="path8446"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccc" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 360 KiB |
@@ -1,22 +0,0 @@
|
||||
version: "{build}"
|
||||
image: Visual Studio 2017
|
||||
environment:
|
||||
TRAVIS_REPO_SLUG: olive-editor/olive
|
||||
|
||||
# Hack to not build the "continuous" tag (https://github.com/appveyor/ci/issues/486)
|
||||
# FIXME: Will unfortunately skip release tags
|
||||
skip_tags: true
|
||||
|
||||
install:
|
||||
- cd C:\Tools\vcpkg
|
||||
- git pull
|
||||
- .\bootstrap-vcpkg.bat
|
||||
- cd %APPVEYOR_BUILD_FOLDER%
|
||||
build_script:
|
||||
- cmd: .appveyor\build.bat
|
||||
#artifacts:
|
||||
#- path: Olive*.zip
|
||||
# name: Olive Portable
|
||||
#- path: Olive*.exe
|
||||
# name: Olive Installer
|
||||
cache: c:\tools\vcpkg\installed\
|
||||
@@ -0,0 +1,62 @@
|
||||
# Docker Images
|
||||
|
||||
Olive uses Docker containers for continuous integration on Linux.
|
||||
No Docker images are involved for the Windows and macOS CI.
|
||||
|
||||
## Overview
|
||||
|
||||
`ci-common` is the shared build image with GCC, Clang and packages that are
|
||||
needed by most dependent images. It is used to compile Olive's dependencies
|
||||
in a controlled environment. The final CI image `ci-olive` is assembled from
|
||||
images maintained by the Olive team as well as from
|
||||
[aswf-docker](https://github.com/AcademySoftwareFoundation/aswf-docker/).
|
||||
|
||||
Dependency hierarchy:
|
||||
|
||||
1. `ci-common`
|
||||
2. `ci-otio`, `ci-crashpad`, `ci-ffmpeg`
|
||||
3. `ci-olive`
|
||||
|
||||
## Usage
|
||||
|
||||
Pull images from [Docker Hub](https://hub.docker.com/u/olivevideoeditor):
|
||||
|
||||
```
|
||||
docker pull olivevideoeditor/ci-common:2
|
||||
docker pull olivevideoeditor/ci-package-otio
|
||||
docker pull olivevideoeditor/ci-package-crashpad
|
||||
docker pull olivevideoeditor/ci-package-ffmpeg:4.2.4
|
||||
docker pull olivevideoeditor/ci-olive:2021.2
|
||||
```
|
||||
|
||||
Use `ci-olive` image as local build container, by mounting working copy at
|
||||
`~/olive` into guest system at `/opt/olive/olive`:
|
||||
|
||||
```bash
|
||||
docker run --rm -it -v ~/olive:/opt/olive/olive olivevideoeditor/ci-olive:2021.2
|
||||
mkdir build
|
||||
cd build
|
||||
cmake .. -G Ninja
|
||||
cmake --build .
|
||||
```
|
||||
|
||||
Rebuild all images locally:
|
||||
|
||||
```
|
||||
cd docker
|
||||
docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile .
|
||||
docker build -t olivevideoeditor/ci-package-otio -f ci-otio/Dockerfile .
|
||||
docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile .
|
||||
docker build -t olivevideoeditor/ci-package-ffmpeg:4.2.4 -f ci-ffmpeg/Dockerfile .
|
||||
docker build -t olivevideoeditor/ci-olive:2021.2 -f ci-olive/Dockerfile .
|
||||
```
|
||||
|
||||
Publish images:
|
||||
|
||||
```
|
||||
docker push olivevideoeditor/ci-common:2
|
||||
docker push olivevideoeditor/ci-package-otio
|
||||
docker push olivevideoeditor/ci-package-crashpad
|
||||
docker push olivevideoeditor/ci-package-ffmpeg:4.2.4
|
||||
docker push olivevideoeditor/ci-olive:2021.2
|
||||
```
|
||||
@@ -9,8 +9,17 @@ ARG CI_COMMON_VERSION=2
|
||||
ARG FFMPEG_VERSION=4.2.4
|
||||
ARG NASM_VERSION=2.15.03
|
||||
ARG YASM_VERSION=1.3.0
|
||||
ARG LAME_VERSION=3.100
|
||||
ARG X265_VERSION=3.4
|
||||
ARG OGG_VERSION=1.3.4
|
||||
ARG OPUS_VERSION=1.3.1
|
||||
ARG VORBIS_VERSION=1.3.7
|
||||
ARG THEORA_VERSION=1.1.1
|
||||
ARG VPX_VERSION=1.9.0
|
||||
ARG WEBP_VERSION=1.1.0
|
||||
ARG LAME_VERSION=3.100
|
||||
ARG XVID_VERSION=1.3.5
|
||||
ARG OPENJPEG_VERSION=2.3.1
|
||||
ARG LIBPNG_VERSION=1.6.31
|
||||
# TODO: Make version of x264, x265 and libvpx selectable?
|
||||
ARG NUM_JOBS=2
|
||||
|
||||
@@ -21,8 +30,17 @@ ARG CI_COMMON_VERSION
|
||||
ARG FFMPEG_VERSION
|
||||
ARG NASM_VERSION
|
||||
ARG YASM_VERSION
|
||||
ARG LAME_VERSION
|
||||
ARG X265_VERSION
|
||||
ARG OGG_VERSION
|
||||
ARG OPUS_VERSION
|
||||
ARG VORBIS_VERSION
|
||||
ARG THEORA_VERSION
|
||||
ARG VPX_VERSION
|
||||
ARG WEBP_VERSION
|
||||
ARG LAME_VERSION
|
||||
ARG XVID_VERSION
|
||||
ARG OPENJPEG_VERSION
|
||||
ARG LIBPNG_VERSION
|
||||
# TODO: Make version of x264, x265 and libvpx selectable?
|
||||
ARG NUM_JOBS=2
|
||||
|
||||
@@ -43,8 +61,17 @@ ENV OLIVE_ORG=${OLIVE_ORG} \
|
||||
FFMPEG_VERSION=${FFMPEG_VERSION} \
|
||||
NASM_VERSION=${NASM_VERSION} \
|
||||
YASM_VERSION=${YASM_VERSION} \
|
||||
LAME_VERSION=${LAME_VERSION} \
|
||||
X265_VERSION=${X265_VERSION} \
|
||||
OGG_VERSION=${OGG_VERSION} \
|
||||
OPUS_VERSION=${OPUS_VERSION} \
|
||||
VORBIS_VERSION=${VORBIS_VERSION} \
|
||||
THEORA_VERSION=${THEORA_VERSION} \
|
||||
VPX_VERSION=${VPX_VERSION} \
|
||||
WEBP_VERSION=${WEBP_VERSION} \
|
||||
LAME_VERSION=${LAME_VERSION} \
|
||||
XVID_VERSION=${XVID_VERSION} \
|
||||
OPENJPEG_VERSION=${OPENJPEG_VERSION} \
|
||||
LIBPNG_VERSION=${LIBPNG_VERSION} \
|
||||
NUM_JOBS=${NUM_JOBS} \
|
||||
OLIVE_INSTALL_PREFIX=/usr/local
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ wait
|
||||
|
||||
# Set up libx264
|
||||
{
|
||||
# TODO: Checkout stable branch instead of master?
|
||||
git clone --depth 1 "https://code.videolan.org/videolan/x264.git"
|
||||
cd x264
|
||||
./configure \
|
||||
@@ -53,7 +54,7 @@ wait
|
||||
--enable-shared \
|
||||
--enable-pic \
|
||||
--disable-cli
|
||||
make -j${NUM_JOBS}
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf x264
|
||||
@@ -63,18 +64,121 @@ wait
|
||||
{
|
||||
# BitBucket dropped support for Mercurial repos
|
||||
#hg clone https://bitbucket.org/multicoreware/x265
|
||||
git clone --depth 1 "https://bitbucket.org/multicoreware/x265_git.git" x265
|
||||
# Need to fetch tags (off by default for shallow clones) or checkout a tag to avoid pkg-config error
|
||||
git clone --depth 1 --branch "${X265_VERSION}" "https://bitbucket.org/multicoreware/x265_git.git" x265
|
||||
cd x265/build/linux
|
||||
cmake \
|
||||
-G "Unix Makefiles" \
|
||||
-DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \
|
||||
../../source
|
||||
make -j${NUM_JOBS}
|
||||
make
|
||||
make install
|
||||
cd ../../..
|
||||
rm -rf x265
|
||||
} &
|
||||
|
||||
# Set up libogg
|
||||
{
|
||||
curl -fLsS -o libogg.tar.gz "http://downloads.xiph.org/releases/ogg/libogg-${OGG_VERSION}.tar.gz"
|
||||
tar xf libogg.tar.gz
|
||||
rm -f libogg.tar.gz
|
||||
cd libogg*
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--enable-shared
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libogg*
|
||||
} &
|
||||
|
||||
# Set up libopus
|
||||
{
|
||||
curl -fLsS -o opus.tar.gz "https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz"
|
||||
tar xf opus.tar.gz
|
||||
rm -f opus.tar.gz
|
||||
cd opus*
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--enable-shared
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf opus*
|
||||
} &
|
||||
|
||||
# join jobs, libvorbis and libtheora depend on libogg
|
||||
wait
|
||||
|
||||
# Set up libvorbis
|
||||
{
|
||||
curl -fLsS -o libvorbis.tar.gz "http://downloads.xiph.org/releases/vorbis/libvorbis-${VORBIS_VERSION}.tar.gz"
|
||||
tar xf libvorbis.tar.gz
|
||||
rm -f libvorbis.tar.gz
|
||||
cd libvorbis*
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--with-ogg="${OLIVE_INSTALL_PREFIX}" \
|
||||
--enable-shared
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libvorbis*
|
||||
} &
|
||||
|
||||
# Set up libtheora
|
||||
{
|
||||
curl -fLsS -o libtheora.tar.gz "http://downloads.xiph.org/releases/theora/libtheora-${THEORA_VERSION}.tar.gz"
|
||||
tar xf libtheora.tar.gz
|
||||
rm -f libtheora.tar.gz
|
||||
cd libtheora*
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--with-ogg="${OLIVE_INSTALL_PREFIX}" \
|
||||
--enable-shared
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libtheora*
|
||||
} &
|
||||
|
||||
# Set up libvpx
|
||||
{
|
||||
git clone --depth 1 --branch "v${VPX_VERSION}" "https://chromium.googlesource.com/webm/libvpx.git"
|
||||
cd libvpx
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--enable-shared \
|
||||
--enable-pic \
|
||||
--enable-vp8 \
|
||||
--enable-vp9 \
|
||||
--enable-vp9-highbitdepth \
|
||||
--as=yasm \
|
||||
--disable-examples \
|
||||
--disable-unit-tests \
|
||||
--disable-docs \
|
||||
--disable-install-bins
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libvpx
|
||||
} &
|
||||
|
||||
### Set up libwebp
|
||||
{
|
||||
curl -fLsS -o libwebp.tar.gz "https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-${WEBP_VERSION}.tar.gz"
|
||||
tar xf libwebp.tar.gz
|
||||
rm -f libwebp.tar.gz
|
||||
cd libwebp*
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--enable-shared
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libwebp*
|
||||
} &
|
||||
|
||||
# Set up libmp3lame
|
||||
{
|
||||
curl -fLsS -o lame.tar.gz "https://downloads.sourceforge.net/project/lame/lame/${LAME_VERSION}/lame-${LAME_VERSION}.tar.gz"
|
||||
@@ -86,45 +190,54 @@ wait
|
||||
--enable-shared \
|
||||
--enable-nasm \
|
||||
--disable-frontend
|
||||
make -j${NUM_JOBS}
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf lame*
|
||||
} &
|
||||
|
||||
# Set up libopus
|
||||
### Set up xvid
|
||||
{
|
||||
curl -fLsS -o opus.tar.gz "https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz"
|
||||
tar xf opus.tar.gz
|
||||
rm -f opus.tar.gz
|
||||
cd opus*
|
||||
curl -fLsS -o xvidcore.tar.gz "http://downloads.xvid.org/downloads/xvidcore-${XVID_VERSION}.tar.gz"
|
||||
tar xf xvidcore.tar.gz
|
||||
rm -f xvidcore.tar.gz
|
||||
cd xvidcore/build/generic
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--enable-shared
|
||||
make -j${NUM_JOBS}
|
||||
--bindir="${OLIVE_INSTALL_PREFIX}/bin"
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf opus*
|
||||
cd ../../..
|
||||
rm -rf xvidcore
|
||||
} &
|
||||
|
||||
# Set up libvpx
|
||||
# Set up openjpeg
|
||||
{
|
||||
git clone --depth 1 "https://chromium.googlesource.com/webm/libvpx.git"
|
||||
cd libvpx
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--enable-shared \
|
||||
--enable-pic \
|
||||
--enable-vp9-highbitdepth \
|
||||
--as=yasm \
|
||||
--disable-examples \
|
||||
--disable-unit-tests \
|
||||
--disable-docs \
|
||||
--disable-install-bins
|
||||
make -j${NUM_JOBS}
|
||||
curl -fLsS -o openjpeg.tar.gz "https://github.com/uclouvain/openjpeg/archive/v${OPENJPEG_VERSION}.tar.gz"
|
||||
tar xf openjpeg.tar.gz
|
||||
rm -f openjpeg.tar.gz
|
||||
cd openjpeg*
|
||||
cmake \
|
||||
-DBUILD_THIRDPARTY:BOOL=ON \
|
||||
-DCMAKE_INSTALL_PREFIX="${OLIVE_INSTALL_PREFIX}" \
|
||||
.
|
||||
make
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libvpx
|
||||
rm -rf openjpeg*
|
||||
} &
|
||||
|
||||
# Set up libpng
|
||||
{
|
||||
git clone --depth 1 "https://git.code.sf.net/p/libpng/code" libpng --branch "v${LIBPNG_VERSION}"
|
||||
cd libpng
|
||||
./autogen.sh
|
||||
./configure \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}"
|
||||
make check
|
||||
make install
|
||||
cd ..
|
||||
rm -rf libpng
|
||||
} &
|
||||
|
||||
# join all jobs
|
||||
@@ -142,11 +255,16 @@ PKG_CONFIG_PATH="/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH" ./configure \
|
||||
--enable-version3 \
|
||||
--enable-shared \
|
||||
--enable-libfreetype \
|
||||
--enable-libmp3lame \
|
||||
--enable-libopus \
|
||||
--enable-libvpx \
|
||||
--enable-libx264 \
|
||||
--enable-libx265 \
|
||||
--enable-libopus \
|
||||
--enable-libvorbis \
|
||||
--enable-libtheora \
|
||||
--enable-libvpx \
|
||||
--enable-libwebp \
|
||||
--enable-libmp3lame \
|
||||
--enable-libxvid \
|
||||
--enable-libopenjpeg \
|
||||
--prefix="${OLIVE_INSTALL_PREFIX}" \
|
||||
--extra-libs=-lpthread \
|
||||
--extra-libs=-lm \
|
||||
|
||||
@@ -26,6 +26,7 @@ yum install --setopt=tsflags=nodocs -y \
|
||||
libxkbcommon-x11-devel \
|
||||
libXScrnSaver libXScrnSaver-devel \
|
||||
mesa-libGL-devel \
|
||||
numactl-devel \
|
||||
openjpeg2-devel \
|
||||
pciutils-devel \
|
||||
pulseaudio-libs pulseaudio-libs-devel \
|
||||
|
||||