build: Fix addXXXFlag functions for interface targets
This commit is contained in:
parent
cfa6b706a8
commit
5ee2ebfb4f
@ -10,11 +10,21 @@ if (POLICY CMP0177)
|
||||
cmake_policy(SET CMP0177 OLD)
|
||||
endif()
|
||||
|
||||
function(getTarget target type)
|
||||
get_target_property(TARGET_TYPE ${target} TYPE)
|
||||
if (${TARGET_TYPE} STREQUAL "INTERFACE_LIBRARY")
|
||||
set(${type} INTERFACE PARENT_SCOPE)
|
||||
else()
|
||||
set(${type} PRIVATE PARENT_SCOPE)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
function(addCFlag)
|
||||
if (ARGC EQUAL 1)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C>:${ARGV0}>)
|
||||
elseif (ARGC EQUAL 2)
|
||||
target_compile_options(${ARGV1} PRIVATE $<$<COMPILE_LANGUAGE:C>:${ARGV0}>)
|
||||
getTarget(${ARGV1} TYPE)
|
||||
target_compile_options(${ARGV1} ${TYPE} $<$<COMPILE_LANGUAGE:C>:${ARGV0}>)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
@ -22,7 +32,8 @@ function(addCXXFlag)
|
||||
if (ARGC EQUAL 1)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:${ARGV0}>)
|
||||
elseif (ARGC EQUAL 2)
|
||||
target_compile_options(${ARGV1} PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${ARGV0}>)
|
||||
getTarget(${ARGV1} TYPE)
|
||||
target_compile_options(${ARGV1} ${TYPE} $<$<COMPILE_LANGUAGE:CXX>:${ARGV0}>)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
@ -30,7 +41,8 @@ function(addObjCFlag)
|
||||
if (ARGC EQUAL 1)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:OBJC>:${ARGV0}>)
|
||||
elseif (ARGC EQUAL 2)
|
||||
target_compile_options(${ARGV1} PRIVATE $<$<COMPILE_LANGUAGE:OBJC>:${ARGV0}>)
|
||||
getTarget(${ARGV1} TYPE)
|
||||
target_compile_options(${ARGV1} ${TYPE} $<$<COMPILE_LANGUAGE:OBJC>:${ARGV0}>)
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user