mirror of
https://github.com/mwpenny/portal64-still-alive.git
synced 2024-10-19 22:27:36 -04:00
Link to libultra for CMake builds
Libultra include directory and library path are now found dynamically and saved in a CMake cache variable so they can be overridden by users. The game now links to libultra. Most linker errors are now due to lack of integration with generated code dependencies.
This commit is contained in:
parent
bc2052527c
commit
51e7e001a5
|
@ -1,9 +1,31 @@
|
|||
include("${CMAKE_CURRENT_LIST_DIR}/toolchain_n64.cmake")
|
||||
set(LIBULTRA TRUE)
|
||||
set(USING_LIBULTRA TRUE)
|
||||
|
||||
set(LIBULTRA_INCLUDE_DIRS
|
||||
"${N64_TOOLCHAIN_PREFIX}/usr/include/n64"
|
||||
"${N64_TOOLCHAIN_PREFIX}/usr/include/n64/PR"
|
||||
find_path(LIBULTRA_INCLUDE_DIR ultra64.h
|
||||
PATHS
|
||||
"${N64_TOOLCHAIN_PREFIX}/usr/include/n64"
|
||||
DOC
|
||||
"Libultra include directory"
|
||||
REQUIRED
|
||||
)
|
||||
|
||||
# TODO: libs
|
||||
set(LIBULTRA_INCLUDE_DIRS
|
||||
"${LIBULTRA_INCLUDE_DIR}"
|
||||
"${LIBULTRA_INCLUDE_DIR}/PR"
|
||||
)
|
||||
|
||||
find_library(LIBULTRA_LIB libultra_rom
|
||||
PATHS
|
||||
"${N64_TOOLCHAIN_PREFIX}/usr/lib/n64"
|
||||
DOC
|
||||
"Libultra library file"
|
||||
REQUIRED
|
||||
)
|
||||
|
||||
add_library(libultra STATIC IMPORTED)
|
||||
set_target_properties(libultra PROPERTIES
|
||||
IMPORTED_LOCATION ${LIBULTRA_LIB}
|
||||
)
|
||||
target_include_directories(libultra
|
||||
INTERFACE ${LIBULTRA_INCLUDE_DIRS}
|
||||
)
|
||||
|
|
|
@ -183,12 +183,18 @@ add_dependencies(portal gen_version_header)
|
|||
###########################
|
||||
|
||||
# TODO: move some of this into toolchain
|
||||
if (LIBULTRA)
|
||||
if (USING_LIBULTRA)
|
||||
target_sources(portal PRIVATE
|
||||
system/libultra/controller_libultra.c
|
||||
system/libultra/time_libultra.c
|
||||
)
|
||||
|
||||
target_include_directories(portal BEFORE PRIVATE ${LIBULTRA_INCLUDE_DIRS})
|
||||
target_compile_definitions(portal PRIVATE F3DEX_GBI_2)
|
||||
|
||||
target_link_libraries(portal libultra)
|
||||
|
||||
# Need explicit call for proper ordering
|
||||
target_include_directories(portal BEFORE
|
||||
PRIVATE $<TARGET_PROPERTY:libultra,INTERFACE_INCLUDE_DIRECTORIES>
|
||||
)
|
||||
endif()
|
||||
|
|
Loading…
Reference in a new issue