# DESCRIPTION: GitLab CI/CD for libRetro (NOT FOR GitLab-proper) ############################################################################## ################################# BOILERPLATE ################################ ############################################################################## # Core definitions .core-defs: variables: GIT_SUBMODULE_STRATEGY: recursive CORENAME: panda3ds BASE_CORE_ARGS: -DBUILD_LIBRETRO_CORE=ON -DENABLE_USER_BUILD=ON -DENABLE_VULKAN=OFF -DENABLE_LUAJIT=OFF -DENABLE_DISCORD_RPC=OFF -DENABLE_METAL=OFF CORE_ARGS: ${BASE_CORE_ARGS} # Inclusion templates, required for the build to work include: ################################## DESKTOPS ################################ # Linux - project: 'libretro-infrastructure/ci-templates' file: '/linux-cmake.yml' # Windows - project: 'libretro-infrastructure/ci-templates' file: '/windows-cmake-mingw.yml' # MacOS - project: 'libretro-infrastructure/ci-templates' file: 'osx-cmake-x86.yml' # MacOS - project: 'libretro-infrastructure/ci-templates' file: 'osx-cmake-arm64.yml' ################################## CELLULAR ################################ # Android - project: 'libretro-infrastructure/ci-templates' file: '/android-cmake.yml' # iOS - project: 'libretro-infrastructure/ci-templates' file: '/ios-cmake.yml' # Stages for building stages: - build-prepare - build-static - build-shared ############################################################################## #################################### STAGES ################################## ############################################################################## # ################################### DESKTOPS ################################# # Linux 64-bit libretro-build-linux-x64: image: $CI_SERVER_HOST:5050/libretro-infrastructure/libretro-build-amd64-ubuntu:latest before_script: - export NUMPROC=$(($(nproc)/5)) - sudo apt-get update -qy - sudo apt-get install -qy software-properties-common - sudo add-apt-repository -y ppa:savoury1/build-tools - sudo add-apt-repository -y ppa:savoury1/gcc-defaults-12 - sudo apt-get update -qy - sudo apt-get install -qy cmake gcc-12 g++-12 variables: CC: /usr/bin/gcc-12 CXX: /usr/bin/g++-12 extends: - .libretro-linux-cmake-x86_64 - .core-defs # Windows 64-bit libretro-build-windows-x64: extends: - .libretro-windows-cmake-x86_64 - .core-defs # MacOS 64-bit libretro-build-osx-x64: tags: - mac-apple-silicon variables: CORE_ARGS: ${BASE_CORE_ARGS} -DCMAKE_OSX_ARCHITECTURES=x86_64 -DCRYPTOPP_AMD64=1 extends: - .libretro-osx-cmake-x86 - .core-defs # MacOS arm 64-bit libretro-build-osx-arm64: tags: - mac-apple-silicon extends: - .libretro-osx-cmake-arm64 - .core-defs ################################### CELLULAR ################################# # Android ARMv7a #android-armeabi-v7a: # extends: # - .libretro-android-cmake-armeabi-v7a # - .core-defs # Android ARMv8a # android-arm64-v8a: # extends: # - .libretro-android-cmake-arm64-v8a # - .core-defs # Android 64-bit x86 # android-x86_64: # extends: # - .libretro-android-cmake-x86_64 # - .core-defs # Android 32-bit x86 # android-x86: # extends: # - .libretro-android-cmake-x86 # - .core-defs # iOS # libretro-build-ios-arm64: # extends: # - .libretro-ios-cmake-arm64 # - .core-defs # variables: # CORE_ARGS: -DBUILD_LIBRETRO_CORE=ON -DBUILD_PLAY=OFF -DENABLE_AMAZON_S3=off -DBUILD_TESTS=OFF -DCMAKE_TOOLCHAIN_FILE=deps/Dependencies/cmake-ios/ios.cmake -DTARGET_IOS=ON # LIBNAME: ${CORENAME}_libretro_ios.dylib ################################### CONSOLES #################################