2016-10-13 23 views
0

私はこのようなトップレベルのCMakeListsを得た:複数の共有ライブラリ用に1つのヘッダファイルをエクスポートするにはどうすればよいですか?

cmake_minimum_required(VERSION 3.6.2) 

project(Template) 

set(CMAKE_LINK_DEPENDS_NO_SHARED ON) 

add_subdirectory(external/libA) 
add_subdirectory(external/libB) 
add_subdirectory(external/libC) 

add_subdirectory(apps/app1) 
add_subdirectory(apps/app2) 

それは3つの共有ライブラリ{libA, libB, libC}と、これらのライブラリを使用する実行ファイル{app1, app2}のカップルを持っている単純なプロジェクトです。私の質問は次である

、私はcmakeのは、カスタムヘッダーをコード化し、以下のようなもので、シンボルをエクスポートする.defsでめちゃくちゃのhazzleを通過避けるために、いくつかのヘルパーを提供します見てきました:

include (GenerateExportHeader) 
GENERATE_EXPORT_HEADER(libA 
      BASE_NAME libA 
      EXPORT_MACRO_NAME SHARED_EXPORT 
      EXPORT_FILE_NAME shared_EXPORTS.h 
      STATIC_DEFINE SHARED_EXPORTS_BUILT_AS_STATIC) 

私の質問上記のスニペットをすべての共有ライブラリに使用できますか?もしそうなら、私はそれをどのようにどこに置くべきですか?

答えて

0

1回の呼び出しで複数のライブラリにパラメータを設定することはできません。共有ライブラリごとにGenerateExportHeaderを使用する必要があります。

だからlibAためGENERATE_EXPORT_HEADERに1つのコール、libBに1つ、自分のパラメータを持つlibCに1つ、それぞれを持っています。

関連する問題