build: Fix addXXXFlag functions for interface targets

This commit is contained in:
WerWolv
2025-02-02 20:32:24 +01:00
parent cfa6b706a8
commit 5ee2ebfb4f

View File

@@ -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()