EchoTarget.cmake 4.1 KB

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