# This file generated automatically:
# https://github.com/ruslo/sugar/wiki/Cross-platform-warning-suppression

# Copyright (c) 2014, Ruslan Baratov
# All rights reserved.

include(sugar_add_this_to_sourcelist)
sugar_add_this_to_sourcelist()

include(sugar_expected_number_of_arguments)

function(sugar_get_all_xcode_warning_attrs attr_list_name)
  sugar_expected_number_of_arguments(${ARGC} 1)

  if(NOT XCODE_VERSION)
    set(${attr_list_name} "" PARENT_SCOPE)
    return()
  endif()

  set(${attr_list_name} "")

  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_BOOL_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_CXX0X_EXTENSIONS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_CONSTANT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_DIRECT_OBJC_ISA_USAGE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_DOCUMENTATION_COMMENTS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_EMPTY_BODY)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_ENUM_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN__EXIT_TIME_DESTRUCTORS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_TYPECHECK_CALLS_TO_PRINTF)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_FOUR_CHARACTER_CONSTANTS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VALUE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_INT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_PROTOTYPES)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_MISSING_NEWLINE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_NON_VIRTUAL_DESTRUCTOR)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_MISSING_PARENTHESES)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_POINTER_SIGNEDNESS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ABOUT_RETURN_TYPE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_SHADOW)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_64_TO_32_BIT_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_SIGN_COMPARE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_IMPLICIT_SIGN_CONVERSION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_SIGN_COMPARE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_CHECK_SWITCH_STATEMENTS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNINITIALIZED_AUTOS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNKNOWN_PRAGMAS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_FUNCTION)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_LABEL)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_PARAMETER)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VALUE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNUSED_VARIABLE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN__ARC_BRIDGE_CAST_NONARC)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN__DUPLICATE_METHOD_MATCH)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_MISSING_PROPERTY_SYNTHESIS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_ROOT_CLASS)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_CLANG_WARN_OBJC_RECEIVER_WEAK)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_MULTIPLE_DEFINITION_TYPES_FOR_SELECTOR)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_STRICT_SELECTOR_MATCH)
  list(APPEND ${attr_list_name} XCODE_ATTRIBUTE_GCC_WARN_UNDECLARED_SELECTOR)

  set(${attr_list_name} ${${attr_list_name}} PARENT_SCOPE)
endfunction()
