use*_*235 7 macos frameworks 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"
)
Run Code Online (Sandbox Code Playgroud)
当我运行时生成了( 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/
Run Code Online (Sandbox Code Playgroud)
您应该添加PUBLIC_HEADER
到您的add_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"
)
Run Code Online (Sandbox Code Playgroud)
Cmake 不知道从哪里复制头文件,除非您将其添加到目标中。重建现在将复制foo.h
到Foo.framework/Headers/
. 可能还有其他方法可以做到这一点,但这肯定会产生预期的结果。
即使您通过target_include_directories
函数添加标头,它也不会获取标头文件,这是有道理的,因为 CMake 不知道任何未显式添加到目标的文件。
归档时间: |
|
查看次数: |
2260 次 |
最近记录: |