summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandre Bouvier2022-03-16 01:54:47 +0100
committerAlexandre Bouvier2022-03-16 02:11:26 +0100
commit20c3bca8f52a52ace609bea90642876b9485e9fa (patch)
treecf8b1294263d20eb376a78ae5d0c2ae4e3690571
parent7ded5de5bdadfa6e8332254258250369786cafe8 (diff)
downloadaur-20c3bca8f52a52ace609bea90642876b9485e9fa.tar.gz
update to 1.2.r245.g514eedbc
* use upstream repo * unbundle glm * unbundle libchdr * unbundle libzip * unbundle miniupnpc * unbundle xbyak * unbundle xxhash * unbundle zlib * remove ccache
-rw-r--r--.SRCINFO25
-rw-r--r--PKGBUILD65
-rw-r--r--libretro-flycast-unbundle-libs.patch101
3 files changed, 165 insertions, 26 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 4ca2818ccecd..38d185639616 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,24 +1,35 @@
pkgbase = libretro-flycast-git
pkgdesc = Sega Dreamcast core
- pkgver = r4464.4a913e06
+ pkgver = 1.2.r245.g514eedbc
pkgrel = 1
- url = https://github.com/libretro/flycast
+ url = https://github.com/flyinghead/flycast
arch = i686
arch = x86_64
groups = libretro
license = GPL2
+ makedepends = cmake
makedepends = git
+ makedepends = glm
+ makedepends = libchdr
makedepends = libglvnd
+ makedepends = libzip
+ makedepends = miniupnpc
+ makedepends = xbyak
+ makedepends = xxhash
makedepends = zlib
- depends = libchdr
depends = libgl
depends = libretro-core-info
- depends = libzip
- depends = xxhash
provides = libretro-flycast
conflicts = libretro-flycast
- options = !lto
- source = libretro-flycast::git+https://github.com/libretro/flycast.git
+ source = git+https://github.com/flyinghead/flycast.git
+ source = libretro-flycast-unbundle-libs.patch
b2sums = SKIP
+ b2sums = 602341ffaabf36382565ce780b88419feb6bf46ec7e2600631ead6a65c6d07edbdfbaea8c99ae9e53b85d260370eda0c06142b8b3149468508c4ad592a247a8d
pkgname = libretro-flycast-git
+ depends = libgl
+ depends = libretro-core-info
+ depends = libchdr.so
+ depends = libminiupnpc.so
+ depends = libxxhash.so
+ depends = libzip.so
diff --git a/PKGBUILD b/PKGBUILD
index f9579143cf8f..444a497e17ed 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -1,41 +1,68 @@
# Maintainer: Alexandre Bouvier <contact@amb.tf>
# Contributor: Maxime Gauduin <alucryd@archlinux.org>
-_pkgname=libretro-flycast
+_reponame=flycast
+_pkgname=libretro-$_reponame
pkgname=$_pkgname-git
-pkgver=r4464.4a913e06
+pkgver=1.2.r245.g514eedbc
pkgrel=1
-pkgdesc='Sega Dreamcast core'
+pkgdesc="Sega Dreamcast core"
arch=('i686' 'x86_64')
-url="https://github.com/libretro/flycast"
+url="https://github.com/flyinghead/$_reponame"
license=('GPL2')
groups=('libretro')
-depends=('libchdr' 'libgl' 'libretro-core-info' 'libzip' 'xxhash')
-makedepends=('git' 'libglvnd' 'zlib')
+depends=('libgl' 'libretro-core-info')
+makedepends=(
+ 'cmake'
+ 'git'
+ 'glm'
+ 'libchdr'
+ 'libglvnd'
+ 'libzip'
+ 'miniupnpc'
+ 'xbyak'
+ 'xxhash'
+ 'zlib'
+)
provides=("$_pkgname")
conflicts=("$_pkgname")
-options=('!lto') # https://github.com/libretro/flycast/issues/892
-source=("$_pkgname::git+$url.git")
-b2sums=('SKIP')
+source=(
+ "git+$url.git"
+ "$_pkgname-unbundle-libs.patch"
+)
+b2sums=(
+ 'SKIP'
+ '602341ffaabf36382565ce780b88419feb6bf46ec7e2600631ead6a65c6d07edbdfbaea8c99ae9e53b85d260370eda0c06142b8b3149468508c4ad592a247a8d'
+)
pkgver() {
- cd $_pkgname
- printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)"
+ cd $_reponame
+ git describe --long --tags | sed 's/^v//;s/\([^-]*-g\)/r\1/;s/-/./g'
}
prepare() {
- sed -E 's/^(\s*(CFLAGS|CXXFLAGS|LDFLAGS)\s*):=/\1+=/' -i $_pkgname/Makefile
+ cd $_reponame
+ patch -Np1 < ../$_pkgname-unbundle-libs.patch
+ rm -r core/deps/libretro-common/include/libchdr
}
build() {
- make -C $_pkgname \
- HAVE_OIT=1 \
- SYSTEM_LIBCHDR=1 \
- SYSTEM_LIBZIP=1 \
- SYSTEM_XXHASH=1 \
- SYSTEM_ZLIB=1
+ cd $_reponame
+ cmake -B ../build \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_BINDIR=lib/libretro \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIBRETRO=ON \
+ -Wno-dev
+ cmake --build ../build
}
package() {
+ depends+=(
+ 'libchdr.so'
+ 'libminiupnpc.so'
+ 'libxxhash.so'
+ 'libzip.so'
+ )
# shellcheck disable=SC2154
- install -Dm644 -t "$pkgdir"/usr/lib/libretro $_pkgname/flycast_libretro.so
+ DESTDIR="$pkgdir" cmake --install build
}
diff --git a/libretro-flycast-unbundle-libs.patch b/libretro-flycast-unbundle-libs.patch
new file mode 100644
index 000000000000..486be91eff75
--- /dev/null
+++ b/libretro-flycast-unbundle-libs.patch
@@ -0,0 +1,101 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,11 +1,5 @@
+ cmake_minimum_required(VERSION 3.10.2)
+
+-find_program(CCACHE_FOUND ccache)
+-if(CCACHE_FOUND)
+- set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
+- set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
+-endif()
+-
+ option(ENABLE_CTEST "Enables unit tests" OFF)
+ option(ENABLE_OPROFILE "Enable OProfile" OFF)
+ option(TEST_AUTOMATION "Enable test automation" OFF)
+@@ -217,14 +211,12 @@ else()
+ target_compile_definitions(${PROJECT_NAME} PRIVATE TARGET_NO_OPENMP)
+ endif()
+
+-option(BUILD_SHARED_LIBS "Build shared library" OFF)
+-set(XXHASH_BUILD_XXHSUM OFF CACHE BOOL "Build the xxhsum binary")
+-add_subdirectory(core/deps/xxHash/cmake_unofficial)
+-target_link_libraries(${PROJECT_NAME} PRIVATE xxHash::xxhash)
++find_package(PkgConfig)
++pkg_check_modules(xxhash IMPORTED_TARGET libxxhash)
++target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::xxhash)
+
+-option(BUILD_SHARED_LIBS "Build shared library" OFF)
+-add_subdirectory(core/deps/glm)
+-target_link_libraries(${PROJECT_NAME} PRIVATE glm::glm)
++find_package(glm)
++target_link_libraries(${PROJECT_NAME} PRIVATE glm)
+
+ if(USE_VULKAN)
+ option(BUILD_EXTERNAL "Build external dependencies in /External" OFF)
+@@ -272,13 +264,13 @@ if(NOT LIBRETRO)
+ target_compile_definitions(${PROJECT_NAME} PRIVATE USE_SDL USE_SDL_AUDIO)
+ target_sources(${PROJECT_NAME} PRIVATE core/sdl/sdl.cpp core/sdl/sdl.h core/sdl/sdl_gamepad.h core/sdl/sdl_keyboard.h)
+ endif()
+-
++endif()
+ find_package(ZLIB)
+ if(TARGET ZLIB::ZLIB AND NOT ANDROID AND (NOT WIN32 OR WINDOWS_STORE))
+ set(WITH_SYSTEM_ZLIB ON CACHE BOOL "Use system provided zlib library")
+ target_link_libraries(${PROJECT_NAME} PRIVATE ZLIB::ZLIB)
+ endif()
+-
++if(NOT LIBRETRO)
+ find_package(Lua)
+ if(NOT APPLE AND LUA_FOUND)
+ target_compile_definitions(${PROJECT_NAME} PRIVATE USE_LUA)
+@@ -288,9 +280,9 @@ if(NOT LIBRETRO)
+ endif()
+ endif()
+
+-add_subdirectory(core/deps/libchdr EXCLUDE_FROM_ALL)
+-target_link_libraries(${PROJECT_NAME} PRIVATE chdr-static)
+-target_include_directories(${PROJECT_NAME} PRIVATE core/deps/libchdr/include)
++find_package(PkgConfig)
++pkg_check_modules(chdr IMPORTED_TARGET libchdr)
++target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::chdr)
+
+ if(NOT WITH_SYSTEM_ZLIB)
+ target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/core/deps/libchdr/deps/zlib-1.2.11")
+@@ -329,25 +321,24 @@ if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE AND NOT LIBRETRO)
+ target_compile_definitions(${PROJECT_NAME} PRIVATE USE_PULSEAUDIO)
+ target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::LIBPULSE)
+ endif()
+-
++endif()
+ if(USE_HOST_LIBZIP)
+ pkg_check_modules(LIBZIP IMPORTED_TARGET libzip)
+ if(LIBZIP_FOUND)
+ target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::LIBZIP)
+ endif()
+ endif()
+-
++if(PKG_CONFIG_FOUND AND NOT ANDROID AND NOT APPLE AND NOT LIBRETRO)
+ if(ENABLE_OPROFILE)
+ target_compile_definitions(${PROJECT_NAME} PRIVATE DYNA_OPROF)
+ target_link_libraries(${PROJECT_NAME} PRIVATE opagent)
+ endif()
+-
++endif()
+ find_package(MiniUPnPc)
+ if (MINIUPNP_FOUND)
+ target_include_directories(${PROJECT_NAME} PRIVATE ${MINIUPNP_INCLUDE_DIRS})
+ target_link_libraries(${PROJECT_NAME} PRIVATE ${MINIUPNP_LIBRARIES})
+ endif()
+-endif()
+
+ if(NINTENDO_SWITCH AND USE_GLES)
+ pkg_check_modules(GLESV2 IMPORTED_TARGET glesv2)
+@@ -1167,7 +1158,7 @@ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*|arm64.*)" OR CMAKE_OSX_
+ set(KNOWN_ARCHITECTURE_DETECTED ON)
+ endif()
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "i686.*|i386.*|x86.*|amd64.*|x86_64.*|AMD64.*" OR CMAKE_OSX_ARCHITECTURES MATCHES "x86_64")
+- add_subdirectory(core/deps/xbyak EXCLUDE_FROM_ALL)
++ find_package(xbyak)
+ target_link_libraries(${PROJECT_NAME} PRIVATE xbyak::xbyak)
+ if(CMAKE_SIZEOF_VOID_P EQUAL 4)
+ target_sources(${PROJECT_NAME} PRIVATE