Leaf and mkapp and legato system .api files

I would like to use the mkapp tool to reduce the app development time overhead of running mksys

I’m using leaf with mksys this is working fine to build a working system

But when I try to

(lsh:currentWp76) john@john-VirtualBox-ST:~/WP76$ mkapp ./apps/wan/wan.adef
** ERROR:
/home/john/WP76/apps/wan/wanComponent/Component.cdef:6:8: error: Can't find dependent .api file: 'le_mdc.api'.

Component.cdef is like this

requires:
{
    api:
    {
        le_data.api
		le_cfg.api
        modemServices/le_mdc.api
        modemServices/le_mrc.api
        modemServices/le_sim.api
     
    }
}

I did try hacking around like this (below) which looks like it works - but is there a better way?

$ mkapp -s components -t wp76xx -i ./leaf-data/current/wp76-legato/interfaces/modemServices ./apps/wan/wan.adef

[22/22] Packaging app

Any ideas?

@johnofleek,

First for all, the best way to work and use the legato framework is to switch to the source mode with $ leaf getsrc legato (in your workspace). Otherwise, the -I option can be used when the compilator can’t find the interfaces needed, so, it’s not bad to use -i option.

1 Like

Hi @johnofleek,

Did you find any other solution for this? I’m starting up with using Leaf and would like to avoid using SDEF as well.
Mostly, because I have to migrate a number of apps built with mkapp in Legato 16.10.1.m3.

Would appreciate any help to a newbie :wink:

Hi Vitor

I think that the solution is as above - either

  • Use leaf to pull all the required Legato source into your workspace folder. The -i ( see mehdiALL1 post) would not be required
  • Use -i with the full path to the version of Legato being used (see my original post)

Building with SDEF is preferred because it also checks the interfaces between the app and the system. But it takes a lot longer to run so mkapp can save build time during the development process.

1 Like

Thanks, @johnofleek.

I was hoping you had found some better way.
To be honest, I use makefiles so I’m probably good with with using the -i option.
The problem was that I have some hybrid code that uses the includes on the cdef file.

It’s time for an overhaul :slight_smile:

Hi @vlory73, if you maintain the use of mkapp the -i option it will be good.