CMAKE之INSTALL

CMAKE_INSTALL_PREFIX 可以用来指定工程安装的目录,如果没有指定INSTALL将会默认安装在/usr/local目录下面。

cmake –DCMAKE_INSTALL_PREFIX=/usr/local ../

INSTALL指令用于定义安装规则,安装的内容可以包括目标二进制、动态库、静态库以及文件、目录、脚本等。

  1. 安装TARGET

install(TARGETS targets... [EXPORT <export-name>]

[[ARCHIVE|LIBRARY|RUNTIME|FRAMEWORK|BUNDLE|

PRIVATE_HEADER|PUBLIC_HEADER|RESOURCE]

[DESTINATION <dir>]

[INCLUDES DESTINATION [<dir> ...]]

[PERMISSIONS permissions...]

[CONFIGURATIONS [Debug|Release|...]]

[COMPONENT <component>]

[OPTIONAL] [NAMELINK_ONLY|NAMELINK_SKIP]

] [...])

ARCHIVE特指静态库,LIBRARY特指动态库,RUNTIME特指可执行目标二进制。

DESTINATION定义了安装的路径,如果路径以/开头,那么指的是绝对路径,这时候CMAKE_INSTALL_PREFIX其实就无效了。如果不以/开头,那么安装的路径就是${CMAKE_INSTALL_PREFIX}/<DESTINATION定义的路径>

例子:

install(TARGETS myExe mySharedLib myStaticLib

RUNTIME DESTINATION bin

LIBRARY DESTINATION lib

ARCHIVE DESTINATION lib/static)

install(TARGETS mySharedLib DESTINATION /some/full/path)

  1. 安装文件

install(<FILES|PROGRAMS> files... DESTINATION <dir>

[PERMISSIONS permissions...]

[CONFIGURATIONS [Debug|Release|...]]

[COMPONENT <component>]

[RENAME <name>] [OPTIONAL])

如果没有指定files是指令所在路径下的相对路径,如果默认不定义权限PERMISSIONS,安装后的权限为644权限,拥用者可读写,组与其他可读。如果是脚本之类的文件指定为PROGRAMES,则默认权限为755,即都可执行。

  1. 安装目录

install(DIRECTORY dirs... DESTINATION <dir>

[FILE_PERMISSIONS permissions...]

[DIRECTORY_PERMISSIONS permissions...]

[USE_SOURCE_PERMISSIONS] [OPTIONAL] [MESSAGE_NEVER]

[CONFIGURATIONS [Debug|Release|...]]

[COMPONENT <component>] [FILES_MATCHING]

[[PATTERN <pattern> | REGEX <regex>]

[EXCLUDE] [PERMISSIONS permissions...]] [...])

DIRECTORY 后面连接的是所在source目录的相对路径,但务必注意:abc和abc/有很大的区别。如果目录名不以/结尾,那么这个目录将被安装为目录路径下abc,如果目录名以/结尾,代表将这个目录中的内容安装到目标路径,但不包括这个目标本身。

PATTERN用于使用正则表达式进行过滤,PERMISSIONS用于指定PATTERN过滤后文件权限。

例1:安装src目录下所有.h文件到 include/myproject下

install(DIRECTORY src/ DESTINATION include/myproj

FILES_MATCHING PATTERN "*.h")

例2:

install(DIRECTORY icons scripts/ DESTINATION share/myproj
        PATTERN "CVS" EXCLUDE
        PATTERN "scripts/*"
        PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
                    GROUP_EXECUTE GROUP_READ)

将icons目录 以及scripts目录下的所有文件(不包含scripts目录本身)安装到share/myproj目录下面,icons将会是默认的权限,scripts目录下的文件将会特别的权限,同时不包含CSV目录。

  1. 安装CMake脚本

install([[SCRIPT <file>] [CODE <code>]]

[COMPONENT <component>] [...])

SCRIPT将会让安装过程中执行file.cmake脚本,file文件的路径是相对于当前源文件路径。CODE参数用于执行CMAKE指令,必须以双引号括起来,比如:

install(CODE "MESSAGE(\"Sample install message.\")")

时间: 2024-10-15 17:40:35

CMAKE之INSTALL的相关文章

CMAKE设置INSTALL工程,分别设置头文件、Lib和DLL的输出路径

使用CMAKE管理工程,可以设置工程中的INSTALL项目运行时安装的路径,使用命令:install. 可以简单的设置安装文件的路径和文件夹: set(head_files //要安装的头文件 ) install(TARGETS ${head_files} DESTINATION ${CMAKE_BINARY_DIR}/include) install(TARGETS myLib DESTINATION ${CMAKE_BINARY_DIR}/Lib) 上述设置方法会将Lib文件和DLL文件安装

cmake

前言cmake 已经开发了 5,6 年的时间,如果没有 KDE4,也许不会有人或者 Linux 发行版本重视cmake,因为除了 Kitware 似乎没有人使用它.通过 KDE4 的选型和开发,cmake 逐渐进入了人们的视线,在实际的使用过程中,cmake 的优势也逐渐的被大家所认识,至少 KDE 的开发者们给予了 cmake极高的评价,同时庞大的 KDE 项目使用 cmake 来作为构建工具也证明了 cmake 的可用性和大项目管理能力.所以,cmake 应该感谢 KDE,也正因为如此,cm

Homebrew cmake

资料来源 源1 http://brew.sh/index_zh-cn.html 源2 http://blog.csdn.net/yanzi1225627/article/details/42113661 1. MAC上打开终端,执行以下脚本 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 2. 安装cmake brew install cmake 尝试过用

centos MySQL 5.5 源代码 cmake 安装

mysql 5 种安装方式: yum rpm 常规编译 二进制包,不用编译 cmake mysql 5.5版本以上 机器数量少建议cmake   数量多二进制包 安装步骤: 1.安装一些常用的软件包: yum -y install openldap-servers libevent-devel libevent uuid-devel yum -y install bison bison-devel yum -y install gcc gdb strace gcc-c++ autoconf yu

CMake初步(2)

转自:<你所不知的OSG>第一章:CMake初步(2) http://bbs.osgchina.org/forum.php?mod=viewthread&tid=1229&fromuid=3434 1.4 词法和语法 在开始本节的学习之前,我们先总结一下之前所了解到的CMake基本词法和命令. CMake命令通常使用如下的格式: COMMAND( ARG1 ARG2 … ) 复制代码 命令关键字之后使用括号来包含所有的参数:各个参数之间使用空格或者换行符分隔:而参数通常有以下几

源码安装升级cmake(linux默认版本较低)

cmake source install as follows: 0 cd ~ 1 wget https://cmake.org/files/v3.5/cmake-3.5.2.tar.gz 2 tar xvf cmake-3.5.2.tar.gz This worked for me  then: 3 cd cmake-3.4.3 4 ./bootstrap --prefix=/usr 这一步很关键,如果没有指定prefix,后面使用时会报错Could not find CMAKE_ROOT 5

Cmake实践(Cmake Practice)第一部分

参考资料地址:https://github.com/Akagi201/learning-cmake/blob/master/docs/cmake-practice.pdf 一.初识cmake 1. Cmake特点 开放源代码 跨平台 能够管理大型项目 简化编译构建和编译过程(常用流程:cmake + make) 高效率 可扩展 每个目录编写一份CMakeLists.txt 二.初试cmake -- helloworld 1. 准备工作 mkdir -p /backup/cmake cd /bac

its time to do cmake right

Enough preambles. Does this look familiar to you? find_package(Boost 1.55 COMPONENTS asio) list(APPEND INCLUDE_DIRS ${BOOST_INCLUDE_DIRS}) list(APPEND LIBRARIES ${BOOST_LIBRARIES}) include_directories(${INCLUDE_DIRS}) link_libraries(${LIBRARIES}) inc

cmake 构建工程

说明:文章参照<CMAKE实践> 1.首先创建工程目录:/learn/cmake/project project目录中需要编写CMakeLists.txt 2.在project中创建src子目录: 放置工程源代码 src目录中需要编写CMakeLists.txt 3.在project中创建build子目录: 编译目录,外部编译时,(cmake .. )生成得编译需要的Makefile以及其他的中间文件,会在这个目录中, (make)生成的目标文件 target 会在 build/bin 目录中