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

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_library(SDL2 SDL2)
find_library(SWRESAMPLE swresample)
# 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/settings.cpp
src/io.cpp
@ -14,9 +95,13 @@ add_executable(chiaki WIN32
src/main.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
borealis
${SDL2}
@ -26,21 +111,24 @@ target_link_libraries(chiaki
${SWRESAMPLE}
${SWSCALE})
# OS links
if(CHIAKI_SWITCH_ENABLE_LINUX)
target_link_libraries(chiaki dl)
else()
if(CHIAKI_IS_SWITCH)
# libnx is forced by the switch toolchain
find_library(Z z)
find_library(GLAPI glapi)
find_library(DRM_NOUVEAU drm_nouveau)
target_link_libraries(chiaki ${Z} ${GLAPI} ${DRM_NOUVEAU})
find_library(GLAPI glapi) # TODO: make it transitive from borealis
find_library(DRM_NOUVEAU drm_nouveau) # TODO: make it transitive from borealis
target_link_libraries(chiaki-borealis ${Z} ${GLAPI} ${DRM_NOUVEAU})
endif()
install(TARGETS chiaki
install(TARGETS chiaki-borealis
RUNTIME DESTINATION bin
BUNDLE DESTINATION bin)
if(CHIAKI_ENABLE_SWITCH AND NOT CHIAKI_SWITCH_ENABLE_LINUX)
add_nro_target(chiaki "chiaki" "Chiaki team" "${CHIAKI_VERSION}" "${CMAKE_SOURCE_DIR}/switch/res/icon.jpg" "${CMAKE_SOURCE_DIR}/switch/res")
if(CHIAKI_IS_SWITCH)
add_nro_target(chiaki
chiaki-borealis
"chiaki"
"Chiaki team"
"${CHIAKI_VERSION}"
"${CMAKE_SOURCE_DIR}/switch/res/icon.jpg"
"${CMAKE_SOURCE_DIR}/switch/res")
endif()

1
switch/borealis Submodule

@ -0,0 +1 @@
Subproject commit 205e97ab45922fa7f5c9fa6a85d5d686cd50b669

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)
{
#ifdef CHIAKI_SWITCH_ENABLE_LINUX
#ifndef __SWITCH__
// use cin to get user input from linux
std::cin.getline(buffer, buffer_size);
CHIAKI_LOGI(this->log, "Got user input: %s\n", buffer);

View file

@ -20,7 +20,7 @@ bool appletMainLoop()
}
#endif
#ifndef CHIAKI_SWITCH_ENABLE_LINUX
#if __SWITCH__
#define CHIAKI_ENABLE_SWITCH_NXLINK 1
#endif
@ -109,15 +109,11 @@ int main(int argc, char* argv[])
{
// init chiaki lib
ChiakiLog log;
#if defined(CHIAKI_ENABLE_SWITCH_NXLINK) || defined(CHIAKI_SWITCH_ENABLE_LINUX)
#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
#if defined(__SWITCH__) && !defined(CHIAKI_ENABLE_SWITCH_NXLINK)
// null log for switch version
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
// load chiaki lib