forked from redasm-dev/redasm
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
159 lines (139 loc) · 4.6 KB
/
CMakeLists.txt
File metadata and controls
159 lines (139 loc) · 4.6 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
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
cmake_minimum_required(VERSION 3.10)
project(REDasm)
set(QT_VERSION_REQ "5.10")
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)
set(REDASM_BUILD_VERSION "unknown")
if(UNIX)
set(CMAKE_SKIP_BUILD_RPATH FALSE)
set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
set(CMAKE_INSTALL_RPATH ".")
endif()
find_package(Qt5Core CONFIG REQUIRED)
find_package(Qt5Gui CONFIG REQUIRED)
find_package(Qt5Widgets CONFIG REQUIRED)
find_package(Qt5WebEngine CONFIG REQUIRED)
find_package(Qt5WebEngineWidgets CONFIG REQUIRED)
find_package(Git)
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE REDASM_BUILD_VERSION
ERROR_QUIET
OUTPUT_STRIP_TRAILING_WHITESPACE)
else()
message(STATUS "git not found, setting version to ${REDASM_BUILD_VERSION}")
endif()
add_definitions(-DGIT_VERSION="${REDASM_BUILD_VERSION}")
add_subdirectory(LibREDasm)
add_subdirectory(QHexEdit)
if(CMAKE_BUILD_TYPE MATCHES Debug)
add_subdirectory(unittest)
endif()
QT5_WRAP_UI(UI_HDRS ${UI_FILES})
SET(SOURCES
${QHEXEDIT_SOURCES}
${REDASM_TEST_SOURCES}
main.cpp
mainwindow.cpp
widgets/disassemblerview/disassemblerview.cpp
models/disassemblermodel.cpp
models/segmentsmodel.cpp
widgets/listingmap.cpp
models/referencesmodel.cpp
dialogs/referencesdialog.cpp
dialogs/gotodialog.cpp
dialogs/aboutdialog.cpp
dialogs/manualloaddialog.cpp
themeprovider.cpp
widgets/graphview/graphview.cpp
models/listingitemmodel.cpp
models/symboltablemodel.cpp
models/listingfiltermodel.cpp
models/callgraphmodel.cpp
renderer/listingtextrenderer.cpp
renderer/listingrenderercommon.cpp
renderer/listinggraphrenderer.cpp
widgets/disassemblergraphview/disassemblergraphview.cpp
widgets/disassemblergraphview/disassemblerwebchannel.cpp
widgets/disassemblerpopup/disassemblerpopup.cpp
widgets/disassemblerpopup/disassemblerpopupwidget.cpp
renderer/listingpopuprenderer.cpp
redasmsettings.cpp
dialogs/settingsdialog.cpp
widgets/disassemblerlistingview/disassemblerlistingview.cpp
widgets/disassemblerlistingview/disassemblertextview.cpp
widgets/disassemblerlistingview/disassemblercolumnview.cpp)
SET(HEADERS
${QHEXEDIT_HEADERS}
${REDASM_TEST_HEADERS}
mainwindow.h
widgets/disassemblerview/disassemblerview.h
models/disassemblermodel.h
models/segmentsmodel.h
widgets/listingmap.h
models/referencesmodel.h
dialogs/referencesdialog.h
dialogs/gotodialog.h
dialogs/aboutdialog.h
dialogs/manualloaddialog.h
themeprovider.h
widgets/graphview/graphview.h
models/listingitemmodel.h
models/symboltablemodel.h
models/listingfiltermodel.h
models/callgraphmodel.h
renderer/listingtextrenderer.h
renderer/listingrenderercommon.h
renderer/listinggraphrenderer.h
widgets/disassemblergraphview/disassemblergraphview.h
widgets/disassemblergraphview/disassemblerwebchannel.h
widgets/disassemblerpopup/disassemblerpopup.h
widgets/disassemblerpopup/disassemblerpopupwidget.h
renderer/listingpopuprenderer.h
redasmsettings.h
dialogs/settingsdialog.h
widgets/disassemblerlistingview/disassemblerlistingview.h
widgets/disassemblerlistingview/disassemblertextview.h
widgets/disassemblerlistingview/disassemblercolumnview.h)
set(FORMS
mainwindow.ui
widgets/disassemblerview/disassemblerview.ui
dialogs/referencesdialog.ui
dialogs/gotodialog.ui
dialogs/aboutdialog.ui
dialogs/manualloaddialog.ui
dialogs/settingsdialog.ui)
set(RESOURCES
resources.qrc
themes.qrc)
if(WIN32)
SET(GUI_TYPE WIN32)
endif()
add_executable(${PROJECT_NAME} ${GUI_TYPE}
${SOURCES}
${HEADERS}
${FORMS}
${RESOURCES}
${CMAKE_SOURCE_DIR}/res/windows/resources.rc)
target_include_directories(${PROJECT_NAME} PUBLIC LibREDasm QHexEdit)
add_dependencies(${PROJECT_NAME} LibREDasm)
target_link_libraries(${PROJECT_NAME}
Qt5::Core
Qt5::Gui
Qt5::Widgets
Qt5::WebEngine
Qt5::WebEngineWidgets
LibREDasm)
if(WIN32)
set(LIB_REDASM_BIN ${CMAKE_BINARY_DIR}/LibREDasm/LibREDasm.dll)
else()
set(LIB_REDASM_BIN ${CMAKE_BINARY_DIR}/LibREDasm/LibREDasm.so)
endif()
# Post build commands
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${LIB_REDASM_BIN} ${CMAKE_BINARY_DIR})