From fdb490c49f89a3078a239eddfda9be61523fc342 Mon Sep 17 00:00:00 2001 From: Oliver Duis Date: Mon, 18 Jul 2011 22:18:42 +0200 Subject: [PATCH] Compilation workaround for older MinGW versions (Win only) see issue 847 --- COMPILE.txt | 18 ++++++++++-------- rtgui/multilangmgr.cc | 7 +++++++ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/COMPILE.txt b/COMPILE.txt index e06d58522..1d43efceb 100644 --- a/COMPILE.txt +++ b/COMPILE.txt @@ -35,20 +35,22 @@ Windows This tutorial assume that you've installed the packages in paths THAT DOES NOT CONTAIN SPACES. METHOD 1: - - MinGW-TDM (http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.1.exe/download) - OpenMP seems to be broken in TDM-GCC4.5.1, so when MinGW has been installed, download and install - libgomp form tdm-gcc-4.5.0 - (http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%204.5%20series/Previous/4.5.0-tdm-1%20SJLJ/gcc-4.5.0-tdm-1-openmp.zip/download) + - MinGW64-TDM (Bundle or On-Demand insteller from http://tdm-gcc.tdragon.net/download) + Make sure you use the current 4.5.2 or better, and install MinGW64 (not MinGW32) + MinGW64 is more comprehensive, plus it runs AND compiles both 32bit and 64bit Windows. + Old Mingw32 version miss some required header files, so some Windows functions will be disabled though it will compile. - MSYS (http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe) If you have some trouble installing MSYS, see here : http://www.mingw.org/wiki/MSYS - CMake (http://www.cmake.org/cmake/resources/software.html) - Version 2.8.4 or above si required for this platform - - Gtkmm2.22 (http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/) + Version 2.8.4 or above is required for this platform + - Gtkmm2.22 (for 32bit: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/ + for 64bit: http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/) METHOD 2: - - MinGW-TDM (http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/tdm-gcc-4.5.1.exe/download) + - MinGW-TDM (Bundle or On-Demand insteller from http://tdm-gcc.tdragon.net/download) - CMake (http://www.cmake.org/cmake/resources/software.html) - - Gtkmm2.22 (http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/) + - Gtkmm2.22 (for 32bit: http://ftp.se.debian.org/pub/gnome/binaries/win32/gtkmm/2.22/ + for 64bit: http://ftp.gnome.org/pub/gnome/binaries/win64/gtk+/2.22/) Additionnal steps: When all the packages of your preferred method are installed: diff --git a/rtgui/multilangmgr.cc b/rtgui/multilangmgr.cc index 5f3e3c865..f6d96b62a 100644 --- a/rtgui/multilangmgr.cc +++ b/rtgui/multilangmgr.cc @@ -96,11 +96,15 @@ bool MultiLangMgr::save (Glib::ustring fname) { bool MultiLangMgr::isOSLanguageDetectSupported() { #ifdef WIN32 + #ifdef __MINGW64_VERSION_MAJOR // Only on Vista or above return LOBYTE(LOWORD(GetVersion()))>=6; #else return false; #endif +#else + return false; +#endif } @@ -112,6 +116,8 @@ Glib::ustring MultiLangMgr::getOSUserLanguage() { // TODO: Add support for other OS here #ifdef WIN32 +// When using old versions of MINGW this is not defined +#ifdef __MINGW64_VERSION_MAJOR WCHAR langRFCU[64] = {0}; if (GetUserDefaultLocaleName(langRFCU,64)!=0 && lstrlenW(langRFCU)>=2) { // convert UNICODE16 to GTK @@ -121,6 +127,7 @@ Glib::ustring MultiLangMgr::getOSUserLanguage() { langName=TranslateRFC2Language(localRFC); } +#endif #endif } else printf("Automatic language detection not supported on your OS\n");