// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "tools/gn/source_file_type.h"

#include "tools/gn/filesystem_utils.h"
#include "tools/gn/source_file.h"

SourceFileType GetSourceFileType(const SourceFile& file) {
  base::StringPiece extension = FindExtension(&file.value());
  if (extension == "cc" || extension == "cpp" || extension == "cxx")
    return SOURCE_CPP;
  if (extension == "h" || extension == "hpp" || extension == "hxx" ||
      extension == "hh")
    return SOURCE_H;
  if (extension == "c")
    return SOURCE_C;
  if (extension == "m")
    return SOURCE_M;
  if (extension == "mm")
    return SOURCE_MM;
  if (extension == "rc")
    return SOURCE_RC;
  if (extension == "S" || extension == "s" || extension == "asm")
    return SOURCE_S;
  if (extension == "o" || extension == "obj")
    return SOURCE_O;
  if (extension == "def")
    return SOURCE_DEF;
  if (extension == "rs")
    return SOURCE_RS;
  if (extension == "go")
    return SOURCE_GO;

  return SOURCE_UNKNOWN;
}
