# 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 . set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(SAVETOOL_PROJECT_VERSION 1.4.3) find_package(Corrade REQUIRED Main Containers Utility) find_package(Magnum REQUIRED GL Sdl2Application) find_package(MagnumIntegration REQUIRED ImGui) 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_executable(MassBuilderSaveTool WIN32 main.cpp SaveTool/SaveTool.h SaveTool/SaveTool.cpp SaveTool/SaveTool_drawAbout.cpp SaveTool/SaveTool_drawMainMenu.cpp SaveTool/SaveTool_FileWatcher.cpp SaveTool/SaveTool_Initialisation.cpp SaveTool/SaveTool_MainManager.cpp SaveTool/SaveTool_MassViewer.cpp SaveTool/SaveTool_MassViewer_Frame.cpp SaveTool/SaveTool_MassViewer_Armour.cpp SaveTool/SaveTool_MassViewer_Weapons.cpp SaveTool/SaveTool_ProfileManager.cpp SaveTool/SaveTool_UpdateChecker.cpp ProfileManager/ProfileManager.h ProfileManager/ProfileManager.cpp Profile/Profile.h Profile/Profile.cpp Profile/PropertyNames.h Profile/ResourceIDs.h MassManager/MassManager.h MassManager/MassManager.cpp Mass/Accessory.h Mass/ArmourPart.h Mass/BulletLauncherAttachment.h Mass/CustomStyle.h Mass/Decal.h Mass/Joints.h Mass/Mass.h Mass/Mass.cpp Mass/Mass_Frame.cpp Mass/Mass_Armour.cpp Mass/Mass_Weapons.cpp Mass/Mass_Styles.cpp Mass/Mass_DecalsAccessories.cpp Mass/PropertyNames.h Mass/Weapon.h Mass/Weapon.cpp Mass/WeaponPart.h Maps/Accessories.h Maps/ArmourSets.h Maps/ArmourSlots.hpp Maps/BulletLauncherAttachmentStyles.hpp Maps/BulletLauncherSockets.hpp Maps/DamageTypes.hpp Maps/EffectColourModes.hpp Maps/LastMissionId.h Maps/StoryProgress.h Maps/StyleNames.h Maps/WeaponParts.h Maps/WeaponTypes.hpp ToastQueue/ToastQueue.h ToastQueue/ToastQueue.cpp Utilities/Crc32.h FontAwesome/IconsFontAwesome5.h FontAwesome/IconsFontAwesome5Brands.h resource.rc ${Assets} ) if(CMAKE_BUILD_TYPE STREQUAL Debug) add_compile_definitions(SAVETOOL_DEBUG_BUILD) endif() add_compile_definitions( SAVETOOL_VERSION="${SAVETOOL_PROJECT_VERSION}" SAVETOOL_CODENAME="Enigmatic Ellenier" SUPPORTED_GAME_VERSION="0.9.x" ) if(CMAKE_BUILD_TYPE STREQUAL Release) set_target_properties(MassBuilderSaveTool PROPERTIES OUTPUT_NAME MassBuilderSaveTool-${SAVETOOL_PROJECT_VERSION}) endif() target_link_options(MassBuilderSaveTool PRIVATE -static -static-libgcc -static-libstdc++) if(CMAKE_BUILD_TYPE STREQUAL Release) target_link_options(MassBuilderSaveTool PRIVATE -Wl,-S) endif() target_link_libraries(MassBuilderSaveTool PRIVATE Corrade::Containers Corrade::Utility Corrade::Main Magnum::Magnum Magnum::GL Magnum::Sdl2Application MagnumIntegration::ImGui Logger UESaveFile efsw zip libcurl imm32 wtsapi32 )