From 1052e741138c5093af65d829549f3434e5c8c8a0 Mon Sep 17 00:00:00 2001 From: overwri <1037152726@qq.com> Date: Thu, 8 Feb 2024 07:28:00 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E4=BF=AE=E5=A4=8DMingw=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B=20?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E5=8A=A8=E6=80=81=E5=BA=93=E5=9C=A8=E5=91=BD?= =?UTF-8?q?=E4=BB=A4=E4=B8=AD=E4=BD=BF=E7=94=A8=E5=8F=98=E9=87=8F-DBUILD?= =?UTF-8?q?=5FSHARED=5FLIBS=3Dtrue=E5=AE=9E=E7=8E=B0=EF=BC=8C=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E9=9D=99=E6=80=81=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CMakeLists.txt | 12 +----------- main.cpp | 38 +++++++++++++++++++------------------- 2 files changed, 20 insertions(+), 30 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5c54db5..c22acda 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ project(ncmdump LANGUAGES CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -option(BUILD_WIN32_STATIC "Build the program statically on Windows" ON) +add_subdirectory(taglib) FILE(GLOB HEADERS ./*.h) FILE(GLOB SOURCES ./*.cpp) @@ -13,22 +13,12 @@ add_executable(ncmdump ${HEADERS} ${SOURCES} ) -add_subdirectory(taglib) target_link_libraries(ncmdump tag) target_include_directories(ncmdump PRIVATE taglib) target_include_directories(ncmdump PRIVATE taglib/taglib) target_include_directories(ncmdump PRIVATE taglib/taglib/toolkit) target_include_directories(ncmdump PRIVATE taglib/taglib/mpeg/id3v2) -if(WIN32) - if(CMAKE_COMPILER_IS_GNUCXX) - target_link_options(ncmdump PRIVATE -O2 -municode) - if(BUILD_WIN32_STATIC) - target_link_options(ncmdump PRIVATE -static) - endif() - endif() -endif() - include(GNUInstallDirs) install(TARGETS ncmdump BUNDLE DESTINATION . diff --git a/main.cpp b/main.cpp index 8cb2c75..ab82e3f 100644 --- a/main.cpp +++ b/main.cpp @@ -5,7 +5,7 @@ #include #include -#ifdef _WIN32 +#if defined(_WIN32) && defined(_MSC_VER) #include #endif @@ -47,15 +47,15 @@ void processFilesInFolder(const fs::path& folderPath) { } } -#ifdef _WIN32 +#if defined(_WIN32) && defined(_MSC_VER) int wmain(int argc, wchar_t* argv[]) #else int main(int argc, char **argv) #endif { - #ifdef _WIN32 - SetConsoleOutputCP(CP_UTF8); - #endif +#if defined(_WIN32) && defined(_MSC_VER) + SetConsoleOutputCP(CP_UTF8); +#endif if (argc <= 1) { displayHelp(); @@ -67,17 +67,17 @@ int main(int argc, char **argv) bool folderProvided = false; - #ifdef _WIN32 - #define COMPARE_STR(s1, s2) (wcscmp(s1, s2) == 0) - #define HELP_SHORT L"-h" - #define HELP_LONG L"--help" - #define FOLDER L"-d" - #else - #define COMPARE_STR(s1, s2) (strcmp(s1, s2) == 0) - #define HELP_SHORT "-h" - #define HELP_LONG "--help" - #define FOLDER "-d" - #endif +#if defined(_WIN32) && defined(_MSC_VER) +#define COMPARE_STR(s1, s2) (wcscmp(s1, s2) == 0) +#define HELP_SHORT L"-h" +#define HELP_LONG L"--help" +#define FOLDER L"-d" +#else +#define COMPARE_STR(s1, s2) (strcmp(s1, s2) == 0) +#define HELP_SHORT "-h" +#define HELP_LONG "--help" +#define FOLDER "-d" +#endif for (int i = 1; i < argc; ++i) { if (COMPARE_STR(argv[i], HELP_SHORT) || COMPARE_STR(argv[i], HELP_LONG)) { @@ -95,14 +95,14 @@ int main(int argc, char **argv) return 1; } } else { - #ifdef _WIN32 +#if defined(_WIN32) && defined(_MSC_VER) int multiByteStrSize = WideCharToMultiByte(CP_UTF8, 0, argv[1], -1, NULL, 0, NULL, NULL); char *multiByteStr = new char[multiByteStrSize]; WideCharToMultiByte(CP_UTF8, 0, argv[i], -1, multiByteStr, multiByteStrSize, NULL, NULL); fs::path path(multiByteStr); - #else +#else fs::path path(argv[i]); - #endif +#endif files.push_back(path); } }