1
4

2 に答える 2

2

CMake メーリング リストのさまざまな投稿を読んだ後、CMAKE_CXX_FLAGS*変数はそれぞれにローカルでありCMakeLists.txt、を使用して子ディレクトリに継承されているようadd_subdirectory()です。

どうやら、コンパイラ フラグの複数のセットを持つ推奨される方法は、それぞれが独自のコンパイラ フラグを設定する兄弟サブディレクトリを作成することです。2 つのフォルダーnativeを追加managedし、それぞれに独自のコンパイラ フラグを設定しますCMakeLists.txt。これで、すべてが期待どおりにビルドされます。

于 2012-04-17T23:29:42.963 に答える
0

あなたが次の線に沿って何かを持っていると仮定します:

project(my_libraries)
...
add_library(standard SHARED ${src_files})
add_library(managed SHARED ${src_files})

次に、次のことができます。

set(incomp_flags <list of incompatible flags>)
get_property(comp_flags TARGET managed PROPERTY COMPILE_FLAGS)
foreach(flag ${incomp_flags})
  list(REMOVE_ITEM comp_flags ${flag})
endforeach()
set_property(TARGET managed PROPERTY COMPILE_FLAGS ${comp_flags} <flag for managed build>)

アイデアは、管理対象ライブラリのビルド用のフラグを取得する必要があり、次に互換性のないものを削除して、必要なものを追加する必要があるということです。

于 2012-04-16T00:04:02.723 に答える