SDL2 example builds.
This commit is contained in:
@@ -5,7 +5,7 @@ docker run -it -v ./:/workdir myapp:latest /bin/bash -c ' \
|
|||||||
rm -rf build2 && \
|
rm -rf build2 && \
|
||||||
mkdir -p build2 && \
|
mkdir -p build2 && \
|
||||||
cd build2 && \
|
cd build2 && \
|
||||||
cmake .. -DDUSK_TARGET_SYSTEM=gamecube -DCMAKE_C_COMPILER=$DEVKITPPC/bin/powerpc-eabi-gcc -DBUILD_SHARED_LIBS=OFF && \
|
cmake .. -DDUSK_TARGET_SYSTEM=gamecube -DCMAKE_C_COMPILER=$DEVKITPPC/bin/powerpc-eabi-gcc -DCMAKE_CXX_COMPILER=$DEVKITPPC/bin/powerpc-eabi-g++ -DBUILD_SHARED_LIBS=OFF && \
|
||||||
make VERBOSE=1 \
|
make VERBOSE=1 \
|
||||||
'
|
'
|
||||||
# docker run -it -v ./:/workdir myapp:latest /bin/bash
|
# docker run -it -v ./:/workdir myapp:latest /bin/bash
|
||||||
104
CMakeLists.txt
104
CMakeLists.txt
@@ -75,7 +75,7 @@ if(ENABLE_TESTS)
|
|||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
set(DUSK_BINARY_TARGET_NAME "${DUSK_LIBRARY_TARGET_NAME}" CACHE INTERNAL ${DUSK_CACHE_TARGET})
|
set(DUSK_BINARY_TARGET_NAME "${DUSK_LIBRARY_TARGET_NAME}" CACHE INTERNAL ${DUSK_CACHE_TARGET})
|
||||||
add_executable(${DUSK_BINARY_TARGET_NAME} src2/main.cpp)
|
add_executable(${DUSK_BINARY_TARGET_NAME} ${DUSK_SOURCES_DIR}/null.c)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Add tools
|
# Add tools
|
||||||
@@ -126,8 +126,7 @@ elseif(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wi
|
|||||||
endif()
|
endif()
|
||||||
set(DEVKITPRO $ENV{DEVKITPRO})
|
set(DEVKITPRO $ENV{DEVKITPRO})
|
||||||
|
|
||||||
# set(CMAKE_C_COMPILER "${DEVKITPPC}/bin/powerpc-eabi-gcc")
|
string(APPEND CMAKE_C_FLAGS "-g -O2 -mcpu=750 -meabi -mhard-float -Wall -mogc -DGEKKO")
|
||||||
# string(APPEND CMAKE_C_FLAGS "-g -O2 -mcpu=750 -meabi -mhard-float -Wall -mogc -DGEKKO")
|
|
||||||
|
|
||||||
set(CMAKE_FIND_ROOT_PATH "${DEVKITPRO}" "${DEVKITPPC}")
|
set(CMAKE_FIND_ROOT_PATH "${DEVKITPRO}" "${DEVKITPPC}")
|
||||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
@@ -142,17 +141,25 @@ elseif(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wi
|
|||||||
if(DUSK_TARGET_SYSTEM STREQUAL "gamecube")
|
if(DUSK_TARGET_SYSTEM STREQUAL "gamecube")
|
||||||
set(_PORTLIBS_FLAVOR "gamecube")
|
set(_PORTLIBS_FLAVOR "gamecube")
|
||||||
set(_LIBOGC_LIBDIR "${DEVKITPRO}/libogc/lib/cube")
|
set(_LIBOGC_LIBDIR "${DEVKITPRO}/libogc/lib/cube")
|
||||||
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PRIVATE GEKKO HW_DOL GAMECUBE DOLPHIN)
|
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PRIVATE HW_DOL GAMECUBE)
|
||||||
set(_MACHDEP_OPTS -mogc -mcpu=750 -meabi -mhard-float)
|
set(_MACHDEP_OPTS -mogc)
|
||||||
else()
|
else()
|
||||||
set(_PORTLIBS_FLAVOR "wii")
|
set(_PORTLIBS_FLAVOR "wii")
|
||||||
set(_LIBOGC_LIBDIR "${DEVKITPRO}/libogc/lib/wii")
|
set(_LIBOGC_LIBDIR "${DEVKITPRO}/libogc/lib/wii")
|
||||||
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PRIVATE GEKKO HW_RVL WII DOLPHIN)
|
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PRIVATE HW_RVL WII)
|
||||||
set(_MACHDEP_OPTS -mrvll -mcpu=750 -meabi -mhard-float)
|
set(_MACHDEP_OPTS -mrvll)
|
||||||
endif()
|
endif()
|
||||||
|
target_compile_options(${DUSK_LIBRARY_TARGET_NAME} PRIVATE ${_MACHDEP_OPTS} -DGEKKO -DDOLPHIN -Wall -O2 -DSDL_MAIN_HANDLED -meabi -mhard-float -g -mcpu=750)
|
||||||
|
target_link_options(${DUSK_LIBRARY_TARGET_NAME} PRIVATE ${_MACHDEP_OPTS} -DGEKKO -DDOLPHIN -Wall -O2 -DSDL_MAIN_HANDLED -meabi -mhard-float -g -mcpu=750)
|
||||||
|
|
||||||
target_compile_options(${DUSK_LIBRARY_TARGET_NAME} PRIVATE ${_MACHDEP_OPTS} -Wall -O2)
|
execute_process(
|
||||||
target_link_options(${DUSK_LIBRARY_TARGET_NAME} PRIVATE ${_MACHDEP_OPTS})
|
COMMAND /opt/devkitpro/portlibs/${_PORTLIBS_FLAVOR}/bin/powerpc-eabi-pkg-config --libs sdl2 SDL2_ttf SDL2_gfx SDL2_mixer SDL2_image
|
||||||
|
OUTPUT_VARIABLE PKG_CONFIG_LIBS
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
# message(FATAL_ERROR "DISABLED FOR NOW ${PKG_CONFIG_LIBS}")
|
||||||
|
target_compile_options(${DUSK_LIBRARY_TARGET_NAME} PUBLIC ${PKG_CONFIG_LIBS})
|
||||||
|
target_link_options(${DUSK_LIBRARY_TARGET_NAME} PUBLIC ${PKG_CONFIG_LIBS})
|
||||||
|
|
||||||
target_include_directories(${DUSK_LIBRARY_TARGET_NAME} PRIVATE
|
target_include_directories(${DUSK_LIBRARY_TARGET_NAME} PRIVATE
|
||||||
"${DEVKITPRO}/libogc/include"
|
"${DEVKITPRO}/libogc/include"
|
||||||
@@ -166,56 +173,73 @@ elseif(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wi
|
|||||||
"${PORTLIBS_PATH}/${_PORTLIBS_FLAVOR}/lib"
|
"${PORTLIBS_PATH}/${_PORTLIBS_FLAVOR}/lib"
|
||||||
"${PORTLIBS_PATH}/ppc/lib"
|
"${PORTLIBS_PATH}/ppc/lib"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
set(Lua_FOUND TRUE)
|
set(Lua_FOUND TRUE)
|
||||||
set(libzip_FOUND TRUE)
|
set(libzip_FOUND TRUE)
|
||||||
|
|
||||||
# Custom flags for cglm
|
# Custom flags for cglm
|
||||||
set(CGLM_SHARED OFF CACHE BOOL "Build cglm shared" FORCE)
|
# set(CGLM_SHARED OFF CACHE BOOL "Build cglm shared" FORCE)
|
||||||
set(CGLM_STATIC ON CACHE BOOL "Build cglm static" FORCE)
|
# set(CGLM_STATIC ON CACHE BOOL "Build cglm static" FORCE)
|
||||||
find_package(cglm REQUIRED)
|
# find_package(cglm REQUIRED)
|
||||||
|
|
||||||
# Compile lua
|
# Compile lua
|
||||||
include(FetchContent)
|
# include(FetchContent)
|
||||||
FetchContent_Declare(
|
# FetchContent_Declare(
|
||||||
liblua
|
# liblua
|
||||||
URL https://www.lua.org/ftp/lua-5.5.0.tar.gz
|
# URL https://www.lua.org/ftp/lua-5.5.0.tar.gz
|
||||||
)
|
# )
|
||||||
FetchContent_MakeAvailable(liblua)
|
# FetchContent_MakeAvailable(liblua)
|
||||||
set(LUA_SRC_DIR "${liblua_SOURCE_DIR}/src")
|
# set(LUA_SRC_DIR "${liblua_SOURCE_DIR}/src")
|
||||||
set(LUA_C_FILES
|
# set(LUA_C_FILES
|
||||||
lapi.c lauxlib.c lbaselib.c lcode.c lcorolib.c lctype.c ldblib.c ldebug.c
|
# lapi.c lauxlib.c lbaselib.c lcode.c lcorolib.c lctype.c ldblib.c ldebug.c
|
||||||
ldo.c ldump.c lfunc.c lgc.c linit.c liolib.c llex.c lmathlib.c lmem.c
|
# ldo.c ldump.c lfunc.c lgc.c linit.c liolib.c llex.c lmathlib.c lmem.c
|
||||||
loadlib.c lobject.c lopcodes.c loslib.c lparser.c lstate.c lstring.c
|
# loadlib.c lobject.c lopcodes.c loslib.c lparser.c lstate.c lstring.c
|
||||||
lstrlib.c ltable.c ltablib.c ltm.c lundump.c lutf8lib.c lvm.c lzio.c
|
# lstrlib.c ltable.c ltablib.c ltm.c lundump.c lutf8lib.c lvm.c lzio.c
|
||||||
)
|
# )
|
||||||
list(TRANSFORM LUA_C_FILES PREPEND "${LUA_SRC_DIR}/")
|
# list(TRANSFORM LUA_C_FILES PREPEND "${LUA_SRC_DIR}/")
|
||||||
add_library(liblua STATIC ${LUA_C_FILES})
|
# add_library(liblua STATIC ${LUA_C_FILES})
|
||||||
target_include_directories(liblua PUBLIC "${LUA_SRC_DIR}")
|
# target_include_directories(liblua PUBLIC "${LUA_SRC_DIR}")
|
||||||
target_compile_definitions(liblua PRIVATE LUA_USE_C89)
|
# target_compile_definitions(liblua PRIVATE LUA_USE_C89)
|
||||||
add_library(lua::lua ALIAS liblua)
|
# add_library(lua::lua ALIAS liblua)
|
||||||
|
|
||||||
target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PRIVATE
|
target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PUBLIC
|
||||||
# cglm
|
# cglm
|
||||||
# liblua
|
# liblua
|
||||||
|
|
||||||
# zip
|
# zip
|
||||||
# bz2
|
# bz2
|
||||||
# z
|
# z
|
||||||
|
|
||||||
SDL2
|
|
||||||
SDL2_gfx
|
|
||||||
pthread
|
|
||||||
|
|
||||||
|
SDL2_ttf
|
||||||
|
m
|
||||||
|
harfbuzz
|
||||||
|
|
||||||
|
SDL2_gfx
|
||||||
|
|
||||||
|
SDL2_mixer
|
||||||
|
m
|
||||||
|
stdc++
|
||||||
|
ogg
|
||||||
|
vorbisidec
|
||||||
|
modplug
|
||||||
|
mpg123
|
||||||
|
opusfile
|
||||||
|
opus
|
||||||
|
FLAC
|
||||||
|
|
||||||
|
SDL2_image
|
||||||
|
SDL2main
|
||||||
|
SDL2
|
||||||
|
pthread
|
||||||
|
|
||||||
aesnd
|
aesnd
|
||||||
opengx
|
opengx
|
||||||
gxflux
|
|
||||||
|
|
||||||
fat
|
fat
|
||||||
ogc
|
ogc
|
||||||
m
|
png16
|
||||||
opus
|
z
|
||||||
|
jpeg
|
||||||
|
freetype
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@@ -6,4 +6,6 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
// Empty C file for annoying platforms.
|
// Empty C file for annoying platforms.
|
||||||
#include "dusk.h"
|
void nothing(void) {
|
||||||
|
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@ target_include_directories(${DUSK_LIBRARY_TARGET_NAME}
|
|||||||
|
|
||||||
# Main Binary Source
|
# Main Binary Source
|
||||||
target_sources(${DUSK_BINARY_TARGET_NAME}
|
target_sources(${DUSK_BINARY_TARGET_NAME}
|
||||||
PUBLIC
|
PRIVATE
|
||||||
main.cpp
|
main.cpp
|
||||||
sdl_starter.cpp
|
sdl_starter.cpp
|
||||||
sdl_assets_loader.cpp
|
sdl_assets_loader.cpp
|
||||||
|
|||||||
Reference in New Issue
Block a user