Просмотр исходного кода

Handle non-interface libraries targets when adding linker script

Gabriel Arjones 4 лет назад
Родитель
Сommit
63cf72e7f3
1 измененных файлов с 7 добавлено и 2 удалено
  1. 7 2
      cmake/stm32/common.cmake

+ 7 - 2
cmake/stm32/common.cmake

@@ -222,15 +222,20 @@ endfunction()
 function(stm32_add_linker_script TARGET VISIBILITY SCRIPT)
     get_filename_component(SCRIPT "${SCRIPT}" ABSOLUTE)
     target_link_options(${TARGET} ${VISIBILITY} -T "${SCRIPT}")
-    get_target_property(LINK_DEPENDS ${TARGET} INTERFACE_LINK_DEPENDS)
 
+    get_target_property(TARGET_TYPE ${TARGET} TYPE)
+    if(TARGET_TYPE STREQUAL "INTERFACE_LIBRARY")
+        set(INTERFACE_PREFIX "INTERFACE_")
+    endif()
+
+    get_target_property(LINK_DEPENDS ${TARGET} ${INTERFACE_PREFIX}LINK_DEPENDS)
     if(LINK_DEPENDS STREQUAL "LINK_DEPENDS-NOTFOUND")
         set(LINK_DEPENDS "${SCRIPT}")
     else()
         list(APPEND LINK_DEPENDS "${SCRIPT}")
     endif()
 
-    set_target_properties(${TARGET} PROPERTIES INTERFACE_LINK_DEPENDS "${LINK_DEPENDS}")
+    set_target_properties(${TARGET} PROPERTIES ${INTERFACE_PREFIX}LINK_DEPENDS "${LINK_DEPENDS}")
 endfunction()
 
 if(NOT (TARGET STM32::NoSys))