Make Borealis GUI more generic to build (#408)

This commit is contained in:
Florian Märkl 2020-12-23 17:36:17 +01:00 committed by GitHub
commit 4da09f75f3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
16 changed files with 168 additions and 167 deletions

1
.gitignore vendored
View file

@ -26,3 +26,4 @@ compile_commands.json
.ccls-cache .ccls-cache
.cache/ .cache/
.gdb_history .gdb_history
chiaki.conf

4
.gitmodules vendored
View file

@ -13,6 +13,6 @@
[submodule "android/app/src/main/cpp/oboe"] [submodule "android/app/src/main/cpp/oboe"]
path = android/app/src/main/cpp/oboe path = android/app/src/main/cpp/oboe
url = https://github.com/google/oboe url = https://github.com/google/oboe
[submodule "third-party/borealis"] [submodule "switch/borealis"]
path = third-party/borealis path = switch/borealis
url = https://github.com/natinusala/borealis.git url = https://github.com/natinusala/borealis.git

View file

@ -13,7 +13,7 @@ option(CHIAKI_ENABLE_TESTS "Enable tests for Chiaki" ON)
option(CHIAKI_ENABLE_CLI "Enable CLI for Chiaki" OFF) option(CHIAKI_ENABLE_CLI "Enable CLI for Chiaki" OFF)
option(CHIAKI_ENABLE_GUI "Enable Qt GUI" ON) option(CHIAKI_ENABLE_GUI "Enable Qt GUI" ON)
option(CHIAKI_ENABLE_ANDROID "Enable Android (Use only as part of the Gradle Project)" OFF) option(CHIAKI_ENABLE_ANDROID "Enable Android (Use only as part of the Gradle Project)" OFF)
option(CHIAKI_ENABLE_SWITCH "Enable Nintendo Switch (Requires devKitPro libnx)" OFF) option(CHIAKI_ENABLE_BOREALIS "Enable Borealis GUI (For Nintendo Switch or PC)" OFF)
tri_option(CHIAKI_ENABLE_SETSU "Enable libsetsu for touchpad input from controller" AUTO) tri_option(CHIAKI_ENABLE_SETSU "Enable libsetsu for touchpad input from controller" AUTO)
option(CHIAKI_LIB_ENABLE_OPUS "Use Opus as part of Chiaki Lib" ON) option(CHIAKI_LIB_ENABLE_OPUS "Use Opus as part of Chiaki Lib" ON)
tri_option(CHIAKI_ENABLE_PI_DECODER "Enable Raspberry Pi-specific video decoder (requires libraspberrypi0 and libraspberrypi-doc)" AUTO) tri_option(CHIAKI_ENABLE_PI_DECODER "Enable Raspberry Pi-specific video decoder (requires libraspberrypi0 and libraspberrypi-doc)" AUTO)
@ -39,33 +39,16 @@ set(CPACK_DEBIAN_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION})
set(CPACK_DEBIAN_PACKAGE_SECTION "games") set(CPACK_DEBIAN_PACKAGE_SECTION "games")
include(CPack) include(CPack)
set(CHIAKI_IS_SWITCH ${NSWITCH})
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake;${CMAKE_CURRENT_SOURCE_DIR}/setsu/cmake") list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake;${CMAKE_CURRENT_SOURCE_DIR}/setsu/cmake")
# configure nintendo switch toolchain set(CMAKE_CXX_STANDARD 11)
if(CHIAKI_ENABLE_SWITCH)
# load switch.cmake toolchain form ./cmake folder if(CHIAKI_IS_SWITCH)
# include(switch)
# to compile borealis third party
set(CMAKE_CXX_STANDARD 17)
# TODO check if android ... or other versions are enabled
# force mbedtls as crypto lib # force mbedtls as crypto lib
set(CHIAKI_LIB_ENABLE_MBEDTLS ON) set(CHIAKI_LIB_ENABLE_MBEDTLS ON)
if(CHIAKI_SWITCH_ENABLE_LINUX)
# CHIAKI_SWITCH_ENABLE_LINUX is a special testing version
# the aim is to troubleshoot nitendo switch chiaki verison
# from a x86 linux os
add_definitions(-DCHIAKI_SWITCH_ENABLE_LINUX)
add_definitions(-DBOREALIS_RESOURCES="./switch/res/")
set(CMAKE_BUILD_TYPE Debug)
add_definitions(-DDEBUG_OPENGL)
else()
add_definitions(-D__SWITCH__) add_definitions(-D__SWITCH__)
# use symbolic links to load font ..
add_definitions(-DBOREALIS_RESOURCES="romfs:/")
endif()
else()
set(CMAKE_CXX_STANDARD 11)
endif() endif()
if(CHIAKI_USE_SYSTEM_JERASURE) if(CHIAKI_USE_SYSTEM_JERASURE)
@ -167,6 +150,6 @@ if(CHIAKI_ENABLE_ANDROID)
add_subdirectory(android/app) add_subdirectory(android/app)
endif() endif()
if(CHIAKI_ENABLE_SWITCH) if(CHIAKI_ENABLE_BOREALIS)
add_subdirectory(switch) add_subdirectory(switch)
endif() endif()

View file

@ -42,6 +42,11 @@ function(join OUTPUT GLUE)
endfunction() endfunction()
function (_ffmpeg_find component headername) function (_ffmpeg_find component headername)
if(TARGET "FFMPEG::${component}")
# already found before
return()
endif()
# Try pkg-config first # Try pkg-config first
if(PKG_CONFIG_FOUND) if(PKG_CONFIG_FOUND)
pkg_check_modules(FFMPEG_${component} lib${component} IMPORTED_TARGET) pkg_check_modules(FFMPEG_${component} lib${component} IMPORTED_TARGET)

View file

@ -1,14 +1,16 @@
# Find DEVKITPRO # Find DEVKITPRO
if(NOT DEFINED ENV{DEVKITPRO} OR NOT DEFINED ENV{PORTLIBS_PREFIX}) set(DEVKITPRO "$ENV{DEVKITPRO}" CACHE PATH "Path to DevKitPro")
set(PORTLIBS_PREFIX "$ENV{PORTLIBS_PREFIX}" CACHE PATH "Path to portlibs inside DevKitPro")
if(NOT DEVKITPRO OR NOT PORTLIBS_PREFIX)
message(FATAL_ERROR "Please set DEVKITPRO & PORTLIBS_PREFIX env before calling cmake. https://devkitpro.org/wiki/Getting_Started") message(FATAL_ERROR "Please set DEVKITPRO & PORTLIBS_PREFIX env before calling cmake. https://devkitpro.org/wiki/Getting_Started")
endif() endif()
set(DEVKITPRO "$ENV{DEVKITPRO}")
set(PORTLIBS_PREFIX "$ENV{PORTLIBS_PREFIX}")
# include devkitpro toolchain # include devkitpro toolchain
include("${DEVKITPRO}/switch.cmake") include("${DEVKITPRO}/switch.cmake")
set(NSWITCH TRUE)
# Enable gcc -g, to use # Enable gcc -g, to use
# /opt/devkitpro/devkitA64/bin/aarch64-none-elf-addr2line -e build_switch/switch/chiaki -f -p -C -a 0xCCB5C # /opt/devkitpro/devkitA64/bin/aarch64-none-elf-addr2line -e build_switch/switch/chiaki -f -p -C -a 0xCCB5C
# set(CMAKE_BUILD_TYPE Debug) # set(CMAKE_BUILD_TYPE Debug)
@ -60,20 +62,21 @@ function(__add_nacp target APP_TITLE APP_AUTHOR APP_VERSION)
) )
endfunction() endfunction()
function(add_nro_target target title author version icon romfs) function(add_nro_target output_name target title author version icon romfs)
get_filename_component(target_we ${target} NAME_WE) if(NOT ${output_name}.nacp)
if(NOT ${target_we}.nacp) __add_nacp(${output_name}.nacp ${title} ${author} ${version})
__add_nacp(${target_we}.nacp ${title} ${author} ${version})
endif() endif()
add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nro add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${output_name}.nro
COMMAND ${ELF2NRO} $<TARGET_FILE:${target}> COMMAND ${ELF2NRO} $<TARGET_FILE:${target}>
${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nro ${CMAKE_CURRENT_BINARY_DIR}/${output_name}.nro
--icon=${icon} --icon=${icon}
--nacp=${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp --nacp=${CMAKE_CURRENT_BINARY_DIR}/${output_name}.nacp
--romfsdir=${romfs} --romfsdir=${romfs}
DEPENDS ${target} ${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp DEPENDS ${target} ${CMAKE_CURRENT_BINARY_DIR}/${output_name}.nacp
VERBATIM VERBATIM
) )
add_custom_target(${target_we}_nro ALL SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nro) add_custom_target(${output_name}_nro ALL SOURCES ${CMAKE_CURRENT_BINARY_DIR}/${output_name}.nro)
endfunction() endfunction()
set(CMAKE_USE_SYSTEM_ENVIRONMENT_PATH OFF)
set(CMAKE_PREFIX_PATH "/")

View file

@ -23,7 +23,7 @@ typedef struct chiaki_stop_pipe_t
{ {
#ifdef _WIN32 #ifdef _WIN32
WSAEVENT event; WSAEVENT event;
#elif defined(__SWITCH__) || defined(CHIAKI_ENABLE_SWITCH_LINUX) #elif defined(__SWITCH__)
// due to a lack pipe/event/socketpair // due to a lack pipe/event/socketpair
// on switch env, we use a physical socket // on switch env, we use a physical socket
// to send/trigger the cancel signal // to send/trigger the cancel signal

View file

@ -19,7 +19,7 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_stop_pipe_init(ChiakiStopPipe *stop_pipe)
stop_pipe->event = WSACreateEvent(); stop_pipe->event = WSACreateEvent();
if(stop_pipe->event == WSA_INVALID_EVENT) if(stop_pipe->event == WSA_INVALID_EVENT)
return CHIAKI_ERR_UNKNOWN; return CHIAKI_ERR_UNKNOWN;
#elif defined(__SWITCH__) || defined(CHIAKI_ENABLE_SWITCH_LINUX) #elif defined(__SWITCH__)
// currently pipe or socketpare are not available on switch // currently pipe or socketpare are not available on switch
// use a custom udp socket as pipe // use a custom udp socket as pipe
@ -64,7 +64,7 @@ CHIAKI_EXPORT void chiaki_stop_pipe_fini(ChiakiStopPipe *stop_pipe)
{ {
#ifdef _WIN32 #ifdef _WIN32
WSACloseEvent(stop_pipe->event); WSACloseEvent(stop_pipe->event);
#elif defined(__SWITCH__) || defined(CHIAKI_ENABLE_SWITCH_LINUX) #elif defined(__SWITCH__)
close(stop_pipe->fd); close(stop_pipe->fd);
#else #else
close(stop_pipe->fds[0]); close(stop_pipe->fds[0]);
@ -76,7 +76,7 @@ CHIAKI_EXPORT void chiaki_stop_pipe_stop(ChiakiStopPipe *stop_pipe)
{ {
#ifdef _WIN32 #ifdef _WIN32
WSASetEvent(stop_pipe->event); WSASetEvent(stop_pipe->event);
#elif defined(__SWITCH__) || defined(CHIAKI_ENABLE_SWITCH_LINUX) #elif defined(__SWITCH__)
// send to local socket (FIXME MSG_CONFIRM) // send to local socket (FIXME MSG_CONFIRM)
sendto(stop_pipe->fd, "\x00", 1, 0, sendto(stop_pipe->fd, "\x00", 1, 0,
(struct sockaddr*)&stop_pipe->addr, sizeof(struct sockaddr_in)); (struct sockaddr*)&stop_pipe->addr, sizeof(struct sockaddr_in));
@ -120,7 +120,7 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_stop_pipe_select_single(ChiakiStopPipe *sto
#else #else
fd_set rfds; fd_set rfds;
FD_ZERO(&rfds); FD_ZERO(&rfds);
#if defined(__SWITCH__) || defined(CHIAKI_ENABLE_SWITCH_LINUX) #if defined(__SWITCH__)
// push udp local socket as fd // push udp local socket as fd
int stop_fd = stop_pipe->fd; int stop_fd = stop_pipe->fd;
#else #else
@ -244,7 +244,7 @@ CHIAKI_EXPORT ChiakiErrorCode chiaki_stop_pipe_reset(ChiakiStopPipe *stop_pipe)
#ifdef _WIN32 #ifdef _WIN32
BOOL r = WSAResetEvent(stop_pipe->event); BOOL r = WSAResetEvent(stop_pipe->event);
return r ? CHIAKI_ERR_SUCCESS : CHIAKI_ERR_UNKNOWN; return r ? CHIAKI_ERR_SUCCESS : CHIAKI_ERR_UNKNOWN;
#elif defined(__SWITCH__) || defined(CHIAKI_ENABLE_SWITCH_LINUX) #elif defined(__SWITCH__)
//FIXME //FIXME
uint8_t v; uint8_t v;
int r; int r;

View file

@ -3,10 +3,8 @@
set -xveo pipefail set -xveo pipefail
arg1=$1 arg1=$1
CHIAKI_SWITCH_ENABLE_LINUX="ON"
build="./build" build="./build"
if [ "$arg1" != "linux" ]; then if [ "$arg1" != "linux" ]; then
CHIAKI_SWITCH_ENABLE_LINUX="OFF"
# source /opt/devkitpro/switchvars.sh # source /opt/devkitpro/switchvars.sh
# toolchain="${DEVKITPRO}/switch.cmake" # toolchain="${DEVKITPRO}/switch.cmake"
toolchain="cmake/switch.cmake" toolchain="cmake/switch.cmake"
@ -22,20 +20,18 @@ build_chiaki (){
#rm -rf ./build #rm -rf ./build
cmake -B "${build}" \ cmake -B "${build}" \
-GNinja \
-DCMAKE_TOOLCHAIN_FILE=${toolchain} \ -DCMAKE_TOOLCHAIN_FILE=${toolchain} \
-DCHIAKI_ENABLE_TESTS=OFF \ -DCHIAKI_ENABLE_TESTS=OFF \
-DCHIAKI_ENABLE_CLI=OFF \ -DCHIAKI_ENABLE_CLI=OFF \
-DCHIAKI_ENABLE_GUI=OFF \ -DCHIAKI_ENABLE_GUI=OFF \
-DCHIAKI_ENABLE_ANDROID=OFF \ -DCHIAKI_ENABLE_ANDROID=OFF \
-DCHIAKI_ENABLE_SWITCH=ON \ -DCHIAKI_ENABLE_BOREALIS=ON \
-DCHIAKI_SWITCH_ENABLE_LINUX="${CHIAKI_SWITCH_ENABLE_LINUX}" \
-DCHIAKI_LIB_ENABLE_MBEDTLS=ON \ -DCHIAKI_LIB_ENABLE_MBEDTLS=ON \
# -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ # -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \
# -DCMAKE_FIND_DEBUG_MODE=ON # -DCMAKE_FIND_DEBUG_MODE=ON
pushd "${BASEDIR}/${build}" ninja -C "${build}"
make -j8
popd
popd popd
} }

View file

@ -1,12 +1,93 @@
set(CMAKE_INCLUDE_CURRENT_DIR ON) ##################
# borealis dependency
##################
# do not include
# borealis/library/lib/switch_wrapper.c
# switch functions are in switch/src/main.cpp
set(BOREALIS_SOURCE
borealis/library/lib/extern/libretro-common/features/features_cpu.c
borealis/library/lib/extern/libretro-common/encodings/encoding_utf.c
borealis/library/lib/extern/libretro-common/compat/compat_strl.c
borealis/library/lib/extern/nxfmtwrapper/format.cpp
borealis/library/lib/extern/nanovg/nanovg.c
borealis/library/lib/extern/glad/glad.c
borealis/library/lib/scroll_view.cpp
borealis/library/lib/style.cpp
borealis/library/lib/table.cpp
borealis/library/lib/task_manager.cpp
borealis/library/lib/progress_display.cpp
borealis/library/lib/staged_applet_frame.cpp
borealis/library/lib/applet_frame.cpp
borealis/library/lib/hint.cpp
borealis/library/lib/image.cpp
borealis/library/lib/logger.cpp
borealis/library/lib/swkbd.cpp
borealis/library/lib/crash_frame.cpp
borealis/library/lib/header.cpp
borealis/library/lib/progress_spinner.cpp
borealis/library/lib/layer_view.cpp
borealis/library/lib/notification_manager.cpp
borealis/library/lib/rectangle.cpp
borealis/library/lib/application.cpp
borealis/library/lib/box_layout.cpp
borealis/library/lib/sidebar.cpp
borealis/library/lib/dropdown.cpp
borealis/library/lib/popup_frame.cpp
borealis/library/lib/repeating_task.cpp
borealis/library/lib/absolute_layout.cpp
borealis/library/lib/i18n.cpp
borealis/library/lib/tab_frame.cpp
borealis/library/lib/thumbnail_frame.cpp
borealis/library/lib/animations.cpp
borealis/library/lib/dialog.cpp
borealis/library/lib/view.cpp
borealis/library/lib/list.cpp
borealis/library/lib/button.cpp
borealis/library/lib/label.cpp
borealis/library/lib/theme.cpp
borealis/library/lib/material_icon.cpp)
add_library(borealis STATIC ${BOREALIS_SOURCE})
set_property(TARGET borealis PROPERTY CXX_STANDARD 17)
target_include_directories(borealis PUBLIC
borealis/library/include
borealis/library/include/borealis/extern
borealis/library/include/borealis/extern/glad
borealis/library/include/borealis/extern/nanovg
borealis/library/include/borealis/extern/libretro-common
borealis/library/lib/extern/fmt/include)
find_package(glfw3 REQUIRED)
find_library(EGL EGL)
find_library(GLAPI glapi)
find_library(DRM_NOUVEAU drm_nouveau)
target_link_libraries(borealis
glfw
${EGL}
${GLAPI}
${DRM_NOUVEAU})
if(CHIAKI_IS_SWITCH)
target_compile_definitions(borealis PUBLIC
BOREALIS_RESOURCES="romfs:/")
else()
target_compile_definitions(borealis PUBLIC
BOREALIS_RESOURCES="./switch/res/")
endif()
##################
# chiaki with borealis
##################
find_package(FFMPEG REQUIRED COMPONENTS avcodec avutil swscale) find_package(FFMPEG REQUIRED COMPONENTS avcodec avutil swscale)
find_library(SDL2 SDL2) find_library(SDL2 SDL2)
find_library(SWRESAMPLE swresample) find_library(SWRESAMPLE swresample)
# find -type f | grep -P '\.(h|cpp)$' | sed 's#\./#\t\t#g' # find -type f | grep -P '\.(h|cpp)$' | sed 's#\./#\t\t#g'
add_executable(chiaki WIN32 add_executable(chiaki-borealis WIN32
src/discoverymanager.cpp src/discoverymanager.cpp
src/settings.cpp src/settings.cpp
src/io.cpp src/io.cpp
@ -14,9 +95,13 @@ add_executable(chiaki WIN32
src/main.cpp src/main.cpp
src/gui.cpp) src/gui.cpp)
target_include_directories(chiaki PRIVATE include) set_target_properties(chiaki-borealis PROPERTIES
CXX_STANDARD 17
OUTPUT_NAME chiaki)
target_link_libraries(chiaki target_include_directories(chiaki-borealis PRIVATE include)
target_link_libraries(chiaki-borealis
chiaki-lib chiaki-lib
borealis borealis
${SDL2} ${SDL2}
@ -26,21 +111,24 @@ target_link_libraries(chiaki
${SWRESAMPLE} ${SWRESAMPLE}
${SWSCALE}) ${SWSCALE})
# OS links if(CHIAKI_IS_SWITCH)
if(CHIAKI_SWITCH_ENABLE_LINUX)
target_link_libraries(chiaki dl)
else()
# libnx is forced by the switch toolchain # libnx is forced by the switch toolchain
find_library(Z z) find_library(Z z)
find_library(GLAPI glapi) find_library(GLAPI glapi) # TODO: make it transitive from borealis
find_library(DRM_NOUVEAU drm_nouveau) find_library(DRM_NOUVEAU drm_nouveau) # TODO: make it transitive from borealis
target_link_libraries(chiaki ${Z} ${GLAPI} ${DRM_NOUVEAU}) target_link_libraries(chiaki-borealis ${Z} ${GLAPI} ${DRM_NOUVEAU})
endif() endif()
install(TARGETS chiaki install(TARGETS chiaki-borealis
RUNTIME DESTINATION bin RUNTIME DESTINATION bin
BUNDLE DESTINATION bin) BUNDLE DESTINATION bin)
if(CHIAKI_ENABLE_SWITCH AND NOT CHIAKI_SWITCH_ENABLE_LINUX) if(CHIAKI_IS_SWITCH)
add_nro_target(chiaki "chiaki" "Chiaki team" "${CHIAKI_VERSION}" "${CMAKE_SOURCE_DIR}/switch/res/icon.jpg" "${CMAKE_SOURCE_DIR}/switch/res") add_nro_target(chiaki
chiaki-borealis
"chiaki"
"Chiaki team"
"${CHIAKI_VERSION}"
"${CMAKE_SOURCE_DIR}/switch/res/icon.jpg"
"${CMAKE_SOURCE_DIR}/switch/res")
endif() endif()

View file

@ -1 +1 @@
../../../third-party/borealis/resources/i18n/en-US ../../borealis/resources/i18n/en-US

View file

@ -1 +1 @@
../../third-party/borealis/resources/inter ../borealis/resources/inter

View file

@ -1 +1 @@
../../third-party/borealis/resources/material ../borealis/resources/material

View file

@ -318,7 +318,7 @@ bool IO::FreeVideo()
bool IO::ReadUserKeyboard(char *buffer, size_t buffer_size) bool IO::ReadUserKeyboard(char *buffer, size_t buffer_size)
{ {
#ifdef CHIAKI_SWITCH_ENABLE_LINUX #ifndef __SWITCH__
// use cin to get user input from linux // use cin to get user input from linux
std::cin.getline(buffer, buffer_size); std::cin.getline(buffer, buffer_size);
CHIAKI_LOGI(this->log, "Got user input: %s\n", buffer); CHIAKI_LOGI(this->log, "Got user input: %s\n", buffer);

View file

@ -20,7 +20,7 @@ bool appletMainLoop()
} }
#endif #endif
#ifndef CHIAKI_SWITCH_ENABLE_LINUX #if __SWITCH__
#define CHIAKI_ENABLE_SWITCH_NXLINK 1 #define CHIAKI_ENABLE_SWITCH_NXLINK 1
#endif #endif
@ -109,15 +109,11 @@ int main(int argc, char* argv[])
{ {
// init chiaki lib // init chiaki lib
ChiakiLog log; ChiakiLog log;
#if defined(CHIAKI_ENABLE_SWITCH_NXLINK) || defined(CHIAKI_SWITCH_ENABLE_LINUX) #if defined(__SWITCH__) && !defined(CHIAKI_ENABLE_SWITCH_NXLINK)
#ifdef __SWITCH__
chiaki_log_init(&log, CHIAKI_LOG_ALL ^ CHIAKI_LOG_VERBOSE, chiaki_log_cb_print, NULL);
#else
chiaki_log_init(&log, CHIAKI_LOG_ALL, chiaki_log_cb_print, NULL);
#endif
#else
// null log for switch version // null log for switch version
chiaki_log_init(&log, 0, chiaki_log_cb_print, NULL); chiaki_log_init(&log, 0, chiaki_log_cb_print, NULL);
#else
chiaki_log_init(&log, CHIAKI_LOG_ALL ^ CHIAKI_LOG_VERBOSE, chiaki_log_cb_print, NULL);
#endif #endif
// load chiaki lib // load chiaki lib

View file

@ -52,74 +52,3 @@ if(NOT CHIAKI_USE_SYSTEM_JERASURE)
add_library(Jerasure::Jerasure ALIAS jerasure) add_library(Jerasure::Jerasure ALIAS jerasure)
endif() endif()
##################
# borealis
##################
if(CHIAKI_ENABLE_SWITCH)
# do not include
# borealis/library/lib/switch_wrapper.c
# switch functions are in switch/src/main.cpp
set(BOREALIS_SOURCE
borealis/library/lib/extern/libretro-common/features/features_cpu.c
borealis/library/lib/extern/libretro-common/encodings/encoding_utf.c
borealis/library/lib/extern/libretro-common/compat/compat_strl.c
borealis/library/lib/extern/nxfmtwrapper/format.cpp
borealis/library/lib/extern/nanovg/nanovg.c
borealis/library/lib/extern/glad/glad.c
borealis/library/lib/scroll_view.cpp
borealis/library/lib/style.cpp
borealis/library/lib/table.cpp
borealis/library/lib/task_manager.cpp
borealis/library/lib/progress_display.cpp
borealis/library/lib/staged_applet_frame.cpp
borealis/library/lib/applet_frame.cpp
borealis/library/lib/hint.cpp
borealis/library/lib/image.cpp
borealis/library/lib/logger.cpp
borealis/library/lib/swkbd.cpp
borealis/library/lib/crash_frame.cpp
borealis/library/lib/header.cpp
borealis/library/lib/progress_spinner.cpp
borealis/library/lib/layer_view.cpp
borealis/library/lib/notification_manager.cpp
borealis/library/lib/rectangle.cpp
borealis/library/lib/application.cpp
borealis/library/lib/box_layout.cpp
borealis/library/lib/sidebar.cpp
borealis/library/lib/dropdown.cpp
borealis/library/lib/popup_frame.cpp
borealis/library/lib/repeating_task.cpp
borealis/library/lib/absolute_layout.cpp
borealis/library/lib/i18n.cpp
borealis/library/lib/tab_frame.cpp
borealis/library/lib/thumbnail_frame.cpp
borealis/library/lib/animations.cpp
borealis/library/lib/dialog.cpp
borealis/library/lib/view.cpp
borealis/library/lib/list.cpp
borealis/library/lib/button.cpp
borealis/library/lib/label.cpp
borealis/library/lib/theme.cpp
borealis/library/lib/material_icon.cpp)
add_library(borealis STATIC ${BOREALIS_SOURCE})
target_include_directories(borealis PUBLIC
borealis/library/include
borealis/library/include/borealis/extern
borealis/library/include/borealis/extern/glad
borealis/library/include/borealis/extern/nanovg
borealis/library/include/borealis/extern/libretro-common
borealis/library/lib/extern/fmt/include)
find_package(glfw3 REQUIRED)
find_library(EGL EGL)
find_library(GLAPI glapi)
find_library(DRM_NOUVEAU drm_nouveau)
target_link_libraries(borealis
glfw
${EGL}
${GLAPI}
${DRM_NOUVEAU})
endif()