fishbowl/engine/cmake/util.cmake
2026-05-27 23:51:37 +09:00

22 lines
592 B
CMake

function(fb_add_dep TARGET_NAME DEP_NAME)
get_target_property(TARGET_TYPE ${TARGET_NAME} TYPE)
if(TARGET_TYPE STREQUAL "INTERFACE_LIBRARY")
set(LINK_SCOPE "INTERFACE")
else()
set(LINK_SCOPE "PRIVATE")
endif()
if(TARGET deps::${DEP_NAME})
target_link_libraries(${TARGET_NAME} ${LINK_SCOPE} deps::${DEP_NAME})
return()
endif()
include("${CMAKE_CURRENT_SOURCE_DIR}/cmake/deps/${DEP_NAME}.cmake")
if(NOT TARGET deps::${DEP_NAME})
add_library(deps::${DEP_NAME} ALIAS ${DEP_NAME})
endif()
target_link_libraries(${TARGET_NAME} ${LINK_SCOPE} deps::${DEP_NAME})
endfunction()