Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Tests/CMakeCommands/target_link_options/CMakeLists.txt
3153 views
1
2
cmake_minimum_required(VERSION 3.11)
3
4
project(target_link_options LANGUAGES C)
5
6
add_library(target_link_options SHARED LinkOptionsLib.c)
7
# Test no items
8
target_link_options(target_link_options PRIVATE)
9
10
add_library(target_link_options_2 SHARED EXCLUDE_FROM_ALL LinkOptionsLib.c)
11
target_link_options(target_link_options_2 PRIVATE -PRIVATE_FLAG INTERFACE -INTERFACE_FLAG)
12
get_target_property(result target_link_options_2 LINK_OPTIONS)
13
if (NOT result MATCHES "-PRIVATE_FLAG")
14
message(SEND_ERROR "target_link_options not populated the LINK_OPTIONS target property")
15
endif()
16
get_target_property(result target_link_options_2 INTERFACE_LINK_OPTIONS)
17
if (NOT result MATCHES "-INTERFACE_FLAG")
18
message(SEND_ERROR "target_link_options not populated the INTERFACE_LINK_OPTIONS target property of shared library")
19
endif()
20
21
add_library(target_link_options_3 STATIC EXCLUDE_FROM_ALL LinkOptionsLib.c)
22
target_link_options(target_link_options_3 INTERFACE -INTERFACE_FLAG)
23
get_target_property(result target_link_options_3 INTERFACE_LINK_OPTIONS)
24
if (NOT result MATCHES "-INTERFACE_FLAG")
25
message(SEND_ERROR "target_link_options not populated the INTERFACE_LINK_OPTIONS target property of static library")
26
endif()
27
28
add_library(target_link_options_4 SHARED EXCLUDE_FROM_ALL LinkOptionsLib.c)
29
target_link_options(target_link_options_4 PRIVATE -PRIVATE_FLAG)
30
target_link_options(target_link_options_4 BEFORE PRIVATE -BEFORE_PRIVATE_FLAG)
31
get_target_property(result target_link_options_4 LINK_OPTIONS)
32
if (NOT result MATCHES "-BEFORE_PRIVATE_FLAG.*-PRIVATE_FLAG")
33
message(SEND_ERROR "target_link_options not managing correctly 'BEFORE' keyword")
34
endif()
35
36