Path: blob/master/Tests/CMakeCommands/target_link_options/CMakeLists.txt
3153 views
1cmake_minimum_required(VERSION 3.11)23project(target_link_options LANGUAGES C)45add_library(target_link_options SHARED LinkOptionsLib.c)6# Test no items7target_link_options(target_link_options PRIVATE)89add_library(target_link_options_2 SHARED EXCLUDE_FROM_ALL LinkOptionsLib.c)10target_link_options(target_link_options_2 PRIVATE -PRIVATE_FLAG INTERFACE -INTERFACE_FLAG)11get_target_property(result target_link_options_2 LINK_OPTIONS)12if (NOT result MATCHES "-PRIVATE_FLAG")13message(SEND_ERROR "target_link_options not populated the LINK_OPTIONS target property")14endif()15get_target_property(result target_link_options_2 INTERFACE_LINK_OPTIONS)16if (NOT result MATCHES "-INTERFACE_FLAG")17message(SEND_ERROR "target_link_options not populated the INTERFACE_LINK_OPTIONS target property of shared library")18endif()1920add_library(target_link_options_3 STATIC EXCLUDE_FROM_ALL LinkOptionsLib.c)21target_link_options(target_link_options_3 INTERFACE -INTERFACE_FLAG)22get_target_property(result target_link_options_3 INTERFACE_LINK_OPTIONS)23if (NOT result MATCHES "-INTERFACE_FLAG")24message(SEND_ERROR "target_link_options not populated the INTERFACE_LINK_OPTIONS target property of static library")25endif()2627add_library(target_link_options_4 SHARED EXCLUDE_FROM_ALL LinkOptionsLib.c)28target_link_options(target_link_options_4 PRIVATE -PRIVATE_FLAG)29target_link_options(target_link_options_4 BEFORE PRIVATE -BEFORE_PRIVATE_FLAG)30get_target_property(result target_link_options_4 LINK_OPTIONS)31if (NOT result MATCHES "-BEFORE_PRIVATE_FLAG.*-PRIVATE_FLAG")32message(SEND_ERROR "target_link_options not managing correctly 'BEFORE' keyword")33endif()343536