那么PUBLIC_HEADER的值如何指定呢?
时间: 2023-08-14 14:08:23 浏览: 156
在CMake中,PUBLIC_HEADER参数需要指定一个头文件列表,以便将这些头文件安装到指定的目录中。这个参数通常使用set命令来设置,例如:
```
set(MYLIB_PUBLIC_HEADERS
mylib/header1.h
mylib/header2.h
mylib/header3.h
)
```
这里的MYLIB_PUBLIC_HEADERS变量包含了要安装的头文件列表,可以根据实际情况进行修改。在install命令中,需要指定这个变量的值作为PUBLIC_HEADER参数的值,例如:
```
install(TARGETS mylib
EXPORT MyLibConfig
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
PUBLIC_HEADER ${MYLIB_PUBLIC_HEADERS}
INCLUDES DESTINATION include/mylib
)
```
这里的PUBLIC_HEADER参数指定了要安装的头文件列表,将它们安装到include/mylib目录中。注意,这里的目录可以根据实际情况进行修改。
需要注意的是,PUBLIC_HEADER参数的值应该是一个以空格分隔的头文件列表,而不是一个目录。如果想要安装一个目录下的所有头文件,可以使用file命令来获取目录下的所有文件,例如:
```
file(GLOB MYLIB_PUBLIC_HEADERS "mylib/*.h")
```
这里的file命令将匹配所有在mylib目录下的.h文件,并将它们存储在MYLIB_PUBLIC_HEADERS变量中。然后可以将这个变量的值传递给PUBLIC_HEADER参数,例如:
```
install(TARGETS mylib
EXPORT MyLibConfig
ARCHIVE DESTINATION lib
LIBRARY DESTINATION lib
PUBLIC_HEADER ${MYLIB_PUBLIC_HEADERS}
INCLUDES DESTINATION include/mylib
)
```
这样就可以使用file命令来设置要安装的头文件列表了。
阅读全文