source 'https://github.com/CocoaPods/Specs.git'

post_install do |representation|
    representation.project.targets.each do |target|
        if target.name == "ZSWTaggedString"
            target.build_configurations.each do |config|
                # From https://github.com/boredzo/Warnings-xcconfig
                config.build_settings['GCC_WARN_CHECK_SWITCH_STATEMENTS'] = 'YES'
                config.build_settings['GCC_WARN_SHADOW'] = 'YES'
                config.build_settings['GCC_WARN_64_TO_32_BIT_CONVERSION'] = 'YES'
                config.build_settings['CLANG_WARN_ENUM_CONVERSION'] = 'YES'
                config.build_settings['CLANG_WARN_INT_CONVERSION'] = 'YES'
                config.build_settings['CLANG_WARN_CONSTANT_CONVERSION'] = 'YES'
                config.build_settings['GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED'] = 'YES'
                config.build_settings['GCC_WARN_ABOUT_RETURN_TYPE'] = 'YES'
                config.build_settings['GCC_WARN_MISSING_PARENTHESES'] = 'YES'
                config.build_settings['GCC_WARN_ABOUT_MISSING_FIELD_INITIALIZERS'] = 'YES'
                config.build_settings['GCC_WARN_ABOUT_MISSING_NEWLINE'] = 'YES'
                config.build_settings['GCC_WARN_SIGN_COMPARE'] = 'YES'
                config.build_settings['GCC_WARN_UNDECLARED_SELECTOR'] = 'YES'
                config.build_settings['GCC_WARN_UNUSED_FUNCTION'] = 'YES'
                config.build_settings['GCC_WARN_UNUSED_LABEL'] = 'YES'
                config.build_settings['GCC_WARN_UNUSED_VALUE'] = 'YES'
                config.build_settings['GCC_WARN_UNUSED_VARIABLE'] = 'YES'
                config.build_settings['GCC_WARN_ABOUT_MISSING_PROTOTYPES'] = 'YES'
                config.build_settings['GCC_WARN_TYPECHECK_CALLS_TO_PRINTF'] = 'YES'
                config.build_settings['GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS'] = 'YES'
                config.build_settings['GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS'] = 'YES'
                config.build_settings['GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO'] = 'YES'
                config.build_settings['GCC_WARN_NON_VIRTUAL_DESTRUCTOR'] = 'YES'
                # config.build_settings['CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS'] = 'YES'
                config.build_settings['CLANG_WARN_IMPLICIT_SIGN_CONVERSION'] = 'YES'
                config.build_settings['CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION'] = 'YES'
                config.build_settings['CLANG_WARN_EMPTY_BODY'] = 'YES'
                config.build_settings['CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF'] = 'YES'
                config.build_settings['CLANG_ANALYZER_SECURITY_FLOATLOOPCOUNTER'] = 'YES'
                config.build_settings['CLANG_ANALYZER_SECURITY_INSECUREAPI_RAND'] = 'YES'
                config.build_settings['OTHER_CFLAGS'] ||= ['$(inherited)']
                config.build_settings['OTHER_CFLAGS'] << '-Wextra -Wno-unused-parameter -Wformat=2 -Wunreachable-code'
                config.build_settings['GCC_TREAT_WARNINGS_AS_ERRORS'] = 'YES'
                config.build_settings['RUN_CLANG_STATIC_ANALYZER'] = 'YES'
                # Plus...
                config.build_settings['CLANG_WARN_UNREACHABLE_CODE'] = 'YES'
                config.build_settings['CLANG_WARN_OBJC_IMPLICIT_ATOMIC_PROPERTIES'] = 'YES'
            end
        end
    end
end


target 'ZSWTaggedString', :exclusive => true do
  pod "ZSWTaggedString", :path => "../"

  pod 'Specta'
  pod 'Expecta'
  pod 'OCMock'
end
