diff --git a/.gitignore b/.gitignore
index d40d484..8fd886b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -67,6 +67,7 @@ callgrind.out.*
*_qmlcache.qrc
test.o-*
object_script.*
+*.user
# Ignore files generated by Python #
####################################
diff --git a/cmio/cmio.pro b/CMakeLists.txt
similarity index 70%
rename from cmio/cmio.pro
rename to CMakeLists.txt
index c2df1ed..e8473b8 100644
--- a/cmio/cmio.pro
+++ b/CMakeLists.txt
@@ -1,26 +1,33 @@
-# akvirtualcamera, virtual camera for Mac and Windows.
-# Copyright (C) 2020 Gonzalo Exequiel Pedone
-#
-# akvirtualcamera is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# akvirtualcamera is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with akvirtualcamera. If not, see .
-#
-# Web-Site: http://webcamoid.github.io/
-
-TEMPLATE = subdirs
-CONFIG += ordered
-
-SUBDIRS = \
- PlatformUtils \
- VCamIPC \
- Assistant \
- VirtualCamera
+# akvirtualcamera, virtual camera for Mac and Windows.
+# Copyright (C) 2021 Gonzalo Exequiel Pedone
+#
+# akvirtualcamera is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# akvirtualcamera is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with akvirtualcamera. If not, see .
+#
+# Web-Site: http://webcamoid.github.io/
+
+cmake_minimum_required(VERSION 3.5)
+
+project(AkVirtualCamera)
+
+include(commons.cmake)
+
+add_subdirectory(VCamUtils)
+
+if (APPLE)
+ add_subdirectory(cmio)
+elseif (WIN32)
+ add_subdirectory(dshow)
+endif ()
+
+add_subdirectory(Manager)
diff --git a/Manager/CMakeLists.txt b/Manager/CMakeLists.txt
new file mode 100644
index 0000000..fc5d29d
--- /dev/null
+++ b/Manager/CMakeLists.txt
@@ -0,0 +1,77 @@
+# akvirtualcamera, virtual camera for Mac and Windows.
+# Copyright (C) 2021 Gonzalo Exequiel Pedone
+#
+# akvirtualcamera is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# akvirtualcamera is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with akvirtualcamera. If not, see .
+#
+# Web-Site: http://webcamoid.github.io/
+
+cmake_minimum_required(VERSION 3.5)
+
+project(Manager LANGUAGES CXX)
+
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+if (APPLE)
+ include(../cmio/cmio.cmake)
+ set(INSTALLPATH ${CMIO_PLUGIN_NAME}.plugin/Contents/Resources)
+elseif (WIN32)
+ include(../dshow/dshow.cmake)
+ set(INSTALLPATH ${DSHOW_PLUGIN_NAME}.plugin/${TARGET_ARCH})
+endif ()
+
+add_executable(Manager
+ src/cmdparser.h
+ src/main.cpp
+ src/cmdparser.cpp)
+set_target_properties(Manager PROPERTIES
+ OUTPUT_NAME AkVCamManager
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${INSTALLPATH}")
+add_dependencies(Manager VCamIPC PlatformUtils VCamUtils)
+target_include_directories(Manager
+ PRIVATE ..)
+target_link_libraries(Manager
+ VCamIPC
+ PlatformUtils
+ VCamUtils)
+
+if (APPLE)
+ find_library(COREFOUNDATION_FRAMEWORK NAMES CoreFoundation)
+ find_library(COREMEDIA_FRAMEWORK NAMES CoreMedia)
+ find_library(COREMEDIAIO_FRAMEWORK NAMES CoreMediaIO)
+ find_library(COREVIDEO_FRAMEWORK NAMES CoreVideo)
+ find_library(FOUNDATION_FRAMEWORK NAMES Foundation)
+ find_library(IOKIT_FRAMEWORK NAMES IOKit)
+ find_library(IOSURFACE_FRAMEWORK NAMES IOSurface)
+ set(EXTRA_LIBS ${COREFOUNDATION_FRAMEWORK}
+ ${COREMEDIA_FRAMEWORK}
+ ${COREMEDIAIO_FRAMEWORK}
+ ${COREVIDEO_FRAMEWORK}
+ ${FOUNDATION_FRAMEWORK}
+ ${IOKIT_FRAMEWORK}
+ ${IOSURFACE_FRAMEWORK})
+ target_link_libraries(Manager
+ ${EXTRA_LIBS})
+elseif (WIN32)
+ target_link_libraries(Manager
+ advapi32
+ gdi32
+ strmiids
+ uuid
+ ole32
+ oleaut32
+ shell32)
+endif ()
+
+install(TARGETS Manager DESTINATION ${INSTALLPATH})
diff --git a/Manager/Manager.pro b/Manager/Manager.pro
deleted file mode 100644
index b2b779c..0000000
--- a/Manager/Manager.pro
+++ /dev/null
@@ -1,86 +0,0 @@
-# akvirtualcamera, virtual camera for Mac and Windows.
-# Copyright (C) 2020 Gonzalo Exequiel Pedone
-#
-# akvirtualcamera is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# akvirtualcamera is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with akvirtualcamera. If not, see .
-#
-# Web-Site: http://webcamoid.github.io/
-
-exists(commons.pri) {
- include(commons.pri)
-} else {
- exists(../commons.pri) {
- include(../commons.pri)
- } else {
- error("commons.pri file not found.")
- }
-}
-
-win32: include(../dshow/dshow.pri)
-macx: include(../cmio/cmio.pri)
-
-TEMPLATE = app
-CONFIG += console link_prl
-CONFIG -= app_bundle
-CONFIG -= qt
-
-TARGET = AkVCamManager
-
-HEADERS = \
- src/cmdparser.h
-
-SOURCES = \
- src/main.cpp \
- src/cmdparser.cpp
-
-INCLUDEPATH += \
- .. \
- ../..
-
-win32: LIBS += \
- -L$${OUT_PWD}/../dshow/VCamIPC/$${BIN_DIR} -lVCamIPC \
- -L$${OUT_PWD}/../dshow/PlatformUtils/$${BIN_DIR} -lPlatformUtils \
- -ladvapi32 \
- -lgdi32 \
- -lstrmiids \
- -luuid \
- -lole32 \
- -loleaut32 \
- -lshell32
-macx: LIBS += \
- -L$${OUT_PWD}/../cmio/VCamIPC/$${BIN_DIR} -lVCamIPC \
- -L$${OUT_PWD}/../cmio/PlatformUtils/$${BIN_DIR} -lPlatformUtils \
- -framework CoreFoundation \
- -framework CoreMedia \
- -framework CoreMediaIO \
- -framework CoreVideo \
- -framework Foundation \
- -framework IOKit \
- -framework IOSurface
-LIBS += \
- -L$${OUT_PWD}/../VCamUtils/$${BIN_DIR} -lVCamUtils
-
-isEmpty(STATIC_BUILD) | isEqual(STATIC_BUILD, 0) {
- win32-g++: QMAKE_LFLAGS = -static -static-libgcc -static-libstdc++
-}
-
-win32 {
- INSTALLPATH = $${DSHOW_PLUGIN_NAME}.plugin/$$normalizedArch(TARGET_ARCH)
-} else {
- INSTALLPATH = $${CMIO_PLUGIN_NAME}.plugin/Contents/Resources
-}
-
-DESTDIR = $${OUT_PWD}/../$${INSTALLPATH}
-
-INSTALLS += target
-target.path = $${PREFIX}/$${INSTALLPATH}
diff --git a/Manager/src/cmdparser.cpp b/Manager/src/cmdparser.cpp
index 178915d..f430a0d 100644
--- a/Manager/src/cmdparser.cpp
+++ b/Manager/src/cmdparser.cpp
@@ -36,8 +36,8 @@
#include "cmdparser.h"
#include "VCamUtils/src/ipcbridge.h"
#include "VCamUtils/src/settings.h"
-#include "VCamUtils/src/image/videoformat.h"
-#include "VCamUtils/src/image/videoframe.h"
+#include "VCamUtils/src/videoformat.h"
+#include "VCamUtils/src/videoframe.h"
#include "VCamUtils/src/logger.h"
#define AKVCAM_BIND_FUNC(member) \
diff --git a/VCamUtils/CMakeLists.txt b/VCamUtils/CMakeLists.txt
new file mode 100644
index 0000000..b021668
--- /dev/null
+++ b/VCamUtils/CMakeLists.txt
@@ -0,0 +1,47 @@
+# akvirtualcamera, virtual camera for Mac and Windows.
+# Copyright (C) 2021 Gonzalo Exequiel Pedone
+#
+# akvirtualcamera is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# akvirtualcamera is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with akvirtualcamera. If not, see .
+#
+# Web-Site: http://webcamoid.github.io/
+
+cmake_minimum_required(VERSION 3.14)
+
+project(VCamUtils LANGUAGES CXX)
+
+set(CMAKE_INCLUDE_CURRENT_DIR ON)
+set(CMAKE_CXX_STANDARD 11)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+add_library(VCamUtils STATIC
+ src/color.h
+ src/fraction.cpp
+ src/fraction.h
+ src/ipcbridge.h
+ src/logger.cpp
+ src/logger.h
+ src/settings.cpp
+ src/settings.h
+ src/timer.cpp
+ src/timer.h
+ src/utils.cpp
+ src/utils.h
+ src/videoformat.cpp
+ src/videoformat.h
+ src/videoformattypes.h
+ src/videoframe.cpp
+ src/videoframe.h
+ src/videoframetypes.h)
+
+target_compile_definitions(VCamUtils PRIVATE VCAMUTILS_LIBRARY)
diff --git a/VCamUtils/VCamUtils.pro b/VCamUtils/VCamUtils.pro
deleted file mode 100644
index 6c6e268..0000000
--- a/VCamUtils/VCamUtils.pro
+++ /dev/null
@@ -1,65 +0,0 @@
-# akvirtualcamera, virtual camera for Mac and Windows.
-# Copyright (C) 2020 Gonzalo Exequiel Pedone
-#
-# akvirtualcamera is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# akvirtualcamera is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with akvirtualcamera. If not, see .
-#
-# Web-Site: http://webcamoid.github.io/
-
-exists(commons.pri) {
- include(commons.pri)
-} else {
- exists(../commons.pri) {
- include(../commons.pri)
- } else {
- error("commons.pri file not found.")
- }
-}
-
-CONFIG += \
- staticlib \
- create_prl \
- no_install_prl
-CONFIG -= qt
-
-DESTDIR = $${OUT_PWD}/$${BIN_DIR}
-
-TARGET = VCamUtils
-
-TEMPLATE = lib
-
-SOURCES += \
- src/fraction.cpp \
- src/image/videoformat.cpp \
- src/image/videoframe.cpp \
- src/logger.cpp \
- src/settings.cpp \
- src/timer.cpp \
- src/utils.cpp
-
-HEADERS += \
- src/fraction.h \
- src/image/color.h \
- src/image/videoformat.h \
- src/image/videoframe.h \
- src/image/videoframetypes.h \
- src/image/videoformattypes.h \
- src/ipcbridge.h \
- src/logger.h \
- src/settings.h \
- src/timer.h \
- src/utils.h
-
-isEmpty(STATIC_BUILD) | isEqual(STATIC_BUILD, 0) {
- win32-g++: QMAKE_LFLAGS = -static -static-libgcc -static-libstdc++
-}
diff --git a/VCamUtils/src/image/color.h b/VCamUtils/src/color.h
similarity index 100%
rename from VCamUtils/src/image/color.h
rename to VCamUtils/src/color.h
diff --git a/VCamUtils/src/ipcbridge.h b/VCamUtils/src/ipcbridge.h
index 5e4dfa3..3dec9e6 100644
--- a/VCamUtils/src/ipcbridge.h
+++ b/VCamUtils/src/ipcbridge.h
@@ -23,8 +23,8 @@
#include
#include