222 lines
7.2 KiB
CMake
222 lines
7.2 KiB
CMake
# 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 <https://www.gnu.org/licenses/>.
|
|
|
|
set(CMAKE_CXX_STANDARD 14)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
set(SAVETOOL_PROJECT_VERSION 1.4.1)
|
|
|
|
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
|
|
)
|