版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
##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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026山东济南市中心医院招聘卫生高级人才(控制总量)10人备考题库带答案详解(满分必刷)
- 2025吉林省吉林大学材料科学与工程学院郎兴友教授团队博士后招聘1人备考题库附参考答案详解ab卷
- 2026福建福州三中晋安校区招聘编外英语教师2人备考题库及答案详解(夺冠)
- 2026云南昆明市晋宁区双河乡中心幼儿园编外教师招聘1人备考题库及答案详解【网校专用】
- 2026甘肃省第二人民医院高层次人才引进20人备考题库(第一期)及答案详解(夺冠系列)
- 2026甘肃兰州工业学院高层次人才引进98人备考题库(第一批)附参考答案详解(培优)
- 2026陕西省荣复军人第一医院招聘备考题库带答案详解(新)
- 2026福建福州市侨联招聘1人备考题库带答案详解(考试直接用)
- 2026江西赣州市托育综合服务中心招聘业务园长1人备考题库及1套完整答案详解
- 2026广东清远市英德市人民武装部招聘专项临聘人员1人备考题库带答案详解(夺分金卷)
- 国家广播电视总局部级社科研究项目申请书
- 2025-2030中国自行车行业市场深度调研及发展趋势与投资前景预测研究报告
- 2026年陕西延长石油集团有限责任公司校园招聘笔试备考题库及答案解析
- 工会2025年度工作报告国企2025工会工作报告
- 广东梅州市嘉城建设集团有限公司招聘笔试题库2026
- T∕SZSSIA 019-2026 反恐怖防范管理规范 总则
- 2026年及未来5年市场数据中国税务大数据行业市场全景分析及投资前景展望报告
- 2026年中考英语专题复习:5个主题作文 预测练习题(含答案+范文)
- 2026年陕西能源职业技术学院单招职业适应性考试题库附参考答案详解(完整版)
- 24J113-1 内隔墙-轻质条板(一)
- 神州数码人才测评题2
评论
0/150
提交评论