Skip to content

Commit 6c252d8

Browse files
committed
cmake: fix -fPIC/-fPIE handling in precompiled headers (PCH)
1 parent 09c84a0 commit 6c252d8

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

cmake/OpenCVPCHSupport.cmake

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,24 @@ MACRO(ADD_PRECOMPILED_HEADER _targetName _input)
261261
endif()
262262
endif()
263263

264+
if(type STREQUAL "SHARED_LIBRARY" OR type STREQUAL "STATIC_LIBRARY")
265+
get_target_property(__pic ${_targetName} POSITION_INDEPENDENT_CODE)
266+
if(__pic AND CMAKE_CXX_COMPILE_OPTIONS_PIC
267+
AND NOT OPENCV_SKIP_PCH_PIC_HANDLING
268+
AND NOT OPENCV_SKIP_PCH_PIC_HANDLING_${_targetName}
269+
)
270+
list(APPEND _compile_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_PIC}")
271+
endif()
272+
elseif(type STREQUAL "EXECUTABLE")
273+
get_target_property(__pie ${_targetName} POSITION_INDEPENDENT_CODE)
274+
if(__pie AND CMAKE_CXX_COMPILE_OPTIONS_PIE
275+
AND NOT OPENCV_SKIP_PCH_PIE_HANDLING
276+
AND NOT OPENCV_SKIP_PCH_PIE_HANDLING_${_targetName}
277+
)
278+
list(APPEND _compile_FLAGS "${CMAKE_CXX_COMPILE_OPTIONS_PIE}")
279+
endif()
280+
endif()
281+
264282
get_target_property(DIRINC ${_targetName} INCLUDE_DIRECTORIES)
265283
set_target_properties(${_targetName}_pch_dephelp PROPERTIES INCLUDE_DIRECTORIES "${DIRINC}")
266284

0 commit comments

Comments
 (0)