Neutree / c_cpp_project_framework

CMake build system( framework) with kconfig support for C/CPP projects
https://neucrack.com/p/276
MIT License
159 stars 38 forks source link

如何添加复杂开源组件 #2

Closed skb666 closed 1 year ago

skb666 commented 1 year ago

如果想向 components 内添加其它开源组件 如 libevent、openssl 这种用 autoconfig 或者 make/cmake 自组织编译的复杂组件 应该如何与该项目配合编译呢

Neutree commented 1 year ago

目前这个项目里面比较少考虑直接引用系统的包,值得探讨下实现方式。

skb666 commented 1 year ago

若使用 find_package 引入包,find_package 要在 project() 命令之后,我尝试将 include(${SDK_PATH}/tools/cmake/compile.cmake) 放到 project 之后,发现 python project.py build 未报错,但未编译出任何目标

Neutree commented 1 year ago

在 component 里面 find吧,比如 examples/demo/main/CmakeLists.txt, 一般不需要编辑examples/demo/CmakeLists.txt

Neutree commented 1 year ago

比如这样 https://github.com/sipeed/libmaix/blob/1b1f61c3f8864c4cad373b76797252298c58f9d6/examples/axpi_classification_cam/main/CMakeLists.txt#L3

skb666 commented 1 year ago

在 component 里面 find吧,比如 examples/demo/main/CmakeLists.txt, 一般不需要编辑examples/demo/CmakeLists.txt

感谢,目前通过以下方法,已成功与 vcpkg 配合使用

  1. 在项目目录下 .config.mkconfig_defaults.mk 内配置 CONFIG_TOOLCHAIN_PATH="~/vcpkg/scripts/buildsystems/vcpkg.cmake"
  2. 新建组件目录 component/component_name
  3. 组件目录下 CMakeLists.txt 内引入包,如 curl
    find_package(CURL CONFIG REQUIRED)
    list(APPEND ADD_REQUIREMENTS CURL::libcurl)
    register_component()
  4. 项目目录下 main/CMakeLists.txtlist(APPEND ADD_REQUIREMENTS component_name)