工程描述
1,为工程添加一个子目录src,用来存储源代码;
2,添加一个子目录doc,用来存储这个工程的文档hello.txt
3,在工程目录添加文本文件COPYRIGHT, README;
4,在工程目录添加一个runhello.sh 脚本,用来调用hello二进制
4,将构建后的目标文件放入构建目录的bin 子目录;
5,最终安装这些文件:将hello二进制与runhello.sh安装至CMAKE_INSTALL_PREFIX/bin,将
doc目录中的 hello.txt 以及COPYRIGHT/README 安装到CMAKE_INSTALL_PREFIX/share/doc/cmake/t2
CMAKE_INSTALL_PREFIX在执行cmake是指定为-DCMAKE_INSTALL_PREFIX=/tmp/t2/usr
即cmake -DCMAKE_INSTALL_PREFIX=/tmp/t2/usr …
1 工程结构
1.1 工程目录下CMakeLists.txt
# 指定工程名称
PROJECT(HELLO)
# 安装 可执行二进制文件
INSTALL(PROGRAMS runhello.sh DESTINATION bin)
# 目标二进制hello的安装这里会执行错误,在src下进行安装
# INSTALL(TARGETS hello RUNTIME DESTINATION bin)
# 安装普通文件
INSTALL(FILES COPYRIGHT README DESTINATION share/doc/cmake/t2)
# 安装目录
INSTALL(DIRECTORY doc/ DESTINATION share/doc/cmake/t2)
# 添加子目录,src下有编译源文件,CMakeLists.txt, 生成的可执行文件在bin目录下
ADD_SUBDIRECTORY(src bin)
1.2 src目录下的CMakeLists.txt
# 生成目标文件hello
ADD_EXECUTABLE(hello main.c)
# 安装目标二进制文件
INSTALL(TARGETS hello RUNTIME DESTINATION bin)