Imported Upstream version 3.25.0
[platform/upstream/cmake.git] / Tests / RunCMake / target_link_libraries-LINK_LIBRARY / apple_framework.cmake
1
2 enable_language(OBJCXX)
3
4
5 # feature FRAMEWORK
6 add_library(foo-framework SHARED foo.mm)
7 target_link_libraries(foo-framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>")
8
9 add_executable(main-framework main.mm)
10 target_link_libraries(main-framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" foo-framework)
11
12
13 # feature NEEDED_FRAMEWORK
14 add_library(foo-needed_framework SHARED foo.mm)
15 target_link_libraries(foo-needed_framework PRIVATE "$<LINK_LIBRARY:NEEDED_FRAMEWORK,Foundation>")
16
17 add_executable(main-needed_framework main.mm)
18 target_link_libraries(main-needed_framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" foo-needed_framework)
19
20
21 # feature REEXPORT_FRAMEWORK
22 add_library(foo-reexport_framework SHARED foo.mm)
23 target_link_libraries(foo-reexport_framework PRIVATE "$<LINK_LIBRARY:REEXPORT_FRAMEWORK,Foundation>")
24
25 add_executable(main-reexport_framework main.mm)
26 target_link_libraries(main-reexport_framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" foo-reexport_framework)
27
28
29 # feature WEAK_FRAMEWORK
30 add_library(foo-weak_framework SHARED foo.mm)
31 target_link_libraries(foo-weak_framework PRIVATE "$<LINK_LIBRARY:WEAK_FRAMEWORK,Foundation>")
32
33 add_executable(main-weak_framework main.mm)
34 target_link_libraries(main-weak_framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" foo-weak_framework)
35
36
37 ##
38 ## Consumption of target specified as FRAMEWORK
39 add_library(target-framework SHARED foo.mm)
40 set_target_properties(target-framework PROPERTIES FRAMEWORK TRUE)
41 target_link_libraries(target-framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>")
42
43
44 # feature FRAMEWORK
45 add_executable(main-target-framework main.mm)
46 target_link_libraries(main-target-framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" "$<LINK_LIBRARY:FRAMEWORK,target-framework>")
47
48
49 # feature NEEDED_FRAMEWORK
50 add_executable(main-target-needed_framework main.mm)
51 target_link_libraries(main-target-needed_framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" "$<LINK_LIBRARY:NEEDED_FRAMEWORK,target-framework>")
52
53
54 # feature REEXPORT_FRAMEWORK
55 add_executable(main-target-reexport_framework main.mm)
56 target_link_libraries(main-target-reexport_framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" "$<LINK_LIBRARY:REEXPORT_FRAMEWORK,target-framework>")
57
58
59 # feature WEAK_FRAMEWORK
60 add_executable(main-target-weak_framework main.mm)
61 target_link_libraries(main-target-weak_framework PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" "$<LINK_LIBRARY:REEXPORT_FRAMEWORK,target-framework>")
62
63
64
65 get_property(IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
66 if(IS_MULTI_CONFIG)
67   add_library(target-framework-postfix SHARED foo.mm)
68   set_target_properties(target-framework-postfix PROPERTIES FRAMEWORK TRUE
69                                                             FRAMEWORK_MULTI_CONFIG_POSTFIX_RELEASE "_release")
70   target_link_libraries(target-framework-postfix PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>")
71
72
73   # feature FRAMEWORK
74   add_executable(main-target-framework-postfix main.mm)
75   target_link_libraries(main-target-framework-postfix PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" "$<LINK_LIBRARY:FRAMEWORK,target-framework-postfix>")
76
77
78   # feature NEEDED_FRAMEWORK
79   add_executable(main-target-needed_framework-postfix main.mm)
80   target_link_libraries(main-target-needed_framework-postfix PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" "$<LINK_LIBRARY:NEEDED_FRAMEWORK,target-framework-postfix>")
81
82
83   # feature REEXPORT_FRAMEWORK
84   add_executable(main-target-reexport_framework-postfix main.mm)
85   target_link_libraries(main-target-reexport_framework-postfix PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" "$<LINK_LIBRARY:REEXPORT_FRAMEWORK,target-framework-postfix>")
86
87
88   # feature WEAK_FRAMEWORK
89   add_executable(main-target-weak_framework-postfix main.mm)
90   target_link_libraries(main-target-weak_framework-postfix PRIVATE "$<LINK_LIBRARY:FRAMEWORK,Foundation>" "$<LINK_LIBRARY:REEXPORT_FRAMEWORK,target-framework-postfix>")
91 endif()