You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.7 KiB
56 lines
1.7 KiB
6 years ago
|
|
||
|
enable_language(C)
|
||
|
|
||
|
set(obj "${CMAKE_C_OUTPUT_EXTENSION}")
|
||
|
if(BORLAND)
|
||
|
set(pre -)
|
||
|
endif()
|
||
|
|
||
|
# basic configuration
|
||
|
add_library(LinkOptions SHARED LinkOptionsLib.c)
|
||
|
target_link_options(LinkOptions
|
||
|
PRIVATE ${pre}BADFLAG_PRIVATE${obj}
|
||
|
INTERFACE ${pre}BADFLAG_INTERFACE${obj})
|
||
|
|
||
|
|
||
|
# INTERFACE_LINK_OPTIONS
|
||
|
add_library(LinkOptions_producer SHARED LinkOptionsLib.c)
|
||
|
target_link_options(LinkOptions_producer
|
||
|
INTERFACE ${pre}BADFLAG_INTERFACE${obj})
|
||
|
|
||
|
add_executable(LinkOptions_consumer LinkOptionsExe.c)
|
||
|
target_link_libraries(LinkOptions_consumer PRIVATE LinkOptions_producer)
|
||
|
|
||
|
|
||
|
# static library with INTERFACE_LINK_OPTIONS
|
||
|
add_library(LinkOptions_producer_static STATIC LinkOptionsLib.c)
|
||
|
target_link_options(LinkOptions_producer_static
|
||
|
INTERFACE ${pre}BADFLAG_INTERFACE${obj})
|
||
|
|
||
|
add_executable(LinkOptions_consumer_static LinkOptionsExe.c)
|
||
|
target_link_libraries(LinkOptions_consumer_static PRIVATE LinkOptions_producer_static)
|
||
|
|
||
|
|
||
|
# static library with generator expression
|
||
|
add_library(LinkOptions_static STATIC LinkOptionsLib.c)
|
||
|
target_link_options(LinkOptions_static PRIVATE $<$<CONFIG:Release>:${pre}BADFLAG_RELEASE${obj}>
|
||
|
"SHELL:" # produces no options
|
||
|
)
|
||
|
|
||
|
|
||
|
# shared library with generator expression
|
||
|
add_library(LinkOptions_shared SHARED LinkOptionsLib.c)
|
||
|
target_link_options(LinkOptions_shared PRIVATE $<$<CONFIG:Release>:${pre}BADFLAG_RELEASE${obj}>
|
||
|
"SHELL:" # produces no options
|
||
|
)
|
||
|
|
||
|
|
||
|
# module library with generator expression
|
||
|
add_library(LinkOptions_mod MODULE LinkOptionsLib.c)
|
||
|
target_link_options(LinkOptions_mod PRIVATE $<$<CONFIG:Release>:${pre}BADFLAG_RELEASE${obj}>)
|
||
|
|
||
|
|
||
|
# executable with generator expression
|
||
|
add_executable(LinkOptions_exe LinkOptionsExe.c)
|
||
|
target_link_options(LinkOptions_exe PRIVATE $<$<CONFIG:Release>:${pre}BADFLAG_RELEASE${obj}>)
|