diff options
| -rwxr-xr-x | .travis-upload.sh | 228 | ||||
| -rw-r--r-- | .travis.yml | 2 | ||||
| -rw-r--r-- | appveyor.yml | 12 | 
3 files changed, 116 insertions, 126 deletions
diff --git a/.travis-upload.sh b/.travis-upload.sh index 8cfab31cb..17959b0e1 100755 --- a/.travis-upload.sh +++ b/.travis-upload.sh @@ -1,134 +1,132 @@ -if [ "$TRAVIS_EVENT_TYPE" = "push" ]&&[ "$TRAVIS_BRANCH" = "master" ]; then -    GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`" -    GITREV="`git show -s --format='%h'`" -    mkdir -p artifacts - -    if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then -        REV_NAME="citra-linux-${GITDATE}-${GITREV}" -        ARCHIVE_NAME="${REV_NAME}.tar.xz" -        COMPRESSION_FLAGS="-cJvf" -        mkdir "$REV_NAME" - -        cp build/src/citra/citra "$REV_NAME" -        cp build/src/citra_qt/citra-qt "$REV_NAME" -    elif [ "$TRAVIS_OS_NAME" = "osx" ]; then -        REV_NAME="citra-osx-${GITDATE}-${GITREV}" -        ARCHIVE_NAME="${REV_NAME}.tar.gz" -        COMPRESSION_FLAGS="-czvf" -        mkdir "$REV_NAME" - -        cp build/src/citra/Release/citra "$REV_NAME" -        cp -r build/src/citra_qt/Release/citra-qt.app "$REV_NAME" - -        # move qt libs into app bundle for deployment -        $(brew --prefix)/opt/qt5/bin/macdeployqt "${REV_NAME}/citra-qt.app" - -        # move SDL2 libs into folder for deployment -        dylibbundler -b -x "${REV_NAME}/citra" -cd -d "${REV_NAME}/libs" -p "@executable_path/libs/" - -        # Make the changes to make the citra-qt app standalone (i.e. not dependent on the current brew installation). -        # To do this, the absolute references to each and every QT framework must be re-written to point to the local frameworks -        # (in the Contents/Frameworks folder). -        # The "install_name_tool" is used to do so. - -        # Coreutils is a hack to coerce Homebrew to point to the absolute Cellar path (symlink dereferenced). i.e: -        # ls -l /usr/local/opt/qt5:: /usr/local/opt/qt5 -> ../Cellar/qt5/5.6.1-1 -        # grealpath ../Cellar/qt5/5.6.1-1:: /usr/local/Cellar/qt5/5.6.1-1 -        brew install coreutils - -        REV_NAME_ALT=$REV_NAME/ -        # grealpath is located in coreutils, there is no "realpath" for OS X :( -        QT_BREWS_PATH=$(grealpath "$(brew --prefix qt5)") -        BREW_PATH=$(brew --prefix) -        QT_VERSION_NUM=5 - -        $BREW_PATH/opt/qt5/bin/macdeployqt "${REV_NAME_ALT}citra-qt.app" \ -            -executable="${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt" - -        # These are the files that macdeployqt packed into Contents/Frameworks/ - we don't want those, so we replace them. -        declare -a macos_libs=("QtCore" "QtWidgets" "QtGui" "QtOpenGL" "QtPrintSupport") - -        for macos_lib in "${macos_libs[@]}" +GITDATE="`git show -s --date=short --format='%ad' | sed 's/-//g'`" +GITREV="`git show -s --format='%h'`" +mkdir -p artifacts + +if [ "$TRAVIS_OS_NAME" = "linux" -o -z "$TRAVIS_OS_NAME" ]; then +    REV_NAME="citra-linux-${GITDATE}-${GITREV}" +    ARCHIVE_NAME="${REV_NAME}.tar.xz" +    COMPRESSION_FLAGS="-cJvf" +    mkdir "$REV_NAME" + +    cp build/src/citra/citra "$REV_NAME" +    cp build/src/citra_qt/citra-qt "$REV_NAME" +elif [ "$TRAVIS_OS_NAME" = "osx" ]; then +    REV_NAME="citra-osx-${GITDATE}-${GITREV}" +    ARCHIVE_NAME="${REV_NAME}.tar.gz" +    COMPRESSION_FLAGS="-czvf" +    mkdir "$REV_NAME" + +    cp build/src/citra/Release/citra "$REV_NAME" +    cp -r build/src/citra_qt/Release/citra-qt.app "$REV_NAME" + +    # move qt libs into app bundle for deployment +    $(brew --prefix)/opt/qt5/bin/macdeployqt "${REV_NAME}/citra-qt.app" + +    # move SDL2 libs into folder for deployment +    dylibbundler -b -x "${REV_NAME}/citra" -cd -d "${REV_NAME}/libs" -p "@executable_path/libs/" + +    # Make the changes to make the citra-qt app standalone (i.e. not dependent on the current brew installation). +    # To do this, the absolute references to each and every QT framework must be re-written to point to the local frameworks +    # (in the Contents/Frameworks folder). +    # The "install_name_tool" is used to do so. + +    # Coreutils is a hack to coerce Homebrew to point to the absolute Cellar path (symlink dereferenced). i.e: +    # ls -l /usr/local/opt/qt5:: /usr/local/opt/qt5 -> ../Cellar/qt5/5.6.1-1 +    # grealpath ../Cellar/qt5/5.6.1-1:: /usr/local/Cellar/qt5/5.6.1-1 +    brew install coreutils + +    REV_NAME_ALT=$REV_NAME/ +    # grealpath is located in coreutils, there is no "realpath" for OS X :( +    QT_BREWS_PATH=$(grealpath "$(brew --prefix qt5)") +    BREW_PATH=$(brew --prefix) +    QT_VERSION_NUM=5 + +    $BREW_PATH/opt/qt5/bin/macdeployqt "${REV_NAME_ALT}citra-qt.app" \ +        -executable="${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt" + +    # These are the files that macdeployqt packed into Contents/Frameworks/ - we don't want those, so we replace them. +    declare -a macos_libs=("QtCore" "QtWidgets" "QtGui" "QtOpenGL" "QtPrintSupport") + +    for macos_lib in "${macos_libs[@]}" +    do +        SC_FRAMEWORK_PART=$macos_lib.framework/Versions/$QT_VERSION_NUM/$macos_lib +        # Replace macdeployqt versions of the Frameworks with our own (from /usr/local/opt/qt5/lib/) +        cp "$BREW_PATH/opt/qt5/lib/$SC_FRAMEWORK_PART" "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART" + +        # Replace references within the embedded Framework files with "internal" versions. +        for macos_lib2 in "${macos_libs[@]}"          do -            SC_FRAMEWORK_PART=$macos_lib.framework/Versions/$QT_VERSION_NUM/$macos_lib -            # Replace macdeployqt versions of the Frameworks with our own (from /usr/local/opt/qt5/lib/) -            cp "$BREW_PATH/opt/qt5/lib/$SC_FRAMEWORK_PART" "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART" - -            # Replace references within the embedded Framework files with "internal" versions. -            for macos_lib2 in "${macos_libs[@]}" -            do -                # Since brew references both the non-symlinked and symlink paths of QT5, it needs to be duplicated. -                # /usr/local/Cellar/qt5/5.6.1-1/lib and /usr/local/opt/qt5/lib both resolve to the same files. -                # So the two lines below are effectively duplicates when resolved as a path, but as strings, they aren't. -                RM_FRAMEWORK_PART=$macos_lib2.framework/Versions/$QT_VERSION_NUM/$macos_lib2 -                install_name_tool -change \ -                    $QT_BREWS_PATH/lib/$RM_FRAMEWORK_PART \ -                    @executable_path/../Frameworks/$RM_FRAMEWORK_PART \ -                    "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART" -                install_name_tool -change \ -                    "$BREW_PATH/opt/qt5/lib/$RM_FRAMEWORK_PART" \ -                    @executable_path/../Frameworks/$RM_FRAMEWORK_PART \ -                    "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART" -            done +            # Since brew references both the non-symlinked and symlink paths of QT5, it needs to be duplicated. +            # /usr/local/Cellar/qt5/5.6.1-1/lib and /usr/local/opt/qt5/lib both resolve to the same files. +            # So the two lines below are effectively duplicates when resolved as a path, but as strings, they aren't. +            RM_FRAMEWORK_PART=$macos_lib2.framework/Versions/$QT_VERSION_NUM/$macos_lib2 +            install_name_tool -change \ +                $QT_BREWS_PATH/lib/$RM_FRAMEWORK_PART \ +                @executable_path/../Frameworks/$RM_FRAMEWORK_PART \ +                "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART" +            install_name_tool -change \ +                "$BREW_PATH/opt/qt5/lib/$RM_FRAMEWORK_PART" \ +                @executable_path/../Frameworks/$RM_FRAMEWORK_PART \ +                "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$SC_FRAMEWORK_PART"          done - -        # Handles `This application failed to start because it could not find or load the Qt platform plugin "cocoa"` -        # Which manifests itself as: -        # "Exception Type: EXC_CRASH (SIGABRT) | Exception Codes: 0x0000000000000000, 0x0000000000000000 | Exception Note: EXC_CORPSE_NOTIFY" -        # There may be more dylibs needed to be fixed... -        declare -a macos_plugins=("Plugins/platforms/libqcocoa.dylib") - -        for macos_lib in "${macos_plugins[@]}" +    done + +    # Handles `This application failed to start because it could not find or load the Qt platform plugin "cocoa"` +    # Which manifests itself as: +    # "Exception Type: EXC_CRASH (SIGABRT) | Exception Codes: 0x0000000000000000, 0x0000000000000000 | Exception Note: EXC_CORPSE_NOTIFY" +    # There may be more dylibs needed to be fixed... +    declare -a macos_plugins=("Plugins/platforms/libqcocoa.dylib") + +    for macos_lib in "${macos_plugins[@]}" +    do +        install_name_tool -id @executable_path/../$macos_lib "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib" +        for macos_lib2 in "${macos_libs[@]}"          do -            install_name_tool -id @executable_path/../$macos_lib "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib" -            for macos_lib2 in "${macos_libs[@]}" -            do -                RM_FRAMEWORK_PART=$macos_lib2.framework/Versions/$QT_VERSION_NUM/$macos_lib2 -                install_name_tool -change \ -                    $QT_BREWS_PATH/lib/$RM_FRAMEWORK_PART \ -                    @executable_path/../Frameworks/$RM_FRAMEWORK_PART \ -                    "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib" -                install_name_tool -change \ -                    "$BREW_PATH/opt/qt5/lib/$RM_FRAMEWORK_PART" \ -                    @executable_path/../Frameworks/$RM_FRAMEWORK_PART \ -                    "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib" -            done +            RM_FRAMEWORK_PART=$macos_lib2.framework/Versions/$QT_VERSION_NUM/$macos_lib2 +            install_name_tool -change \ +                $QT_BREWS_PATH/lib/$RM_FRAMEWORK_PART \ +                @executable_path/../Frameworks/$RM_FRAMEWORK_PART \ +                "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib" +            install_name_tool -change \ +                "$BREW_PATH/opt/qt5/lib/$RM_FRAMEWORK_PART" \ +                @executable_path/../Frameworks/$RM_FRAMEWORK_PART \ +                "${REV_NAME_ALT}citra-qt.app/Contents/$macos_lib"          done +    done -        for macos_lib in "${macos_libs[@]}" -        do -            # Debugging info for Travis-CI -            otool -L "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$macos_lib.framework/Versions/$QT_VERSION_NUM/$macos_lib" -        done +    for macos_lib in "${macos_libs[@]}" +    do +        # Debugging info for Travis-CI +        otool -L "${REV_NAME_ALT}citra-qt.app/Contents/Frameworks/$macos_lib.framework/Versions/$QT_VERSION_NUM/$macos_lib" +    done -        # Make the citra-qt.app application launch a debugging terminal. -        # Store away the actual binary -        mv ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt-bin +    # Make the citra-qt.app application launch a debugging terminal. +    # Store away the actual binary +    mv ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt-bin -        cat > ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt <<EOL +    cat > ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt <<EOL  #!/usr/bin/env bash  cd "\`dirname "\$0"\`"  chmod +x citra-qt-bin  open citra-qt-bin --args "\$@"  EOL -        # Content that will serve as the launching script for citra (within the .app folder) +    # Content that will serve as the launching script for citra (within the .app folder) -        # Make the launching script executable -        chmod +x ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt +    # Make the launching script executable +    chmod +x ${REV_NAME_ALT}citra-qt.app/Contents/MacOS/citra-qt -    fi +fi -    # Copy documentation -    cp license.txt "$REV_NAME" -    cp README.md "$REV_NAME" +# Copy documentation +cp license.txt "$REV_NAME" +cp README.md "$REV_NAME" -    tar $COMPRESSION_FLAGS "$ARCHIVE_NAME" "$REV_NAME" +tar $COMPRESSION_FLAGS "$ARCHIVE_NAME" "$REV_NAME" -    mv "$REV_NAME" nightly +mv "$REV_NAME" nightly -    7z a "$REV_NAME.7z" nightly +7z a "$REV_NAME.7z" nightly -    # move the compiled archive into the artifacts directory to be uploaded by travis releases -    mv "$ARCHIVE_NAME" artifacts/ -    mv "$REV_NAME.7z" artifacts/ -fi +# move the compiled archive into the artifacts directory to be uploaded by travis releases +mv "$ARCHIVE_NAME" artifacts/ +mv "$REV_NAME.7z" artifacts/ diff --git a/.travis.yml b/.travis.yml index 846758881..3da22eb5d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -37,4 +37,4 @@ deploy:    file: "artifacts/*"    skip_cleanup: true    on: -    repo: citra-emu/citra-nightly +    tags: true diff --git a/appveyor.yml b/appveyor.yml index d062a1f3e..eb4e7df87 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,9 +1,6 @@  # shallow clone  clone_depth: 10 -# don't build on tag -skip_tags: true -  cache:    - C:\ProgramData\chocolatey\bin -> appveyor.yml    - C:\ProgramData\chocolatey\lib -> appveyor.yml @@ -72,16 +69,11 @@ artifacts:  deploy:    provider: GitHub -  release: nightly-$(appveyor_build_number) -  description: | -    Citra nightly releases. Please choose the correct download for your operating system from the list below. - -    Short Commit Hash $(GITREV) +  release: $(appveyor_repo_tag_name)    auth_token:      secure: "dbpsMC/MgPKWFNJCXpQl4cR8FYhepkPLjgNp/pRMktZ8oLKTqPYErfreaIxb/4P1"    artifact: msvcupdate,msvcbuild    draft: false    prerelease: false    on: -    branch: master -    appveyor_repo_name: citra-emu/citra-nightly +    appveyor_repo_tag: true  | 
