2017-01-11 5 views
2

cmakeを使用してOS Xフレームワークを作成しようとしています。私は(mkdir build ; cd build ; cmake .. ; make)Foo.frameworkが生成され実行されますが、ヘッダーとリソースがそれに表示されていない場合はcmake framework targetはヘッダやリソースをコピーしませんか?

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" 
) 

:これは私のCMakeLists.txtファイルです。私は何が欠けていますか? (cmake version 3.7.1)


どのように再現しますか。上記のCMakeLists.txtを保存してください。今すぐ実行:あなたのadd_libraryPUBLIC_HEADERを追加する必要があります

#!/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/ 

答えて

0

:あなたがターゲットにそれを追加しない限りからヘッダファイルをコピーする場所

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.hFoo.framework/Headers/にコピーされます。これを行う他の方法があるかもしれませんが、これは確かに望ましい結果を作り出します。

target_include_directories関数でヘッダーを追加しても、ヘッダーファイルは取得されません。これは、CMakeが明示的にターゲットに追加されていないファイルについては認識しないためです。

+0

実際、この回答は正しいです。私は少し明確にした。 –

関連する問題