ROS之CMakeLists.txt 文件

 http://blog.csdn.net/u013243710/article/details/35795841

 http://wiki.ros.org/catkin/CMakeLists.txt 

文件CMakeLists.txt是用于构建软件包的CMake构建系统的输入。任何符合cmake的包都包含一个或多个CMakeLists。txt文件描述如何构建代码并将其安装到何处。

 

结构和机制

1.      Required CMake Version(cmake_minimum_required)

cmake_minimum_required(VERSION 2.8.3)   //catkin必须是2.8.3,或以上版本

2.      Package Name (project())

project(robot_brain)    //project作用 // 在CMake中,您可以在任何需要的地方使用变量${PROJECT_NAME}在CMake脚本的任何地方引用项目名称。

3.      Find other CMake/Catkinpackages needed for build (find_package())

find_package(catkin REQUIRED)   //:我们需要指定使用CMakefind_package函数来构建我们的项目所需的其他CMake包。至少有一个:    //如果您的项目依赖于其他的包,它们将自动转换成catkin的组件(在CMake中)。如果您将其指定为组件,而不是在这些包上使用find_package,它将使活更轻松。例如,如果您使用package nodelet:find_package(catkin REQUIRED COMPONENTS nodelet)

4.      Enable Python module support(catkin_python_setup())

5.      Message/Service/ActionGenerators (add_message_files(), add_service_files(), add_action_files())

6.      Invoke message/service/actiongeneration (generate_messages())

7.      Specify package build infoexport (catkin_package())

8.      Libraries/Executables to build(add_library()/add_executable()/target_link_libraries())

9.      Tests to build(catkin_add_gtest())

10.  Install rules (install())

 

find_package()的工作机制

一个包被find_package,那么就会导致一些CMake变量的产生,从而去找到这个包,这些变量后面将在CMake的脚本中用到,这些变量描述了所依赖的包输出的头文件、源文件、库文件在哪里。和包所依赖的库,

这些变量的名字依照的惯例是_,比如:

_FOUND:这个变量说明这个库是否被找到,如果找到就被设置为true,否则设为false;

_INCLUDE_DIRSor_INCLUDES:这个包输出的头文件目录;

_LIBRARIES or _LIBS:这个包输出的库文件。

需要的所有

你可能感兴趣的:(ROS,CMakeLists.txt,CMakeLists.txt)