mirror of
https://github.com/zeromq/libzmq.git
synced 2025-03-10 07:56:09 +00:00
commit
1644d162fb
407
.clang-tidy
Normal file
407
.clang-tidy
Normal file
@ -0,0 +1,407 @@
|
|||||||
|
Checks: "*,\
|
||||||
|
# not currently a coding convention, but conceivable,\
|
||||||
|
-llvm-include-order,\
|
||||||
|
# currently the coding convention deliberately produces violations of these,\
|
||||||
|
# rules, but it may make sense to reconsider,\
|
||||||
|
-readability-implicit-bool-conversion,\
|
||||||
|
-readability-braces-around-statements,\
|
||||||
|
-readability-named-parameter,\
|
||||||
|
-fuchsia-default-arguments,\
|
||||||
|
-google-readability-todo,\
|
||||||
|
-cppcoreguidelines-pro-type-member-init,\
|
||||||
|
# not currently a coding convention, C++11-specific, but conceivable,\
|
||||||
|
-modernize-use-nullptr,\
|
||||||
|
-modernize-use-equals-default,\
|
||||||
|
-modernize-deprecated-headers,\
|
||||||
|
# not currently a coding convention, C++11-specific and hard to implement,\
|
||||||
|
-modernize-pass-by-value,\
|
||||||
|
-modernize-loop-convert,\
|
||||||
|
-modernize-use-auto,\
|
||||||
|
-modernize-use-using,\
|
||||||
|
-modernize-return-braced-init-list,\
|
||||||
|
-cppcoreguidelines-owning-memory,\
|
||||||
|
-cppcoreguidelines-pro-type-union-access,\
|
||||||
|
-cppcoreguidelines-pro-bounds-array-to-pointer-decay,\
|
||||||
|
-cppcoreguidelines-pro-bounds-constant-array-index,\
|
||||||
|
-cppcoreguidelines-pro-bounds-pointer-arithmetic,\
|
||||||
|
# not easily possible to implement (maybe replace by specific exclusions),\
|
||||||
|
-cppcoreguidelines-pro-type-vararg,\
|
||||||
|
-cppcoreguidelines-pro-type-reinterpret-cast,\
|
||||||
|
# duplicates,\
|
||||||
|
-google-readability-braces-around-statements,\
|
||||||
|
-cppcoreguidelines-pro-type-cstyle-cast,\
|
||||||
|
-hicpp-braces-around-statements,\
|
||||||
|
-hicpp-use-equals-default,\
|
||||||
|
-hicpp-deprecated-headers,\
|
||||||
|
-hicpp-no-assembler,\
|
||||||
|
-hicpp-vararg,\
|
||||||
|
-hicpp-use-auto,\
|
||||||
|
-hicpp-use-nullptr,\
|
||||||
|
-hicpp-no-array-decay,\
|
||||||
|
-hicpp-member-init"
|
||||||
|
WarningsAsErrors: ''
|
||||||
|
HeaderFilterRegex: ''
|
||||||
|
# AnalyzeTemporaryDtors: false
|
||||||
|
# CheckOptions:
|
||||||
|
# - key: cert-dcl59-cpp.HeaderFileExtensions
|
||||||
|
# value: h,hh,hpp,hxx
|
||||||
|
# - key: cert-err61-cpp.CheckThrowTemporaries
|
||||||
|
# value: '1'
|
||||||
|
# - key: cert-oop11-cpp.IncludeStyle
|
||||||
|
# value: llvm
|
||||||
|
# - key: cert-oop11-cpp.UseCERTSemantics
|
||||||
|
# value: '1'
|
||||||
|
# - key: cppcoreguidelines-pro-bounds-constant-array-index.GslHeader
|
||||||
|
# value: ''
|
||||||
|
# - key: cppcoreguidelines-pro-bounds-constant-array-index.IncludeStyle
|
||||||
|
# value: '0'
|
||||||
|
# - key: cppcoreguidelines-pro-type-member-init.IgnoreArrays
|
||||||
|
# value: '0'
|
||||||
|
# - key: google-build-namespaces.HeaderFileExtensions
|
||||||
|
# value: h,hh,hpp,hxx
|
||||||
|
# - key: google-global-names-in-headers.HeaderFileExtensions
|
||||||
|
# value: h
|
||||||
|
# - key: google-readability-braces-around-statements.ShortStatementLines
|
||||||
|
# value: '1'
|
||||||
|
# - key: google-readability-function-size.BranchThreshold
|
||||||
|
# value: '4294967295'
|
||||||
|
# - key: google-readability-function-size.LineThreshold
|
||||||
|
# value: '4294967295'
|
||||||
|
# - key: google-readability-function-size.StatementThreshold
|
||||||
|
# value: '800'
|
||||||
|
# - key: google-readability-namespace-comments.ShortNamespaceLines
|
||||||
|
# value: '10'
|
||||||
|
# - key: google-readability-namespace-comments.SpacesBeforeComments
|
||||||
|
# value: '2'
|
||||||
|
# - key: google-runtime-int.SignedTypePrefix
|
||||||
|
# value: int
|
||||||
|
# - key: google-runtime-int.TypeSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: google-runtime-int.UnsignedTypePrefix
|
||||||
|
# value: uint
|
||||||
|
# - key: llvm-namespace-comment.ShortNamespaceLines
|
||||||
|
# value: '1'
|
||||||
|
# - key: llvm-namespace-comment.SpacesBeforeComments
|
||||||
|
# value: '1'
|
||||||
|
# - key: misc-assert-side-effect.AssertMacros
|
||||||
|
# value: assert
|
||||||
|
# - key: misc-assert-side-effect.CheckFunctionCalls
|
||||||
|
# value: '0'
|
||||||
|
# - key: misc-dangling-handle.HandleClasses
|
||||||
|
# value: 'std::basic_string_view;std::experimental::basic_string_view'
|
||||||
|
# - key: misc-definitions-in-headers.HeaderFileExtensions
|
||||||
|
# value: ',h,hh,hpp,hxx'
|
||||||
|
# - key: misc-definitions-in-headers.UseHeaderFileExtension
|
||||||
|
# value: '1'
|
||||||
|
# - key: misc-misplaced-widening-cast.CheckImplicitCasts
|
||||||
|
# value: '1'
|
||||||
|
# - key: misc-move-constructor-init.IncludeStyle
|
||||||
|
# value: llvm
|
||||||
|
# - key: misc-move-constructor-init.UseCERTSemantics
|
||||||
|
# value: '0'
|
||||||
|
# - key: misc-sizeof-expression.WarnOnSizeOfCompareToConstant
|
||||||
|
# value: '1'
|
||||||
|
# - key: misc-sizeof-expression.WarnOnSizeOfConstant
|
||||||
|
# value: '1'
|
||||||
|
# - key: misc-sizeof-expression.WarnOnSizeOfThis
|
||||||
|
# value: '1'
|
||||||
|
# - key: misc-string-constructor.LargeLengthThreshold
|
||||||
|
# value: '8388608'
|
||||||
|
# - key: misc-string-constructor.WarnOnLargeLength
|
||||||
|
# value: '1'
|
||||||
|
# - key: misc-suspicious-missing-comma.MaxConcatenatedTokens
|
||||||
|
# value: '5'
|
||||||
|
# - key: misc-suspicious-missing-comma.RatioThreshold
|
||||||
|
# value: '0.200000'
|
||||||
|
# - key: misc-suspicious-missing-comma.SizeThreshold
|
||||||
|
# value: '5'
|
||||||
|
# - key: misc-suspicious-string-compare.StringCompareLikeFunctions
|
||||||
|
# value: ''
|
||||||
|
# - key: misc-suspicious-string-compare.WarnOnImplicitComparison
|
||||||
|
# value: '1'
|
||||||
|
# - key: misc-suspicious-string-compare.WarnOnLogicalNotComparison
|
||||||
|
# value: '0'
|
||||||
|
# - key: misc-throw-by-value-catch-by-reference.CheckThrowTemporaries
|
||||||
|
# value: '1'
|
||||||
|
# - key: modernize-loop-convert.MaxCopySize
|
||||||
|
# value: '16'
|
||||||
|
# - key: modernize-loop-convert.MinConfidence
|
||||||
|
# value: reasonable
|
||||||
|
# - key: modernize-loop-convert.NamingStyle
|
||||||
|
# value: CamelCase
|
||||||
|
# - key: modernize-pass-by-value.IncludeStyle
|
||||||
|
# value: llvm
|
||||||
|
# - key: modernize-replace-auto-ptr.IncludeStyle
|
||||||
|
# value: llvm
|
||||||
|
# - key: modernize-use-nullptr.NullMacros
|
||||||
|
# value: 'NULL'
|
||||||
|
# - key: performance-faster-string-find.StringLikeClasses
|
||||||
|
# value: 'std::basic_string'
|
||||||
|
# - key: performance-for-range-copy.WarnOnAllAutoCopies
|
||||||
|
# value: '0'
|
||||||
|
# - key: readability-braces-around-statements.ShortStatementLines
|
||||||
|
# value: '1'
|
||||||
|
# - key: readability-function-size.BranchThreshold
|
||||||
|
# value: '4294967295'
|
||||||
|
# - key: readability-function-size.LineThreshold
|
||||||
|
# value: '4294967295'
|
||||||
|
# - key: readability-function-size.StatementThreshold
|
||||||
|
# value: '800'
|
||||||
|
# - key: readability-identifier-naming.AbstractClassCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.AbstractClassPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.AbstractClassSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ClassCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ClassConstantCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ClassConstantPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ClassConstantSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ClassMemberCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ClassMemberPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ClassMemberSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ClassMethodCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ClassMethodPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ClassMethodSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ClassPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ClassSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstantCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ConstantMemberCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ConstantMemberPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstantMemberSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstantParameterCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ConstantParameterPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstantParameterSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstantPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstantSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstexprFunctionCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ConstexprFunctionPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstexprFunctionSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstexprMethodCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ConstexprMethodPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstexprMethodSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstexprVariableCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ConstexprVariablePrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ConstexprVariableSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.EnumCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.EnumConstantCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.EnumConstantPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.EnumConstantSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.EnumPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.EnumSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.FunctionCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.FunctionPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.FunctionSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.GlobalConstantCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.GlobalConstantPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.GlobalConstantSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.GlobalFunctionCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.GlobalFunctionPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.GlobalFunctionSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.GlobalVariableCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.GlobalVariablePrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.GlobalVariableSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.IgnoreFailedSplit
|
||||||
|
# value: '0'
|
||||||
|
# - key: readability-identifier-naming.InlineNamespaceCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.InlineNamespacePrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.InlineNamespaceSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.LocalConstantCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.LocalConstantPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.LocalConstantSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.LocalVariableCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.LocalVariablePrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.LocalVariableSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.MemberCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.MemberPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.MemberSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.MethodCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.MethodPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.MethodSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.NamespaceCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.NamespacePrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.NamespaceSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ParameterCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ParameterPackCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ParameterPackPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ParameterPackSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ParameterPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ParameterSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.PrivateMemberCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.PrivateMemberPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.PrivateMemberSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.PrivateMethodCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.PrivateMethodPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.PrivateMethodSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ProtectedMemberCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ProtectedMemberPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ProtectedMemberSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ProtectedMethodCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ProtectedMethodPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ProtectedMethodSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.PublicMemberCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.PublicMemberPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.PublicMemberSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.PublicMethodCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.PublicMethodPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.PublicMethodSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.StaticConstantCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.StaticConstantPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.StaticConstantSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.StaticVariableCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.StaticVariablePrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.StaticVariableSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.StructCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.StructPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.StructSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.TemplateParameterCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.TemplateParameterPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.TemplateParameterSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.TemplateTemplateParameterCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.TemplateTemplateParameterPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.TemplateTemplateParameterSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.TypeTemplateParameterCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.TypeTemplateParameterPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.TypeTemplateParameterSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.TypedefCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.TypedefPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.TypedefSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.UnionCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.UnionPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.UnionSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ValueTemplateParameterCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.ValueTemplateParameterPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.ValueTemplateParameterSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.VariableCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.VariablePrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.VariableSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.VirtualMethodCase
|
||||||
|
# value: aNy_CasE
|
||||||
|
# - key: readability-identifier-naming.VirtualMethodPrefix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-identifier-naming.VirtualMethodSuffix
|
||||||
|
# value: ''
|
||||||
|
# - key: readability-simplify-boolean-expr.ChainedConditionalAssignment
|
||||||
|
# value: '0'
|
||||||
|
# - key: readability-simplify-boolean-expr.ChainedConditionalReturn
|
||||||
|
# value: '0'
|
23
.travis.yml
23
.travis.yml
@ -93,16 +93,37 @@ matrix:
|
|||||||
- llvm-toolchain-trusty-5.0
|
- llvm-toolchain-trusty-5.0
|
||||||
packages:
|
packages:
|
||||||
- clang-5.0
|
- clang-5.0
|
||||||
|
- if: type = cron OR (branch =~ analyze$ AND type = push)
|
||||||
|
env: BUILD_TYPE=cmake CLANG_TIDY=/usr/bin/clang-tidy-6.0 CC=clang-6.0 CXX=clang++-6.0
|
||||||
|
os: linux
|
||||||
|
compiler: clang
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- llvm-toolchain-trusty-6.0
|
||||||
|
packages:
|
||||||
|
- clang-6.0
|
||||||
|
- clang-tools-6.0
|
||||||
|
- clang-tidy-6.0
|
||||||
- env: BUILD_TYPE=default POLLER=poll
|
- env: BUILD_TYPE=default POLLER=poll
|
||||||
os: linux
|
os: linux
|
||||||
- env: BUILD_TYPE=default POLLER=select
|
- env: BUILD_TYPE=default POLLER=select
|
||||||
os: linux
|
os: linux
|
||||||
|
|
||||||
sudo: false
|
sudo: false
|
||||||
|
|
||||||
before_install:
|
before_install:
|
||||||
- if [ $TRAVIS_OS_NAME == "osx" -a $BUILD_TYPE == "android" ] ; then brew update; brew install binutils ; fi
|
- if [ $TRAVIS_OS_NAME == "osx" -a $BUILD_TYPE == "android" ] ; then brew update; brew install binutils ; fi
|
||||||
- if [ $TRAVIS_OS_NAME == "osx" -a $CURVE == "libsodium" ] ; then brew update; brew install libsodium ; fi
|
- if [ $TRAVIS_OS_NAME == "osx" -a $CURVE == "libsodium" ] ; then brew update; brew install libsodium ; fi
|
||||||
|
- if [ -n "$CLANG_TIDY" ] ; then
|
||||||
|
curl -L https://sonarcloud.io/static/cpp/build-wrapper-linux-x86.zip -o build-wrapper-linux-x86.zip ;
|
||||||
|
unzip build-wrapper-linux-x86.zip ;
|
||||||
|
export SONARCLOUD_BUILD_WRAPPER_PATH="$(pwd)/build-wrapper-linux-x86/" ;
|
||||||
|
curl -L https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.1.0.1141-linux.zip -o sonar-scanner-cli.zip ;
|
||||||
|
unzip sonar-scanner-cli.zip ;
|
||||||
|
export SONAR_SCANNER_CLI_PATH="$(pwd)/sonar-scanner-3.1.0.1141-linux/bin/" ;
|
||||||
|
fi
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
# ZMQ stress tests need more open socket (files) than the usual default
|
# ZMQ stress tests need more open socket (files) than the usual default
|
||||||
|
@ -302,9 +302,32 @@ macro (zmq_check_cxx_flag_prepend flag)
|
|||||||
endif ()
|
endif ()
|
||||||
endmacro ()
|
endmacro ()
|
||||||
|
|
||||||
|
OPTION (ENABLE_ANALYSIS "Build with static analysis (make take very long)" OFF)
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
zmq_check_cxx_flag_prepend ("/W3")
|
if (ENABLE_ANALYSIS)
|
||||||
|
zmq_check_cxx_flag_prepend ("/W4")
|
||||||
|
|
||||||
|
zmq_check_cxx_flag_prepend ("/analyze")
|
||||||
|
|
||||||
|
# C++11/14/17-specific, but maybe possible via conditional defines
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26440") # Function '...' can be declared 'noexcept'
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26432") # If you define or delete any default operation in the type '...', define or delete them all
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26439") # This kind of function may not throw. Declare it 'noexcept'
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26447") # The function is declared 'noexcept' but calls function '...' which may throw exceptions
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26433") # Function '...' should be marked with 'override'
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26409") # Avoid calling new and delete explicitly, use std::make_unique<T> instead
|
||||||
|
# Requires GSL
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26429") # Symbol '...' is never tested for nullness, it can be marked as not_null
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26446") # Prefer to use gsl::at()
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26481") # Don't use pointer arithmetic. Use span instead
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26472") # Don't use a static_cast for arithmetic conversions. Use brace initialization, gsl::narrow_cast or gsl::narow
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26448") # Consider using gsl::finally if final action is intended
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26400") # Do not assign the result of an allocation or a function call with an owner<T> return value to a raw pointer, use owner<T> instead
|
||||||
|
zmq_check_cxx_flag_prepend ("/wd26485") # Expression '...': No array to pointer decay (bounds.3)
|
||||||
|
else()
|
||||||
|
zmq_check_cxx_flag_prepend ("/W3")
|
||||||
|
endif()
|
||||||
|
|
||||||
if (MSVC_IDE)
|
if (MSVC_IDE)
|
||||||
set (MSVC_TOOLSET "-${CMAKE_VS_PLATFORM_TOOLSET}")
|
set (MSVC_TOOLSET "-${CMAKE_VS_PLATFORM_TOOLSET}")
|
||||||
@ -941,8 +964,17 @@ if (MSVC)
|
|||||||
set( CMAKE_STATIC_LINKER_FLAGS /ignore:4221 )
|
set( CMAKE_STATIC_LINKER_FLAGS /ignore:4221 )
|
||||||
set (PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
set (PDB_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/bin")
|
||||||
set (PDB_NAME "libzmq${MSVC_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}")
|
set (PDB_NAME "libzmq${MSVC_TOOLSET}-mt-gd-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}")
|
||||||
|
function(enable_vs_guideline_checker target)
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
VS_GLOBAL_EnableCppCoreCheck true
|
||||||
|
VS_GLOBAL_CodeAnalysisRuleSet CppCoreCheckRules.ruleset
|
||||||
|
VS_GLOBAL_RunCodeAnalysis true)
|
||||||
|
endfunction()
|
||||||
if (BUILD_SHARED)
|
if (BUILD_SHARED)
|
||||||
add_library (libzmq SHARED ${sources} ${public_headers} ${html-docs} ${readme-docs} ${CMAKE_CURRENT_BINARY_DIR}/NSIS.template.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
|
add_library (libzmq SHARED ${sources} ${public_headers} ${html-docs} ${readme-docs} ${CMAKE_CURRENT_BINARY_DIR}/NSIS.template.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
|
||||||
|
if(ENABLE_ANALYSIS)
|
||||||
|
enable_vs_guideline_checker (libzmq)
|
||||||
|
endif()
|
||||||
set_target_properties (libzmq PROPERTIES
|
set_target_properties (libzmq PROPERTIES
|
||||||
PUBLIC_HEADER "${public_headers}"
|
PUBLIC_HEADER "${public_headers}"
|
||||||
RELEASE_POSTFIX "${MSVC_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
RELEASE_POSTFIX "${MSVC_TOOLSET}-mt-${ZMQ_VERSION_MAJOR}_${ZMQ_VERSION_MINOR}_${ZMQ_VERSION_PATCH}"
|
||||||
|
44
appveyor.yml
44
appveyor.yml
@ -75,6 +75,7 @@ cache:
|
|||||||
- C:\projects\libsodium
|
- C:\projects\libsodium
|
||||||
|
|
||||||
install:
|
install:
|
||||||
|
- cmd: if "%ENABLE_ANALYSIS%"=="ON" ( if "%APPVEYOR_PULL_REQUEST_NUMBER%" NEQ "" appveyor exit )
|
||||||
- cmd: if "%Platform%"=="x64" set "CMAKE_GENERATOR=%CMAKE_GENERATOR% Win64"
|
- cmd: if "%Platform%"=="x64" set "CMAKE_GENERATOR=%CMAKE_GENERATOR% Win64"
|
||||||
- cmd: echo "Generator='%CMAKE_GENERATOR%'"
|
- cmd: echo "Generator='%CMAKE_GENERATOR%'"
|
||||||
- cmd: echo "Platform='%Platform%'"
|
- cmd: echo "Platform='%Platform%'"
|
||||||
@ -95,17 +96,41 @@ install:
|
|||||||
clone_folder: C:\projects\libzmq
|
clone_folder: C:\projects\libzmq
|
||||||
|
|
||||||
before_build:
|
before_build:
|
||||||
|
- cmd: set LIBZMQ_SRCDIR=%cd%
|
||||||
- cmd: set LIBZMQ_BUILDDIR=C:\projects\build_libzmq
|
- cmd: set LIBZMQ_BUILDDIR=C:\projects\build_libzmq
|
||||||
|
# TODO this does not work with sonarcloud.io, as it misses the sonar-cxx plugin
|
||||||
|
# - cmd: curl -L https://sonarsource.bintray.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.1.0.1141-windows.zip -o sonar-scanner-cli-3.1.0.1141-windows.zip
|
||||||
|
# - cmd: unzip sonar-scanner-cli-3.1.0.1141-windows.zip
|
||||||
|
# - cmd: set BUILDLOG="%LIBZMQ_SRCDIR%\build.log"
|
||||||
- cmd: md "%LIBZMQ_BUILDDIR%"
|
- cmd: md "%LIBZMQ_BUILDDIR%"
|
||||||
- cd "%LIBZMQ_BUILDDIR%"
|
- cd "%LIBZMQ_BUILDDIR%"
|
||||||
- cmd: cmake -D CMAKE_INCLUDE_PATH="%SODIUM_INCLUDE_DIR%" -D CMAKE_LIBRARY_PATH="%SODIUM_LIBRARY_DIR%" -D WITH_LIBSODIUM="%WITH_LIBSODIUM%" -D ENABLE_DRAFTS="ON" -D ENABLE_CURVE="%ENABLE_CURVE%" -D API_POLLER="%API_POLLER%" -D POLLER="%POLLER%" -D CMAKE_C_FLAGS_RELEASE="/MT" -D CMAKE_C_FLAGS_DEBUG="/MTd" -D WITH_LIBSODIUM="%WITH_LIBSODIUM%" -D LIBZMQ_WERROR="ON" -G "%CMAKE_GENERATOR%" "%APPVEYOR_BUILD_FOLDER%"
|
- cmd: cmake -D CMAKE_INCLUDE_PATH="%SODIUM_INCLUDE_DIR%" -D CMAKE_LIBRARY_PATH="%SODIUM_LIBRARY_DIR%" -D WITH_LIBSODIUM="%WITH_LIBSODIUM%" -D ENABLE_DRAFTS="ON" -D ENABLE_ANALYSIS="%ENABLE_ANALYSIS%" -D ENABLE_CURVE="%ENABLE_CURVE%" -D API_POLLER="%API_POLLER%" -D POLLER="%POLLER%" -D CMAKE_C_FLAGS_RELEASE="/MT" -D CMAKE_C_FLAGS_DEBUG="/MTd" -D WITH_LIBSODIUM="%WITH_LIBSODIUM%" -G "%CMAKE_GENERATOR%" "%APPVEYOR_BUILD_FOLDER%"
|
||||||
|
- cmd: cd "%LIBZMQ_SRCDIR%"
|
||||||
|
|
||||||
build:
|
build:
|
||||||
parallel: true
|
parallel: true
|
||||||
project: C:\projects\build_libzmq\ZeroMQ.sln
|
project: C:\projects\build_libzmq\ZeroMQ.sln
|
||||||
verbosity: minimal
|
verbosity: minimal
|
||||||
|
|
||||||
|
# TODO this does not work with sonarcloud.io, as it misses the sonar-cxx plugin
|
||||||
|
# build_script:
|
||||||
|
# - cmd: msbuild %LIBZMQ_BUILDDIR%\ZeroMQ.sln /verbosity:detailed >%BUILDLOG%
|
||||||
|
|
||||||
after_build:
|
after_build:
|
||||||
|
# TODO this does not work with sonarcloud.io, as it misses the sonar-cxx plugin
|
||||||
|
# - cmd: cd "%LIBZMQ_SRCDIR%"
|
||||||
|
# - cmd: dir
|
||||||
|
# - cmd: sonar-scanner-3.1.0.1141-windows\bin\sonar-scanner
|
||||||
|
# -Dsonar.scm.provider=git
|
||||||
|
# -Dsonar.projectKey=libzmq-msvc
|
||||||
|
# -Dsonar.organization=sigiesec-github
|
||||||
|
# -Dsonar.sources=include,src,tests,unittests
|
||||||
|
# -Dsonar.host.url=https://sonarcloud.io
|
||||||
|
# -Dsonar.login=%SONARQUBE_TOKEN%
|
||||||
|
# -Dsonar.cxx.compiler.parser="Visual C++"
|
||||||
|
# -Dsonar.cxx.compiler.reportPath=build.log
|
||||||
|
# -Dsonar.cxx.compiler.charset=UTF-8
|
||||||
|
# -Dsonar.cxx.compiler.regex=^(?<filename>.*)\\((?<line>[0-9]+)\\):\\x20warning\\x20(?<id>C\\d\\d\\d\\d):(?<message>.*)$
|
||||||
- cmd: cd %LIBZMQ_BUILDDIR%\bin\%Configuration%"
|
- cmd: cd %LIBZMQ_BUILDDIR%\bin\%Configuration%"
|
||||||
- cmd: if "%WITH_LIBSODIUM%"=="ON" copy "%SODIUM_LIBRARY_DIR%\libsodium.dll" .
|
- cmd: if "%WITH_LIBSODIUM%"=="ON" copy "%SODIUM_LIBRARY_DIR%\libsodium.dll" .
|
||||||
- cmd: 7z a -y -bd -mx=9 libzmq.zip *.exe *.dll
|
- cmd: 7z a -y -bd -mx=9 libzmq.zip *.exe *.dll
|
||||||
@ -115,3 +140,20 @@ test_script:
|
|||||||
- cmd: cd "%LIBZMQ_BUILDDIR%"
|
- cmd: cd "%LIBZMQ_BUILDDIR%"
|
||||||
- cmd: ctest -C "%Configuration%" -V -j5
|
- cmd: ctest -C "%Configuration%" -V -j5
|
||||||
|
|
||||||
|
for:
|
||||||
|
-
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- master
|
||||||
|
- /.*analyze$/
|
||||||
|
environment:
|
||||||
|
matrix:
|
||||||
|
- platform: Win32
|
||||||
|
configuration: Release
|
||||||
|
WITH_LIBSODIUM: ON
|
||||||
|
ENABLE_CURVE: ON
|
||||||
|
ENABLE_ANALYSIS: ON
|
||||||
|
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
|
||||||
|
CMAKE_GENERATOR: "Visual Studio 15 2017"
|
||||||
|
MSVCVERSION: "v141"
|
||||||
|
MSVCYEAR: "vs2017"
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
set -x
|
set -x -e
|
||||||
|
|
||||||
cd ../..
|
cd ../..
|
||||||
|
|
||||||
# always install custom builds from dist
|
# always install custom builds from dist
|
||||||
# to make sure that `make dist` doesn't omit any files required to build & test
|
# to make sure that `make dist` doesn't omit any files required to build & test
|
||||||
if [ -z $DO_CLANG_FORMAT_CHECK ]; then
|
if [ -z $DO_CLANG_FORMAT_CHECK -a -z $CLANG_TIDY ]; then
|
||||||
./autogen.sh
|
./autogen.sh
|
||||||
./configure
|
./configure
|
||||||
make -j5 dist-gzip
|
make -j5 dist-gzip
|
||||||
@ -15,7 +15,7 @@ if [ -z $DO_CLANG_FORMAT_CHECK ]; then
|
|||||||
cd zeromq-$V
|
cd zeromq-$V
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir tmp
|
mkdir tmp || true
|
||||||
BUILD_PREFIX=$PWD/tmp
|
BUILD_PREFIX=$PWD/tmp
|
||||||
|
|
||||||
CONFIG_OPTS=()
|
CONFIG_OPTS=()
|
||||||
@ -47,15 +47,63 @@ elif [ $CURVE == "libsodium" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
CMAKE_PREFIXES=()
|
||||||
|
MAKE_PREFIXES=()
|
||||||
|
PARALLEL_MAKE_OPT="-j5"
|
||||||
|
if [ -n "$CLANG_TIDY" ] ; then
|
||||||
|
CMAKE_OPTS+=("-DCMAKE_CXX_CLANG_TIDY:STRING=${CLANG_TIDY}")
|
||||||
|
if [ -n ${SONARCLOUD_BUILD_WRAPPER_PATH} ] ; then
|
||||||
|
MAKE_PREFIXES+=("${SONARCLOUD_BUILD_WRAPPER_PATH}build-wrapper-linux-x86-64")
|
||||||
|
MAKE_PREFIXES+=("--out-dir")
|
||||||
|
MAKE_PREFIXES+=("${TRAVIS_BUILD_DIR}/bw-output")
|
||||||
|
|
||||||
|
fi
|
||||||
|
CMAKE_PREFIXES+=("scan-build-6.0")
|
||||||
|
MAKE_PREFIXES+=("scan-build-6.0")
|
||||||
|
MAKE_PREFIXES+=("-plist-html")
|
||||||
|
SCAN_BUILD_OUTPUT="$(pwd)/scan-build-report"
|
||||||
|
MAKE_PREFIXES+=("-o ${SCAN_BUILD_OUTPUT}")
|
||||||
|
# TODO this does not work with sonarcloud.io as it misses the sonar-cxx plugin
|
||||||
|
#MAKE_PREFIXES+=("-plist")
|
||||||
|
IFS="/" read -ra GITHUB_USER <<< "${TRAVIS_REPO_SLUG}"
|
||||||
|
PARALLEL_MAKE_OPT=""
|
||||||
|
fi
|
||||||
|
|
||||||
# Build, check, and install from local source
|
# Build, check, and install from local source
|
||||||
mkdir build_cmake
|
mkdir build_cmake
|
||||||
cd build_cmake
|
cd build_cmake
|
||||||
if [ "$DO_CLANG_FORMAT_CHECK" -eq "1" ] ; then
|
if [ "$DO_CLANG_FORMAT_CHECK" = "1" ] ; then
|
||||||
if ! ( PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig cmake "${CMAKE_OPTS[@]}" .. && make clang-format-check) ; then
|
if ! ( PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig cmake "${CMAKE_OPTS[@]}" .. && make clang-format-check) ; then
|
||||||
make clang-format-diff
|
make clang-format-diff
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
if [ -n "$CLANG_TIDY" ] ; then
|
||||||
|
${CLANG_TIDY} -explain-config
|
||||||
|
fi
|
||||||
|
|
||||||
export CTEST_OUTPUT_ON_FAILURE=1
|
export CTEST_OUTPUT_ON_FAILURE=1
|
||||||
( PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig cmake "${CMAKE_OPTS[@]}" .. && make -j5 all VERBOSE=1 && make install && make -j5 test ARGS="-V" ) || exit 1
|
PKG_CONFIG_PATH=${BUILD_PREFIX}/lib/pkgconfig ${CMAKE_PREFIXES[@]} cmake "${CMAKE_OPTS[@]}" ..
|
||||||
|
${MAKE_PREFIXES[@]} make ${PARALLEL_MAKE_OPT} all VERBOSE=1 | tee clang-tidy-report
|
||||||
|
|
||||||
|
if [ -n "${SONAR_SCANNER_CLI_PATH}" ] ; then
|
||||||
|
find ${SCAN_BUILD_OUTPUT} || echo "WARNING: ${SCAN_BUILD_OUTPUT} does not exist"
|
||||||
|
|
||||||
|
${SONAR_SCANNER_CLI_PATH}sonar-scanner \
|
||||||
|
-Dsonar.projectKey=libzmq-clang \
|
||||||
|
-Dsonar.organization=${GITHUB_USER}-github \
|
||||||
|
-Dsonar.projectBaseDir=.. \
|
||||||
|
-Dsonar.sources=${TRAVIS_BUILD_DIR}/include,${TRAVIS_BUILD_DIR}/src,${TRAVIS_BUILD_DIR}/tests,${TRAVIS_BUILD_DIR}/unittests \
|
||||||
|
-Dsonar.cfamily.build-wrapper-output=${TRAVIS_BUILD_DIR}/bw-output \
|
||||||
|
-Dsonar.host.url=https://sonarcloud.io \
|
||||||
|
-Dsonar.login=${SONARQUBE_TOKEN}
|
||||||
|
|
||||||
|
# TODO this does not work with sonarcloud.io as it misses the sonar-cxx plugin
|
||||||
|
# -Dsonar.cxx.clangtidy.reportPath=clang-tidy-report \
|
||||||
|
# -Dsonar.cxx.clangsa.reportPath=*.plist \
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
make install
|
||||||
|
make ${PARALLEL_MAKE_OPT} test ARGS="-V"
|
||||||
fi
|
fi
|
||||||
|
Loading…
x
Reference in New Issue
Block a user