cmake框架目标不复制标头或资源?

用户名

我正在尝试使用cmake创建OS X框架这是我的CMakeLists.txt文件:

project( Foo)

cmake_minimum_required (VERSION 3.7)

add_library( Foo SHARED
foo.c
)

set_target_properties( Foo PROPERTIES
FRAMEWORK TRUE
RESOURCE "foo.md"
PUBLIC_HEADER "foo.h"
)

当我运行( mkdir build ; cd build ; cmake .. ; make)一个Foo.framework产生,但头和资源不会出现在它。我想念什么?(cmake版本3.7.1)


如何繁殖。保存在CMakeLists.txt上方。现在执行:

#!/bin/sh

echo "int version = 1;" > foo.c
touch foo.h
touch foo.md
( mkdir build ; cd build ; cmake .. ; make)
ls -R build/Foo.framework/
tty6

您应该添加PUBLIC_HEADERadd_library

project( Foo )

cmake_minimum_required (VERSION 3.7)

add_library( Foo SHARED
    foo.c
    foo.h
)

set_target_properties( Foo PROPERTIES
    FRAMEWORK TRUE
    RESOURCE "foo.md"
    PUBLIC_HEADER "foo.h"
)

除非将头文件添加到目标,否则Cmake不知道从何处复制头文件。现在,重建将复制foo.h到中Foo.framework/Headers/可能还有其他方法可以执行此操作,但这肯定会产生所需的结果。

即使通过target_include_directories函数添加头文件,它也不会拾取头文件,这很有意义,因为CMake不会知道未明确添加到目标文件的任何文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章