Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update SDL dependent code and makefile segments to prepare for SDL3 #497

Merged
merged 6 commits into from
May 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
76 changes: 52 additions & 24 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,8 @@ SET(MAIKO_INIT_DEFINITIONS
)

OPTION(MAIKO_DISPLAY_X11 "Use X11 for display." ON)
OPTION(MAIKO_DISPLAY_SDL "Use SDL for display." OFF)
SET(MAIKO_DISPLAY_SDL OFF CACHE STRING "Use SDL for display. Version: OFF, 2, 3")
SET_PROPERTY(CACHE MAIKO_DISPLAY_SDL PROPERTY STRINGS OFF 2 3)

IF(MAIKO_DISPLAY_X11)
FIND_PACKAGE(X11 REQUIRED)
Expand Down Expand Up @@ -81,19 +82,34 @@ IF(MAIKO_DISPLAY_X11)
MESSAGE("-- Configured for X11 display")
ENDIF()

IF(MAIKO_DISPLAY_SDL)
IF(MAIKO_DISPLAY_SDL STREQUAL "2")
FIND_PACKAGE(SDL2 REQUIRED)
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
"-DSDL"
"-DSDL=2"
)
SET(MAIKO_DISPLAY_SDL_LIBRARIES ${SDL2_LIBRARIES})
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS "${SDL2_INCLUDE_DIRS}")
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL2::SDL2)
SET(MAIKO_DISPLAY_SDL_SRCS
src/sdl.c
)
SET(MAIKO_DISPLAY_SDL_HDRS
inc/sdldefs.h
)
MESSAGE("-- Configured for SDL display")
MESSAGE("-- Configured for SDL2 display")
ELSEIF(MAIKO_DISPLAY_SDL STREQUAL "3")
FIND_PACKAGE(SDL3 REQUIRED)
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
"-DSDL=3"
)
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS "${SDL3_INCLUDE_DIRS}")
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL3::SDL3)
SET(MAIKO_DISPLAY_SDL_SRCS
src/sdl.c
)
SET(MAIKO_DISPLAY_SDL_HDRS
inc/sdldefs.h
)
MESSAGE("-- Configured for SDL3 display")
ENDIF()

# according to: https://cmake.org/pipermail/cmake/2016-October/064342.html
Expand Down Expand Up @@ -428,23 +444,23 @@ ADD_CUSTOM_TARGET(gen-vdate
)

ADD_EXECUTABLE(lde src/ldeboot.c src/unixfork.c)
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(lde PUBLIC inc)
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(lde PRIVATE inc)
IF(MAIKO_DISPLAY_X11)
# Tell it that the X11 launcher is available.
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DISPLAY_X11_DEFINITIONS})
# This is needed so that it can call XOpenDisplay.
TARGET_LINK_LIBRARIES(lde X11::X11)
ENDIF()

IF(MAIKO_DISPLAY_SDL)
# Tell it that the SDL launcher is available.
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${MAIKO_DISPLAY_SDL_DEFINITIONS})
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DISPLAY_SDL_DEFINITIONS})
ENDIF()

ADD_EXECUTABLE(ldeether src/ldeether.c src/dlpi.c)
TARGET_COMPILE_DEFINITIONS(ldeether PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldeether PUBLIC inc)
TARGET_COMPILE_DEFINITIONS(ldeether PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldeether PRIVATE inc)

IF(MAIKO_DISPLAY_X11)
ADD_EXECUTABLE(ldex
Expand All @@ -455,8 +471,8 @@ IF(MAIKO_DISPLAY_X11)
${MAIKO_DISPLAY_X11_SRCS}
${MAIKO_DISPLAY_X11_HDRS}
)
TARGET_COMPILE_DEFINITIONS(ldex PUBLIC ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldex PUBLIC inc)
TARGET_COMPILE_DEFINITIONS(ldex PRIVATE ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldex PRIVATE inc)
TARGET_LINK_LIBRARIES(ldex ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})

ADD_EXECUTABLE(ldeinit
Expand All @@ -467,8 +483,8 @@ IF(MAIKO_DISPLAY_X11)
${MAIKO_DISPLAY_X11_SRCS}
${MAIKO_DISPLAY_X11_HDRS}
)
TARGET_COMPILE_DEFINITIONS(ldeinit PUBLIC ${MAIKO_INIT_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldeinit PUBLIC inc)
TARGET_COMPILE_DEFINITIONS(ldeinit PRIVATE ${MAIKO_INIT_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldeinit PRIVATE inc)
TARGET_LINK_LIBRARIES(ldeinit ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
ENDIF()

Expand All @@ -481,20 +497,32 @@ IF(MAIKO_DISPLAY_SDL)
${MAIKO_DISPLAY_SDL_SRCS}
${MAIKO_DISPLAY_SDL_HDRS}
)
TARGET_COMPILE_DEFINITIONS(ldesdl PUBLIC ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_SDL_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldesdl PUBLIC inc)
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE ${SDL2_INCLUDE_DIRS})
TARGET_COMPILE_DEFINITIONS(ldesdl PRIVATE ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_SDL_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE inc)
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE ${MAIKO_DISPLAY_SDL_INCLUDE_DIRS})

IF(APPLE)
IF(MAIKO_DISPLAY_SDL STREQUAL "3")
#
# Until CMake properly supports .xcframeworks, https://gitlab.kitware.com/cmake/cmake/-/issues/25998
# we need to manually set the RPATH to produce a working executable
#
MESSAGE("-- Applying fixup for macOS RPATH for SDL3.xcframework")
SET_PROPERTY(TARGET ldesdl APPEND PROPERTY BUILD_RPATH "/Library/Frameworks/SDL3.xcframework/macos-arm64_x86_64")
#
ENDIF()
ENDIF()
TARGET_LINK_LIBRARIES(ldesdl ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_SDL_LIBRARIES})
ENDIF()

ADD_EXECUTABLE(mkvdate src/mkvdate.c)
TARGET_COMPILE_DEFINITIONS(mkvdate PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(mkvdate PUBLIC inc)
TARGET_COMPILE_DEFINITIONS(mkvdate PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(mkvdate PRIVATE inc)

ADD_EXECUTABLE(setsout src/setsout.c src/byteswap.c)
TARGET_COMPILE_DEFINITIONS(setsout PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(setsout PUBLIC inc)
TARGET_COMPILE_DEFINITIONS(setsout PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(setsout PRIVATE inc)

ADD_EXECUTABLE(tstsout src/tstsout.c src/byteswap.c)
TARGET_COMPILE_DEFINITIONS(tstsout PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(tstsout PUBLIC inc)
TARGET_COMPILE_DEFINITIONS(tstsout PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(tstsout PRIVATE inc)
8 changes: 7 additions & 1 deletion bin/makefile-cygwin.x86_64-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ CC = gcc -m64 $(GCC_CFLAGS) -I/usr/local/include

XFILES = $(OBJECTDIR)sdl.o

XFLAGS = -DSDL
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
Expand Down
9 changes: 8 additions & 1 deletion bin/makefile-darwin.aarch64-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,14 @@ CC = clang -target aarch64-apple-darwin $(CLANG_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

SDLFLAGS = -DSDL -F /Library/Frameworks
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -framework SDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -framework SDL3 in LDFLAGS
#

SDLFLAGS = -DSDL=2 -F /Library/Frameworks

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-darwin.x86_64-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,15 @@

CC = clang -m64 -target x86_64-apple-darwin $(CLANG_CFLAGS)

#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -framework SDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -framework SDL3 in LDFLAGS
#
XFILES = $(OBJECTDIR)sdl.o

SDLFLAGS = -DSDL -F /Library/Frameworks
SDLFLAGS = -DSDL=2 -F /Library/Frameworks

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-emscripten.wasm-wasm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ CC = emcc $(CLANG_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

XFLAGS = -DSDL -sUSE_SDL=2
#
# For SDL version 2
# -DSDL=2 and -sUSE_SDL=2 in XFLAGS and -sUSE_SDL=2 in LDFLAGS
# For SDL version 3
# -DSDL=3 and -sUSE_SDL=3 in XFLAGS and -sUSE_SDL=3 in LDFLAGS
#
XFLAGS = -DSDL=2 -sUSE_SDL=2

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-emscripten.wasm_nl-wasm_nl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ CC = emcc $(CLANG_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

XFLAGS = -DSDL -sUSE_SDL=2
#
# For SDL version 2
# -DSDL=2 and -sUSE_SDL=2 in XFLAGS and -sUSE_SDL=2 in LDFLAGS
# For SDL version 3
# -DSDL=3 and -sUSE_SDL=3 in XFLAGS and -sUSE_SDL=3 in LDFLAGS
#
XFLAGS = -DSDL=2 -sUSE_SDL=2

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-freebsd.386-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ CC = clang -m32 $(CLANG_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

SDLFLAGS = -DSDL -I/usr/local/include
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2 -I/usr/local/include

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-freebsd.aarch64-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ CC = clang -m64 $(CLANG_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

SDLFLAGS = -DSDL -I/usr/local/include
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2 -I/usr/local/include

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-freebsd.x86_64-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,13 @@ CC = clang -m64 $(CLANG_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

SDLFLAGS = -DSDL -I/usr/local/include
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2 -I/usr/local/include

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-haiku.x86_64-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ CC = gcc -m64 $(GCC_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

XFLAGS = -DSDL
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-linux.386-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ CC = gcc -m32 $(GCC_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

XFLAGS = -DSDL
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-linux.aarch64-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ CC = gcc $(GCC_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

SDLFLAGS = -DSDL
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-linux.armv7l-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ CC = gcc $(GCC_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

XFLAGS = -DSDL
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
Expand Down
8 changes: 7 additions & 1 deletion bin/makefile-linux.x86_64-sdl
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,13 @@ CC = gcc -m64 $(GCC_CFLAGS)

XFILES = $(OBJECTDIR)sdl.o

XFLAGS = -DSDL
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2

# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
Expand Down
2 changes: 1 addition & 1 deletion bin/makeright
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ case "$display" in
x) releasename=${osversion}.${architecture}-${display}
ldename=ldex
;;
sdl) releasename=${osversion}.${architecture}-${display}
sdl*) releasename=${osversion}.${architecture}-${display}
ldename=ldesdl
;;
wasm) osversion=emscripten
Expand Down