Skip to content

Commit 85ebd63

Browse files
committed
Improve installation to forcefully install pdb's for debugging.
1 parent 47755aa commit 85ebd63

File tree

3 files changed

+47
-16
lines changed

3 files changed

+47
-16
lines changed

CMakeImplFiles.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#
44
cmake_minimum_required(VERSION 3.6.0)
55

6+
67
function(Init_Impl_Files HEADERS_CXX_IMPL_FILES SOURCES_CXX_IMPL_FILES)
78
if (IMGUI_IMPL_DX9)
89
message(STATUS "[INFO] Including Direct3D9 implementation files.")

CMakeLists.txt

Lines changed: 43 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,19 +16,20 @@ project(imgui
1616
DESCRIPTION "ImGui library."
1717
)
1818

19-
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
20-
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
21-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
19+
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/$<CONFIG>)
20+
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/$<CONFIG>)
21+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/$<CONFIG>)
22+
set(CMAKE_PDB_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/$<CONFIG>)
2223

2324
set(CMAKE_VERBOSE_MAKEFILE TRUE)
2425

2526
if (WIN32)
2627
if (IMGUI_STATIC_LIBRARY)
27-
message(STATUS "[INFO] Building library as static library.")
28+
message(STATUS "[INFO] Building library as --> Static Library")
2829
set(BUILD_SHARED_LIBS OFF)
2930
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS OFF)
3031
else()
31-
message(STATUS "[INFO] Building library as DLL.")
32+
message(STATUS "[INFO] Building library as --> DLL")
3233
set(BUILD_SHARED_LIBS ON)
3334
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
3435
endif()
@@ -38,6 +39,7 @@ set(SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/imgui)
3839
set(EXAMPLES_DIR ${SOURCE_DIR}/examples)
3940
set(FONTS_DIR ${SOURCE_DIR}/misc/fonts)
4041

42+
4143
##################################################################################################################
4244
# Project Files
4345
##################################################################################################################
@@ -108,15 +110,42 @@ target_include_directories(${PROJECT_NAME} PUBLIC
108110
##################################################################################################################
109111
# Target Install
110112
##################################################################################################################
111-
set (DISTRIBUTE_DIR ${CMAKE_BINARY_DIR}/dist)
112-
install(TARGETS ${PROJECT_NAME}
113-
RUNTIME DESTINATION ${DISTRIBUTE_DIR}/bin
114-
LIBRARY DESTINATION ${DISTRIBUTE_DIR}/lib
115-
ARCHIVE DESTINATION ${DISTRIBUTE_DIR}/lib
113+
set (DISTRIBUTE_DIR ${CMAKE_BINARY_DIR}/dist/$<CONFIG>)
114+
install(
115+
TARGETS ${PROJECT_NAME}
116+
RUNTIME DESTINATION ${DISTRIBUTE_DIR}/bin
117+
LIBRARY DESTINATION ${DISTRIBUTE_DIR}/lib
118+
ARCHIVE DESTINATION ${DISTRIBUTE_DIR}/lib
116119
)
117-
install(FILES ${HEADERS_CXX_FILES} ${HEADERS_CXX_IMPL_FILES}
118-
DESTINATION ${DISTRIBUTE_DIR}/include
120+
install(
121+
FILES ${HEADERS_CXX_FILES} ${HEADERS_CXX_IMPL_FILES}
122+
DESTINATION ${DISTRIBUTE_DIR}/include
119123
)
120-
install(FILES ${FONTS_FILES}
121-
DESTINATION ${DISTRIBUTE_DIR}/misc/fonts
124+
install(
125+
FILES ${FONTS_FILES}
126+
DESTINATION ${DISTRIBUTE_DIR}/misc/fonts
122127
)
128+
129+
# Install PDB files for VS builds to enable debugging:
130+
if (MSVC)
131+
if (NOT IMGUI_STATIC_LIBRARY)
132+
install(
133+
FILES $<TARGET_PDB_FILE:${PROJECT_NAME}>
134+
DESTINATION ${DISTRIBUTE_DIR}/lib
135+
CONFIGURATIONS Debug OR RelWithDebInfo
136+
COMPONENT libraries
137+
OPTIONAL
138+
)
139+
else()
140+
install(
141+
FILES
142+
$<$<CONFIG:Debug>:${CMAKE_BINARY_DIR}/bin/$<CONFIG>/${PROJECT_NAME}.pdb>
143+
$<$<CONFIG:RelWithDebInfo>:${CMAKE_BINARY_DIR}/${PROJECT_NAME}.dir/$<CONFIG>/${PROJECT_NAME}.pdb>
144+
DESTINATION ${DISTRIBUTE_DIR}/lib
145+
CONFIGURATIONS Debug OR RelWithDebInfo
146+
COMPONENT libraries
147+
OPTIONAL
148+
)
149+
endif()
150+
endif()
151+

CMakeOptions.cmake

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# ImGui Options
33
#
44
cmake_minimum_required(VERSION 3.6.0)
5+
56
include(CMakeDependentOption)
67

78

@@ -13,7 +14,6 @@ option(IMGUI_STATIC_LIBRARY "Set to OFF to build as a DLL."
1314
option(IMGUI_WITH_IMPL "Set to OFF to not include 'imgui_impl*' sources." ON)
1415

1516

16-
1717
##################################################################################################################
1818
# Options Dependent
1919
##################################################################################################################
@@ -32,4 +32,5 @@ cmake_dependent_option(IMGUI_IMPL_DX11
3232
cmake_dependent_option(IMGUI_IMPL_DX12
3333
"Set to ON to include implementation files." OFF
3434
"IMGUI_WITH_IMPL" ON
35-
)
35+
)
36+

0 commit comments

Comments
 (0)