Skip to content

Commit f41ca48

Browse files
committed
cmake: enable package manager support with install/export targets
1 parent 7ef2117 commit f41ca48

1 file changed

Lines changed: 30 additions & 2 deletions

File tree

CMakeLists.txt

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
cmake_minimum_required(VERSION 3.20)
2-
32
project(ImGuiFileDialog)
43

54
add_library(ImGuiFileDialog STATIC
@@ -8,8 +7,37 @@ add_library(ImGuiFileDialog STATIC
87
ImGuiFileDialogConfig.h
98
)
109

11-
target_include_directories(ImGuiFileDialog PUBLIC ${CMAKE_CURRENT_SOURCE_DIR})
10+
# Use generator expressions for proper include directory handling
11+
target_include_directories(ImGuiFileDialog
12+
PUBLIC
13+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
14+
$<INSTALL_INTERFACE:include>
15+
)
1216

1317
if(UNIX)
1418
target_compile_options(ImGuiFileDialog PUBLIC -Wno-unknown-pragmas)
1519
endif()
20+
21+
# 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+
)
31+
32+
# Install headers
33+
install(FILES
34+
ImGuiFileDialog.h
35+
ImGuiFileDialogConfig.h
36+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
37+
)
38+
39+
# Install export targets
40+
install(EXPORT ImGuiFileDialogTargets
41+
FILE ImGuiFileDialogConfig.cmake
42+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ImGuiFileDialog
43+
)

0 commit comments

Comments
 (0)