diff --git a/CMakeLists.txt b/CMakeLists.txt
index 16f87d0ac..154e104a4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -484,6 +484,7 @@ elseif(WIN32)
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/FreeImage/Dist/x64
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/freetype/include
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/gettext/include
+                            ${CMAKE_CURRENT_SOURCE_DIR}/external/harfbuzz/src
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/libgit2/include
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/pugixml/src
                             ${CMAKE_CURRENT_SOURCE_DIR}/external/SDL2)
@@ -560,6 +561,7 @@ elseif(WIN32)
                             ${PROJECT_SOURCE_DIR}/FreeImage.lib
                             ${PROJECT_SOURCE_DIR}/git2.lib
                             ${PROJECT_SOURCE_DIR}/glew32.lib
+                            ${PROJECT_SOURCE_DIR}/harfbuzz.lib
                             ${PROJECT_SOURCE_DIR}/libcurl-x64.lib
                             ${PROJECT_SOURCE_DIR}/libintl-8.lib
                             ${PROJECT_SOURCE_DIR}/freetype.lib
diff --git a/es-app/CMakeLists.txt b/es-app/CMakeLists.txt
index a32d29b6f..08744ddfc 100644
--- a/es-app/CMakeLists.txt
+++ b/es-app/CMakeLists.txt
@@ -161,6 +161,7 @@ if(WIN32)
                   ../freetype.dll
                   ../git2.dll
                   ../glew32.dll
+                  ../harfbuzz.dll
                   ../libcrypto-3-x64.dll
                   ../libcurl-x64.dll
                   ../libiconv-2.dll
diff --git a/tools/Windows_dependencies_build.bat b/tools/Windows_dependencies_build.bat
index fb5169e98..c59cfdfcd 100644
--- a/tools/Windows_dependencies_build.bat
+++ b/tools/Windows_dependencies_build.bat
@@ -26,6 +26,26 @@ echo:
 
 cd external
 
+echo Building HarfBuzz
+
+if not exist harfbuzz\build\ (
+  echo harfbuzz directory is missing, aborting.
+  cd ..
+  goto end
+)
+
+cd harfbuzz\build
+if exist CMakeCache.txt (
+  nmake clean
+  del CMakeCache.txt
+)
+
+cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON ..
+nmake
+copy /Y harfbuzz.dll ..\..\..\
+copy /Y harfbuzz.lib ..\..\..\
+cd ..\..
+
 echo Building FreeType
 
 if not exist freetype\build\ (
diff --git a/tools/Windows_dependencies_setup.bat b/tools/Windows_dependencies_setup.bat
index d60544032..017e8e5c9 100644
--- a/tools/Windows_dependencies_setup.bat
+++ b/tools/Windows_dependencies_setup.bat
@@ -134,6 +134,26 @@ rename glew-2.1.0 glew
 copy /Y glew\bin\Release\x64\glew32.dll ..
 copy /Y glew\lib\Release\x64\glew32.lib ..
 
+echo:
+echo Setting up HarfBuzz
+
+if exist harfbuzz\ (
+  rmdir /S /Q harfbuzz
+)
+
+git clone https://github.com/harfbuzz/harfbuzz.git
+
+if not exist harfbuzz\ (
+  echo harfbuzz directory is missing, aborting.
+  cd ..
+  goto end
+)
+
+cd harfbuzz
+git checkout 9.0.0
+mkdir build
+cd ..
+
 echo:
 echo Setting up FreeType