22 lines
592 B
CMake
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()
|