从零开始 CMake 学习笔记 (E)installing
开始前先默念三遍口诀:
- Declare a target
- Declare target’s traits
- It’s all about targets
本系列主要根据GitHub上的 cmake-examples 项目进行翻译总结,同时对于不清晰的概念及函数进行查阅理解记录形成。
文章目录
1 介绍
此示例展示如何生成 make install 目标以在系统上安装文件和二进制文件。这是基于前面的共享库从零开始 CMake 学习笔记 (D)shared-library示例。
1.1 文件树
E-installing $ tree
.
├── cmake-examples.conf
├── CMakeLists.txt
├── include
└── installing
└── Hello.h
├── README.adoc
└── src
└── Hello.cpp
└── main.cpp
1.2 文件简介
- CMakeLists.txt - 包含了你希望运行的 CMake 命令
cmake_minimum_required(VERSION 3.5)
project(cmake_examples_install)
//从原文件生成动态库
add_library(cmake_examples_inst SHARED
src/Hello.cpp
)
//添加一个库,这个库使用 ALIAS 定义了它的别名
add_library(hello::library ALIAS hello_library)
target_include_directories(cmake_examples_inst
PUBLIC
${
PROJECT_SOURCE_DIR}/include
)
# 从 main.cpp 创建可执行文件
add_executable(cmake_examples_inst_bin
src/main.cpp
)
# 将重新命名后的hello library库链接到hello_binary库
target_link_libraries( cmake_examples_inst_bin
PRIVATE
cmake_examples_inst
)
# Install 二进制文件
install (TARGETS cmake_examples_inst_bin
DESTINATION bin)
# Install 二进制文件依赖的库
# Note: may not work on windows
install (TARGETS cmake_examples_inst
LIBRARY DESTINATION lib)
# Install 依赖的库的头文件
install(DIRECTORY ${
PROJECT_SOURCE_DIR}/include/
DESTINATION include)
#