set(DUSK_LIBRARY_TARGET_NAME "${DUSK_LIBRARY_TARGET_NAME}.elf" CACHE INTERNAL ${DUSK_CACHE_TARGET}) 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 ) # Postbuild set(DUSK_BINARY_TARGET_NAME_DOL "${DUSK_BUILD_DIR}/Dusk.dol") add_custom_command(TARGET ${DUSK_BINARY_TARGET_NAME} POST_BUILD COMMAND elf2dol "$" "${DUSK_BINARY_TARGET_NAME_DOL}" COMMENT "Generating ${DUSK_BINARY_TARGET_NAME_DOL} from ${DUSK_BINARY_TARGET_NAME}" )