/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file Copyright.txt or https://cmake.org/licensing for details.  */
#pragma once

#include <iostream>

#include "cmSystemTools.h"

#define CM_DBG(expr) cm::dbg_impl(__FILE__, __LINE__, #expr, expr)

namespace cm {

namespace {

template <typename T>
T dbg_impl(const char* fname, int line, const char* expr, T value)
{
  if (!cmSystemTools::GetEnvVar("CMAKE_NO_DBG")) {
    std::cerr << fname << ':' << line << ": " << expr << " = " << value
              << std::endl;
  }
  return value;
}

} // namespace

} // namespace cm
