Index: CMakeLists.txt
===================================================================
--- CMakeLists.txt	(revisión: 11120)
+++ CMakeLists.txt	(copia de trabajo)
@@ -198,7 +198,11 @@
 	endif ()
 	if (SIMUTRANS_USE_FONTCONFIG)
 		target_compile_definitions(simutrans PRIVATE USE_FONTCONFIG=1)
-		target_link_libraries(simutrans PRIVATE Fontconfig::Fontconfig)
+		if (MINGW)
+			target_link_libraries(simutrans PRIVATE ${FontconfigPC_STATIC_LIBRARIES} -liconv)
+		else ()
+			target_link_libraries(simutrans PRIVATE Fontconfig::Fontconfig)
+		endif ()
 	endif ()
 	target_compile_definitions(simutrans PRIVATE USE_FREETYPE=1)
 endif (SIMUTRANS_USE_FREETYPE)
Index: cmake/SimutransFindDependencies.cmake
===================================================================
--- cmake/SimutransFindDependencies.cmake	(revisión: 11120)
+++ cmake/SimutransFindDependencies.cmake	(copia de trabajo)
@@ -16,6 +16,9 @@
 		pkg_check_modules(SDL2 IMPORTED_TARGET sdl2)
 		pkg_check_modules(Freetype IMPORTED_TARGET freetype2)
 		pkg_check_modules(FluidSynth IMPORTED_TARGET fluidsynth>=2.1.0)
+		if(MINGW)
+			pkg_check_modules(FontconfigPC IMPORTED_TARGET fontconfig)
+		endif ()
 	endif ()
 
 	set(CMAKE_THREAD_PREFER_PTHREAD ON)
Index: src/simutrans/sys/simsys.cc
===================================================================
--- src/simutrans/sys/simsys.cc	(revisión: 11120)
+++ src/simutrans/sys/simsys.cc	(copia de trabajo)
@@ -641,7 +641,33 @@
 std::string dr_get_system_font()
 {
 #if COLOUR_DEPTH != 0
-#ifdef WIN32
+#if defined(ANDROID)
+	return FONT_PATH_X "Roboto-Regular.ttf";
+#elif defined(USE_FONTCONFIG)
+	std::string fontFile = FONT_PATH_X "cyr.bdf";
+	FcInit();
+	FcConfig* config = FcInitLoadConfigAndFonts();
+	FcPattern* pat = FcNameParse((const FcChar8*)"Sans");
+	FcConfigSubstitute(config, pat, FcMatchPattern);
+	FcDefaultSubstitute(pat);
+
+	FcResult result;
+	FcPattern* font = FcFontMatch(config, pat, &result);
+
+	if (font) {
+		FcChar8* file = NULL; 
+
+		if (  FcPatternGetString(font, FC_FILE, 0, &file) == FcResultMatch  ) {
+			fontFile = (char*)file;
+		}
+	}
+	FcPatternDestroy(font);
+	FcPatternDestroy(pat);
+	FcConfigDestroy(config);
+	FcFini();
+	return fontFile;
+
+#elif WIN32
 #define DEFAULT_FONT "arial.ttf"
 
 	NONCLIENTMETRICS ncm;
@@ -724,31 +750,6 @@
 	// luckily any TTF font in windows has an ASCII name ...
 	DBG_MESSAGE("dr_get_system_font()", "Using %s", std::string(wsFontFile.begin(), wsFontFile.end()).c_str());
 	return (std::string)winDir + std::string(wsFontFile.begin(), wsFontFile.end());
-#elif defined(ANDROID)
-	return FONT_PATH_X "Roboto-Regular.ttf";
-#elif defined(USE_FONTCONFIG)
-	std::string fontFile = FONT_PATH_X "cyr.bdf";
-	FcInit();
-	FcConfig* config = FcInitLoadConfigAndFonts();
-	FcPattern* pat = FcNameParse((const FcChar8*)"Sans");
-	FcConfigSubstitute(config, pat, FcMatchPattern);
-	FcDefaultSubstitute(pat);
-
-	FcResult result;
-	FcPattern* font = FcFontMatch(config, pat, &result);
-
-	if (font) {
-		FcChar8* file = NULL; 
-
-		if (  FcPatternGetString(font, FC_FILE, 0, &file) == FcResultMatch  ) {
-			fontFile = (char*)file;
-		}
-	}
-	FcPatternDestroy(font);
-	FcPatternDestroy(pat);
-	FcConfigDestroy(config);
-	FcFini();
-	return fontFile;
 #else
 	return FONT_PATH_X "cyr.bdf";
 #endif
