Кажется, что INTERFACE_POSITION_INDEPENDENT_CODE игнорируется библиотекой OBJECT, когда она является частью библиотеки INTERFACE. Следующий CMakeLists.txt проходит через CMake без ошибок, хотя я ожидаю, что он укажет на конфликт. Кроме того, построение объектов в archs
с -fPIC полностью зависит от значения, установленного в вызове archs
specific set_target_properties
. Я могу взломать его через target_compile_options
на has-iPIC, но это не круто.
Это ошибка,
или недоразумение чего-то?
cmake версия: 3.12.3
file(GLOB ARCHS_SRC "*.cpp")
add_library(has-iPIC INTERFACE)
set_target_properties(
has-iPIC
PROPERTIES
INTERFACE_POSITION_INDEPENDENT_CODE ON
)
add_library(archs OBJECT ${ARCHS_SRC})
target_link_libraries(archs
has-iPIC
)
set_target_properties(
archs PROPERTIES
POSITION_INDEPENDENT_CODE OFF
)