From 1f53d8a9a207e756e190d994af1144a79dad3d9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Henrik=20Rydg=C3=A5rd?= Date: Fri, 22 Sep 2023 18:24:37 +0200 Subject: [PATCH] Hook up libchdr to CMakeLists.txt, Android.mk fix --- CMakeLists.txt | 4 +++- UI/MainScreen.cpp | 2 +- android/jni/Android.mk | 32 +++++++++++++++++++++++++++++--- android/jni/Locals.mk | 2 ++ ext/CMakeLists.txt | 3 +++ libretro/Makefile.common | 29 +++++++++++++++++++++++++++++ 6 files changed, 67 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d36a7e4b7814..8ccd674fd31e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2317,7 +2317,9 @@ else() include_directories(ext/zstd/lib) endif() -target_link_libraries(${CoreLibName} Common native kirk cityhash sfmt19937 xbrz xxhash rcheevos ${GlslangLibs} +include_directories(ext/libchdr/include) + +target_link_libraries(${CoreLibName} Common native chdr-static kirk cityhash sfmt19937 xbrz xxhash rcheevos ${GlslangLibs} ${CoreExtraLibs} ${OPENGL_LIBRARIES} ${X11_LIBRARIES} ${CMAKE_DL_LIBS}) if(NOT HTTPS_NOT_AVAILABLE) diff --git a/UI/MainScreen.cpp b/UI/MainScreen.cpp index a90fef737473..6349daad3384 100644 --- a/UI/MainScreen.cpp +++ b/UI/MainScreen.cpp @@ -846,7 +846,7 @@ void GameBrowser::Refresh() { } } else if (!listingPending_) { std::vector fileInfo; - path_.GetListing(fileInfo, "iso:cso:pbp:elf:prx:ppdmp:"); + path_.GetListing(fileInfo, "iso:cso:chd:pbp:elf:prx:ppdmp:"); for (size_t i = 0; i < fileInfo.size(); i++) { bool isGame = !fileInfo[i].isDirectory; bool isSaveData = false; diff --git a/android/jni/Android.mk b/android/jni/Android.mk index 338d52baa0b2..d9042822e7e8 100644 --- a/android/jni/Android.mk +++ b/android/jni/Android.mk @@ -8,7 +8,7 @@ LOCAL_C_INCLUDES += \ $(LOCAL_PATH)/../../ext/cpu_features/include \ $(LOCAL_PATH)/../../ext/rcheevos/include -LOCAL_CFLAGS += -DSTACK_LINE_READER_BUFFER_SIZE=1024 -DHAVE_DLFCN_H -DRC_DISABLE_LUA +LOCAL_CFLAGS += -DSTACK_LINE_READER_BUFFER_SIZE=1024 -DHAVE_DLFCN_H -DRC_DISABLE_LUA -D_7ZIP_ST # http://software.intel.com/en-us/articles/getting-started-on-optimizing-ndk-project-for-multiple-cpu-architectures @@ -113,7 +113,33 @@ VR_FILES := \ $(SRC)/Common/VR/VRMath.cpp \ $(SRC)/Common/VR/VRRenderer.cpp +LZMA_FILES := \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Alloc.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Bcj2.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Bcj2Enc.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Bra.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Bra86.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/CpuArch.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Delta.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/LzFind.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/LzFindOpt.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/LzmaDec.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/LzmaEnc.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Lzma86Dec.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Lzma86Enc.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/LzmaLib.c \ + $(SRC)/ext/libchdr/deps/lzma-22.01/src/Sort.c + +CHDR_FILES := \ + $(SRC)/ext/libchdr/src/libchdr_bitstream.c \ + $(SRC)/ext/libchdr/src/libchdr_cdrom.c \ + $(SRC)/ext/libchdr/src/libchdr_chd.c \ + $(SRC)/ext/libchdr/src/libchdr_flac.c \ + $(SRC)/ext/libchdr/src/libchdr_huffman.c + EXT_FILES := \ + $(LZMA_FILES) \ + $(CHDR_FILES) \ $(SRC)/ext/cityhash/city.cpp \ $(SRC)/ext/libpng17/png.c \ $(SRC)/ext/libpng17/pngerror.c \ @@ -357,7 +383,7 @@ ARCH_FILES := \ Arm64EmitterTest.cpp endif -VULKAN_FILES := \ +GPU_VULKAN_FILES := \ $(SRC)/GPU/Vulkan/DrawEngineVulkan.cpp \ $(SRC)/GPU/Vulkan/FramebufferManagerVulkan.cpp \ $(SRC)/GPU/Vulkan/GPU_Vulkan.cpp \ @@ -370,7 +396,7 @@ VULKAN_FILES := \ EXEC_AND_LIB_FILES := \ $(ARCH_FILES) \ - $(VULKAN_FILES) \ + $(GPU_VULKAN_FILES) \ $(SRC)/ext/xxhash.c \ TestRunner.cpp \ $(SRC)/Core/MIPS/MIPS.cpp.arm \ diff --git a/android/jni/Locals.mk b/android/jni/Locals.mk index aa71119f3b71..e176a2bdc747 100644 --- a/android/jni/Locals.mk +++ b/android/jni/Locals.mk @@ -20,6 +20,8 @@ LOCAL_C_INCLUDES := \ $(LOCAL_PATH)/../../ext/armips \ $(LOCAL_PATH)/../../ext/armips/ext/filesystem/include \ $(LOCAL_PATH)/../../ext/armips/ext/tinyformat \ + $(LOCAL_PATH)/../../ext/libchdr/deps/lzma-22.01/include \ + $(LOCAL_PATH)/../../ext/libchdr/include \ $(LOCAL_PATH) LOCAL_STATIC_LIBRARIES := libzip glslang-build miniupnp-build diff --git a/ext/CMakeLists.txt b/ext/CMakeLists.txt index 9bbb9b7a7452..10424cf01a1d 100644 --- a/ext/CMakeLists.txt +++ b/ext/CMakeLists.txt @@ -37,3 +37,6 @@ endif() if(USE_DISCORD AND NOT IOS AND NOT LIBRETRO) add_subdirectory(discord-rpc-build) endif() + +set(BUILD_SHARED_LIBS OFF) +add_subdirectory(libchdr) \ No newline at end of file diff --git a/libretro/Makefile.common b/libretro/Makefile.common index 0168cd21e510..e8c6ed2d4113 100644 --- a/libretro/Makefile.common +++ b/libretro/Makefile.common @@ -226,6 +226,35 @@ SOURCES_C += \ COREFLAGS += -DSTACK_LINE_READER_BUFFER_SIZE=1024 COREFLAGS += -DHTTPS_NOT_AVAILABLE +COREFLAGS += -D_7ZIP_ST +INCFLAGS += -I$(EXTDIR)/libchdr/deps/lzma-22.01/include + +SOURCES_C += \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Alloc.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Bcj2.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Bcj2Enc.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Bra.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Bra86.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/CpuArch.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Delta.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/LzFind.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/LzFindOpt.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/LzmaDec.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/LzmaEnc.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Lzma86Dec.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Lzma86Enc.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/LzmaLib.c \ + $(EXTDIR)/libchdr/deps/lzma-22.01/src/Sort.c + +INCFLAGS += -I$(EXTDIR)/libchdr/include + +SOURCES_C += \ + $(EXTDIR)/libchdr/src/libchdr_bitstream.c \ + $(EXTDIR)/libchdr/src/libchdr_cdrom.c \ + $(EXTDIR)/libchdr/src/libchdr_chd.c \ + $(EXTDIR)/libchdr/src/libchdr_flac.c \ + $(EXTDIR)/libchdr/src/libchdr_huffman.c + ifeq ($(PLATFORM_EXT), android) COREFLAGS += -DHAVE_DLFCN_H else ifneq ($(PLATFORM_EXT), win32)