cmDebugTools.h 607 B

123456789101112131415161718192021222324252627
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #pragma once
  4. #include <iostream>
  5. #include "cmSystemTools.h"
  6. #define CM_DBG(expr) cm::dbg_impl(__FILE__, __LINE__, #expr, expr)
  7. namespace cm {
  8. namespace {
  9. template <typename T>
  10. T dbg_impl(const char* fname, int line, const char* expr, T value)
  11. {
  12. if (!cmSystemTools::GetEnvVar("CMAKE_NO_DBG")) {
  13. std::cerr << fname << ':' << line << ": " << expr << " = " << value
  14. << std::endl;
  15. }
  16. return value;
  17. }
  18. } // namespace
  19. } // namespace cm