cmake管理配置ROOT项目方法

时间:2024-11-22

作为使用C ++++开发的工具库,ROOT对于项目组织工具cmake自然是必不可少的。

本文简要介绍了cmake如何管理和配置ROOT项目。

首先是一般情况。

该项目包括一个头文件,两个源文件和一个cmake配置文件。

序列号文件名文件说明1CMakeLists.txt Cmake配置文件,用于组织项目编译,编译过程,编译结果所需的库2CMakeLists.txt.userQtcreator打开cmake项目时生成的用户缓存文件3CMakeLists.txt.user可以忽略。

4825354某些缓存文件版本,可以忽略4helloworld.h头文件,5helloworld.cpp源文件以及6main.cpp源文件的主要功能。

helloworld案例是一个简单的helloworld类。

main.cpp中的根部分来自于根自身的大小写。

cmake配置文件的内容如下cmake_minimum_required(VERSION3.5)项目(test_root01LANGUAGESCXXVERSION0.1.0)include(CTest)enable_testing()set(CMAKE_CXX_STANDARD11)set(CMAKE_CXX_STANDARD_REQUIREDON)list(APPENDCMAKE_P_QUIRE_ON) {CMAKE_SOURCE_DIR} $ {ROOT_INCLUDE_DIRS})add_definitions($ {ROOT_CXX_FLAGS})add_executable($ {PROJECT_NAME} main.cpphello.cpp)target_world_librECT_NAME $ {PROJOT} PROPACKNAME $ {PROJOT} PROCACK {PROJOT} PROCACK CPack)以下是cmake_minimum_required(VERSION3.5)设置的逐行说明cmake最低版本要求项目(test_root01LANGUAGESCXXVERSION0.1.0)将项目名称定义为test_root01,使用的语言是C ++,此项目的版本号为0.1 .0include(CTest)包含cmake的测试库,通常与cppunit库结合使用。

我使用的测试库是googletest。

您将来可以尝试使用此cppunit。

enable_testing()启用测试功能集(CMAKE_CXX_STANDARD11)定义了C ++的标准,因为通常编写c ++ 11集(CMAKE_CXX_STANDARD_REQUIREDON),ON表示强制使用新功能,对此没有仔细研究,仅对其进行复制,仅作评论如果你有任何问题。

list(APPENDCMAKE_PREFIX_PATH $ ENV {ROOTSYS})将与环境变量ROOTSYS字段对应的值分配给cmake搜索路径,以便于查找与ROOT相关的内容。

似乎必须使用绘图? include($ {ROOT_USE_FILE})是否包含一些ROOT变量配置文件? include_directories($ {CMAKE_SOURCE_DIR} $ {ROOT_INCLUDE_DIRS})包含一些ROOT头文件目录add_definitions($ {ROOT_CXX_FLAGS})添加一些ROOT的C ++标志add_executable($ {PROJECT_NAME} main.cpphelloworld.cpp)以生成可执行文件,然后生成源文件文件,该文件必须具有主要功能target_link_libraries($ {PROJECT_NAME} $ {ROOT_LIBRARIES}),以将ROOT的库文件链接到可执行文件集(CPACK_PROJECT_NAME $ {PROJECT_NAME}),以设置cpack的某些信息,这是名称,用于包装? set(CPACK_PROJECT_VERSION $ {PROJECT_VERSION})设置cpack的版本include(CPack)cpack到底包含什么?可以看出,您需要配置环境变量,如下所示。

实质是获取您的ROOT安装路径/thisroot.sh。

本文是用于为开发ROOT项目而配置cmake的老式方法,但支持新版本。

如果您想研究新方法,可以参考以下链接https://cliutils.gitlab.io/modern-cmake/chapters/packages/ROOT.html,如果该链接不见了,请参考下图找到makefile用户最喜欢的方法http://ipnp.cz / scheirich /?page_id = 178源代码链接如下,如果失败,请单击“阅读原件”。

https://gitee.com/qiangge_666/test_root01