diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 5c084f5..9022e66 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -28,101 +28,8 @@ set_directory_properties(PROPERTIES CORRADE_USE_PEDANTIC_FLAGS ON)
corrade_add_resource(Assets assets.conf)
-add_library(Logger STATIC EXCLUDE_FROM_ALL
- Logger/Logger.h
- Logger/Logger.cpp
- Logger/EntryType.h
- Logger/MagnumLogBuffer.h
- Logger/MagnumLogBuffer.cpp
-)
-
-target_link_libraries(Logger PRIVATE
- Corrade::Utility
- Magnum::Magnum
-)
-
-add_library(UESaveFile STATIC EXCLUDE_FROM_ALL
- UESaveFile/Serialisers/AbstractUnrealCollectionPropertySerialiser.h
- UESaveFile/Serialisers/AbstractUnrealPropertySerialiser.h
- UESaveFile/Serialisers/AbstractUnrealStructSerialiser.h
- UESaveFile/Serialisers/ArrayPropertySerialiser.h
- UESaveFile/Serialisers/ArrayPropertySerialiser.cpp
- UESaveFile/Serialisers/BoolPropertySerialiser.h
- UESaveFile/Serialisers/BoolPropertySerialiser.cpp
- UESaveFile/Serialisers/BytePropertySerialiser.h
- UESaveFile/Serialisers/BytePropertySerialiser.cpp
- UESaveFile/Serialisers/ColourPropertySerialiser.h
- UESaveFile/Serialisers/ColourPropertySerialiser.cpp
- UESaveFile/Serialisers/DateTimePropertySerialiser.h
- UESaveFile/Serialisers/DateTimePropertySerialiser.cpp
- UESaveFile/Serialisers/EnumPropertySerialiser.h
- UESaveFile/Serialisers/EnumPropertySerialiser.cpp
- UESaveFile/Serialisers/FloatPropertySerialiser.h
- UESaveFile/Serialisers/FloatPropertySerialiser.cpp
- UESaveFile/Serialisers/GuidPropertySerialiser.h
- UESaveFile/Serialisers/GuidPropertySerialiser.cpp
- UESaveFile/Serialisers/IntPropertySerialiser.h
- UESaveFile/Serialisers/IntPropertySerialiser.cpp
- UESaveFile/Serialisers/MapPropertySerialiser.h
- UESaveFile/Serialisers/MapPropertySerialiser.cpp
- UESaveFile/Serialisers/ResourcePropertySerialiser.h
- UESaveFile/Serialisers/ResourcePropertySerialiser.cpp
- UESaveFile/Serialisers/RotatorPropertySerialiser.h
- UESaveFile/Serialisers/RotatorPropertySerialiser.cpp
- UESaveFile/Serialisers/StringPropertySerialiser.h
- UESaveFile/Serialisers/StringPropertySerialiser.cpp
- UESaveFile/Serialisers/SetPropertySerialiser.h
- UESaveFile/Serialisers/SetPropertySerialiser.cpp
- UESaveFile/Serialisers/StructSerialiser.h
- UESaveFile/Serialisers/StructSerialiser.cpp
- UESaveFile/Serialisers/TextPropertySerialiser.h
- UESaveFile/Serialisers/TextPropertySerialiser.cpp
- UESaveFile/Serialisers/UnrealPropertySerialiser.h
- UESaveFile/Serialisers/VectorPropertySerialiser.h
- UESaveFile/Serialisers/VectorPropertySerialiser.cpp
- UESaveFile/Serialisers/Vector2DPropertySerialiser.h
- UESaveFile/Serialisers/Vector2DPropertySerialiser.cpp
-
- UESaveFile/Types/ArrayProperty.h
- UESaveFile/Types/BoolProperty.h
- UESaveFile/Types/ByteProperty.h
- UESaveFile/Types/ColourStructProperty.h
- UESaveFile/Types/DateTimeStructProperty.h
- UESaveFile/Types/EnumProperty.h
- UESaveFile/Types/FloatProperty.h
- UESaveFile/Types/GenericStructProperty.h
- UESaveFile/Types/GuidStructProperty.h
- UESaveFile/Types/IntProperty.h
- UESaveFile/Types/MapProperty.h
- UESaveFile/Types/NoneProperty.h
- UESaveFile/Types/RotatorStructProperty.h
- UESaveFile/Types/SetProperty.h
- UESaveFile/Types/StringProperty.h
- UESaveFile/Types/StructProperty.h
- UESaveFile/Types/ResourceItemValue.h
- UESaveFile/Types/TextProperty.h
- UESaveFile/Types/UnrealProperty.h
- UESaveFile/Types/UnrealPropertyBase.h
- UESaveFile/Types/VectorStructProperty.h
-
- UESaveFile/Debug.h
- UESaveFile/Debug.cpp
- UESaveFile/UESaveFile.h
- UESaveFile/UESaveFile.cpp
- UESaveFile/BinaryReader.h
- UESaveFile/BinaryReader.cpp
- UESaveFile/BinaryWriter.h
- UESaveFile/BinaryWriter.cpp
- UESaveFile/PropertySerialiser.h
- UESaveFile/PropertySerialiser.cpp
-)
-
-target_link_libraries(UESaveFile PRIVATE
- Corrade::Containers
- Corrade::Utility
- Magnum::Magnum
- Logger
-)
+add_subdirectory(Logger EXCLUDE_FROM_ALL)
+add_subdirectory(UESaveFile EXCLUDE_FROM_ALL)
add_executable(MassBuilderSaveTool WIN32
main.cpp
diff --git a/src/Logger/CMakeLists.txt b/src/Logger/CMakeLists.txt
new file mode 100644
index 0000000..d26eb1d
--- /dev/null
+++ b/src/Logger/CMakeLists.txt
@@ -0,0 +1,28 @@
+# MassBuilderSaveTool
+# Copyright (C) 2021-2022 Guillaume Jacquemin
+#
+# This program 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.
+#
+# This program 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 this program. If not, see .
+
+add_library(Logger STATIC EXCLUDE_FROM_ALL
+ Logger.h
+ Logger.cpp
+ EntryType.h
+ MagnumLogBuffer.h
+ MagnumLogBuffer.cpp
+)
+
+target_link_libraries(Logger PRIVATE
+ Corrade::Utility
+ Magnum::Magnum
+)
diff --git a/src/UESaveFile/CMakeLists.txt b/src/UESaveFile/CMakeLists.txt
new file mode 100644
index 0000000..97c036c
--- /dev/null
+++ b/src/UESaveFile/CMakeLists.txt
@@ -0,0 +1,98 @@
+# MassBuilderSaveTool
+# Copyright (C) 2021-2022 Guillaume Jacquemin
+#
+# This program 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.
+#
+# This program 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 this program. If not, see .
+
+add_library(UESaveFile STATIC EXCLUDE_FROM_ALL
+ Serialisers/AbstractUnrealCollectionPropertySerialiser.h
+ Serialisers/AbstractUnrealPropertySerialiser.h
+ Serialisers/AbstractUnrealStructSerialiser.h
+ Serialisers/ArrayPropertySerialiser.h
+ Serialisers/ArrayPropertySerialiser.cpp
+ Serialisers/BoolPropertySerialiser.h
+ Serialisers/BoolPropertySerialiser.cpp
+ Serialisers/BytePropertySerialiser.h
+ Serialisers/BytePropertySerialiser.cpp
+ Serialisers/ColourPropertySerialiser.h
+ Serialisers/ColourPropertySerialiser.cpp
+ Serialisers/DateTimePropertySerialiser.h
+ Serialisers/DateTimePropertySerialiser.cpp
+ Serialisers/EnumPropertySerialiser.h
+ Serialisers/EnumPropertySerialiser.cpp
+ Serialisers/FloatPropertySerialiser.h
+ Serialisers/FloatPropertySerialiser.cpp
+ Serialisers/GuidPropertySerialiser.h
+ Serialisers/GuidPropertySerialiser.cpp
+ Serialisers/IntPropertySerialiser.h
+ Serialisers/IntPropertySerialiser.cpp
+ Serialisers/MapPropertySerialiser.h
+ Serialisers/MapPropertySerialiser.cpp
+ Serialisers/ResourcePropertySerialiser.h
+ Serialisers/ResourcePropertySerialiser.cpp
+ Serialisers/RotatorPropertySerialiser.h
+ Serialisers/RotatorPropertySerialiser.cpp
+ Serialisers/StringPropertySerialiser.h
+ Serialisers/StringPropertySerialiser.cpp
+ Serialisers/SetPropertySerialiser.h
+ Serialisers/SetPropertySerialiser.cpp
+ Serialisers/StructSerialiser.h
+ Serialisers/StructSerialiser.cpp
+ Serialisers/TextPropertySerialiser.h
+ Serialisers/TextPropertySerialiser.cpp
+ Serialisers/UnrealPropertySerialiser.h
+ Serialisers/VectorPropertySerialiser.h
+ Serialisers/VectorPropertySerialiser.cpp
+ Serialisers/Vector2DPropertySerialiser.h
+ Serialisers/Vector2DPropertySerialiser.cpp
+
+ Types/ArrayProperty.h
+ Types/BoolProperty.h
+ Types/ByteProperty.h
+ Types/ColourStructProperty.h
+ Types/DateTimeStructProperty.h
+ Types/EnumProperty.h
+ Types/FloatProperty.h
+ Types/GenericStructProperty.h
+ Types/GuidStructProperty.h
+ Types/IntProperty.h
+ Types/MapProperty.h
+ Types/NoneProperty.h
+ Types/RotatorStructProperty.h
+ Types/SetProperty.h
+ Types/StringProperty.h
+ Types/StructProperty.h
+ Types/ResourceItemValue.h
+ Types/TextProperty.h
+ Types/UnrealProperty.h
+ Types/UnrealPropertyBase.h
+ Types/VectorStructProperty.h
+
+ Debug.h
+ Debug.cpp
+ UESaveFile.h
+ UESaveFile.cpp
+ BinaryReader.h
+ BinaryReader.cpp
+ BinaryWriter.h
+ BinaryWriter.cpp
+ PropertySerialiser.h
+ PropertySerialiser.cpp
+)
+
+target_link_libraries(UESaveFile PRIVATE
+ Corrade::Containers
+ Corrade::Utility
+ Magnum::Magnum
+ Logger
+)