2017-08-29 37 views
0

在GNU的每個元素讓我就這樣寫:CMake的添加前綴列表

DEF=FOO BAR BAZ 
CMAKE_REQUIRED_DEFINIITIONS=$(addprefix -D,$(FOO)) 

是否有CMake的等效不是做這個其他:

macro(addprefix prefix list_name) 
    SET(${list_name}_TMP) 
    foreach(l ${list_name}) 
     list(APPEND ${list_name}_TMP ${prefix}${l}) 
    endforeach() 

    SET(${list_name} ${list_name}_TMP) 
    UNSET(${list_name}_TMP) 
endmacro(addprefix) 

set(APPEND required_definitions FOO BAR BAZ) 
set(CMAKE_REQUIRED_DEFINITIONS addprefix(-D required_definitions)) 

的CMake應該更容易使用比GNU使...

+0

你可以在原始列表中使用'target_compile_definitions'嗎? – vre

+0

喔!這正是我需要的:) – nowox

回答

1

重整我以前爲答案評論:

target_compile_definitions(your_target PUBLIC ${your_list}) 

可能是您正在尋找的CMake命令。