libsdl2: switch to cmake build

This commit is contained in:
Jerome Duval
2021-04-28 20:26:15 +02:00
parent a8740decc1
commit 41f3daf8d7
2 changed files with 173 additions and 19 deletions

View File

@@ -6,7 +6,7 @@ software, emulators, and popular games."
HOMEPAGE="https://www.libsdl.org/"
COPYRIGHT="1997-2021 Sam Lantinga"
LICENSE="Zlib"
REVISION="3"
REVISION="4"
SOURCE_URI="https://www.libsdl.org/release/SDL2-$portVersion.tar.gz"
CHECKSUM_SHA256="d8215b571a581be1332d2106f8036fcb03d12a70bae01e20f424976d275432bc"
SOURCE_DIR="SDL2-$portVersion"
@@ -23,7 +23,6 @@ REQUIRES="
haiku$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libglu$secondaryArchSuffix
lib:libltdl$secondaryArchSuffix
"
PROVIDES_devel="
@@ -42,29 +41,23 @@ BUILD_REQUIRES="
devel:libglu$secondaryArchSuffix
"
BUILD_PREREQUIRES="
cmd:aclocal
cmd:autoconf
cmd:cmake
cmd:gcc$secondaryArchSuffix
cmd:gettext
cmd:ld$secondaryArchSuffix
cmd:libtool$secondaryArchSuffix
cmd:make
cmd:ninja
cmd:pkg_config$secondaryArchSuffix
cmd:which
"
BUILD()
{
autoreconf -fi
runConfigure ./configure
make $jobArgs
cmake . -Bbuild -GNinja $cmakeDirArgs \
-DSDL_STATIC=OFF -DRPATH=OFF
ninja -C build
}
INSTALL()
{
make install
rm $libDir/libSDL*.la $libDir/libSDL*.a
ninja -C build install
# devel package
prepareInstalledDevelLibs \

View File

@@ -1,4 +1,4 @@
From ba669ad41dfb539c1af63bfba0c0819556f9b3ef Mon Sep 17 00:00:00 2001
From 2c35afe4f4f4bd6600da70c31c311960fd8599d0 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Fri, 2 Feb 2018 09:40:46 +0100
Subject: Fix secondary arch build.
@@ -46,7 +46,7 @@ index b7e519b..8e15ca9 100644
2.30.0
From ba24f3489f7a964d0cb103c02b4f28652d83cf6a Mon Sep 17 00:00:00 2001
From b14b35e0ad982412ca5472eb971121b1d0a50b9a Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 8 Mar 2021 14:34:02 +1000
Subject: Fix relative mode for mouse
@@ -120,7 +120,7 @@ index 817fccf..234eaf0 100644
2.30.0
From 5afcc48482bb072ec5d66b5966d4280a282fd640 Mon Sep 17 00:00:00 2001
From e335241c332d5dc9f44b3772de69729dd12b5b05 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 8 Mar 2021 14:34:40 +1000
Subject: Add support for system cursors
@@ -242,7 +242,7 @@ index 234eaf0..0948451 100644
2.30.0
From 5f40d0e1ef61d32a6d215cab9b7bb4866cbc94da Mon Sep 17 00:00:00 2001
From 4e3786b3819d308acb294e7eba390a61c78b77bf Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 8 Mar 2021 14:36:14 +1000
Subject: Disable direct mode for BGLView
@@ -265,7 +265,7 @@ index 974c152..83bb346 100644
2.30.0
From 1ccc6f46feb71a0e82c460fb4830ba3608f935e1 Mon Sep 17 00:00:00 2001
From 2119b06c7440500ce336b72ded1aa539f881e3c3 Mon Sep 17 00:00:00 2001
From: Gerasim Troeglazov <3dEyes@gmail.com>
Date: Mon, 8 Mar 2021 14:36:48 +1000
Subject: Fix build for gcc2
@@ -308,3 +308,164 @@ index 0948451..f3c80ac 100644
--
2.30.0
From 130e82eae7a72e353629d232253c744c84350194 Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sun, 25 Apr 2021 13:35:32 +0200
Subject: Haiku: cmake build
use CMAKE_INSTALL_ variables where applicable
diff --git a/CMakeLists.txt b/CMakeLists.txt
index b9b9eb6..4941379 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1141,7 +1141,7 @@ elseif(EMSCRIPTEN)
endif()
endif()
-elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS)
+elseif(UNIX AND NOT APPLE AND NOT ANDROID AND NOT RISCOS AND NOT HAIKU)
if(SDL_AUDIO)
if(SYSV5 OR SOLARIS OR HPUX)
set(SDL_AUDIO_DRIVER_SUNAUDIO 1)
@@ -1927,30 +1927,46 @@ elseif(APPLE)
CheckPTHREAD()
elseif(HAIKU)
+ if(SDL_AUDIO)
+ set(SDL_AUDIO_DRIVER_HAIKU 1)
+ file(GLOB HAIKU_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/haiku/*.cc)
+ set(SOURCE_FILES ${SOURCE_FILES} ${HAIKU_AUDIO_SOURCES})
+ set(HAVE_SDL_AUDIO TRUE)
+ endif()
+
+ if(SDL_JOYSTICK)
+ set(SDL_JOYSTICK_HAIKU 1)
+ file(GLOB HAIKU_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/haiku/*.cc)
+ set(SOURCE_FILES ${SOURCE_FILES} ${HAIKU_JOYSTICK_SOURCES})
+ set(HAVE_SDL_JOYSTICK TRUE)
+ endif()
+
file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/haiku/*.cc)
set(SOURCE_FILES ${SOURCE_FILES} ${MISC_SOURCES})
set(HAVE_SDL_MISC TRUE)
if(SDL_VIDEO)
set(SDL_VIDEO_DRIVER_HAIKU 1)
- file(GLOB HAIKUVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/haiku/*.c)
+ file(GLOB HAIKUVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/haiku/*.cc)
set(SOURCE_FILES ${SOURCE_FILES} ${HAIKUVIDEO_SOURCES})
set(HAVE_SDL_VIDEO TRUE)
if(VIDEO_OPENGL)
# TODO: Use FIND_PACKAGE(OpenGL) instead
set(SDL_VIDEO_OPENGL 1)
- set(SDL_VIDEO_OPENGL_BGL 1)
+ set(SDL_VIDEO_OPENGL_HAIKU 1)
set(SDL_VIDEO_RENDER_OGL 1)
list(APPEND EXTRA_LIBS GL)
set(HAVE_VIDEO_OPENGL TRUE)
endif()
endif()
- set(SDL_FILESYSTEM_HAIKU 1)
- file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/haiku/*.cc)
- set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES})
- set(HAVE_SDL_FILESYSTEM TRUE)
+ if(SDL_FILESYSTEM)
+ set(SDL_FILESYSTEM_HAIKU 1)
+ file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/haiku/*.cc)
+ set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES})
+ set(HAVE_SDL_FILESYSTEM TRUE)
+ endif()
if(SDL_TIMERS)
set(SDL_TIMER_HAIKU 1)
@@ -1959,13 +1975,24 @@ elseif(HAIKU)
set(HAVE_SDL_TIMERS TRUE)
endif()
+ if(SDL_POWER)
+ set(SDL_POWER_HAIKU 1)
+ file(GLOB HAIKU_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/haiku/*.c)
+ set(SOURCE_FILES ${SOURCE_FILES} ${HAIKU_POWER_SOURCES})
+ set(HAVE_SDL_POWER TRUE)
+ endif()
+
if(SDL_LOCALE)
file(GLOB LOCALE_SOURCES ${SDL2_SOURCE_DIR}/src/locale/haiku/*.cc)
set(SOURCE_FILES ${SOURCE_FILES} ${LOCALE_SOURCES})
set(HAVE_SDL_LOCALE TRUE)
endif()
+ file(GLOB MAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/haiku/*.cc)
+ set(SOURCE_FILES ${SOURCE_FILES} ${MAIN_SOURCES})
+
CheckPTHREAD()
+ list(APPEND EXTRA_LIBS root be media game device textencoding)
elseif(RISCOS)
file(GLOB MISC_SOURCES ${SDL2_SOURCE_DIR}/src/misc/riscos/*.c)
@@ -2089,7 +2116,7 @@ endif()
if(NOT WINDOWS OR CYGWIN)
set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix "\${prefix}")
- set(libdir "\${exec_prefix}/lib${LIB_SUFFIX}")
+ set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}")
set(bindir "\${exec_prefix}/bin")
set(includedir "\${prefix}/include")
if(SDL_STATIC)
@@ -2309,15 +2336,15 @@ endif()
##### Installation targets #####
install(TARGETS ${_INSTALL_LIBS} EXPORT SDL2Targets
- LIBRARY DESTINATION "lib${LIB_SUFFIX}"
- ARCHIVE DESTINATION "lib${LIB_SUFFIX}"
- RUNTIME DESTINATION bin)
+ LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}"
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
##### Export files #####
if (WINDOWS)
set(PKG_PREFIX "cmake")
else ()
- set(PKG_PREFIX "lib${LIB_SUFFIX}/cmake/SDL2")
+ set(PKG_PREFIX "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}/cmake/SDL2")
endif ()
include(CMakePackageConfigHelpers)
@@ -2346,7 +2373,7 @@ foreach(_FNAME ${BIN_INCLUDE_FILES})
list(REMOVE_ITEM INCLUDE_FILES ${SDL2_SOURCE_DIR}/include/${_INCNAME})
endforeach()
list(APPEND INCLUDE_FILES ${BIN_INCLUDE_FILES})
-install(FILES ${INCLUDE_FILES} DESTINATION include/SDL2)
+install(FILES ${INCLUDE_FILES} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/SDL2)
string(TOUPPER "${CMAKE_BUILD_TYPE}" UPPER_BUILD_TYPE)
if (UPPER_BUILD_TYPE MATCHES DEBUG)
@@ -2364,7 +2391,7 @@ if(NOT (WINDOWS OR CYGWIN))
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink
\"lib${SONAME}${SOPOSTFIX}${SOEXT}\" \"libSDL2${SOPOSTFIX}${SOEXT}\"
WORKING_DIRECTORY \"${SDL2_BINARY_DIR}\")")
- install(FILES ${SDL2_BINARY_DIR}/libSDL2${SOPOSTFIX}${SOEXT} DESTINATION "lib${LIB_SUFFIX}")
+ install(FILES ${SDL2_BINARY_DIR}/libSDL2${SOPOSTFIX}${SOEXT} DESTINATION "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}")
endif()
endif()
if(FREEBSD)
@@ -2372,9 +2399,9 @@ if(NOT (WINDOWS OR CYGWIN))
install(FILES ${SDL2_BINARY_DIR}/sdl2.pc DESTINATION "libdata/pkgconfig")
else()
install(FILES ${SDL2_BINARY_DIR}/sdl2.pc
- DESTINATION "lib${LIB_SUFFIX}/pkgconfig")
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}${LIB_SUFFIX}/pkgconfig")
endif()
- install(PROGRAMS ${SDL2_BINARY_DIR}/sdl2-config DESTINATION bin)
+ install(PROGRAMS ${SDL2_BINARY_DIR}/sdl2-config DESTINATION "${CMAKE_INSTALL_BINDIR}")
# TODO: what about the .spec file? Is it only needed for RPM creation?
install(FILES "${SDL2_SOURCE_DIR}/sdl2.m4" DESTINATION "${CMAKE_INSTALL_FULL_DATAROOTDIR}/aclocal")
endif()
--
2.30.0