@@ -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
2324set (CMAKE_VERBOSE_MAKEFILE TRUE )
2425
2526if (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)
3839set (EXAMPLES_DIR ${SOURCE_DIR} /examples)
3940set (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+
0 commit comments