-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
executable file
·136 lines (119 loc) · 3.8 KB
/
CMakeLists.txt
File metadata and controls
executable file
·136 lines (119 loc) · 3.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
cmake_minimum_required(VERSION 3.10)
project(HoMM3UnitHelper VERSION 0.2 LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)
# Build for windows
set(CMAKE_SYSTEM_NAME Windows)
set(CMAKE_SYSTEM_PROCESSOR i686)
add_compile_definitions(WIN32)
option(UNICODE "Build using wide char WinAPI" ON)
if(UNICODE)
add_compile_definitions(UNICODE)
# ImGui uses _T macro
add_compile_definitions(_UNICODE)
endif()
if(NOT CMAKE_HOST_WIN32)
set(CMAKE_C_COMPILER x86_64-w64-mingw32-gcc)
set(CMAKE_CXX_COMPILER x86_64-w64-mingw32-g++)
# MinGW libs directory
if(EXISTS /usr/x86_64-w64-mingw32/lib/)
link_directories(HoMM3UnitHelper /usr/x86_64-w64-mingw32/lib)
elseif(EXISTS /usr/i686-w64-mingw32/lib/)
link_directories(HoMM3UnitHelper /usr/i686-w64-mingw32/lib)
endif()
endif()
# ImGui library
set(IMGUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ImGui)
set(IMGUI_HEADERS
${IMGUI_DIR}/imgui.h
${IMGUI_DIR}/imconfig.h
${IMGUI_DIR}/imgui_internal.h
${IMGUI_DIR}/backends/imgui_impl_win32.h
${IMGUI_DIR}/backends/imgui_impl_dx9.h
)
set(IMGUI_SRC
${IMGUI_DIR}/imgui.cpp
${IMGUI_DIR}/imgui_draw.cpp
${IMGUI_DIR}/imgui_tables.cpp
${IMGUI_DIR}/imgui_widgets.cpp
${IMGUI_DIR}/backends/imgui_impl_win32.cpp
${IMGUI_DIR}/backends/imgui_impl_dx9.cpp
)
add_library(ImGui STATIC ${IMGUI_HEADERS} ${IMGUI_SRC})
target_link_libraries(ImGui PRIVATE d3d9 dwmapi)
target_sources(ImGui
PUBLIC
${IMGUI_DIR}
${IMGUI_DIR}/backends
)
target_include_directories(ImGui
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${IMGUI_DIR}
${IMGUI_DIR}/backends
)
# App def
if(MINGW)
set(CMAKE_RC_COMPILER_INIT windres)
ENABLE_LANGUAGE(RC)
endif()
set(SOURCES
DataReader/LOD/Txt/TxtReader.cpp
DataReader/LOD/Txt/UnitDataReader.cpp
DataReader/LOD/LodFile.cpp
DataReader/LOD/LodReader.cpp
DataReader/HDAT/ResourceBeginEntry.cpp
DataReader/HDAT/ResourceDescriptor.cpp
DataReader/HDAT/HdatReader.cpp
DataReader/RHDT/RhdatReader.cpp
DataReader/RHDT/RhdatWriter.cpp
DataReader/RHDT/DataPatcher/DataPatcher.cpp
DataReader/RHDT/DataPatcher/patches/FactoryPatch.cpp
DataReader/ExtendedGameData/UnitExtended.cpp
DataReader/BinaryReader.cpp
DataReader/DataReader.cpp
ClickProcessor/InputController.cpp
ClickProcessor/MouseHook.cpp
ClickProcessor/StringClickProcessor.cpp
GameIdentifier/GameIdentifier.cpp
GameIdentifier/IdentifyResult.cpp
GUI/OverlayGUI.cpp
GUI/States/GamePaused.cpp
GUI/States/NothingSelected.cpp
GUI/States/UnitSelected.cpp
src/MemoryReader.cpp
src/GameObject.cpp
src/Unit.cpp
src/TmpFile.cpp
Homm3UnitHelper.rc
)
add_executable(HoMM3UnitHelper WIN32 main.cpp ${SOURCES} resource.h)
target_link_options(HoMM3UnitHelper PRIVATE
-static-libgcc
-static-libstdc++
)
target_link_libraries(HoMM3UnitHelper
ImGui
d3d9 # dx9
z # zlib
gdi32 # gdi
)
target_include_directories(HoMM3UnitHelper
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/include
${CMAKE_CURRENT_SOURCE_DIR}/Exceptions
${CMAKE_CURRENT_SOURCE_DIR}/Exceptions/Overlay
${CMAKE_CURRENT_SOURCE_DIR}/DataReader
${CMAKE_CURRENT_SOURCE_DIR}/DataReader/LOD
${CMAKE_CURRENT_SOURCE_DIR}/DataReader/LOD/Txt
${CMAKE_CURRENT_SOURCE_DIR}/DataReader/HDAT
${CMAKE_CURRENT_SOURCE_DIR}/DataReader/RHDT
${CMAKE_CURRENT_SOURCE_DIR}/DataReader/ExtendedGameData
${CMAKE_CURRENT_SOURCE_DIR}/DataReader/RHDT/DataPatcher
${CMAKE_CURRENT_SOURCE_DIR}/DataReader/RHDT/DataPatcher/patches
${CMAKE_CURRENT_SOURCE_DIR}/ClickProcessor
${CMAKE_CURRENT_SOURCE_DIR}/GameIdentifier
${CMAKE_CURRENT_SOURCE_DIR}/GUI
${CMAKE_CURRENT_SOURCE_DIR}/GUI/States
)