Split off the DOL to improve the build process

This commit is contained in:
dbalatoni13 2025-04-08 17:12:51 +02:00
parent a95def6dc0
commit 54d85f487c
6 changed files with 32 additions and 14 deletions

View file

@ -8,6 +8,8 @@ endif ()
set(CMAKE_C_STANDARD 11)
set(CMAKE_CXX_STANDARD 20)
set(VERSION 0)
# Set build type to Debug if not specified
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE Debug)
@ -106,20 +108,28 @@ set_source_files_properties(${file} PROPERTIES COMPILE_FLAGS "-std=c89 -Dinline=
endforeach()
endif ()
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -rdynamic")
add_executable(marioparty4 ${DOLPHIN_FILES} ${GAME_FILES} ${PORT_FILES})
set_property(TARGET marioparty4 PROPERTY ENABLE_EXPORTS ON)
target_compile_definitions(marioparty4 PRIVATE TARGET_PC VERSION=0 TARGET_MAIN)
target_compile_definitions(musyx PRIVATE MUSY_VERSION_MAJOR=1 MUSY_VERSION_MINOR=5 MUSY_VERSION_PATCH=4)
target_include_directories(marioparty4 PRIVATE include build/GMPE01_00/include)
add_library(dol SHARED ${DOLPHIN_FILES} ${GAME_FILES} ${PORT_FILES})
target_compile_definitions(dol PRIVATE TARGET_PC TARGET_DOL VERSION=${VERSION} MUSY_VERSION_MAJOR=1 MUSY_VERSION_MINOR=5 MUSY_VERSION_PATCH=4)
target_include_directories(dol PRIVATE include build/GMPE01_00/include)
target_link_libraries(dol PRIVATE aurora::core aurora::gx aurora::vi musyx)
if (MSVC)
target_link_options(marioparty4 PRIVATE "/DEF:${CMAKE_SOURCE_DIR}/dol.def")
endif ()
target_link_libraries(marioparty4 PRIVATE aurora::core aurora::gx aurora::vi aurora::main musyx)
target_link_options(dol PRIVATE "/DEF:${CMAKE_SOURCE_DIR}/dol.def")
else ()
target_compile_options(dol PRIVATE "-fvisibility=default")
endif()
add_library(bootDll SHARED src/REL/bootDll/main.c src/REL/bootDll/language.c)
target_compile_definitions(bootDll PRIVATE TARGET_PC VERSION=0 TARGET_REL)
target_compile_definitions(bootDll PRIVATE TARGET_PC VERSION=${VERSION})
target_include_directories(bootDll PRIVATE include build/GMPE01_00/include)
if (MSVC)
set_target_properties(bootDll PROPERTIES LINK_FLAGS "/EXPORT:ObjectSetup")
target_link_libraries(bootDll PRIVATE musyx marioparty4)
else ()
endif()
set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS OFF)
target_link_libraries(bootDll PRIVATE dol musyx)
add_executable(marioparty4 src/port/portmain.c)
target_compile_definitions(marioparty4 PRIVATE TARGET_PC VERSION=${VERSION})
target_include_directories(marioparty4 PRIVATE include)
target_link_libraries(marioparty4 PRIVATE dol aurora::main)