Hi,


Hoping to get some help with an issue I have been having with DEPENDS. I'm sure I am missing something obvious, but I can't seem to figure out what is going on. Essentially, I have two recipes, I will call them recipe A and recipe B; recipe A has a build time dependency on recipe B. To troubleshoot the issue, I've reduced recipe A and B to very contrived examples, but the issue still persists.


Below is recipe B:


SUMMARY = "TI ARM-CGT-CLANG compiler tools"
HOMEPAGE = "https://www-a.ti.com/downloads/sds_support/TICodegenerationTools/download.htm"
LICENSE = "CLOSED"

BBCLASSEXTEND = "native nativesdk"

# I don't believe I need this... but just in case
SYSROOT_DIRS_NATIVE += " \
    /usr/share/ti \
    /usr
"

FILES:${PN} += " \
   /usr \
"

do_install() {
​    install -d ${D}/usr/share/ti
    install -d ${D}/usr/

    echo test > ${S}/test.txt
    echo test2 > ${S}/test2.txt

    install -m 0755 ${S}/test.txt ${D}/usr/share/ti
    install -m 0755 ${S}/test2.txt ${D}/usr
}

INHIBIT_PACKAGE_STRIP = "1"
INHIBIT_SYSROOT_STRIP = "1"
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"

​Below is recipe A:

SUMMARY = "TI MCU+ SDK for AM263Px"
HOMEPAGE = "https://www.ti.com/tool/MCU-PLUS-SDK-AM263PX"
LICENSE = "CLOSED"

BBCLASSEXTEND = "nativesdk native"

DEPENDS = " \
    ti-cgt-armllvm-native \ ### RECIPE B ###
    sysconfig-native \
"

FILES:${PN} += " \
    /usr/share \
"

do_install() {
    install -d ${D}/usr/share
    cp -r ${STAGING_DIR_NATIVE}/. ${D}/usr/share 
}

My understanding is that adding the DEPENDS = "ti-cgt-armllvm-native" should install all files installed by ti-cgt-armllvm (recipe B) into the STAGING_DIR_NATIVE directory of recipe A; however, this is not occurring as there is no 'recipe-sysroot-native/usr/test2.txt' or 'recipe-sysroot-native/usr/share/ti/test.txt' file in recipe A staging directory. 

The issue does seem to be with DEPENDS because recipe B does install the test files correctly when run independently. When looking into this further, I found that 'sysroot-components/x86_64/ti-cgt-armllvm-native' (recipe B sysroot components is empty):

tmp-aec/sysroots-components/x86_64/ti-cgt-armllvm-native/
└── sysroot-providers
    └── ti-cgt-armllvm-native


My understanding is that this directory should contain the test files; however, I cannot figure out why it does not.

Does anyone see any obvious mistakes that I am making?

Apologies for the extensive email and thank you to anyone willing to help with this!!! 

- Jared Weyer