【文件属性】:
文件名称:cmake-external:现代CMake C ++ ExternalProject示例
文件大小:48KB
文件格式:ZIP
更新时间:2021-05-28 04:23:38
cmake cplusplus externalproject CMake
介绍
这是一个如何使用模块创建现代 C ++项目的示例,以将依赖项包含为子项目。
该项目应在Linux,Mac和Windows上运行。
CMake依赖树
稍微复杂一点,CMake项目由一个具有以下依赖关系的可执行文件(FooApp)组成:
gflags:
glog: gflags
zlib:
protobuf: zlib
FooApp: gflags glog zlib protobuf
注意1:所有依赖项都以静态方式构建,具有一个独立的可执行文件FooApp 。 注2:glog,zlib,protobuf需要修补程序才能用作子项目。
项目目录布局
因此,项目布局如下:
CMakeLists.txt // meta CMake doing the orchestration and python packaging
cmake
├── CMakeLists.txt
├──
【文件预览】:
cmake-external-main
----.dockerignore(240B)
----CONTRIBUTORS(1KB)
----.github()
--------workflows()
----AUTHORS(455B)
----patches()
--------zlib.patch(7KB)
--------gflags.patch(3KB)
--------glog.patch(1KB)
--------protobuf.patch(5KB)
----ci()
--------docker()
--------doc()
--------Makefile(5KB)
--------sample()
----Bar()
--------src()
--------CMakeLists.txt(953B)
--------include()
----Foo()
--------src()
--------CMakeLists.txt(2KB)
--------include()
----.clang-format(2KB)
----CMakeLists.txt(2KB)
----CONTRIBUTING.md(969B)
----.travis.yml(738B)
----LICENSE(10KB)
----cmake()
--------docker()
--------protobuf.CMakeLists.txt(573B)
--------CMakeExternalConfig.cmake.in(311B)
--------CMakeLists.txt(4KB)
--------Makefile(5KB)
--------sample()
--------gflags.CMakeLists.txt(561B)
--------glog.CMakeLists.txt(568B)
--------zlib.CMakeLists.txt(554B)
----README.md(3KB)
----appveyor.yml(721B)
----.gitignore(31B)
----FooApp()
--------msg.proto(208B)
--------src()
--------CMakeLists.txt(2KB)