diff --git a/CMakeLists.txt b/CMakeLists.txt
index 85faba047362759a890fefe2ae472bcb5d430640..d936c1c657187bafba5eece50bd4b627e9d9f7ac 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -26,14 +26,35 @@ project(SkywardHub)
 set(CMAKE_CXX_STANDARD 17)
 set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
+if (WIN32)
+    # Disable MSVC C standard library deprecation warnings
+    add_compile_definitions(
+        _CRT_SECURE_NO_WARNINGS
+        _CRT_NONSTDC_NO_DEPRECATE
+        _SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS
+    )
+    if (MSVC)
+        add_compile_options(
+            "/wd4068;" # disable "unknown pragma 'mark'" warnings
+        )
+    endif()
+endif()
+
 # MAvLink Skyward library
 add_subdirectory(libs/mavlink-skyward-lib EXCLUDE_FROM_ALL)
 
 # Backward-cpp
 set(MINGW_MSVCR_LIBRARY msvcrt CACHE STRING "Mingw MSVC runtime import library") # Fix dependency on msvcr90
-add_subdirectory(libs/backward-cpp)
+add_subdirectory(libs/backward-cpp SYSTEM)
 
 # Qt5 and its modules
+if (WIN32)
+    set(QT_BASE_DIR "C:/Qt/5.15.2/msvc2019_64")
+else()
+    set(QT_BASE_DIR "/opt/qt/5.15.2/gcc_64")
+endif()
+
+list(APPEND CMAKE_PREFIX_PATH ${QT_BASE_DIR}/lib/cmake/)
 find_package(Qt5 REQUIRED COMPONENTS Widgets SerialPort PrintSupport 3DCore 3DExtras 3DRender 3DInput)
 
 add_executable(skywardhub
@@ -130,7 +151,7 @@ if(DEFINED ENV{WIN_DEPLOY_QT})
     message("-- Using windeployqt.exe from $ENV{WIN_DEPLOY_QT}")
     add_custom_command(
         TARGET skywardhub POST_BUILD
-        COMMAND $ENV{WIN_DEPLOY_QT} skywardhub.exe
+        COMMAND $ENV{WIN_DEPLOY_QT} --no-translations --no-angle --no-opengl-sw --no-quick-import --no-compiler-runtime --verbose 1 skywardhub.exe
         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
         COMMENT "Running windeployqt.exe..."
     )
diff --git a/sbs b/sbs
index 29a159156efb637763f2a670755b6d028e414d4a..c5f658e034298bbef1b883fe11427fd10b9970d6 100755
--- a/sbs
+++ b/sbs
@@ -85,13 +85,12 @@ configure() {
     ohai "Configure"
     
     declare -a defs=(-DCMAKE_EXPORT_COMPILE_COMMANDS=ON)
-    defs+=(-DCMAKE_CXX_FLAGS=-fdiagnostics-color=always -DCMAKE_PREFIX_PATH=$CMAKE_PREFIX_PATH)
     [ "$found_ccache" = true ]   && defs+=(-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache)
     [ "$config_debug" = true ]   && defs+=(-DCMAKE_BUILD_TYPE=Debug) || defs+=(-DCMAKE_BUILD_TYPE=Release)
     [ "$config_verbose" = true ] && defs+=(-DCMAKE_VERBOSE_MAKEFILE=ON)
     
     declare gen
-    [ "$found_ninja" = true ] && gen=-GNinja || gen=-G"Unix Makefiles"
+    [ "$found_ninja" = true ] && gen=-GNinja
     
     cmake -B"$build_dir" "${defs[@]}" "$gen" "$source_dir" || return
     
@@ -124,7 +123,6 @@ check_configured() {
 
 build() {
     declare build_dir="$1"
-    declare target="$2"
     
     check_configured "$build_dir" || return
     
@@ -133,13 +131,13 @@ build() {
     declare -a opts
     get_build_opts opts
     
-    cmake --build "$build_dir" "${opts[@]}" --target "$target"
+    cmake --build "$build_dir" "${opts[@]}"
 }
 
 build_all() {
     declare build_dir="$build_dir"
     
-    build "$build_dir" all
+    build "$build_dir"
 }
 
 clean() {
@@ -148,13 +146,6 @@ clean() {
     
     ohai "Clean ($build_desc)"
     
-    if [ -f "$build_dir/$CMAKE_FILENAME" ]; then
-        declare -a opts
-        get_build_opts opts
-        
-        cmake --build "$build_dir" "${opts[@]}" --target clean
-    fi
-    
     echo "Removing build folder..."
     rm -rf "$build_dir"
 }
@@ -315,7 +306,6 @@ EOF
 }
 
 CMAKE_FILENAME="CMakeCache.txt"
-CMAKE_PREFIX_PATH="/opt/qt/5.15.2/gcc_64/lib/cmake/"
 DEBUG_FILENAME=".sbsdebug"
 VERBOSE_FILENAME=".sbsverbose"
 BUILD_DIRNAME="build"