diff --git a/.ci/dolphin/build.sh b/.ci/dolphin/build.sh index 3a91224..43794df 100755 --- a/.ci/dolphin/build.sh +++ b/.ci/dolphin/build.sh @@ -5,7 +5,7 @@ docker run -it -v ./:/workdir myapp:latest /bin/bash -c ' \ rm -rf build2 && \ mkdir -p 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 \ ' # docker run -it -v ./:/workdir myapp:latest /bin/bash \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 81746dc..b191681 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,7 @@ if(ENABLE_TESTS) ) else() 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() # Add tools @@ -126,8 +126,7 @@ elseif(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wi endif() 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_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") set(_PORTLIBS_FLAVOR "gamecube") set(_LIBOGC_LIBDIR "${DEVKITPRO}/libogc/lib/cube") - target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PRIVATE GEKKO HW_DOL GAMECUBE DOLPHIN) - set(_MACHDEP_OPTS -mogc -mcpu=750 -meabi -mhard-float) + 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 GEKKO HW_RVL WII DOLPHIN) - set(_MACHDEP_OPTS -mrvll -mcpu=750 -meabi -mhard-float) + 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) - target_compile_options(${DUSK_LIBRARY_TARGET_NAME} PRIVATE ${_MACHDEP_OPTS} -Wall -O2) - target_link_options(${DUSK_LIBRARY_TARGET_NAME} PRIVATE ${_MACHDEP_OPTS}) + 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" @@ -166,56 +173,73 @@ elseif(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wi "${PORTLIBS_PATH}/${_PORTLIBS_FLAVOR}/lib" "${PORTLIBS_PATH}/ppc/lib" ) - 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) - target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PRIVATE + target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PUBLIC # cglm # liblua # zip # bz2 # 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 opengx - gxflux - fat ogc - m - opus + png16 + z + jpeg + freetype ) endif() diff --git a/src/null.c b/src/null.c index 3bf2e71..d649128 100644 --- a/src/null.c +++ b/src/null.c @@ -6,4 +6,6 @@ */ // Empty C file for annoying platforms. -#include "dusk.h" \ No newline at end of file +void nothing(void) { + +} \ No newline at end of file diff --git a/src2/CMakeLists.txt b/src2/CMakeLists.txt index a29ed81..e4c1d4f 100644 --- a/src2/CMakeLists.txt +++ b/src2/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(${DUSK_LIBRARY_TARGET_NAME} # Main Binary Source target_sources(${DUSK_BINARY_TARGET_NAME} - PUBLIC + PRIVATE main.cpp sdl_starter.cpp sdl_assets_loader.cpp