如何在cmake中修改某个target的SOURCE
时间: 2024-05-19 16:15:34 浏览: 5
代码?
你可以使用 target_sources 命令来添加或删除一个 target 的源代码文件。例如,要添加一个名为 main.cpp 的源文件到名为 mytarget 的目标中,可以使用以下命令:
target_sources(mytarget PRIVATE main.cpp)
你也可以使用 PUBLIC 或 INTERFACE 参数来控制源文件对其他目标的可见性。例如,要将 main.cpp 添加到 mytarget 和 mylibrary 两个目标中,可以使用以下命令:
target_sources(mytarget PRIVATE main.cpp)
target_sources(mylibrary INTERFACE main.cpp)
这将确保 main.cpp 对于 mytarget 和 mylibrary 目标都是可见的。
相关问题
cmake中如何修改某个target的sources
可以使用 set_target_properties 命令来修改某个 target 的 sources,具体使用方法如下:
```
set_target_properties(target_name PROPERTIES
SOURCES source1.cpp source2.cpp ...)
```
其中,target_name 为要修改的 target 的名称,SOURCES 后面跟上要修改的源文件列表。
cmake中如何指定target的public_header,并在install中进行安装
在 CMake 中,我们可以使用 ``set_target_properties()`` 函数来指定 target 的 public header,在 ``install()`` 函数中进行安装。
下面是一个简单的示例:
```cmake
add_library(MyLibrary SHARED
source_file1.cpp
source_file2.cpp
header_file1.h
header_file2.h
)
set_target_properties(MyLibrary PROPERTIES
PUBLIC_HEADER "header_file1.h;header_file2.h"
)
install(TARGETS MyLibrary
LIBRARY DESTINATION lib
PUBLIC_HEADER DESTINATION include
)
```
在这个示例中,我们指定了 ``MyLibrary`` target 的 public header 为 ``header_file1.h`` 和 ``header_file2.h``。在 ``install()`` 函数中,我们将 ``MyLibrary`` target 安装到了 ``lib`` 目录下,并将 public header 安装到了 ``include`` 目录下。
如果你的 target 有多个 public header,可以使用分号(``;``)将它们分隔开来。如果你的 target 没有 public header,可以省略 ``set_target_properties()`` 中的 ``PUBLIC_HEADER`` 属性。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)