Macos cmake框架目标不复制头或资源?
我正在尝试使用创建一个OSX框架。这是我的Macos cmake框架目标不复制头或资源?,macos,frameworks,cmake,Macos,Frameworks,Cmake,我正在尝试使用创建一个OSX框架。这是我的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;cma
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/
您应该将
PUBLIC\u标题添加到add\u库中
:
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\u include\u directories
函数添加头文件,它也不会拾取头文件,这是有意义的,因为CMake不知道任何未显式添加到目标的文件