CMakeLists: Ensure we specify Unicode as the codepage on Windows

Previously we were building with MBCS, which is pretty undesirable. We
want the application to be Unicode-aware in general.

Currently, we make the command line variant of yuzu use ANSI variants of
the non-standard getopt functions that we link in for Windows, given we
only have an ANSI option-set.

We should really replace getopt with a library that we make all build
types of yuzu link in, but this will have to do for the time being.
This commit is contained in:
Lioncash 2019-04-15 17:32:47 -04:00 committed by fearlessTobi
parent c81a96b0da
commit 1f2b44d24d
3 changed files with 15 additions and 12 deletions

View File

@ -18,6 +18,9 @@ if (MSVC)
# Avoid windows.h from including some usually unused libs like winsocks.h, since this might cause some redefinition errors. # Avoid windows.h from including some usually unused libs like winsocks.h, since this might cause some redefinition errors.
add_definitions(-DWIN32_LEAN_AND_MEAN) add_definitions(-DWIN32_LEAN_AND_MEAN)
# Ensure that projects build with Unicode support.
add_definitions(-DUNICODE -D_UNICODE)
# /W3 - Level 3 warnings # /W3 - Level 3 warnings
# /MP - Multi-threaded compilation # /MP - Multi-threaded compilation
# /Zi - Output debugging information # /Zi - Output debugging information

View File

@ -11,11 +11,6 @@
// This needs to be included before getopt.h because the latter #defines symbols used by it // This needs to be included before getopt.h because the latter #defines symbols used by it
#include "common/microprofile.h" #include "common/microprofile.h"
#include <getopt.h>
#ifndef _MSC_VER
#include <unistd.h>
#endif
#ifdef _WIN32 #ifdef _WIN32
// windows.h needs to be included before shellapi.h // windows.h needs to be included before shellapi.h
#include <windows.h> #include <windows.h>
@ -45,6 +40,12 @@
#include "core/settings.h" #include "core/settings.h"
#include "network/network.h" #include "network/network.h"
#undef _UNICODE
#include <getopt.h>
#ifndef _MSC_VER
#include <unistd.h>
#endif
#ifdef _WIN32 #ifdef _WIN32
extern "C" { extern "C" {
// tells Nvidia drivers to use the dedicated GPU by default on laptops with switchable graphics // tells Nvidia drivers to use the dedicated GPU by default on laptops with switchable graphics

View File

@ -11,13 +11,6 @@
#include <thread> #include <thread>
#include <glad/glad.h> #include <glad/glad.h>
#ifdef _MSC_VER
#include <getopt.h>
#else
#include <getopt.h>
#include <unistd.h>
#endif
#ifdef _WIN32 #ifdef _WIN32
// windows.h needs to be included before shellapi.h // windows.h needs to be included before shellapi.h
#include <windows.h> #include <windows.h>
@ -40,6 +33,12 @@
#include "web_service/verify_user_jwt.h" #include "web_service/verify_user_jwt.h"
#endif #endif
#undef _UNICODE
#include <getopt.h>
#ifndef _MSC_VER
#include <unistd.h>
#endif
static void PrintHelp(const char* argv0) { static void PrintHelp(const char* argv0) {
std::cout << "Usage: " << argv0 std::cout << "Usage: " << argv0
<< " [options] <filename>\n" << " [options] <filename>\n"