blob: 61d47c3133976f05445a40eb4b4af1afb9d3b760 (
plain)
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
|
cmake_minimum_required (VERSION 3.6)
project(Diligent-Imgui CXX)
if (NOT DILIGENT_DEAR_IMGUI_PATH)
set(DEAR_IMGUI_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../ThirdParty/imgui")
else()
set(DEAR_IMGUI_PATH "${DILIGENT_DEAR_IMGUI_PATH}")
endif()
set(IMGUIZMO_QUAT_PATH ../ThirdParty/imGuIZMO.quat)
set(DEAR_IMGUI_INCLUDE
${DEAR_IMGUI_PATH}/imconfig.h
${DEAR_IMGUI_PATH}/imgui_internal.h
${DEAR_IMGUI_PATH}/imstb_rectpack.h
${DEAR_IMGUI_PATH}/imstb_textedit.h
${DEAR_IMGUI_PATH}/imstb_truetype.h
${DEAR_IMGUI_PATH}/misc/cpp/imgui_stdlib.h
)
set(DEAR_IMGUI_INTERFACE
${DEAR_IMGUI_PATH}/imgui.h
)
set(DEAR_IMGUI_SOURCE
${DEAR_IMGUI_PATH}/imgui.cpp
${DEAR_IMGUI_PATH}/imgui_draw.cpp
${DEAR_IMGUI_PATH}/imgui_tables.cpp
${DEAR_IMGUI_PATH}/imgui_widgets.cpp
${DEAR_IMGUI_PATH}/misc/cpp/imgui_stdlib.cpp
)
set(SOURCE
src/ImGuiDiligentRenderer.cpp
src/ImGuiImplDiligent.cpp
)
set(IMGUIZMO_QUAT_SOURCE
${IMGUIZMO_QUAT_PATH}/imGuIZMO.cpp
${IMGUIZMO_QUAT_PATH}/imGuIZMO.h
)
set(INTERFACE
interface/ImGuiDiligentRenderer.hpp
interface/ImGuiImplDiligent.hpp
interface/ImGuiUtils.hpp
)
if(PLATFORM_WIN32)
list(APPEND DEAR_IMGUI_SOURCE ${DEAR_IMGUI_PATH}/backends/imgui_impl_win32.cpp)
list(APPEND DEAR_IMGUI_INCLUDE ${DEAR_IMGUI_PATH}/backends/imgui_impl_win32.h)
list(APPEND SOURCE src/ImGuiImplWin32.cpp)
list(APPEND INTERFACE interface/ImGuiImplWin32.hpp)
elseif(PLATFORM_UNIVERSAL_WINDOWS)
list(APPEND SOURCE src/ImGuiImplUWP.cpp)
list(APPEND INTERFACE interface/ImGuiImplUWP.hpp)
elseif(PLATFORM_LINUX)
list(APPEND SOURCE src/ImGuiImplLinuxXCB.cpp src/ImGuiImplLinuxX11.cpp)
list(APPEND INTERFACE interface/ImGuiImplLinuxXCB.hpp interface/ImGuiImplLinuxX11.hpp)
elseif(PLATFORM_ANDROID)
list(APPEND SOURCE src/ImGuiImplAndroid.cpp)
list(APPEND INTERFACE interface/ImGuiImplAndroid.hpp)
elseif(PLATFORM_MACOS)
list(APPEND DEAR_IMGUI_SOURCE ${DEAR_IMGUI_PATH}/backends/imgui_impl_osx.mm)
list(APPEND DEAR_IMGUI_INCLUDE ${DEAR_IMGUI_PATH}/backends/imgui_impl_osx.h)
list(APPEND SOURCE src/ImGuiImplMacOS.mm)
list(APPEND INTERFACE interface/ImGuiImplMacOS.hpp)
elseif(PLATFORM_IOS)
list(APPEND SOURCE src/ImGuiImplIOS.mm)
list(APPEND INTERFACE interface/ImGuiImplIOS.hpp)
endif()
add_library(Diligent-Imgui STATIC
${SOURCE}
${INCLUDE}
${INTERFACE}
${DEAR_IMGUI_SOURCE}
${DEAR_IMGUI_INCLUDE}
${DEAR_IMGUI_INTERFACE}
${IMGUIZMO_QUAT_SOURCE}
)
set_common_target_properties(Diligent-Imgui)
target_include_directories(Diligent-Imgui
PUBLIC
interface
${IMGUIZMO_QUAT_PATH}
${DEAR_IMGUI_PATH}
PRIVATE
include
)
if(PLATFORM_LINUX)
target_link_libraries(Diligent-Imgui PRIVATE XCBKeySyms)
endif()
if(PLATFORM_UNIVERSAL_WINDOWS)
target_compile_definitions(Diligent-Imgui PRIVATE IMGUI_DISABLE_WIN32_FUNCTIONS)
endif()
if(PLATFORM_WIN32 AND MINGW_BUILD)
# Link with xinput.lib as imgui_impl_win32.cpp skips
# '#pragma comment(lib, "xinput")'
# when compiler is not MSVC
target_link_libraries(Diligent-Imgui PRIVATE xinput.lib)
endif()
source_group(TREE ${DEAR_IMGUI_PATH} PREFIX "dear_imgui" FILES ${DEAR_IMGUI_SOURCE} ${DEAR_IMGUI_INCLUDE} ${DEAR_IMGUI_INTERFACE})
source_group("src" FILES ${SOURCE})
source_group("include" FILES ${INCLUDE})
source_group("interface" FILES ${INTERFACE})
source_group("imGuIZMO.quat" FILES ${IMGUIZMO_QUAT_SOURCE})
target_link_libraries(Diligent-Imgui
PRIVATE
Diligent-BuildSettings
Diligent-Common
Diligent-PlatformInterface
Diligent-GraphicsEngineInterface
Diligent-GraphicsAccessories
Diligent-GraphicsTools
)
set_target_properties(Diligent-Imgui PROPERTIES
FOLDER DiligentTools
)
if(DILIGENT_INSTALL_TOOLS)
install_tools_lib(Diligent-Imgui)
endif()
|