"Improved"

This commit is contained in:
2026-02-04 15:54:09 -06:00
parent ad13d6c6a1
commit 708c4d0ec3
15 changed files with 150 additions and 154 deletions

View File

@@ -17,7 +17,7 @@ set(DUSK_CACHE_TARGET "dusk-target")
# Build variables
set(DUSK_ROOT_DIR "${CMAKE_SOURCE_DIR}")
set(DUSK_BUILD_DIR "${CMAKE_BINARY_DIR}")
set(DUSK_SOURCES_DIR "${DUSK_ROOT_DIR}/src")
set(DUSK_SOURCES_DIR "${DUSK_ROOT_DIR}/src2")
set(DUSK_TEST_DIR "${DUSK_ROOT_DIR}/test")
set(DUSK_TEMP_DIR "${DUSK_BUILD_DIR}/temp")
set(DUSK_TOOLS_DIR "${DUSK_ROOT_DIR}/tools")
@@ -117,129 +117,66 @@ elseif(DUSK_TARGET_SYSTEM STREQUAL "psp")
)
elseif(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wii")
if(NOT DEFINED ENV{DEVKITPPC})
message(FATAL_ERROR "DEVKITPPC environment variable not set!")
endif()
set(DEVKITPPC $ENV{DEVKITPPC})
if(NOT DEFINED ENV{DEVKITPRO})
message(FATAL_ERROR "DEVKITPRO environment variable not set!")
endif()
set(DEVKITPRO $ENV{DEVKITPRO})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions")
configure_file(opengl.pc.in opengl.pc @ONLY)
find_package(PkgConfig REQUIRED)
pkg_check_modules(SDL2 IMPORTED_TARGET sdl2)
pkg_check_modules(SDL2_ttf IMPORTED_TARGET SDL2_ttf)
pkg_check_modules(SDL2_image IMPORTED_TARGET SDL2_image)
pkg_check_modules(SDL2_mixer IMPORTED_TARGET SDL2_mixer)
pkg_check_modules(OPENGL IMPORTED_TARGET opengl)
pkg_check_modules(zip IMPORTED_TARGET libzip)
pkg_check_modules(GLU IMPORTED_TARGET glu)
pkg_check_modules(freetype2 IMPORTED_TARGET freetype2)
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_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_SKIP_RPATH TRUE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
set(CMAKE_INSTALL_RPATH "")
set(PORTLIBS_PATH "${DEVKITPRO}/portlibs")
if(DUSK_TARGET_SYSTEM STREQUAL "gamecube")
set(_PORTLIBS_FLAVOR "gamecube")
set(_LIBOGC_LIBDIR "${DEVKITPRO}/libogc/lib/cube")
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PRIVATE HW_DOL GAMECUBE)
set(_MACHDEP_OPTS -mogc)
else()
set(_PORTLIBS_FLAVOR "wii")
set(_LIBOGC_LIBDIR "${DEVKITPRO}/libogc/lib/wii")
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PRIVATE HW_RVL WII)
set(_MACHDEP_OPTS -mrvll)
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)
execute_process(
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
"${DEVKITPRO}/libogc/include"
"${PORTLIBS_PATH}/${_PORTLIBS_FLAVOR}/include"
"${PORTLIBS_PATH}/${_PORTLIBS_FLAVOR}/include/SDL2"
"${PORTLIBS_PATH}/ppc/include"
target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PUBLIC
PkgConfig::SDL2
PkgConfig::SDL2_ttf
PkgConfig::SDL2_image
PkgConfig::SDL2_mixer
PkgConfig::zip
PkgConfig::GLU
PkgConfig::freetype2
)
target_link_directories(${DUSK_LIBRARY_TARGET_NAME} PRIVATE
"${_LIBOGC_LIBDIR}"
"${PORTLIBS_PATH}/${_PORTLIBS_FLAVOR}/lib"
"${PORTLIBS_PATH}/ppc/lib"
target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PUBLIC
DOLPHIN
)
set(Lua_FOUND TRUE)
set(libzip_FOUND TRUE)
# Custom flags for cglm
# set(CGLM_SHARED OFF CACHE BOOL "Build cglm shared" FORCE)
# set(CGLM_STATIC ON CACHE BOOL "Build cglm static" FORCE)
# find_package(cglm REQUIRED)
set(CGLM_SHARED OFF CACHE BOOL "Build cglm shared" FORCE)
set(CGLM_STATIC ON CACHE BOOL "Build cglm static" FORCE)
find_package(cglm REQUIRED)
# Compile lua
# include(FetchContent)
# FetchContent_Declare(
# liblua
# URL https://www.lua.org/ftp/lua-5.5.0.tar.gz
# )
# FetchContent_MakeAvailable(liblua)
# set(LUA_SRC_DIR "${liblua_SOURCE_DIR}/src")
# set(LUA_C_FILES
# 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
# 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
# )
# list(TRANSFORM LUA_C_FILES PREPEND "${LUA_SRC_DIR}/")
# add_library(liblua STATIC ${LUA_C_FILES})
# target_include_directories(liblua PUBLIC "${LUA_SRC_DIR}")
# target_compile_definitions(liblua PRIVATE LUA_USE_C89)
# add_library(lua::lua ALIAS liblua)
include(FetchContent)
FetchContent_Declare(
liblua
URL https://www.lua.org/ftp/lua-5.5.0.tar.gz
)
FetchContent_MakeAvailable(liblua)
set(LUA_SRC_DIR "${liblua_SOURCE_DIR}/src")
set(LUA_C_FILES
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
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
)
list(TRANSFORM LUA_C_FILES PREPEND "${LUA_SRC_DIR}/")
add_library(liblua STATIC ${LUA_C_FILES})
target_include_directories(liblua PUBLIC "${LUA_SRC_DIR}")
target_compile_definitions(liblua PRIVATE LUA_USE_C89)
add_library(lua::lua ALIAS liblua)
set(Lua_FOUND TRUE CACHE BOOL "Lua found" FORCE)
target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PUBLIC
# cglm
# liblua
target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PRIVATE
cglm
liblua
# zip
# bz2
# z
SDL2_ttf
m
harfbuzz
SDL2_gfx
SDL2_mixer
m
stdc++
ogg
vorbisidec
modplug
mpg123
opusfile
opus
FLAC
SDL2_image
SDL2main
SDL2
pthread
aesnd
opengx
fat
ogc
png16
z
jpeg
freetype
m
)
endif()
@@ -247,7 +184,7 @@ endif()
set(ENABLE_TESTS OFF CACHE BOOL "Enable tests" FORCE)
# Add code
add_subdirectory(src2)
add_subdirectory(${DUSK_SOURCES_DIR})
# Handle tests
if(ENABLE_TESTS)