How to properly add link dependencies for an INTERFACE library?

I have a header-only library that depends on some other library.

I would like to define my library in a way that targets linking to it also link to its dependencies.

This is the code I have looks something like this:

# Library
add_library(my_lib INTERFACE)
target_link_libraries(my_lib INTERFACE other_lib)
target_include_directories(my_lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})

# Executable
add_executable(my_executable main.cpp)
target_link_libraries(my_executable PRIVATE my_lib)

With the code above, building my_executable gives linker error related to other_lib.

Linking other_lib explicitly works fine:

target_link_libraries(my_executable PRIVATE my_lib other_lib)

But I’d like to avoid that and have CMake sort that out automatically without my_executable having to explicitly reference other_lib. How would I achieve this?

OK so I figure what the issue was, in my actual code other_lib was a few different libraries, apparently CMake keeps the order you write them in for the target specified in target_link_libraries but not for targets that link to it, I managed to fix it with $<LINK_GROUP>.