56 lines
1.8 KiB
CMake
56 lines
1.8 KiB
CMake
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
|
|
"$<TARGET_FILE:${DUSK_BINARY_TARGET_NAME}>"
|
|
"${DUSK_BINARY_TARGET_NAME_DOL}"
|
|
COMMENT "Generating ${DUSK_BINARY_TARGET_NAME_DOL} from ${DUSK_BINARY_TARGET_NAME}"
|
|
) |