Backported #6865: Disable websockets command line option
[platform/upstream/freerdp.git] / cmake / EchoTarget.cmake
1 function(echo_target_property tgt prop)
2         # v for value, d for defined, s for set
3         get_property(v TARGET ${tgt} PROPERTY ${prop})
4         get_property(d TARGET ${tgt} PROPERTY ${prop} DEFINED)
5         get_property(s TARGET ${tgt} PROPERTY ${prop} SET)
6  
7         # only produce output for values that are set
8         if(s)
9                 message("tgt='${tgt}' prop='${prop}'")
10                 message("    value='${v}'")
11                 message("    defined='${d}'")
12                 message("    set='${s}'")
13                 message("")
14         endif()
15 endfunction()
16  
17 function(echo_target tgt)
18         if(NOT TARGET ${tgt})
19                 message("There is no target named '${tgt}'")
20                 return()
21         endif()
22
23         set(props
24                 DEBUG_OUTPUT_NAME
25                 RELEASE_OUTPUT_NAME
26                 DEBUG_POSTFIX
27                 RELEASE_POSTFIX
28                 ARCHIVE_OUTPUT_DIRECTORY
29                 ARCHIVE_OUTPUT_DIRECTORY_DEBUG
30                 ARCHIVE_OUTPUT_DIRECTORY_RELEASE
31                 ARCHIVE_OUTPUT_NAME
32                 ARCHIVE_OUTPUT_NAME_DEBUG
33                 ARCHIVE_OUTPUT_NAME_RELEASE
34                 AUTOMOC
35                 AUTOMOC_MOC_OPTIONS
36                 BUILD_WITH_INSTALL_RPATH
37                 BUNDLE
38                 BUNDLE_EXTENSION
39                 COMPILE_DEFINITIONS
40                 COMPILE_DEFINITIONS_DEBUG
41                 COMPILE_DEFINITIONS_RELEASE
42                 COMPILE_FLAGS
43                 DEBUG_POSTFIX
44                 DEFINE_SYMBOL
45                 ENABLE_EXPORTS
46                 EXCLUDE_FROM_ALL
47                 EchoString
48                 FOLDER
49                 FRAMEWORK
50                 Fortran_FORMAT
51                 Fortran_MODULE_DIRECTORY
52                 GENERATOR_FILE_NAME
53                 GNUtoMS
54                 HAS_CXX
55                 IMPLICIT_DEPENDS_INCLUDE_TRANSFORM
56                 IMPORTED
57                 IMPORTED_CONFIGURATIONS
58                 IMPORTED_IMPLIB
59                 IMPORTED_IMPLIB_RELEASE
60                 IMPORTED_IMPLIB_RELEASE
61                 IMPORTED_LINK_DEPENDENT_LIBRARIES
62                 IMPORTED_LINK_DEPENDENT_LIBRARIES_DEBUG
63                 IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE
64                 IMPORTED_LINK_INTERFACE_LANGUAGES
65                 IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG
66                 IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE
67                 IMPORTED_LINK_INTERFACE_LIBRARIES
68                 IMPORTED_LINK_INTERFACE_LIBRARIES_DEBUG
69                 IMPORTED_LINK_INTERFACE_LIBRARIES_RELEASE
70                 IMPORTED_LINK_INTERFACE_MULTIPLICITY
71                 IMPORTED_LINK_INTERFACE_MULTIPLICITY_DEBUG
72                 IMPORTED_LINK_INTERFACE_MULTIPLICITY_RELEASE
73                 IMPORTED_LOCATION
74                 IMPORTED_LOCATION_DEBUG
75                 IMPORTED_LOCATION_RELEASE
76                 IMPORTED_NO_SONAME
77                 IMPORTED_NO_SONAME_DEBUG
78                 IMPORTED_NO_SONAME_RELEASE
79                 IMPORTED_SONAME
80                 IMPORTED_SONAME_DEBUG
81                 IMPORTED_SONAME_RELEASE
82                 IMPORT_PREFIX
83                 IMPORT_SUFFIX
84                 INCLUDE_DIRECTORIES
85                 INSTALL_NAME_DIR
86                 INSTALL_RPATH
87                 INSTALL_RPATH_USE_LINK_PATH
88                 INTERPROCEDURAL_OPTIMIZATION
89                 INTERPROCEDURAL_OPTIMIZATION_DEBUG
90                 INTERPROCEDURAL_OPTIMIZATION_RELEASE
91                 LABELS
92                 LIBRARY_OUTPUT_DIRECTORY
93                 LIBRARY_OUTPUT_DIRECTORY_DEBUG
94                 LIBRARY_OUTPUT_DIRECTORY_RELEASE
95                 LIBRARY_OUTPUT_NAME
96                 LIBRARY_OUTPUT_NAME_DEBUG
97                 LIBRARY_OUTPUT_NAME_RELEASE
98                 LINKER_LANGUAGE
99                 LINK_DEPENDS
100                 LINK_LIBRARIES
101                 LINK_FLAGS
102                 LINK_FLAGS_DEBUG
103                 LINK_FLAGS_RELEASE
104                 LINK_INTERFACE_LIBRARIES
105                 LINK_INTERFACE_LIBRARIES_DEBUG
106                 LINK_INTERFACE_LIBRARIES_RELEASE
107                 LINK_INTERFACE_MULTIPLICITY
108                 LINK_INTERFACE_MULTIPLICITY_DEBUG
109                 LINK_INTERFACE_MULTIPLICITY_RELEASE
110                 LINK_SEARCH_END_STATIC
111                 LINK_SEARCH_START_STATIC
112                 LOCATION
113                 LOCATION_DEBUG
114                 LOCATION_RELEASE
115                 MACOSX_BUNDLE
116                 MACOSX_BUNDLE_INFO_PLIST
117                 MACOSX_FRAMEWORK_INFO_PLIST
118                 MAP_IMPORTED_CONFIG_DEBUG
119                 MAP_IMPORTED_CONFIG_RELEASE
120                 OSX_ARCHITECTURES
121                 OSX_ARCHITECTURES_DEBUG
122                 OSX_ARCHITECTURES_RELEASE
123                 OUTPUT_NAME
124                 OUTPUT_NAME_DEBUG
125                 OUTPUT_NAME_RELEASE
126                 POST_INSTALL_SCRIPT
127                 PREFIX
128                 PRE_INSTALL_SCRIPT
129                 PRIVATE_HEADER
130                 PROJECT_LABEL
131                 PUBLIC_HEADER
132                 RESOURCE
133                 RULE_LAUNCH_COMPILE
134                 RULE_LAUNCH_CUSTOM
135                 RULE_LAUNCH_LINK
136                 RUNTIME_OUTPUT_DIRECTORY
137                 RUNTIME_OUTPUT_DIRECTORY_DEBUG
138                 RUNTIME_OUTPUT_DIRECTORY_RELEASE
139                 RUNTIME_OUTPUT_NAME
140                 RUNTIME_OUTPUT_NAME_DEBUG
141                 RUNTIME_OUTPUT_NAME_RELEASE
142                 SKIP_BUILD_RPATH
143                 SOURCES
144                 SOVERSION
145                 STATIC_LIBRARY_FLAGS
146                 STATIC_LIBRARY_FLAGS_DEBUG
147                 STATIC_LIBRARY_FLAGS_RELEASE
148                 SUFFIX
149                 TYPE
150                 VERSION
151                 VS_DOTNET_REFERENCES
152                 VS_GLOBAL_KEYWORD
153                 VS_GLOBAL_PROJECT_TYPES
154                 VS_KEYWORD
155                 VS_SCC_AUXPATH
156                 VS_SCC_LOCALPATH
157                 VS_SCC_PROJECTNAME
158                 VS_SCC_PROVIDER
159                 VS_WINRT_EXTENSIONS
160                 VS_WINRT_REFERENCES
161                 WIN32_EXECUTABLE
162         )
163
164         message("======================== ${tgt} ========================")
165         foreach(p ${props})
166                 echo_target_property("${tgt}" "${p}")
167         endforeach()
168         message("")
169
170 endfunction()
171
172 function(echo_targets)
173         set(tgts ${ARGV})
174         foreach(t ${tgts})
175                 echo_target("${t}")
176         endforeach()
177 endfunction()
178