我正在尝试使用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/
您应该添加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"
)
除非将头文件添加到目标,否则Cmake不知道从何处复制头文件。现在,重建将复制foo.h
到中Foo.framework/Headers/
。可能还有其他方法可以执行此操作,但这肯定会产生所需的结果。
即使通过target_include_directories
函数添加头文件,它也不会拾取头文件,这很有意义,因为CMake不会知道未明确添加到目标文件的任何文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句