SparkCMakeDebugConfig.cmake 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. # SparkCMakeDebugConfig.cmake
  2. option(SPARK_CMAKE_DEBUG "CMake内部信息调试能力" ON)
  3. set(SPARK_CMAKE_DEBUG_FILE "${CMAKE_BINARY_DIR}/spark_debug.txt")
  4. set(SPARK_CMAKE_CONTENT_FILE "${CMAKE_BINARY_DIR}/spark_debug_content.txt")
  5. # 模块内部初始化空信息文件
  6. file(WRITE ${SPARK_CMAKE_CONTENT_FILE} "")
  7. # spark_cmake_debug <message> ...
  8. # 添加、增量需要准备生成的的调试内容。
  9. function(spark_cmake_debug)
  10. list(JOIN ARGN "\n" _content)
  11. file(APPEND ${SPARK_CMAKE_CONTENT_FILE} "${_content}\n")
  12. endfunction()
  13. # spark_generator_cmake_debug <target>
  14. # 生成 <target> 目标来驱动打印调试内容
  15. function(spark_generator_cmake_debug _target)
  16. add_custom_target(${_target}
  17. COMMAND ${CMAKE_COMMAND} -E cat
  18. ${SPARK_CMAKE_DEBUG_FILE}
  19. )
  20. file(GENERATE
  21. OUTPUT
  22. ${SPARK_CMAKE_DEBUG_FILE}
  23. INPUT
  24. ${SPARK_CMAKE_CONTENT_FILE})
  25. endfunction(spark_generator_cmake_debug _target)
  26. #
  27. # 1. 使用 spark_cmake_debug( <content> [...])
  28. # 添加、增量需要准备生成的的调试内容。
  29. # 支持普通文本、变量求值、生成器表达式求值。
  30. #
  31. # 2. 使用 spark_generator_cmake_debug( <target> )
  32. # 生成 <target> 目标来驱动打印调试内容
  33. # 仅建议在全局结束位置使用此 function
  34. #