11cmake_minimum_required (VERSION 3.20 )
22project (ImGuiFileDialog)
33
4+ # Option to control installation (disabled by default if used as subproject)
5+ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
6+ set (IGFD_INSTALL_DEFAULT ON )
7+ else ()
8+ set (IGFD_INSTALL_DEFAULT OFF )
9+ endif ()
10+
11+ option (IGFD_INSTALL "Install ImGuiFileDialog library and headers" ${IGFD_INSTALL_DEFAULT} )
12+
13+ find_package (imgui QUIET ) # fails quietly if not found (imgui is the target name for vcpkg and nixpkgs).
14+
415add_library (ImGuiFileDialog STATIC
516 ImGuiFileDialog.cpp
617 ImGuiFileDialog.h
718 ImGuiFileDialogConfig.h
819)
920
21+ if (imgui_FOUND)
22+ target_link_libraries (ImGuiFileDialog PUBLIC imgui::imgui )
23+ message (STATUS "ImGuiFileDialog: Found imgui package, linking automatically" )
24+ else ()
25+ message (STATUS "ImGuiFileDialog: imgui package not found - ensure ImGui is available in your project" )
26+ endif ()
27+
1028# Use generator expressions for proper include directory handling
1129target_include_directories (ImGuiFileDialog
1230 PUBLIC
@@ -19,25 +37,27 @@ if(UNIX)
1937endif ()
2038
2139# Installation configuration
22- include (GNUInstallDirs )
23-
24- # Install the library
25- install (TARGETS ImGuiFileDialog
26- EXPORT ImGuiFileDialogTargets
27- ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
28- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
29- RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
30- )
40+ if (IGFD_INSTALL)
41+ include (GNUInstallDirs )
3142
32- # Install headers
33- install (FILES
34- ImGuiFileDialog.h
35- ImGuiFileDialogConfig.h
36- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
37- )
43+ # Install the library
44+ install (TARGETS ImGuiFileDialog
45+ EXPORT ImGuiFileDialogTargets
46+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
47+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
48+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
49+ )
50+
51+ # Install headers
52+ install (FILES
53+ ImGuiFileDialog.h
54+ ImGuiFileDialogConfig.h
55+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
56+ )
3857
39- # Install export targets
40- install (EXPORT ImGuiFileDialogTargets
41- FILE ImGuiFileDialogConfig.cmake
42- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/ImGuiFileDialog
43- )
58+ # Install export targets
59+ install (EXPORT ImGuiFileDialogTargets
60+ FILE ImGuiFileDialogConfig.cmake
61+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/ImGuiFileDialog
62+ )
63+ endif ()
0 commit comments