(Libretro) Add more platforms to gitlab

This commit is contained in:
twinaphex 2021-03-14 14:07:06 +01:00 committed by Stephen Anthony
parent fbf2271e73
commit df5497e760
2 changed files with 159 additions and 49 deletions

View File

@ -1,59 +1,159 @@
# DESCRIPTION: GitLab CI/CD for libRetro (NOT FOR GitLab-proper)
##############################################################################
################################# BOILERPLATE ################################
##############################################################################
# Core definitions
.core-defs: .core-defs:
variables: variables:
JNI_PATH: src/libretro JNI_PATH: src/libretro
MAKEFILE_PATH: src/libretro MAKEFILE_PATH: src/libretro
CORENAME: stella CORENAME: stella
# Inclusion templates, required for the build to work
include: include:
- template: Jobs/Code-Quality.gitlab-ci.yml ################################## DESKTOPS ################################
- project: 'libretro-infrastructure/ci-templates' # Windows 64-bit
file: '/libnx-static.yml'
- project: 'libretro-infrastructure/ci-templates'
file: '/linux-x64.yml'
- project: 'libretro-infrastructure/ci-templates' - project: 'libretro-infrastructure/ci-templates'
file: '/windows-x64-mingw.yml' file: '/windows-x64-mingw.yml'
# Windows 32-bit
- project: 'libretro-infrastructure/ci-templates'
file: '/windows-i686-mingw.yml'
# Linux 64-bit
- project: 'libretro-infrastructure/ci-templates'
file: '/linux-x64.yml'
# Linux 32-bit
- project: 'libretro-infrastructure/ci-templates'
file: '/linux-i686.yml'
# MacOS 64-bit
- project: 'libretro-infrastructure/ci-templates'
file: '/osx-x64.yml'
# MacOS ARM 64-bit
- project: 'libretro-infrastructure/ci-templates'
file: '/osx-arm64.yml'
################################## CELLULAR ################################
# Android
- project: 'libretro-infrastructure/ci-templates' - project: 'libretro-infrastructure/ci-templates'
file: '/android-jni.yml' file: '/android-jni.yml'
# iOS
- project: 'libretro-infrastructure/ci-templates'
file: '/ios-arm64.yml'
# iOS (armv7)
- project: 'libretro-infrastructure/ci-templates'
file: '/ios9.yml'
################################## CONSOLES ################################
# Nintendo Switch
- project: 'libretro-infrastructure/ci-templates'
file: '/libnx-static.yml'
# tvOS (AppleTV)
- project: 'libretro-infrastructure/ci-templates'
file: '/tvos-arm64.yml'
#################################### MISC ##################################
# Stages for building
stages: stages:
- build-prepare - build-prepare
- build-shared - build-shared
- build-static - build-static
- test
#Desktop ##############################################################################
#################################### STAGES ##################################
##############################################################################
#
################################### DESKTOPS #################################
# Windows 64-bit
libretro-build-windows-x64:
extends:
- .libretro-windows-x64-mingw-make-default
- .core-defs
# Windows 32-bit
libretro-build-windows-i686:
extends:
- .libretro-windows-i686-mingw-make-default
- .core-defs
# Linux 64-bit
libretro-build-linux-x64: libretro-build-linux-x64:
extends: extends:
- .libretro-linux-x64-make-default - .libretro-linux-x64-make-default
- .core-defs - .core-defs
libretro-build-windows-x64: # Linux 32-bit
libretro-build-linux-i686:
extends: extends:
- .libretro-windows-x64-mingw-make-default - .libretro-linux-i686-make-default
- .core-defs
# MacOS 64-bit
libretro-build-osx-x64:
extends:
- .libretro-osx-x64-make-default
- .core-defs
# MacOS ARM 64-bit
libretro-build-osx-arm64:
extends:
- .libretro-osx-arm64-make-default
- .core-defs - .core-defs
# Android ################################### CELLULAR #################################
# Android ARMv7a
android-armeabi-v7a: android-armeabi-v7a:
extends: extends:
- .libretro-android-jni-armeabi-v7a - .libretro-android-jni-armeabi-v7a
- .core-defs - .core-defs
# Android ARMv8a
android-arm64-v8a: android-arm64-v8a:
extends: extends:
- .libretro-android-jni-arm64-v8a - .libretro-android-jni-arm64-v8a
- .core-defs - .core-defs
# Android 64-bit x86
android-x86_64: android-x86_64:
extends: extends:
- .libretro-android-jni-x86_64 - .libretro-android-jni-x86_64
- .core-defs - .core-defs
# Android 32-bit x86
android-x86: android-x86:
extends: extends:
- .libretro-android-jni-x86 - .libretro-android-jni-x86
- .core-defs - .core-defs
# Static # iOS
libretro-build-ios-arm64:
extends:
- .libretro-ios-arm64-make-default
- .core-defs
# iOS (armv7) [iOS 9 and up]
libretro-build-ios9:
extends:
- .libretro-ios9-make-default
- .core-defs
# tvOS
libretro-build-tvos-arm64:
extends:
- .libretro-tvos-arm64-make-default
- .core-defs
################################### CONSOLES #################################
# Nintendo Switch
libretro-build-libnx-aarch64: libretro-build-libnx-aarch64:
extends: extends:
- .libretro-libnx-static-retroarch-master - .libretro-libnx-static-retroarch-master

View File

@ -22,6 +22,9 @@ ifeq ($(platform),)
ifeq ($(shell uname -p),powerpc) ifeq ($(shell uname -p),powerpc)
arch = ppc arch = ppc
endif endif
ifeq ($(shell uname -p),arm)
arch = arm
endif
else ifneq ($(findstring win,$(shell uname -s)),) else ifneq ($(findstring win,$(shell uname -s)),)
platform = win platform = win
endif endif
@ -83,6 +86,7 @@ else ifeq ($(platform), osx)
TARGET := $(TARGET_NAME)_libretro.dylib TARGET := $(TARGET_NAME)_libretro.dylib
fpic := -fPIC fpic := -fPIC
SHARED := -dynamiclib SHARED := -dynamiclib
MINVERSION :=
arch = intel arch = intel
ifeq ($(shell uname -p),powerpc) ifeq ($(shell uname -p),powerpc)
arch = ppc arch = ppc
@ -94,8 +98,51 @@ else ifeq ($(platform), osx)
OSX_GT_MOJAVE = $(shell (( $(OSXVER) >= 14)) && echo "YES") OSX_GT_MOJAVE = $(shell (( $(OSXVER) >= 14)) && echo "YES")
ifneq ($(OSX_GT_MOJAVE),YES) ifneq ($(OSX_GT_MOJAVE),YES)
#this breaks compiling on Mac OS Mojave #this breaks compiling on Mac OS Mojave
fpic += -mmacosx-version-min=10.7 MINVERSION = -mmacosx-version-min=10.7
endif endif
fpic += $(MINVERSION)
# iOS
else ifneq (,$(findstring ios,$(platform)))
CXXFLAGS += $(LTO) $(PTHREAD_FLAGS) -stdlib=libc++
LDFLAGS += $(LTO) $(PTHREAD_FLAGS) -stdlib=libc++
TARGET := $(TARGET_NAME)_libretro_ios.dylib
fpic := -fPIC
SHARED := -dynamiclib
MINVERSION :=
ifeq ($(IOSSDK),)
IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path)
endif
ifeq ($(platform),ios-arm64)
CC = cc -arch arm64 -isysroot $(IOSSDK)
CXX = c++ -arch arm64 -isysroot $(IOSSDK)
else
CC = cc -arch armv7 -isysroot $(IOSSDK)
CXX = c++ -arch armv7 -isysroot $(IOSSDK)
endif
CXXFLAGS += -DIOS -DARM
ifeq ($(platform),$(filter $(platform),ios9 ios-arm64))
MINVERSION = -miphoneos-version-min=8.0
else
MINVERSION = -miphoneos-version-min=5.0
endif
CXXFLAGS += $(MINVERSION)
# tvOS
else ifeq ($(platform), tvos-arm64)
CXXFLAGS += $(LTO) $(PTHREAD_FLAGS) -stdlib=libc++
LDFLAGS += $(LTO) $(PTHREAD_FLAGS) -stdlib=libc++
TARGET := $(TARGET_NAME)_libretro_tvos.dylib
fpic := -fPIC
SHARED := -dynamiclib
ifeq ($(IOSSDK),)
IOSSDK := $(shell xcodebuild -version -sdk appletvos Path)
endif
CXXFLAGS += -DIOS
CXXFLAGS += -DARM
CC = cc -arch arm64 -isysroot $(IOSSDK)
CXX = c++ -arch arm64 -isysroot $(IOSSDK)
# Nintendo Switch (libnx) # Nintendo Switch (libnx)
else ifeq ($(platform), libnx) else ifeq ($(platform), libnx)
@ -138,43 +185,6 @@ else ifeq ($(platform), classic_armv7_a7)
endif endif
endif endif
# iOS
else ifneq (,$(findstring ios,$(platform)))
CXXFLAGS += $(LTO) $(PTHREAD_FLAGS) -stdlib=libc++
LDFLAGS += $(LTO) $(PTHREAD_FLAGS) -stdlib=libc++
TARGET := $(TARGET_NAME)_libretro_ios.dylib
fpic := -fPIC
SHARED := -dynamiclib
ifeq ($(IOSSDK),)
IOSSDK := $(shell xcodebuild -version -sdk iphoneos Path)
endif
ifeq ($(platform),ios-arm64)
CXX = clang++ -arch arm64 -isysroot $(IOSSDK)
else
CXX = clang++ -arch armv7 -isysroot $(IOSSDK)
endif
CXXFLAGS += -DIOS
CXXFLAGS += -DARM
ifeq ($(platform),$(filter $(platform),ios9 ios-arm64))
CXX += -miphoneos-version-min=8.0
CXXFLAGS += -miphoneos-version-min=8.0
else
CXX += -miphoneos-version-min=5.0
CXXFLAGS += -miphoneos-version-min=5.0
endif
# tvOS
else ifeq ($(platform), tvos-arm64)
CXXFLAGS += $(LTO) $(PTHREAD_FLAGS) -stdlib=libc++
LDFLAGS += $(LTO) $(PTHREAD_FLAGS) -stdlib=libc++
TARGET := $(TARGET_NAME)_libretro_tvos.dylib
fpic := -fPIC
SHARED := -dynamiclib
ifeq ($(IOSSDK),)
IOSSDK := $(shell xcodebuild -version -sdk appletvos Path)
endif
CXXFLAGS += -DIOS
CXXFLAGS += -DARM
# Theos # Theos
else ifeq ($(platform), theos_ios) else ifeq ($(platform), theos_ios)