From da14c7b8e47fcd5456d88a033a1fb154a0dcfa39 Mon Sep 17 00:00:00 2001 From: t895 Date: Sun, 12 Nov 2023 02:03:01 -0500 Subject: config: Unify config handling under frontend_common Replaces every way of handling config for each frontend with SimpleIni. frontend_common's Config class is at the center where it saves and loads all of the cross-platform settings and provides a set of pure virtual functions for platform specific settings. As a result of making config handling platform specific, several parts had to be moved to each platform's own config class or to other parts. Default keys were put in platform specific config classes and translatable strings for Qt were moved to shared_translation. Default hotkeys, default_theme, window geometry, and qt metatypes were moved to uisettings. Additionally, to reduce dependence on Qt, QStrings were converted to std::strings where applicable. --- externals/CMakeLists.txt | 3 +++ externals/simpleini | 1 + 2 files changed, 4 insertions(+) create mode 160000 externals/simpleini (limited to 'externals') diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index be8b0b5e8..d0d4926bb 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -295,3 +295,6 @@ if (YUZU_CRASH_DUMPS AND NOT TARGET libbreakpad_client) target_link_libraries(dump_syms PRIVATE libbreakpad_client ZLIB::ZLIB) endif() endif() + +# SimpleIni +add_subdirectory(simpleini) diff --git a/externals/simpleini b/externals/simpleini new file mode 160000 index 000000000..382ddbb4b --- /dev/null +++ b/externals/simpleini @@ -0,0 +1 @@ +Subproject commit 382ddbb4b92c0b26aa1b32cefba2002119a5b1f2 -- cgit v1.2.3 From aa2031196938c43590e5bea736edc05776c609a2 Mon Sep 17 00:00:00 2001 From: t895 Date: Sun, 12 Nov 2023 02:03:55 -0500 Subject: general: Remove inih --- CMakeModules/Findinih.cmake | 27 --------------------------- externals/CMakeLists.txt | 5 ----- externals/inih/CMakeLists.txt | 13 ------------- externals/inih/inih | 1 - src/android/app/src/main/jni/CMakeLists.txt | 2 +- src/yuzu_cmd/CMakeLists.txt | 2 +- 6 files changed, 2 insertions(+), 48 deletions(-) delete mode 100644 CMakeModules/Findinih.cmake delete mode 100644 externals/inih/CMakeLists.txt delete mode 160000 externals/inih/inih (limited to 'externals') diff --git a/CMakeModules/Findinih.cmake b/CMakeModules/Findinih.cmake deleted file mode 100644 index 791befebd..000000000 --- a/CMakeModules/Findinih.cmake +++ /dev/null @@ -1,27 +0,0 @@ -# SPDX-FileCopyrightText: 2022 Alexandre Bouvier -# -# SPDX-License-Identifier: GPL-3.0-or-later - -find_package(PkgConfig QUIET) -pkg_search_module(INIH QUIET IMPORTED_TARGET inih) -if (INIReader IN_LIST inih_FIND_COMPONENTS) - pkg_search_module(INIREADER QUIET IMPORTED_TARGET INIReader) - if (INIREADER_FOUND) - set(inih_INIReader_FOUND TRUE) - endif() -endif() - -include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(inih - REQUIRED_VARS INIH_LINK_LIBRARIES - VERSION_VAR INIH_VERSION - HANDLE_COMPONENTS -) - -if (inih_FOUND AND NOT TARGET inih::inih) - add_library(inih::inih ALIAS PkgConfig::INIH) -endif() - -if (inih_FOUND AND inih_INIReader_FOUND AND NOT TARGET inih::INIReader) - add_library(inih::INIReader ALIAS PkgConfig::INIREADER) -endif() diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index d0d4926bb..515e3f2a4 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -34,11 +34,6 @@ endif() # Glad add_subdirectory(glad) -# inih -if (NOT TARGET inih::INIReader) - add_subdirectory(inih) -endif() - # mbedtls add_subdirectory(mbedtls) target_include_directories(mbedtls PUBLIC ./mbedtls/include) diff --git a/externals/inih/CMakeLists.txt b/externals/inih/CMakeLists.txt deleted file mode 100644 index ebb60a976..000000000 --- a/externals/inih/CMakeLists.txt +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-FileCopyrightText: 2014 Gui Andrade -# SPDX-License-Identifier: GPL-2.0-or-later - -add_library(inih - inih/ini.c - inih/ini.h - inih/cpp/INIReader.cpp - inih/cpp/INIReader.h -) - -create_target_directory_groups(inih) -target_include_directories(inih INTERFACE inih/cpp) -add_library(inih::INIReader ALIAS inih) diff --git a/externals/inih/inih b/externals/inih/inih deleted file mode 160000 index 9cecf0643..000000000 --- a/externals/inih/inih +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9cecf0643da0846e77f64d10a126d9f48b9e05e8 diff --git a/src/android/app/src/main/jni/CMakeLists.txt b/src/android/app/src/main/jni/CMakeLists.txt index 49ad029aa..2acc93da8 100644 --- a/src/android/app/src/main/jni/CMakeLists.txt +++ b/src/android/app/src/main/jni/CMakeLists.txt @@ -22,8 +22,8 @@ add_library(yuzu-android SHARED set_property(TARGET yuzu-android PROPERTY IMPORTED_LOCATION ${FFmpeg_LIBRARY_DIR}) -target_link_libraries(yuzu-android PRIVATE android camera2ndk EGL glad inih jnigraphics log) target_link_libraries(yuzu-android PRIVATE audio_core common core input_common frontend_common) +target_link_libraries(yuzu-android PRIVATE android camera2ndk EGL glad jnigraphics log) if (ARCHITECTURE_arm64) target_link_libraries(yuzu-android PRIVATE adrenotools) endif() diff --git a/src/yuzu_cmd/CMakeLists.txt b/src/yuzu_cmd/CMakeLists.txt index 281e0658e..fbeba8813 100644 --- a/src/yuzu_cmd/CMakeLists.txt +++ b/src/yuzu_cmd/CMakeLists.txt @@ -30,8 +30,8 @@ add_executable(yuzu-cmd create_target_directory_groups(yuzu-cmd) -target_link_libraries(yuzu-cmd PRIVATE inih::INIReader glad) target_link_libraries(yuzu-cmd PRIVATE common core input_common frontend_common) +target_link_libraries(yuzu-cmd PRIVATE glad) if (MSVC) target_link_libraries(yuzu-cmd PRIVATE getopt) endif() -- cgit v1.2.3 From fe3702223f0d5c2bd36a3d4d98c423157f422c10 Mon Sep 17 00:00:00 2001 From: Alexandre Bouvier Date: Thu, 2 Nov 2023 18:53:40 +0100 Subject: cmake: prefer system simpleini library --- CMakeLists.txt | 1 + CMakeModules/FindSimpleIni.cmake | 19 +++++++++++++++++++ externals/CMakeLists.txt | 4 +++- src/frontend_common/CMakeLists.txt | 2 +- src/frontend_common/config.h | 1 + 5 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 CMakeModules/FindSimpleIni.cmake (limited to 'externals') diff --git a/CMakeLists.txt b/CMakeLists.txt index e5cac8fe9..ec7975b87 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -290,6 +290,7 @@ find_package(lz4 REQUIRED) find_package(nlohmann_json 3.8 REQUIRED) find_package(Opus 1.3 MODULE) find_package(RenderDoc MODULE) +find_package(SimpleIni MODULE) find_package(stb MODULE) find_package(VulkanMemoryAllocator CONFIG) find_package(ZLIB 1.2 REQUIRED) diff --git a/CMakeModules/FindSimpleIni.cmake b/CMakeModules/FindSimpleIni.cmake new file mode 100644 index 000000000..ce75d7690 --- /dev/null +++ b/CMakeModules/FindSimpleIni.cmake @@ -0,0 +1,19 @@ +# SPDX-FileCopyrightText: 2023 Alexandre Bouvier +# +# SPDX-License-Identifier: GPL-3.0-or-later + +find_path(SimpleIni_INCLUDE_DIR SimpleIni.h) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(SimpleIni + REQUIRED_VARS SimpleIni_INCLUDE_DIR +) + +if (SimpleIni_FOUND AND NOT TARGET SimpleIni::SimpleIni) + add_library(SimpleIni::SimpleIni INTERFACE IMPORTED) + set_target_properties(SimpleIni::SimpleIni PROPERTIES + INTERFACE_INCLUDE_DIRECTORIES "${SimpleIni_INCLUDE_DIR}" + ) +endif() + +mark_as_advanced(SimpleIni_INCLUDE_DIR) diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt index 515e3f2a4..fc922c31b 100644 --- a/externals/CMakeLists.txt +++ b/externals/CMakeLists.txt @@ -292,4 +292,6 @@ if (YUZU_CRASH_DUMPS AND NOT TARGET libbreakpad_client) endif() # SimpleIni -add_subdirectory(simpleini) +if (NOT TARGET SimpleIni::SimpleIni) + add_subdirectory(simpleini) +endif() diff --git a/src/frontend_common/CMakeLists.txt b/src/frontend_common/CMakeLists.txt index 1537271fc..22e9337c4 100644 --- a/src/frontend_common/CMakeLists.txt +++ b/src/frontend_common/CMakeLists.txt @@ -7,4 +7,4 @@ add_library(frontend_common STATIC ) create_target_directory_groups(frontend_common) -target_link_libraries(frontend_common PUBLIC core SimpleIni PRIVATE common Boost::headers) +target_link_libraries(frontend_common PUBLIC core SimpleIni::SimpleIni PRIVATE common Boost::headers) diff --git a/src/frontend_common/config.h b/src/frontend_common/config.h index 20a1a8056..b3812af17 100644 --- a/src/frontend_common/config.h +++ b/src/frontend_common/config.h @@ -7,6 +7,7 @@ #include #include "common/settings.h" +#define SI_NO_CONVERSION #include #include -- cgit v1.2.3