diff --git a/.appveyor/build.bat b/.appveyor/build.bat deleted file mode 100644 index fa4e48ecc..000000000 --- a/.appveyor/build.bat +++ /dev/null @@ -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'))" -) diff --git a/.gitignore b/.gitignore index eaf33fa1c..88b977edd 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 9b7b9d3ff..000000000 --- a/.travis.yml +++ /dev/null @@ -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)/ diff --git a/.travis/after_success.sh b/.travis/after_success.sh deleted file mode 100644 index e189720f2..000000000 --- a/.travis/after_success.sh +++ /dev/null @@ -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 diff --git a/.travis/before_install.sh b/.travis/before_install.sh deleted file mode 100644 index 569d5f5bb..000000000 --- a/.travis/before_install.sh +++ /dev/null @@ -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 diff --git a/.travis/install.sh b/.travis/install.sh deleted file mode 100644 index 8d57de697..000000000 --- a/.travis/install.sh +++ /dev/null @@ -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 diff --git a/.travis/script.sh b/.travis/script.sh deleted file mode 100644 index 4a7a7fa2c..000000000 --- a/.travis/script.sh +++ /dev/null @@ -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 diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 436930972..000000000 --- a/appveyor.yml +++ /dev/null @@ -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\