Skip to content

Commit d1a5d94

Browse files
feat: add support for installing private header files
1 parent 41548b7 commit d1a5d94

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

library/src/main/cpp/CMakeLists.txt

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
1313
set(CMAKE_C_VISIBILITY_PRESET hidden)
1414
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
1515

16+
option(FAKELINKER_INSTALL_PRIVATE_HEADERS "Install private header files for static linking" OFF)
17+
1618
if(NOT ${CMAKE_BUILD_TYPE} STREQUAL "Debug")
1719
set(CMAKE_BUILD_TYPE "Release")
1820
endif()
@@ -97,8 +99,15 @@ target_include_directories(fakelinker_static PUBLIC
9799
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
98100
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/fakelinker>
99101
)
100-
target_link_libraries(fakelinker_static ${log-lib})
101102

103+
if(FAKELINKER_INSTALL_PRIVATE_HEADERS)
104+
target_include_directories(fakelinker_static PUBLIC
105+
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
106+
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/fakelinker>
107+
)
108+
endif()
109+
110+
target_link_libraries(fakelinker_static ${log-lib})
102111

103112
add_library(fakelinker SHARED
104113
linker/linker_dynamic.cpp
@@ -117,7 +126,6 @@ set_target_properties(fakelinker PROPERTIES
117126
"${LINK_FLAGS} -Wl,--gc-sections,-s,--version-script=\"${CMAKE_CURRENT_SOURCE_DIR}/symbol.map.txt\""
118127
)
119128

120-
121129
install(TARGETS fakelinker fakelinker_static
122130
EXPORT fakelinker
123131
)
@@ -126,6 +134,13 @@ install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
126134
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fakelinker/fakelinker
127135
)
128136

137+
if(FAKELINKER_INSTALL_PRIVATE_HEADERS)
138+
install(DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/linker"
139+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/fakelinker/fakelinker
140+
FILES_MATCHING PATTERN "*.h"
141+
)
142+
endif()
143+
129144
install(EXPORT fakelinker
130145
FILE fakelinker-config.cmake
131146
NAMESPACE fakelinker::

0 commit comments

Comments
 (0)