cmake_blade对比学习

cmake常用字段及编译流程

常用字段

  • cmake_minimum_required ///检查cmake的版本
  • project(lac) //工程名为lac
  • option //脚本定义宏:编译脚本传递参数 -> CMake脚本接收option -> 源代码宏
  • set(定义变量a 路径b) //用变量代替值,定义a代替后面的b
  • message //为用户显示一条信息
  • macro 定义函数
  • foreach //for循环
  • if ( IS_ABSOLUTE name ) //如果给定的name是一个绝对路径
  • get_filename_component //得到一个完整文件名中的特定部分
  • CMAKE_BINARY_DIR,PROJECT_BINARY_DIR,_BINARY_DIR://这三个变量内容一致,如果是内部编译,就指的是工程的顶级目录,如果是外部编译,指的就是工程编译发生的目录。
  • include_directories://将根目录下的include和abc加入包含目录列表,默认会将目录添加到列表最后
  • link_directories(${PROJECT_SOURCE_DIR}/lib) //将 ./lib加入编译器链接阶段的搜索目录列表
  • aux_source_directory //查找在某个路径下的所有源文件。
  • add_library//将指定的源文件生成链接文件,然后添加到工程中去。
  • add_executable //使用指定的源文件来生成目标可执行文件。
  • set_target_properties//导入第三方so库
  • target_link_libraries //将目标文件与库文件进行链接

编译流程

cmake ..
make  

blade常用字段及编译流程

环境

python:只支持python2
scons:Python写的自动化构建工具。
blade:
cd ./thirdparty/typhoon-blade-1.1.2 #在第三方库中找到这个库
./install #执行shell安装脚本
(如果没有权限,chmod 777 install )
which blade #查看安装路径(能查看到,说明安装成功)
如果按上述方式没成功,download已有的typhoon-blade-1.1.2 ,修改install中bin路径,并进行chmod。
在这里插入图片描述

示例

在这里插入图片描述

常用字段

  • cc_library:编译成链接库,默认是静态链接库
  • name值得是这个binary的名字
  • srcs是要编译这个binary需要的源文件
  • deps是编译这个binary所需要的依赖。
  • incs是增加编译源文件时的头文件查找路径
  • defs是用户定义的宏加入编译中

编译流程

blade build BUILD中定义的目标名
blade test 生成的可执行文件 //编译单元测试
cmake_minimum_required(VERSION 3.8.0 FATAL_ERROR) project(mcu_kit VERSION 0.1.0 DESCRIPTION "mcu-kit SDK" LANGUAGES C ) set(PROJECT_BRIEF "vDiscovery") set(CMAKE_C_STANDARD 11) set(CMAKE_C_EXTENSIONS ON) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_POSITION_INDEPENDENT_CODE ON) add_compile_options(-Wall) list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake") include(CMakePrintHelpers) include(ConfigureChecks) if(EXISTS "${PROJECT_SOURCE_DIR}/config.cmake") include(config.cmake) else() message(FATAL_ERROR "Can't find cmake.config file") endif() if(${CMAKE_CROSSCOMPILING}) set(LV_SIMULATOR_ON_PC OFF) else() set(LV_SIMULATOR_ON_PC ON) endif() configure_file( "${PROJECT_SOURCE_DIR}/base/base_sdk_version.h.in" "${PROJECT_SOURCE_DIR}/base/base_sdk_version.h" ) configure_file( "${PROJECT_SOURCE_DIR}/base/base_config.h.in" "${PROJECT_SOURCE_DIR}/base/base_config.h" ) set(CMAKE_INSTALL_BINDIR ${CMAKE_INSTALL_PREFIX}/bin) set(CMAKE_INSTALL_SBINDIR ${CMAKE_INSTALL_PREFIX}/sbin) set(CMAKE_INSTALL_LIBDIR ${CMAKE_INSTALL_PREFIX}/lib) set(CMAKE_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_PREFIX}/include) set(CMAKE_INSTALL_SYSCONFDIR ${CMAKE_INSTALL_PREFIX}/etc) set(CMAKE_INSTALL_SHARESTATEDIR ${CMAKE_INSTALL_PREFIX}/com) set(CMAKE_INSTALL_LOCALSTATEDIR ${CMAKE_INSTALL_PREFIX}/var) set(CMAKE_INSTALL_INFODIR ${CMAKE_INSTALL_PREFIX}/info) set(CMAKE_INSTALL_LOCALEDIR ${CMAKE_INSTALL_PREFIX}/locate) set(CMAKE_INSTALL_MANDIR ${CMAKE_INSTALL_PREFIX}/man) set(CMAKE_INSTALL_DOCDIR ${CMAKE_INSTALL_PREFIX}/doc) set(CMAKE_INSTALL_RESDIR ${CMAKE_INSTALL_PREFIX}) include(PrepareInstall) set(KIT_ROOT_DIR ${CMAKE_SOURCE_DIR}) add_subdirectory("base") # add_subdirectory("third-party") add_subdirectory("lib") add_subdirectory("drivers") add_subdirectory("framework") add_subdirectory("sysapp") add_subdirectory("app") include(GeneratePkgConfig) include(Linux-kitInfo)详细注释一下这段代码
05-25
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值