diff --git a/AVQt/AVQt b/AVQt/AVQt
index ec0a50036238753aaa622340081da626b5811b8f..03946df30591578f9892397a901b38825753724d 100644
--- a/AVQt/AVQt
+++ b/AVQt/AVQt
@@ -1,19 +1,32 @@
-#include "input/Demuxer.h"
+#include <qglobal.h>
+
 #include "input/IPacketSource.h"
 #include "input/IFrameSource.h"
 #include "input/IAudioSource.h"
-#include "filter/IDecoder.h"
-#include "filter/DecoderVAAPI.h"
-#include "filter/DecoderQSV.h"
-#include "filter/DecoderDXVA2.h"
-#include "filter/DecoderMMAL.h"
-#include "filter/AudioDecoder.h"
-#include "filter/EncoderVAAPI.h"
-#include "filter/EncoderQSV.h"
 #include "output/IPacketSink.h"
 #include "output/IFrameSink.h"
 #include "output/IAudioSink.h"
+#include "filter/IDecoder.h"
+#include "filter/IEncoder.h"
+#include "input/Demuxer.h"
+#include "output/Muxer.h"
 #include "output/OpenGLRenderer.h"
 #include "output/OpenALAudioOutput.h"
-#include "output/Muxer.h"
+
+
+#ifdef Q_OS_LINUX
+
+#include "filter/DecoderVAAPI.h"
+#include "filter/DecoderMMAL.h"
+#include "filter/EncoderVAAPI.h"
+
+#elif Q_OS_WIN
+
+#include "filter/DecoderDXVA2.h"
+
+#endif
+
+#include "filter/AudioDecoder.h"
+#include "filter/DecoderQSV.h"
+#include "filter/EncoderQSV.h"
 //#include "output/FrameFileSaver.h"
\ No newline at end of file
diff --git a/AVQt/CMakeLists.txt b/AVQt/CMakeLists.txt
index 14afc5d46096d6c752379728575780e4acdf7db7..e5e4468d03d6933c551c6d154247123179f8a371 100644
--- a/AVQt/CMakeLists.txt
+++ b/AVQt/CMakeLists.txt
@@ -37,35 +37,15 @@ set(SOURCES
         filter/IDecoder.h
         filter/IEncoder.h
 
-        filter/DecoderVAAPI.h
-        filter/private/DecoderVAAPI_p.h
-        filter/DecoderVAAPI.cpp
-
         filter/DecoderQSV.h
         filter/private/DecoderQSV_p.h
         filter/DecoderQSV.cpp
 
-        filter/DecoderDXVA2.h
-        filter/private/DecoderDXVA2_p.h
-        filter/DecoderDXVA2.cpp
-
-        filter/DecoderMMAL.h
-        filter/private/DecoderMMAL_p.h
-        filter/DecoderMMAL.cpp
-
         filter/AudioDecoder.h
         filter/private/AudioDecoder_p.h
         filter/private/OpenALErrorHandler.h
         filter/AudioDecoder.cpp
 
-        #        output/FrameFileSaver.h
-        #        output/private/FrameFileSaver_p.h
-        #        output/FrameFileSaver.cpp
-
-        filter/EncoderVAAPI.h
-        filter/private/EncoderVAAPI_p.h
-        filter/EncoderVAAPI.cpp
-
         filter/EncoderQSV.h
         filter/private/EncoderQSV_p.h
         filter/EncoderQSV.cpp
@@ -85,10 +65,40 @@ set(SOURCES
         output/Muxer.h
         output/private/Muxer_p.h
         output/Muxer.cpp
+
+        #        output/FrameFileSaver.h
+        #        output/private/FrameFileSaver_p.h
+        #        output/FrameFileSaver.cpp
+        )
+set(SOURCES_LINUX
+        filter/DecoderVAAPI.h
+        filter/private/DecoderVAAPI_p.h
+        filter/DecoderVAAPI.cpp
+
+        filter/DecoderMMAL.h
+        filter/private/DecoderMMAL_p.h
+        filter/DecoderMMAL.cpp
+
+        filter/EncoderVAAPI.h
+        filter/private/EncoderVAAPI_p.h
+        filter/EncoderVAAPI.cpp
+        )
+set(SOURCES_WINDOWS
+        filter/DecoderDXVA2.h
+        filter/private/DecoderDXVA2_p.h
+        filter/DecoderDXVA2.cpp
         )
 
-add_library(AVQt SHARED ${SOURCES})
-add_library(AVQtStatic STATIC ${SOURCES})
+if (WIN32)
+    add_library(AVQt SHARED ${SOURCES} ${SOURCES_WINDOWS})
+    add_library(AVQtStatic STATIC ${SOURCES} ${SOURCES_WINDOWS})
+elseif (UNIX)
+    add_library(AVQt SHARED ${SOURCES} ${SOURCES_LINUX})
+    add_library(AVQtStatic STATIC ${SOURCES} ${SOURCES_LINUX})
+else ()
+    message(FATAL_ERROR "LibAVQt doesn't support other platforms than Windows (10 and up, Build 1809 and up) and Linux")
+endif ()
+
 set_target_properties(AVQtStatic PROPERTIES OUTPUT_NAME AVQt_static)
 
 if (!WIN32)
@@ -141,6 +151,7 @@ if (!WIN32)
             -Werror=all
             -Werror=extra
             -Werror=pedantic
+            -Wno-float-equal
             -ansi
             -Werror=init-self
             -Werror=old-style-cast