Cmake添加带有标志的库

Cmake添加带有标志的库,cmake,Cmake,是否可以在cmake add_库函数中放置一个标志,以减少重复代码。e、 g add_library(somename SHARED $<TARGET_OBJECTS:xxx_objs> $<TARGET_OBJECTS:yyy_objs> $<TARGET_OBJECTS:zzz_objs> #if(INCLUDE_SOME_FLAG) $<TARGET_OBJECTS:aaa_objs> $&l

是否可以在cmake add_库函数中放置一个标志,以减少重复代码。e、 g

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)
)
add_库(somename共享)
$
$
$
#如果(包括某些标志)
$
$
$
#endif(包括某些标志)
)
如果我尝试,会出现错误:“找不到源文件:” 如果我删除该标志,它的工作正常。我猜它认为标志是一个源文件,不管怎样?

set(somename\u objs
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})
$ $ $) 如果(包括某些标志) 列表(附加somename_objs) $ $ $) endif() 添加库(somename共享${somename_objs})