message(FATAL_ERROR "Configure Dolphin") if(DUSK_TARGET_SYSTEM STREQUAL "gamecube" OR DUSK_TARGET_SYSTEM STREQUAL "wii") # Override to make library and binary be the same. set(DUSK_LIBRARY_TARGET_NAME "${DUSK_LIBRARY_TARGET_NAME}.elf" CACHE INTERNAL ${DUSK_CACHE_TARGET}) endif() 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(zip IMPORTED_TARGET libzip) target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PUBLIC DOLPHIN ) # Disable all warnings target_compile_options(${DUSK_LIBRARY_TARGET_NAME} PRIVATE -w) # 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) # 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) set(Lua_FOUND TRUE CACHE BOOL "Lua found" FORCE) target_link_libraries(${DUSK_LIBRARY_TARGET_NAME} PRIVATE cglm liblua m fat PkgConfig::zip ) target_compile_definitions(${DUSK_LIBRARY_TARGET_NAME} PUBLIC DISPLAY_WINDOW_WIDTH_DEFAULT=640 DISPLAY_WINDOW_HEIGHT_DEFAULT=480 DISPLAY_WIDTH=640 DISPLAY_HEIGHT=480 DISPLAY_SIZE_DYNAMIC=0 INPUT_GAMEPAD=1 THREAD_PTHREAD=1 TIME_FIXED=1 )