2016-09-06 7 views
1

cmake add_library関数の中にフラグを入れて、重複するコードを減らすことは可能ですか?例えばフラグが付いたCmake add_library

add_library(somename SHARED 

    $<TARGET_OBJECTS:xxx_objs> 
    $<TARGET_OBJECTS:yyy_objs> 
    $<TARGET_OBJECTS:zzz_objs> 
    #if(INCLUDE_SOME_FLAG) 
    $<TARGET_OBJECTS:aaa_objs> 
    $<TARGET_OBJECTS:bbb_objs> 
    $<TARGET_OBJECTS:ccc_objs> 
    #endif(INCLUDE_SOME_FLAG) 
) 

私はエラーを取得しようとした場合:「ソースファイルが見つかりません:」私はフラグを削除した場合 それがOKに動作します。私はそれがフラグがソースファイルだと思います、それはどういう意味ですか?

答えて

2
set(somename_objs 
    $<TARGET_OBJECTS:xxx_objs> 
    $<TARGET_OBJECTS:yyy_objs> 
    $<TARGET_OBJECTS:zzz_objs>) 
if (INCLUDE_SOME_FLAG) 
    list(APPEND somename_objs 
     $<TARGET_OBJECTS:aaa_objs> 
     $<TARGET_OBJECTS:bbb_objs> 
     $<TARGET_OBJECTS:ccc_objs>) 
endif() 
add_library(somename SHARED ${somename_objs}) 
関連する問題