From 124da59cb40df5e47e7183dfef90bcd5957ed71f Mon Sep 17 00:00:00 2001
From: Kai Koehne <kai.koehne@digia.com>
Date: Fri, 8 Mar 2013 11:24:36 +0100
Subject: [PATCH] Fix static builds with ICU

Make sure we actually link against the static version of the ICU libs for
static builds.

Task-number: QTBUG-29478

Change-Id: Ida7b439f11c5393bee43bfe804f9ec84bf272b34
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
---
 src/corelib/tools/tools.pri      | 15 +++++++++++++--
 tools/configure/configureapp.cpp |  3 ++-
 2 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/src/corelib/tools/tools.pri b/src/corelib/tools/tools.pri
index 564aff9ab93..72a873235a7 100644
--- a/src/corelib/tools/tools.pri
+++ b/src/corelib/tools/tools.pri
@@ -122,8 +122,19 @@ contains(QT_CONFIG, zlib) {
 contains(QT_CONFIG,icu) {
     SOURCES += tools/qlocale_icu.cpp
     DEFINES += QT_USE_ICU
-    win32:LIBS_PRIVATE += -licuin -licuuc
-    else:LIBS_PRIVATE += -licui18n -licuuc
+    win32 {
+        CONFIG(static, static|shared) {
+            CONFIG(debug, debug|release) {
+                LIBS_PRIVATE += -lsicuind -lsicuucd -lsicudtd
+            } else {
+                LIBS_PRIVATE += -lsicuin -lsicuuc -lsicudt
+            }
+        } else {
+            LIBS_PRIVATE += -licuin -licuuc
+        }
+    } else {
+        LIBS_PRIVATE += -licui18n -licuuc
+    }
 }
 
 pcre {
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index af470939e9d..d19d34e54ee 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -2017,7 +2017,8 @@ bool Configure::checkAvailability(const QString &part)
 
     else if (part == "ICU")
         available = findFile("unicode/utypes.h") && findFile("unicode/ucol.h") && findFile("unicode/ustring.h")
-                        && (findFile("icuin.lib") || findFile("libicuin.lib")); // libicun.lib if compiled with mingw
+                        && (findFile("icuin.lib") || findFile("sicuin.lib")
+                              || findFile("libicuin.lib") || findFile("libsicuin.lib")); // "lib" prefix for mingw, 's' prefix for static
 
     else if (part == "ANGLE") {
         available = checkAngleAvailability();
-- 
GitLab