@@ -13,6 +13,8 @@ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
1313set (CMAKE_C_VISIBILITY_PRESET hidden)
1414set (CMAKE_VISIBILITY_INLINES_HIDDEN ON )
1515
16+ option (FAKELINKER_INSTALL_PRIVATE_HEADERS "Install private header files for static linking" OFF )
17+
1618if (NOT ${CMAKE_BUILD_TYPE} STREQUAL "Debug" )
1719 set (CMAKE_BUILD_TYPE "Release" )
1820endif ()
@@ -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
103112add_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-
121129install (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+
129144install (EXPORT fakelinker
130145 FILE fakelinker-config.cmake
131146 NAMESPACE fakelinker::
0 commit comments