I can't seem to get the property in the location you suggest. CMake complains 
that the target doesn't exist. If I instead get the property after the 
`GenerateCAmkESRootServer()` command, the target exists, but the property is 
empty.

What I *can *fetch is the `COMPONENT_INCLUDES` property of 
`CAmkESComponent_Platam`, which shows the expected include list, including this 
directory which is seemingly getting dropped. Also, I can get the 
`INCLUDE_DIRECTORIES` property of `platam.instance.bin`, which outputs 
`$<TARGET_PROPERTY:CAmkESComponent_Platam_instance_platam,COMPONENT_INCLUDES>;$<TARGET_PROPERTY:CAmkESComponent_Platam,COMPONENT_INCLUDES>;/host/build/platam/include`.
 If I'm reading that right, it includes a generator expression which grabs the 
earlier property, which was set correctly.

Yet when I check the `build.ninja` file for the `Hacl_Chacha20.c.obj` rule, it 
is still missing that one include directory, although the rest are there.

-Grant

On Sun, Aug 22, 2021, at 8:02 PM, Kent Mcleod wrote:
> On Mon, Aug 23, 2021 at 7:13 AM Axel Heider <axelhei...@gmx.de> wrote:
> >
> > Grant,
> >
> > > ```
> > > DeclareCAmkESComponent(
> > >     Platam
> > >     SOURCES ${hacl_sources}
> > >     INCLUDES /usr/lib/gcc-cross/aarch64-linux-gnu/8/include ${hacl_path} 
> > > ${kremlin_path} ${kremlib_path}
> 
> Each path given to DeclareCAmkESComponent as an include should end up
> in the final compilation command unless CMake is doing some magic
> argument substitutions which a compiler include path could potentially
> be affected by.
> 
> If you insert the following 2 lines after DeclareCAmkESRootserver
> (https://github.com/gjurgensen/attarch/blob/camkes-includes-issue/CMakeLists.txt#L190)
> you should be able to see whether the include path has made it into
> the CMake target definition. If the path is in that property, but not
> in the command line to gcc then the next place to look is in the
> generated build.ninja file for the Hacl_Chacha20.c.obj build rule to
> see if the include directory is there.  If it isn't in build.ninja,
> but in the CMake target property, then that indicates that CMake is
> stripping it out when it generates the ninja build rules.
> 
> ```
> get_target_property(out CAmkESComponent_Platam_instance_platam
> INCLUDE_DIRECTORIES)
> message("${out}")
> ```
> 
> > >     C_FLAGS -include ${CMAKE_CURRENT_SOURCE_DIR}/hacl_config.h
> > > )
> > > ```
> > >
> >
> > The problem might be that the build is running in a docker container
> > that does not have access to your host system. Thus, the absolute
> > path "/usr/lib/gcc-cross/aarch64-linux-gnu/8/include" to the cross
> > compiler there cannot be resolved. The current directory where you
> > invoke the build will be mapped at "/host" in the contianer, so
> > everything in the tree is accessible.
> >
> > Axel
> > _______________________________________________
> > Devel mailing list -- devel@sel4.systems
> > To unsubscribe send an email to devel-leave@sel4.systems
> _______________________________________________
> Devel mailing list -- devel@sel4.systems
> To unsubscribe send an email to devel-leave@sel4.systems
> 
_______________________________________________
Devel mailing list -- devel@sel4.systems
To unsubscribe send an email to devel-leave@sel4.systems

Reply via email to