1
0
mirror of https://git.sr.ht/~thestr4ng3r/chiaki synced 2025-03-12 05:25:23 -07:00
2021-01-12 13:35:40 +01:00

135 lines
3.9 KiB
CMake

##################
# 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-borealis WIN32
src/discoverymanager.cpp
src/settings.cpp
src/io.cpp
src/host.cpp
src/main.cpp
src/gui.cpp)
set_target_properties(chiaki-borealis PROPERTIES
CXX_STANDARD 17
OUTPUT_NAME chiaki)
target_include_directories(chiaki-borealis PRIVATE include)
target_link_libraries(chiaki-borealis
chiaki-lib
borealis
${SDL2}
FFMPEG::avcodec
FFMPEG::avutil
FFMPEG::swscale
${SWRESAMPLE}
${SWSCALE})
if(CHIAKI_IS_SWITCH)
# libnx is forced by the switch toolchain
find_library(Z z)
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-borealis
RUNTIME DESTINATION bin
BUNDLE DESTINATION bin)
if(CHIAKI_IS_SWITCH)
add_nro_target(chiaki
chiaki-borealis
"Chiaki"
"H0neyBadger and thestr4ng3r"
"${CHIAKI_VERSION}"
"${CMAKE_CURRENT_SOURCE_DIR}/nro_icon.jpg"
"${CMAKE_CURRENT_SOURCE_DIR}/res")
endif()