@@ -123,19 +123,31 @@ if(NOT TARGET LinkerHand::linkerhand_cpp_sdk)
123123 set_target_properties (LinkerHand::linkerhand_cpp_sdk PROPERTIES
124124 IMPORTED_IMPLIB "${_lh_imported_implib} " )
125125 endif ()
126- # 公共头 CanFD.h / PCANBus.h / CanFrame.h 引用了 third_party 头(Hcanbus.h /
127- # PCANBasic.h)。把对应 include 目录补到 imported target,下游 link 后无需手动配。
126+ # 是否启用 CAN-FD:release-package 由 CI 在 USE_CANFD=ON 下打包,默认 ON;
127+ # 下游可显式 -DLINKERHAND_USE_CANFD=OFF 覆盖,跳过 libcanbus 头依赖。
128+ if (NOT DEFINED LINKERHAND_USE_CANFD)
129+ if (EXISTS "${_lh_thirdparty_root} /libcanbus" )
130+ set (LINKERHAND_USE_CANFD ON )
131+ else ()
132+ set (LINKERHAND_USE_CANFD OFF )
133+ endif ()
134+ endif ()
135+ set_property (TARGET LinkerHand::linkerhand_cpp_sdk APPEND PROPERTY
136+ INTERFACE_COMPILE_DEFINITIONS "LINKERHAND_USE_CANFD=$<IF :$<BOOL :${LINKERHAND_USE_CANFD} >,1,0>" )
137+ # 公共头 PCANBus.h / CanFrame.h(以及 CANFD 开启时的 CanFD.h)引用了 third_party
138+ # 头(PCANBasic.h / Hcanbus.h)。把对应 include 目录补到 imported target,下游 link
139+ # 后无需手动配。
128140 if (_lh_thirdparty_root)
129141 if (WIN32 )
130- if (EXISTS "${_lh_thirdparty_root} /libcanbus/include/windows" )
131- set_property (TARGET LinkerHand::linkerhand_cpp_sdk APPEND PROPERTY
132- INTERFACE_INCLUDE_DIRECTORIES "${_lh_thirdparty_root} /libcanbus/include/windows" )
133- endif ()
134142 if (EXISTS "${_lh_thirdparty_root} /PCAN_Basic/Include" )
135143 set_property (TARGET LinkerHand::linkerhand_cpp_sdk APPEND PROPERTY
136144 INTERFACE_INCLUDE_DIRECTORIES "${_lh_thirdparty_root} /PCAN_Basic/Include" )
137145 endif ()
138- elseif (UNIX AND EXISTS "${_lh_thirdparty_root} /libcanbus/include/linux" )
146+ if (LINKERHAND_USE_CANFD AND EXISTS "${_lh_thirdparty_root} /libcanbus/include/windows" )
147+ set_property (TARGET LinkerHand::linkerhand_cpp_sdk APPEND PROPERTY
148+ INTERFACE_INCLUDE_DIRECTORIES "${_lh_thirdparty_root} /libcanbus/include/windows" )
149+ endif ()
150+ elseif (UNIX AND LINKERHAND_USE_CANFD AND EXISTS "${_lh_thirdparty_root} /libcanbus/include/linux" )
139151 set_property (TARGET LinkerHand::linkerhand_cpp_sdk APPEND PROPERTY
140152 INTERFACE_INCLUDE_DIRECTORIES "${_lh_thirdparty_root} /libcanbus/include/linux" )
141153 endif ()
0 commit comments