Re: cmake application project architecture

Sigvart Hovland

Maybe adding

target_link_libraries(DL PRIVATE zephyr_interface)

To your 2nd CMake file  could help?


From: devel@... [mailto:devel@...] On Behalf Of Florian Fouillet
Sent: Tuesday, November 27, 2018 9:53 PM
To: devel@...
Subject: [Zephyr-devel] cmake application project architecture


Hi everyone,


I am currently working on the Zephyr OS with a FDRM_K64f board from NXP.


I want to create my own application using cmake as recommended by the documentation.


However I don’t want to put everything in one CMakeLists.txt. I want to break down my project into libraries (multiple CMakeLists.txt).


Do you know if there is any documentation talking about that?


My top CMakeLists looks like that:


cmake_minimum_required(VERSION 3.8.2)


include($ENV{ZEPHYR_BASE}/cmake/app/boilerplate.cmake NO_POLICY_SCOPE)







target_sources(app PRIVATE src/main.c)







And my second CMakeLists (under the folder DataLinkLayer) looks like that:




add_library(DL src/DataLinkInterface.c)







The issue is I can include the boilerplate.cmake in only one CMakeLists.txt otherwise It’s not working, But, the second CmakeLists doesn’t know the zephyr library..


I tried to add: include_directories(/home/user/zephyr/include) in the second CMakeLists but it is not enough. Do you know what should I do?



Thank you,


Join to automatically receive all group messages.