




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
##Copyright(c)2015PX4DevelopmentTeam.Allrights.#Redistributionanduseinsourceandbinaryforms,withorwithout#modification,arepermittedprovidedthatthefollowingconditions#aremet:##1.Redistributionsofsourcecodemustretaintheabovecopyright notice,thislistofconditionsandthefollowingdier.#2.Redistributionsinbinaryformmustreproducetheabovecopyright notice,thislistofconditionsandthefollowingdierin theationand/orothermaterialsprovidedwith##3.NeitherthenamePX4northenamesofitscontributorsmaybe#usedtoendorseorpromoteproductsderivedfromthissoftware#withoutspecificpriorwrittenpermission.##THISSOFTWAREISPROVIDEDBYTHECOPYRIGHTHOLDERSANDCONTRIBUTORS#"ASIS"ANDANYEXPRESSORIMPLIEDWARRANTIES,INCLUDING,BUTNOT#LIMITEDTO,THEIMPLIEDWARRANTIESOFMERCHANTABILITYANDFITNESS#FORAPARTICULARPURPOSEAREDIED.INNOEVENTSHALLTHE#COPYRIGHTOWNERORCONTRIBUTORSBELIABLEFORANYDIRECT,#AL,SPECIAL, RY,ORCONSEQUENTIALDAMAGES#BUTNOTLIMITEDTO,PROCUREMENTOFSUBSTITUTEGOODSORSERVICES;LOSS#OFUSE,DATA,ORPROFITS;ORBUSINESSINTERRUPTION)HOWEVERCAUSED#ANDONANYTHEORYOFLIABILITY,WHETHERINCONTRACT,#LIABILITY,ORTORT(INCLUDINGNEGLIGENCEOROTHERWISE)ARISINGIN#ANYWAYOUTOFTHEUSEOFTHISSOFTWARE,EVENIFADVISEDOFTHE#POSSIBILITYOFSUCHDAMAGE.#CMAKECODINGSTANDARDFORPX4##*Commonfunctionsshouldbeincludedinpx_base.cmake.#*OS/board tionsshouldbeinclude#######*Usehardindentstomatchthepx4sourcecode.#*Allfunctionandscriptargumentsareuppercase.#*Alllocalvariablesarelowercase.#*Allcmakefunctionsarelowercase.#*Forelse,endif,endfunction,etc,neverputthenameofthe##Insteadoftheveryif(${var}STREQUAL"1")<--conditionnow#dosomthingesifelseif(${var}STREQUAL"2")<--anothercondition#dosomthingelse(${var}STREQUAL"1")<--tagisreferringtonameof#doendif(${var}STREQUAL"1")<--tagisreferringtonameofDoif(${var}STREQUAL"1")<--conditionnow#dosomthingesifelseif(${var}STREQUAL"2")<--anothercondition#dosomthingelse()<--leaveblank#dosomthingendif()<--leave###*Usepx4_parse_function_argstoparsefunctionsandcheckfor oneargument andit #*Neverusemacros.Theyallowoverwritingglobalvariablesandthis makesvariabledeclarationshardtolocate.##*Ifatargetfromadd_custom_*issetinafunction,explicitlypass asanoutputargumentsothatthetargetnameiscleartotheuser.##IncludedCMakeFiles##*Allvariablesinconfigfilesmusthavetheprefix##IncludedCMakeFiles##*Allvariablesinconfigfilesmusthavetheprefix"config_".#*Neversetglobalvariablesinanincludedcmake#youmayonlydefinefunctions.ThisexcludesconfigandToolchainfiles.Thismakesitcleartotheuserwhenvariablesarebeingsetortargetsarebeing#*SettingaglobalvariableinaCMakeLists.txtfileisok,#eachCMakeLists.txtfilehasscopeinthecurrentdirectoryandsubdirecties,soitisnottruly#*Alltoolchainfilesshouldbeincludedinthe##directoryandnamedToolchain-####*Ifreferencingastringvariable,don'tputitin#Don'tdo"${OS}"STREQUALinsteadtype${OS}STREQUAL"posix".Thiswillthrowanerrorwhen${OS}isnotdefinedinsteadofsilentlyevaluatingto#Warning:ChangingthismodifiesCMake'sinternal#andleadstowrongtoolchaincmake_minimum_required(VERSION2.8FATAL_ERROR) cmake_(VERSION从而将cmale的策略版本级别设置为指定的版本。当指定的版本是 2.4或更低时,这条命cmake_(VERSION CMake Use #SET( PILER/usr/bin/clang-3.6)#SET( PILER/usr/bin/clang++-3.6) ## CMAKE_BUILD_TYPE"" CACHESTRING"build 把变量CMAKE_BUILD_TYPE CMakeGUI用来选择一个带有字符串“ buildtype CMAKE_BUILD_TYPEPROPERTYSTRINGS";Debug;Release;RelWithDebInfo;MinSizeRel") #在给定的作用域内设置一个命名的属性。CACHE作用域指定了一个名为CMAKE_BUILD_TYPE的cache中的条目。将其属性值设置为;Debug;Release;RelWithDebInfo;MinSizeRel CACHESTRING"desired 变量CONFIG 赋值为"nuttx_px4fmu-v2_default" ,并且被CMakeGUI用来选择一个带有字符串"desiredconfiguration" RELATIVE 在路径cmake/configs CONFIGPROPERTYSTRINGS${ "numberofthreadstouseforexternalbuild 把变量赋值为4,并且被 CMakeGUI "numberofthreadstouseforexternalbuildprocesses" set(DEBUG_PORT"/dev/ttyACM0"CACHESTRING"debuggingport") DEBUG_PORT赋值为"/dev/ttyACM0" CMakeGUI "debuggingport" #mustcomebeforeprojecttoset CE"_"";" ${CONFIG}) 将变量CONFIG中的 “;”,并输出到变量 0OS) 在config_args 变量OS中(#nuttx 1BOARD) 2LABEL) #default #为 if("${OSSTREQUAL #ifset(DF_TARGETdarwin) set(DF_TARGETlinux) set(DF_TARGET # message(STATUS"${ #输出一个非重要的消息,消息内容为与操作系统,#switchtorosCMakefileifbuildingif(${OS}STREQUAL #如果操作系统 ros操作系统(机器人操作系统),就 else()#otherwiseusetherestofthisfilelist(APPENDCMAKE_MODULE_PATH${ CMAKE_SOURCE_DI}/cmake) #在名为 set(config_module"configs/${ 为config_module #包含路径中的文cmake #展开 所表示CMake的文#thebasicconceptofEcternalProjectissimple:givenanexternalsource toa.tar executethesequenceofcommandsnecessarytobuildandinstallthatsoftwaresothatyoucanrefertoit(include,link,run)fromyourproject.#requirepx4moduleinterface #将变量 foreach(cmd${px4_required_interface}) 遍历px4_required_interface if(NOTCOMMANDmessage(FATAL_ERROR"${config_module}mustimplement${cmd}")) 将变量 的值置为 #遍历 if(NOTDEFINEDmessage(FATAL_ERROR"cmake/${config_module}mustdefine${conf}")#project##project(px4CXXC#本工程的工程名 px4,支持的语言c++,cif(NOT${CMAKE_VERSION}VERSION_LESS3.0.0) cmake_(SETCMP0045NEW)#erroronnon-existenttargetingetpropcmake_(SETCMP0046NEW)#nonon-existenttargetsasdependenciescmake_(SETCMP0025OLD)#stillreportAppleClangasClangif(NOT${CMAKE_VERSION}VERSION_LESScmake_(SETCMP0054NEW)#don'tdereferencequotedvariablesset(version_patchset(version #设置为
REQUIRED)#查找并加载外来的工程设置,如果没有找到的化就终止Cmake过程cmake ## #为当前及其下级 的Gtest可以用于C/C++代 下的Makefile文件,将提供的 sample文件替换为我们自己的 make生成可执行的测试文件。)#checkrequiredtoolchainvariables #检测工具链所需的变量是否存在,否则停止 foreach(var${required_variables})if(NOTmessage(FATAL_ERROR"Toolchain/configmustdefine${var}")#git px4_add_git_submodule(TARGETgit_genmsgPATH"Tools/genmsg")px4_add_git_submodule(TARGETgit_gencppPATH"Tools/gencpp") px4_add_git_submodule(TARGETgit_gtestPATH"unittets/gtest")px4_add_git_submodule(TARGETgit_uavcanPATH"src/modules/uavcan/libuavcan")px4_add_git_submodule(TARGETgit_nuttxPATH"NuttX")px4_add_git_submodule(TARGETgit_dspalPATH"src/lib/dspal")px4_add_git_submodule(TARGETgit_driverframeworkPATHpx4_add_git_submodule(TARGETgit_eclPATH"src/lib/ecl")px4_add_git_submodule(TARGETgit_jmavsimPATH"Tools/jMAVSim")px4_add_git_submodule(TARGETgit_gazeboPATH"Tools/sitl_gazebo")px4_add_git_submodule(TARGETgit_matrixPATH"src/lib/matrix")#添加 COMMANDgitsubmoduledeinit-f.COMMANDrm-rf.git/modules/* #在指定 下上述指#misctargets #创建目 #创建目 BOARDTHREADS${THREAD}#构建所需的线程 #生 #buildflags BOARDC_FLAGSc_flagsINCLUDE_DIRSinclude_dirsLINK_DIRSlink_dirsDEFINITIONSdefinitions)#设置操作系统的缺省 px4_join(OUTCMAKE_EXE_LINKER_FLAGSLIST"${exe_linker_flags}"GLUE"px4_join(OUTCMAKE_C_FLAGSLIST"${c_flags}"GLUE"")px4_join(OUTCMAKE_CXX_FLAGSLIST"${cxx_flags}"GLUE"")#向目标中添加一个带有分隔符 (原型在
# # #提供设 -D... sourcecode ##file(GLOB_RECURSEmsg_filesmsg/*.msg) #在msg路径下匹配所有扩展名为 MSG_FILES${msg_files}OS)px4_generate_parameters_xml(OUTparameters.xmlBOARD${BOARD})px4_generate_airframes_xml(OUTairframes.xmlBOARD${BOARD}) 和 可以 set(ep_base #为 赋值。set_property(DIRECTORYPROPERTYEP_BASE${ep_base}) 的对象EP_BASE #addexternalprojectinstallfoldersto ##addt
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- G981-梵蒂冈的著名雕塑
- 高职单招职业技能测试文学常识常考知识点(75个)
- (高清版)DB12∕T 653-2016 鲜冻畜、禽肉中动物源性成分的定量检测 实时荧光PCR法
- 2025年地震数据采集系统合作协议书
- 学生安全承诺书范文3篇
- 班主任工作实习计划04
- 2025年商标许可使用协议清洁版
- 实战演练宠物殡葬师试题及答案
- 2025年度雇主免责协议书:数字货币交易风险免责合同
- 2025年度钢琴培训机构学员国际文化交流项目报名协议
- 中医护理三基练习题库+答案
- 政治-山东省青岛市2025年高三年级第一次适应性检测(青岛一模)试题和答案
- 城市交通智能管理系统开发协议
- 反恐怖测试题及答案
- 2025北京怀柔区属企业招聘管培生15人笔试参考题库附带答案详解
- 七年级下册2025春季历史 教学设计《明朝对外关系》 学习资料
- 2025年安全生产安全知识考试题库:水上作业安全试题卷
- 跨境医疗合作模式-深度研究
- 组织学与胚胎学知到课后答案智慧树章节测试答案2025年春浙江中医药大学
- 专题06 几何问题(二元一次方程组的应用)
- 认识女性骨盆讲解
评论
0/150
提交评论