image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-amd64-ubuntu:latest stages: - build-prepare - build - prepare-for-static-cores - trigger-static-cores build-retroarch-windows-x64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-mxe-win64-cross:gcc10 stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch.exe - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "MOC=/usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/moc ./configure --host=x86_64-w64-mingw32.shared" - "make -j$NUMPROC" - if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch.exe; fi - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist" - "cd libretro-common/audio/dsp_filters && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release strip && cd -" - "cp -f libretro-common/audio/dsp_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cd gfx/video_filters && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=x86_64-w64-mingw32.static-gcc build=release strip && cd -" - "cp -f gfx/video_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f retroarch.cfg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/retroarch.default.cfg" - "echo -e '[Paths]\nPlugins = ./' > ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/qt.conf" - "/bin/bash /usr/lib/mxe/tools/copydlldeps.sh --infile retroarch.exe --destdir ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/ --recursivesrcdir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/bearer/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/iconengines/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/imageformats/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/platforms/ --enforcedir /usr/lib/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/styles/ --copy --objdump x86_64-w64-mingw32.shared-objdump" - "cp -f nvdaControllerClient64.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/nvdaControllerClient64.dll" - "rm -f ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/opengl32.dll" build-retroarch-windows-i686: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-mxe-win32-cross:gcc10 stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch.exe - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "MOC=/usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/bin/moc ./configure --host=i686-w64-mingw32.shared" - "make -j$NUMPROC" - if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch.exe; fi - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist" - "cd libretro-common/audio/dsp_filters && make -j$NUMPROC platform=win compiler=i686-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=i686-w64-mingw32.static-gcc build=release strip && cd -" - "cp -f libretro-common/audio/dsp_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cd gfx/video_filters && make -j$NUMPROC platform=win compiler=i686-w64-mingw32.static-gcc build=release && make -j$NUMPROC platform=win compiler=i686-w64-mingw32.static-gcc build=release strip && cd -" - "cp -f gfx/video_filters/*.dll ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f retroarch.cfg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/retroarch.default.cfg" - "echo -e '[Paths]\nPlugins = ./' > ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/qt.conf" - "/bin/bash /usr/lib/mxe/tools/copydlldeps.sh --infile retroarch.exe --destdir ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/ --recursivesrcdir /usr/lib/mxe/usr/i686-w64-mingw32.shared/ --enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/bearer/ --enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/iconengines/ --enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/imageformats/ --enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/platforms/ --enforcedir /usr/lib/mxe/usr/i686-w64-mingw32.shared/qt5/plugins/styles/ --copy --objdump i686-w64-mingw32.shared-objdump" - "rm -f ${MEDIA_PATH}/${CI_PROJECT_NAME}/redist/opengl32.dll" build-retroarch-windows-msvc10-x64: tags: - msvc2010 stage: build variables: MEDIA_PATH: .media MSYSTEM: MINGW64 ARCH: x86_64 MSYS_BIN_DIR: C:\msys64\usr\bin SDK_BIN_DIR: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin RCEDIT_BIN_DIR: C:\Program Files\rcedit PEDEPS_BIN_DIR: C:\Program Files\pedeps-0.1.9-win64\bin MSVC_PLATFORM: windows_msvc2010_x64 before_script: - $Env:HOME = "." - $Env:Path += -join(";", "$Env:MSYS_BIN_DIR", ";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR") artifacts: paths: - retroarch.exe - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - | $ErrorActionPreference = 'Stop' # Build RetroArch bash.exe -l -c "make -f Makefile.griffin platform=$Env:MSVC_PLATFORM" if ($LastExitCode -ne 0){throw "Failed to build RetroArch"} mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1" if ($LastExitCode -ne 0){throw "Failed to add manifest to RetroArch binary"} rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico" if ($LastExitCode -ne 0){throw "Failed to set icon of RetroArch binary"} # Create .media subdirectories New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" -ItemType Directory # Copy audio/video filters Get-ChildItem -Path "libretro-common/audio/dsp_filters/*" -Include *.dsp | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" Get-ChildItem -Path "gfx/video_filters/*" -Include *.filt | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" # Copy default config file Copy-Item -Path "retroarch.cfg" -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg/retroarch.default.cfg" # Copy dll dependencies # (note that msvc builds should not have any, but this # may change in the future) copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" if ($LastExitCode -ne 0){throw "Failed to copy RetroArch dependencies"} Remove-Item "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist/retroarch.exe" -ErrorAction Ignore build-retroarch-windows-msvc10-i686: tags: - msvc2010 stage: build variables: MEDIA_PATH: .media MSYSTEM: MINGW32 ARCH: x86 MSYS_BIN_DIR: C:\msys64\usr\bin SDK_BIN_DIR: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin RCEDIT_BIN_DIR: C:\Program Files\rcedit PEDEPS_BIN_DIR: C:\Program Files\pedeps-0.1.9-win64\bin MSVC_PLATFORM: windows_msvc2010_x86 before_script: - $Env:HOME = "." - $Env:Path += -join(";", "$Env:MSYS_BIN_DIR", ";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR") artifacts: paths: - retroarch.exe - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - | $ErrorActionPreference = 'Stop' # Build RetroArch bash.exe -l -c "make -f Makefile.griffin platform=$Env:MSVC_PLATFORM" if ($LastExitCode -ne 0){throw "Failed to build RetroArch"} mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1" if ($LastExitCode -ne 0){throw "Failed to add manifest to RetroArch binary"} rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico" if ($LastExitCode -ne 0){throw "Failed to set icon of RetroArch binary"} # Create .media subdirectories New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" -ItemType Directory # Copy audio/video filters Get-ChildItem -Path "libretro-common/audio/dsp_filters/*" -Include *.dsp | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" Get-ChildItem -Path "gfx/video_filters/*" -Include *.filt | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" # Copy default config file Copy-Item -Path "retroarch.cfg" -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg/retroarch.default.cfg" # Copy dll dependencies # (note that msvc builds should not have any, but this # may change in the future) copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" if ($LastExitCode -ne 0){throw "Failed to copy RetroArch dependencies"} Remove-Item "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist/retroarch.exe" -ErrorAction Ignore build-retroarch-windows-msvc05-i686: tags: - win10 stage: build variables: MEDIA_PATH: .media MSYSTEM: MINGW32 ARCH: x86 MSYS_BIN_DIR: C:\msys64\usr\bin SDK_BIN_DIR: C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin RCEDIT_BIN_DIR: C:\Program Files\rcedit PEDEPS_BIN_DIR: C:\Program Files\pedeps-0.1.9-win64\bin VS80COMNTOOLS: C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\Tools\ MSVC_PLATFORM: windows_msvc2005_x86 before_script: - $Env:HOME = "." - $Env:Path += -join(";", "$Env:MSYS_BIN_DIR", ";", "$Env:SDK_BIN_DIR", ";", "$Env:RCEDIT_BIN_DIR", ";", "$Env:PEDEPS_BIN_DIR") artifacts: paths: - retroarch.exe - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - | $ErrorActionPreference = 'Stop' # Build RetroArch bash.exe -l -c "make -f Makefile.griffin platform=$Env:MSVC_PLATFORM" if ($LastExitCode -ne 0){throw "Failed to build RetroArch"} mt.exe -nologo -manifest "retroarch.exe.manifest" -outputresource:"retroarch.exe;#1" if ($LastExitCode -ne 0){throw "Failed to add manifest to RetroArch binary"} rcedit-x64.exe "retroarch.exe" --set-icon "media\retroarch.ico" if ($LastExitCode -ne 0){throw "Failed to set icon of RetroArch binary"} # Create .media subdirectories New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg" -ItemType Directory New-Item -Path "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" -ItemType Directory # Copy audio/video filters Get-ChildItem -Path "libretro-common/audio/dsp_filters/*" -Include *.dsp | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/audio" Get-ChildItem -Path "gfx/video_filters/*" -Include *.filt | Copy-Item -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/filters/video" # Copy default config file Copy-Item -Path "retroarch.cfg" -Destination "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/pkg/retroarch.default.cfg" # Copy dll dependencies # (note that msvc builds should not have any, but this # may change in the future) copypedeps.exe -r retroarch.exe "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist" if ($LastExitCode -ne 0){throw "Failed to copy RetroArch dependencies"} Remove-Item "$Env:MEDIA_PATH/$Env:CI_PROJECT_NAME/redist/retroarch.exe" -ErrorAction Ignore build-retroarch-linux-x64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-amd64-ubuntu:xenial-gcc9 stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch - retroarch_qt - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: # Qt build - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt" - "./configure --prefix=/usr" - "make -j$NUMPROC" - if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch; fi - "make install DESTDIR=${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt prefix=/usr" - "rm -rf ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt/etc" - "cd ${MEDIA_PATH}/${CI_PROJECT_NAME}/ && tar -czf AppDirQt.tar.gz AppDirQt && rm -rf AppDirQt && cd -" - "mv -f retroarch retroarch_qt" # Non-Qt build - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir" - "make clean" - "./configure --disable-qt --prefix=/usr" - "make -j$NUMPROC" - if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch; fi - "make install DESTDIR=${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir prefix=/usr" - "rm -rf ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir/etc" - "cd ${MEDIA_PATH}/${CI_PROJECT_NAME}/ && tar -czf AppDir.tar.gz AppDir && rm -rf AppDir && cd -" # Filters - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cd libretro-common/audio/dsp_filters && make -j$NUMPROC build=release && make -j$NUMPROC build=release strip && cd -" - "cp -f libretro-common/audio/dsp_filters/*.so ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cd gfx/video_filters && make -j$NUMPROC build=release && make -j$NUMPROC build=release strip && cd -" - "cp -f gfx/video_filters/*.so ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-retroarch-linux-i686: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-i386-ubuntu:xenial-gcc9 stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: # Qt build - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt" - "./configure --prefix=/usr" - "make -j$NUMPROC" - if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch; fi - "make install DESTDIR=${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt prefix=/usr" - "rm -rf ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDirQt/etc" - "cd ${MEDIA_PATH}/${CI_PROJECT_NAME}/ && tar -czf AppDirQt.tar.gz AppDirQt && rm -rf AppDirQt && cd -" - "mv -f retroarch retroarch_qt" # Non-Qt build - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir" - "make clean" - "./configure --disable-qt --prefix=/usr" - "make -j$NUMPROC" - if [ $STRIP_BIN -eq 1 ]; then strip --strip-unneeded retroarch; fi - "make install DESTDIR=${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir prefix=/usr" - "rm -rf ${MEDIA_PATH}/${CI_PROJECT_NAME}/AppDir/etc" - "cd ${MEDIA_PATH}/${CI_PROJECT_NAME}/ && tar -czf AppDir.tar.gz AppDir && rm -rf AppDir && cd -" # Filters - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cd libretro-common/audio/dsp_filters && make -j$NUMPROC build=release && make -j$NUMPROC build=release strip && cd -" - "cp -f libretro-common/audio/dsp_filters/*.so ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cd gfx/video_filters && make -j$NUMPROC build=release && make -j$NUMPROC build=release strip && cd -" - "cp -f gfx/video_filters/*.so ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" .build-retroarch-macos-xcode: # Metal/Universal x86_64 arm64 is default tags: - macosx-packaging stage: build variables: XCARCHIVE_PATH: pkg/apple/build/RetroArchUniversal XCPROJECT_NAME: RetroArch_Metal XCCONFIG: GitLabCI.xcconfig artifacts: paths: - ${XCPROJECT_NAME}.zip - retroarch-repo/ expire_in: 10 min dependencies: [] script: - xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -config Release -scheme RetroArch -archivePath ${XCARCHIVE_PATH} -xcconfig pkg/apple/${XCCONFIG} archive - xcodebuild -exportArchive -archivePath ${XCARCHIVE_PATH}.xcarchive -exportPath . -exportOptionsPlist pkg/apple/OSX/ExportOptions.plist - ditto -c -k --sequesterRsrc --keepParent RetroArch.app ${XCPROJECT_NAME}.zip - mkdir .retroarch-repo - "cp -r ./* .retroarch-repo" - "mv .retroarch-repo/ retroarch-repo/" # Mac OS Universal, Metal build-retroarch-osx-universal-metal: extends: .build-retroarch-macos-xcode build-retroarch-osx-opengl-x64: extends: .build-retroarch-macos-xcode variables: XCARCHIVE_PATH: pkg/apple/build/RetroArchOpenGL XCPROJECT_NAME: RetroArch XCCONFIG: OpenGL_GitLabCI.xcconfig #build-retroarch-osx-ppc: # stage: build # artifacts: # paths: # - ${XCPROJECT_NAME}.zip # - retroarch-repo/ # expire_in: 10 min # dependencies: [] # variables: # XCPROJECT_NAME: RetroArch # XCCONFIG: OpenGL_GitLabCI.xcconfig # tags: # - macosx-legacy # script: # - xcodebuild -target RetroArch -configuration Release -project pkg/apple/RetroArch_PPC.xcodeproj ONLY_ACTIVE_ARCH=NO # - pushd pkg/apple/build/Release/ # - ditto -c -k --sequesterRsrc --keepParent RetroArch.app ${XCPROJECT_NAME}.zip # - popd # - mv pkg/apple/build/Release/RetroArch.zip ${XCPROJECT_NAME}.zip # - mkdir .retroarch-repo # - "cp -r ./* .retroarch-repo" # - "mv .retroarch-repo/ retroarch-repo/" build-retroarch-ios-arm64: extends: .build-retroarch-macos-xcode tags: - mac-apple-silicon variables: XCPROJECT_NAME: RetroArch_iOS13 XCCONFIG: GitLabCI.xcconfig XCSCHEME: "RetroArch iOS Release" XCDESTINATION: "generic/platform=iOS" artifacts: paths: - retroarch-repo/ expire_in: 10 min script: - xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -destination ${XCDESTINATION} -config Release -scheme "${XCSCHEME}" -xcconfig pkg/apple/iOS/${XCCONFIG} build - mkdir .retroarch-repo - "cp -r ./* .retroarch-repo" - "mv .retroarch-repo/ retroarch-repo/" build-retroarch-ios9: extends: .build-retroarch-macos-xcode variables: XCPROJECT_NAME: RetroArch_iOS9 XCCONFIG: GitLabCI.xcconfig XCSCHEME: "RetroArchiOS9" artifacts: paths: - retroarch-repo/ expire_in: 10 min script: - xcodebuild -project pkg/apple/${XCPROJECT_NAME}.xcodeproj -config Release -scheme "${XCSCHEME}" -xcconfig pkg/apple/iOS/GitLabCI.xcconfig build - mkdir .retroarch-repo - "cp -r ./* .retroarch-repo" - "mv .retroarch-repo/ retroarch-repo/" build-retroarch-tvos-arm64: extends: build-retroarch-ios-arm64 variables: XCSCHEME: "RetroArch tvOS Release" XCDESTINATION: "generic/platform=tvOS" build-retroarch-dingux-mips32: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:latest stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch - retroarch_rg350.opk - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -j$NUMPROC -f Makefile.rg350" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-retroarch-dingux-odbeta-mips32: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:odbeta stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch - retroarch_rg350_odbeta.opk - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -j$NUMPROC -f Makefile.rg350_odbeta" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-retroarch-rs90-odbeta-mips32: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:odbeta stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch - retroarch_rs90_odbeta.opk - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -j$NUMPROC -f Makefile.rs90" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-retroarch-retrofw-mips32: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:odbeta stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch - retroarch_retrofw.opk - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -j$NUMPROC -f Makefile.retrofw" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-retroarch-miyoo-arm32: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-dingux:latest stage: build variables: MEDIA_PATH: .media STRIP_BIN: 1 before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -j$NUMPROC -f Makefile.miyoo" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f pkg/miyoo/20a-retroarch ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-retroarch-android-normal: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - retroarch-precompiled/ expire_in: 10 min script: script: - | set -e cd pkg/android/phoenix ./gradlew assembleNormalRelease cd - mkdir .retroarch-precompiled cp -r ./* .retroarch-precompiled/ mv .retroarch-precompiled/ retroarch-precompiled/ build-retroarch-android-aarch64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - retroarch-precompiled/ expire_in: 10 min script: - | set -e cd pkg/android/phoenix ./gradlew assembleAarch64Release cd - mkdir .retroarch-precompiled cp -r ./* .retroarch-precompiled/ mv .retroarch-precompiled/ retroarch-precompiled/ build-retroarch-android-ra32: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - retroarch-precompiled/ expire_in: 10 min script: - | set -e cd pkg/android/phoenix ./gradlew assembleRa32Release cd - mkdir .retroarch-precompiled cp -r ./* .retroarch-precompiled/ mv .retroarch-precompiled/ retroarch-precompiled/ build-retroarch-android-playstore-normal: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - retroarch-precompiled/ expire_in: 10 min script: - | set -e cd pkg/android/phoenix ./gradlew bundlePlayStoreNormalRelease cd - mkdir .retroarch-precompiled cp -r ./* .retroarch-precompiled/ mv .retroarch-precompiled/ retroarch-precompiled/ build-retroarch-android-playstore-plus: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-android:latest stage: build artifacts: paths: - retroarch-precompiled/ expire_in: 10 min script: - | set -e cd pkg/android/phoenix ./gradlew bundlePlayStorePlusRelease cd - mkdir .retroarch-precompiled cp -r ./* .retroarch-precompiled/ mv .retroarch-precompiled/ retroarch-precompiled/ build-static-retroarch-libnx-aarch64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-libnx-devkitpro:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Static dummy builds without a core so its a good check if it properly builds - build-static-retroarch-dummy-libnx-aarch64 script: # Allow failure since we don't have a core - "make -f Makefile.libnx -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-libnx-aarch64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-libnx-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch_switch.nro - retroarch_switch.elf - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -f Makefile.libnx -j$NUMPROC HAVE_STATIC_DUMMY=1" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f pkg/libnx/retroarch.jpg ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-psp: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-psp script: # We need to boostrap before compile - "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)" # Allow failure since we don't have a core - "make -f Makefile.psp1 -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-psp: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psp:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - EBOOT.PBP - kernel_functions.prx - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "(cd bootstrap/psp1/kernel_functions_prx/ && make && cd -)" - "make -f Makefile.psp1.salamander -j$NUMPROC" - "make -C bootstrap/psp1/kernel_functions_prx/" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f pkg/psp1/ICON0.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f pkg/psp1/PIC1.PNG ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-vita: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-vita:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ - retroarch-precompiled-gl/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-vita script: # Allow failure since we don't have a core - "make -f Makefile.vita -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "make -f Makefile.vita clean" - "HAVE_VITAGLES=1 make -f Makefile.vita -j$NUMPROC ||:" - "mkdir .retroarch-precompiled-gl" - "cp -r ./* .retroarch-precompiled-gl/" - "mv .retroarch-precompiled/ retroarch-precompiled/" - "mv .retroarch-precompiled-gl/ retroarch-precompiled-gl/" build-static-retroarch-dummy-vita: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-vita:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - eboot.bin - param.sfo - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -f Makefile.vita.salamander -j$NUMPROC" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -fr pkg/vita/* ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-ps2: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-ps2:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-ps2 script: # Allow failure since we don't have a core - "make -f Makefile.ps2 -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-ps2: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-ps2:latest stage: build before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - raboot.elf expire_in: 10 min dependencies: [] script: - "make -f Makefile.ps2.salamander -j$NUMPROC release" build-static-retroarch-psl1ght: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psl1ght:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-psl1ght script: # Allow failure since we don't have a core - "make -f Makefile.psl1ght -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-psl1ght: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-psl1ght:latest stage: build before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch_psl1ght_salamander.elf expire_in: 10 min dependencies: [] script: - "make -f Makefile.psl1ght.salamander -j$NUMPROC create-salamander" build-static-retroarch-orbis: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-orbis:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-orbis script: # Allow failure since we don't have a core - "make -f Makefile.orbis -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-orbis: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-orbis:latest stage: build before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch_orbis.self expire_in: 10 min dependencies: [] script: - "make -f Makefile.orbis -j$NUMPROC HAVE_STATIC_DUMMY=1" build-static-retroarch-djgpp: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-djgpp-build-container:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: [] script: # Allow failure since we don't have a core - "make -f Makefile.dos -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-ctr: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-ctr script: # Allow failure since we don't have a core - "make -f Makefile.ctr -j$NUMPROC USE_CTRULIB_2=1 ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-ctr-legacy: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:ctr-legacy stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: [] script: # Allow failure since we don't have a core - "make -f Makefile.ctr -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-ctr: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch_3ds.cia - RetroArch.3dsx - RetroArch.smdh - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -f Makefile.ctr.salamander -j$NUMPROC USE_CTRULIB_2=1" - "mv -f retroarch_3ds_salamander.cia retroarch_3ds.cia" - "mv -f retroarch_3ds_salamander.3dsx RetroArch.3dsx" - "mv -f retroarch_3ds_salamander.smdh RetroArch.smdh" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-static-retroarch-wiiu: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-wiiu:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-wiiu script: # Allow failure since we don't have a core - "make -f Makefile.wiiu -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-wiiu: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-wiiu:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch.rpx - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -f Makefile.wiiu -j$NUMPROC SALAMANDER_BUILD=1" - "mv -f retroarch_wiiu_salamander.rpx retroarch.rpx" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f pkg/wiiu/icon.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f pkg/wiiu/meta.xml ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-wii: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-wii script: # Allow failure since we don't have a core - "make -f Makefile.wii -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-wii: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - boot.dol - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "make -f Makefile.wii.salamander -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0" - "mv -f retroarch-salamander_wii.dol boot.dol" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f pkg/wii/icon.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f pkg/wii/meta.xml ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" build-static-retroarch-ngc: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-ngc script: # Allow failure since we don't have a core - "make -f Makefile.ngc -j$NUMPROC EXTERNAL_LIBOGC=1 GX_PTHREAD_LEGACY=0 ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-ngc: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-devkitpro:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" build-static-retroarch-emscripten: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-emscripten:latest stage: prepare-for-static-cores before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - retroarch-precompiled/ expire_in: 10 min dependencies: [] needs: # Dummy build requires no core - build-static-retroarch-dummy-emscripten script: # Allow failure since we don't have a core - "emmake make -f Makefile.emscripten -j$NUMPROC ||:" - "mkdir .retroarch-precompiled" - "cp -r ./* .retroarch-precompiled/" - "mv .retroarch-precompiled/ retroarch-precompiled/" build-static-retroarch-dummy-emscripten: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-amd64-ubuntu:latest stage: build variables: MEDIA_PATH: .media before_script: - export NUMPROC=$(($(nproc)/3)) artifacts: paths: - ${MEDIA_PATH} expire_in: 10 min dependencies: [] script: - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "mkdir -p ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f libretro-common/audio/dsp_filters/*.dsp ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/audio" - "cp -f gfx/video_filters/*.filt ${MEDIA_PATH}/${CI_PROJECT_NAME}/filters/video" - "cp -rf pkg/emscripten/libretro ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg" - "cp -f media/canvas.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/icon_dark.ico ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/icon_light.ico ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/invader_dark.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/invader_light.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/libretro-logo.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/retroarch-16x16.ico ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/retroarch-16x16.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/retroarch-96x96.png ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" - "cp -f media/retroarch.ico ${MEDIA_PATH}/${CI_PROJECT_NAME}/pkg/media" trigger_static-cores: stage: trigger-static-cores needs: - build-static-retroarch-libnx-aarch64 - build-static-retroarch-psp - build-static-retroarch-vita - build-static-retroarch-ps2 - build-static-retroarch-psl1ght - build-static-retroarch-orbis - build-static-retroarch-ctr - build-static-retroarch-ctr-legacy - build-static-retroarch-wiiu - build-static-retroarch-wii - build-static-retroarch-ngc - build-static-retroarch-emscripten dependencies: [] script: # Dummy for now - /bin/true