Decorator patter and initial build
This commit is contained in:
104
.clang-format
Normal file
104
.clang-format
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
Language: Cpp
|
||||||
|
# BasedOnStyle: Google
|
||||||
|
AccessModifierOffset: -2
|
||||||
|
AlignAfterOpenBracket: Align
|
||||||
|
AlignConsecutiveAssignments: true
|
||||||
|
AlignConsecutiveDeclarations: false
|
||||||
|
AlignEscapedNewlines: Right
|
||||||
|
AlignOperands: true
|
||||||
|
AlignTrailingComments: true
|
||||||
|
AllowAllParametersOfDeclarationOnNextLine: true
|
||||||
|
AllowShortBlocksOnASingleLine: false
|
||||||
|
AllowShortCaseLabelsOnASingleLine: false
|
||||||
|
AllowShortFunctionsOnASingleLine: Inline
|
||||||
|
AllowShortIfStatementsOnASingleLine: false
|
||||||
|
AllowShortLoopsOnASingleLine: true
|
||||||
|
AlwaysBreakAfterDefinitionReturnType: None
|
||||||
|
AlwaysBreakAfterReturnType: TopLevelDefinitions
|
||||||
|
AlwaysBreakBeforeMultilineStrings: true
|
||||||
|
AlwaysBreakTemplateDeclarations: true
|
||||||
|
BinPackArguments: false
|
||||||
|
BinPackParameters: false
|
||||||
|
BreakBeforeBraces : Custom
|
||||||
|
BraceWrapping:
|
||||||
|
AfterClass: false
|
||||||
|
AfterControlStatement: false
|
||||||
|
AfterEnum: false
|
||||||
|
AfterFunction: true
|
||||||
|
AfterNamespace: false
|
||||||
|
AfterObjCDeclaration: false
|
||||||
|
AfterStruct: false
|
||||||
|
AfterUnion: false
|
||||||
|
BeforeCatch: true
|
||||||
|
BeforeElse: true
|
||||||
|
IndentBraces: false
|
||||||
|
SplitEmptyFunction: true
|
||||||
|
SplitEmptyRecord: true
|
||||||
|
SplitEmptyNamespace: true
|
||||||
|
BreakBeforeBinaryOperators: None
|
||||||
|
BreakBeforeInheritanceComma: true
|
||||||
|
BreakBeforeTernaryOperators: true
|
||||||
|
BreakConstructorInitializers: BeforeColon
|
||||||
|
BreakAfterJavaFieldAnnotations: false
|
||||||
|
BreakStringLiterals: true
|
||||||
|
ColumnLimit: 80
|
||||||
|
CommentPragmas: '^ IWYU pragma:'
|
||||||
|
CompactNamespaces: false
|
||||||
|
ConstructorInitializerAllOnOneLineOrOnePerLine: true
|
||||||
|
ConstructorInitializerIndentWidth: 4
|
||||||
|
ContinuationIndentWidth: 4
|
||||||
|
Cpp11BracedListStyle: true
|
||||||
|
DerivePointerAlignment: false
|
||||||
|
DisableFormat: false
|
||||||
|
ExperimentalAutoDetectBinPacking: false
|
||||||
|
FixNamespaceComments: true
|
||||||
|
ForEachMacros:
|
||||||
|
- foreach
|
||||||
|
- Q_FOREACH
|
||||||
|
- BOOST_FOREACH
|
||||||
|
IncludeCategories:
|
||||||
|
- Regex: '^<.*\.h>'
|
||||||
|
Priority: 1
|
||||||
|
- Regex: '^<.*'
|
||||||
|
Priority: 2
|
||||||
|
- Regex: '.*'
|
||||||
|
Priority: 3
|
||||||
|
IncludeIsMainRegex: '([-_](test|unittest))?$'
|
||||||
|
IndentCaseLabels: false
|
||||||
|
IndentWidth: 2
|
||||||
|
IndentWrappedFunctionNames: false
|
||||||
|
JavaScriptQuotes: Leave
|
||||||
|
JavaScriptWrapImports: true
|
||||||
|
KeepEmptyLinesAtTheStartOfBlocks: false
|
||||||
|
MacroBlockBegin: ''
|
||||||
|
MacroBlockEnd: ''
|
||||||
|
MaxEmptyLinesToKeep: 1
|
||||||
|
NamespaceIndentation: None
|
||||||
|
ObjCBlockIndentWidth: 2
|
||||||
|
ObjCSpaceAfterProperty: false
|
||||||
|
ObjCSpaceBeforeProtocolList: false
|
||||||
|
PenaltyBreakAssignment: 2
|
||||||
|
PenaltyBreakBeforeFirstCallParameter: 1
|
||||||
|
PenaltyBreakComment: 300
|
||||||
|
PenaltyBreakFirstLessLess: 120
|
||||||
|
PenaltyBreakString: 1000
|
||||||
|
PenaltyExcessCharacter: 1000000
|
||||||
|
PenaltyReturnTypeOnItsOwnLine: 200
|
||||||
|
PointerAlignment: Left
|
||||||
|
ReflowComments: true
|
||||||
|
SortIncludes: true
|
||||||
|
SortUsingDeclarations: true
|
||||||
|
SpaceAfterCStyleCast: true
|
||||||
|
SpaceAfterTemplateKeyword: true
|
||||||
|
SpaceBeforeAssignmentOperators: true
|
||||||
|
SpaceBeforeParens: ControlStatements
|
||||||
|
SpaceInEmptyParentheses: false
|
||||||
|
SpacesBeforeTrailingComments: 2
|
||||||
|
SpacesInAngles: false
|
||||||
|
SpacesInContainerLiterals: false
|
||||||
|
SpacesInCStyleCastParentheses: false
|
||||||
|
SpacesInParentheses: false
|
||||||
|
SpacesInSquareBrackets: false
|
||||||
|
Standard: Cpp11
|
||||||
|
TabWidth: 2
|
||||||
|
UseTab: Never
|
||||||
411
.clang-tidy
Normal file
411
.clang-tidy
Normal file
@@ -0,0 +1,411 @@
|
|||||||
|
---
|
||||||
|
Checks: 'clang-diagnostic-*,clang-analyzer-*,*'
|
||||||
|
WarningsAsErrors: ''
|
||||||
|
HeaderFilterRegex: ''
|
||||||
|
AnalyzeTemporaryDtors: false
|
||||||
|
User: brgirgis
|
||||||
|
CheckOptions:
|
||||||
|
- key: cert-dcl59-cpp.HeaderFileExtensions
|
||||||
|
value: h,hh,hpp,hxx
|
||||||
|
- key: cert-err09-cpp.CheckThrowTemporaries
|
||||||
|
value: '1'
|
||||||
|
- key: cert-err61-cpp.CheckThrowTemporaries
|
||||||
|
value: '1'
|
||||||
|
- key: cert-oop11-cpp.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- 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: '100'
|
||||||
|
- key: google-readability-function-size.LineThreshold
|
||||||
|
value: '300'
|
||||||
|
- key: google-readability-function-size.StatementThreshold
|
||||||
|
value: '5'
|
||||||
|
- 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: google-runtime-references.WhiteListTypes
|
||||||
|
value: ''
|
||||||
|
- key: llvm-header-guard.HeaderFileExtensions
|
||||||
|
value: ',h,hh,hpp,hxx'
|
||||||
|
- key: llvm-namespace-comment.ShortNamespaceLines
|
||||||
|
value: '1'
|
||||||
|
- key: llvm-namespace-comment.SpacesBeforeComments
|
||||||
|
value: '2'
|
||||||
|
- key: misc-argument-comment.StrictMode
|
||||||
|
value: '0'
|
||||||
|
- 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: '0'
|
||||||
|
- key: misc-misplaced-widening-cast.CheckImplicitCasts
|
||||||
|
value: '1'
|
||||||
|
- key: misc-move-constructor-init.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- 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-enum-usage.StrictMode
|
||||||
|
value: '0'
|
||||||
|
- 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-pass-by-value.ValuesOnly
|
||||||
|
value: '0'
|
||||||
|
- key: modernize-replace-auto-ptr.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- key: modernize-use-auto.RemoveStars
|
||||||
|
value: '0'
|
||||||
|
- key: modernize-use-default-member-init.UseAssignment
|
||||||
|
value: '0'
|
||||||
|
- key: modernize-use-emplace.ContainersWithPushBack
|
||||||
|
value: '::std::vector;::std::list;::std::deque'
|
||||||
|
- key: modernize-use-emplace.SmartPointers
|
||||||
|
value: '::std::shared_ptr;::std::unique_ptr;::std::auto_ptr;::std::weak_ptr'
|
||||||
|
- key: modernize-use-nullptr.NullMacros
|
||||||
|
value: 'NULL'
|
||||||
|
- key: modernize-use-transparent-functors.SafeMode
|
||||||
|
value: '0'
|
||||||
|
- key: performance-faster-string-find.StringLikeClasses
|
||||||
|
value: 'std::basic_string'
|
||||||
|
- key: performance-for-range-copy.WarnOnAllAutoCopies
|
||||||
|
value: '0'
|
||||||
|
- key: performance-inefficient-string-concatenation.StrictMode
|
||||||
|
value: '0'
|
||||||
|
- key: performance-type-promotion-in-math-fn.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- key: performance-unnecessary-value-param.IncludeStyle
|
||||||
|
value: llvm
|
||||||
|
- key: readability-braces-around-statements.ShortStatementLines
|
||||||
|
value: '0'
|
||||||
|
- key: readability-function-size.BranchThreshold
|
||||||
|
value: '100'
|
||||||
|
- key: readability-function-size.LineThreshold
|
||||||
|
value: '300'
|
||||||
|
- key: readability-function-size.StatementThreshold
|
||||||
|
value: '5'
|
||||||
|
- key: readability-identifier-naming.AbstractClassCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.AbstractClassPrefix
|
||||||
|
value: 'I'
|
||||||
|
- key: readability-identifier-naming.AbstractClassSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ClassCase
|
||||||
|
value: CamelCase
|
||||||
|
- 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: CamelCase
|
||||||
|
- key: readability-identifier-naming.ClassMemberPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ClassMemberSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ClassMethodCase
|
||||||
|
value: camelBack
|
||||||
|
- 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: camelBack
|
||||||
|
- key: readability-identifier-naming.ConstantMemberPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ConstantMemberSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ConstantParameterCase
|
||||||
|
value: camelBack
|
||||||
|
- 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: camelBack
|
||||||
|
- key: readability-identifier-naming.ConstexprFunctionPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ConstexprFunctionSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ConstexprMethodCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.ConstexprMethodPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ConstexprMethodSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ConstexprVariableCase
|
||||||
|
value: camelBack
|
||||||
|
- 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: camelBack
|
||||||
|
- key: readability-identifier-naming.FunctionPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.FunctionSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.GlobalConstantCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.GlobalConstantPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.GlobalConstantSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.GlobalFunctionCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.GlobalFunctionPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.GlobalFunctionSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.GlobalVariableCase
|
||||||
|
value: lower_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: lower_case
|
||||||
|
- key: readability-identifier-naming.InlineNamespacePrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.InlineNamespaceSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.LocalConstantCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.LocalConstantPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.LocalConstantSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.LocalVariableCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.LocalVariablePrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.LocalVariableSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.MacroDefinitionCase
|
||||||
|
value: UPPER_CASE
|
||||||
|
- key: readability-identifier-naming.MacroDefinitionPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.MacroDefinitionSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.MemberCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.MemberPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.MemberSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.MethodCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.MethodPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.MethodSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.NamespaceCase
|
||||||
|
value: lower_case
|
||||||
|
- key: readability-identifier-naming.NamespacePrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.NamespaceSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ParameterCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.ParameterPackCase
|
||||||
|
value: camelBack
|
||||||
|
- 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: camelBack
|
||||||
|
- key: readability-identifier-naming.PrivateMemberPrefix
|
||||||
|
value: 'm_'
|
||||||
|
- key: readability-identifier-naming.PrivateMemberSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.PrivateMethodCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.PrivateMethodPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.PrivateMethodSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ProtectedMemberCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.ProtectedMemberPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ProtectedMemberSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ProtectedMethodCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.ProtectedMethodPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ProtectedMethodSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.PublicMemberCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.PublicMemberPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.PublicMemberSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.PublicMethodCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.PublicMethodPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.PublicMethodSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.StaticConstantCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.StaticConstantPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.StaticConstantSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.StaticVariableCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.StaticVariablePrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.StaticVariableSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.StructCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.StructPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.StructSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TemplateParameterCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.TemplateParameterPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TemplateParameterSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TemplateTemplateParameterCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.TemplateTemplateParameterPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TemplateTemplateParameterSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TypeAliasCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.TypeAliasPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TypeAliasSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TypeTemplateParameterCase
|
||||||
|
value: CamelCase
|
||||||
|
- key: readability-identifier-naming.TypeTemplateParameterPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TypeTemplateParameterSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.TypedefCase
|
||||||
|
value: CamelCase
|
||||||
|
- 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: CamelCase
|
||||||
|
- key: readability-identifier-naming.ValueTemplateParameterPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.ValueTemplateParameterSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.VariableCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.VariablePrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.VariableSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.VirtualMethodCase
|
||||||
|
value: camelBack
|
||||||
|
- key: readability-identifier-naming.VirtualMethodPrefix
|
||||||
|
value: ''
|
||||||
|
- key: readability-identifier-naming.VirtualMethodSuffix
|
||||||
|
value: ''
|
||||||
|
- key: readability-implicit-bool-cast.AllowConditionalIntegerCasts
|
||||||
|
value: '0'
|
||||||
|
- key: readability-implicit-bool-cast.AllowConditionalPointerCasts
|
||||||
|
value: '0'
|
||||||
|
- key: readability-simplify-boolean-expr.ChainedConditionalAssignment
|
||||||
|
value: '0'
|
||||||
|
- key: readability-simplify-boolean-expr.ChainedConditionalReturn
|
||||||
|
value: '0'
|
||||||
|
...
|
||||||
|
|
||||||
124
.cproject
Normal file
124
.cproject
Normal file
@@ -0,0 +1,124 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||||
|
<cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.debug.1234347164">
|
||||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.exe.debug.1234347164" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||||
|
<externalSettings/>
|
||||||
|
<extensions>
|
||||||
|
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
</extensions>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
|
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.debug.1234347164" name="Debug" parent="cdt.managedbuild.config.gnu.cross.exe.debug">
|
||||||
|
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.debug.1234347164." name="/" resourcePath="">
|
||||||
|
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.debug.895528174" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.debug">
|
||||||
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1463199201" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
|
||||||
|
<builder buildPath="${workspace_loc:/CPP-Patterns}/src" cleanBuildTarget="-c" command="scons" id="cdt.managedbuild.builder.gnu.cross.1680930682" incrementalBuildTarget="" keepEnvironmentInBuildfile="true" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.1059078889" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
|
||||||
|
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.option.optimization.level.1189450053" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
|
||||||
|
<option id="gnu.c.compiler.option.debugging.level.301091150" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.max" valueType="enumerated"/>
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.2001659488" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.2072575602" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
|
||||||
|
<option id="gnu.cpp.compiler.option.optimization.level.2060820791" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||||
|
<option id="gnu.cpp.compiler.option.debugging.level.1055708519" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
|
||||||
|
<option id="gnu.cpp.compiler.option.dialect.std.982026885" name="Language standard" superClass="gnu.cpp.compiler.option.dialect.std" useByScannerDiscovery="true" value="gnu.cpp.compiler.dialect.c++1y" valueType="enumerated"/>
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.993288318" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.437342475" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.1591802863" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.598199298" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||||
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||||
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||||
|
</inputType>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.1078306475" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.1643316290" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.551258156" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||||
|
</tool>
|
||||||
|
</toolChain>
|
||||||
|
</folderInfo>
|
||||||
|
</configuration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||||
|
</cconfiguration>
|
||||||
|
<cconfiguration id="cdt.managedbuild.config.gnu.cross.exe.release.1243951975">
|
||||||
|
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.cross.exe.release.1243951975" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||||
|
<externalSettings/>
|
||||||
|
<extensions>
|
||||||
|
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||||
|
</extensions>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
|
<configuration artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.cross.exe.release.1243951975" name="Release" parent="cdt.managedbuild.config.gnu.cross.exe.release">
|
||||||
|
<folderInfo id="cdt.managedbuild.config.gnu.cross.exe.release.1243951975." name="/" resourcePath="">
|
||||||
|
<toolChain id="cdt.managedbuild.toolchain.gnu.cross.exe.release.2111437574" name="Cross GCC" superClass="cdt.managedbuild.toolchain.gnu.cross.exe.release">
|
||||||
|
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.targetPlatform.gnu.cross.1748389627" isAbstract="false" osList="all" superClass="cdt.managedbuild.targetPlatform.gnu.cross"/>
|
||||||
|
<builder buildPath="${workspace_loc:/CPP-Patterns}/src" cleanBuildTarget="DEBUG=0 -c" command="scons" id="cdt.managedbuild.builder.gnu.cross.162542164" incrementalBuildTarget="DEBUG=0" keepEnvironmentInBuildfile="true" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.builder.gnu.cross"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.c.compiler.346338174" name="Cross GCC Compiler" superClass="cdt.managedbuild.tool.gnu.cross.c.compiler">
|
||||||
|
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.option.optimization.level.526955837" name="Optimization Level" superClass="gnu.c.compiler.option.optimization.level" useByScannerDiscovery="false" valueType="enumerated"/>
|
||||||
|
<option id="gnu.c.compiler.option.debugging.level.1753131718" name="Debug Level" superClass="gnu.c.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.c.debugging.level.none" valueType="enumerated"/>
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.110435108" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.compiler.1248793934" name="Cross G++ Compiler" superClass="cdt.managedbuild.tool.gnu.cross.cpp.compiler">
|
||||||
|
<option id="gnu.cpp.compiler.option.optimization.level.837851766" name="Optimization Level" superClass="gnu.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
|
||||||
|
<option id="gnu.cpp.compiler.option.debugging.level.2110508446" name="Debug Level" superClass="gnu.cpp.compiler.option.debugging.level" useByScannerDiscovery="false" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.2011583782" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.c.linker.378980796" name="Cross GCC Linker" superClass="cdt.managedbuild.tool.gnu.cross.c.linker"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.cpp.linker.98989619" name="Cross G++ Linker" superClass="cdt.managedbuild.tool.gnu.cross.cpp.linker">
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1223375342" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||||
|
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||||
|
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||||
|
</inputType>
|
||||||
|
</tool>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.archiver.1339328424" name="Cross GCC Archiver" superClass="cdt.managedbuild.tool.gnu.cross.archiver"/>
|
||||||
|
<tool id="cdt.managedbuild.tool.gnu.cross.assembler.1140002719" name="Cross GCC Assembler" superClass="cdt.managedbuild.tool.gnu.cross.assembler">
|
||||||
|
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1405680098" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||||
|
</tool>
|
||||||
|
</toolChain>
|
||||||
|
</folderInfo>
|
||||||
|
</configuration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||||
|
</cconfiguration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||||
|
<project id="CPP-Patterns.cdt.managedbuild.target.gnu.cross.exe.1178469746" name="Executable" projectType="cdt.managedbuild.target.gnu.cross.exe"/>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="scannerConfiguration">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.debug.1234347164;cdt.managedbuild.config.gnu.cross.exe.debug.1234347164.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.2072575602;cdt.managedbuild.tool.gnu.cpp.compiler.input.993288318">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
</scannerConfigBuildInfo>
|
||||||
|
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.release.1243951975;cdt.managedbuild.config.gnu.cross.exe.release.1243951975.;cdt.managedbuild.tool.gnu.cross.c.compiler.346338174;cdt.managedbuild.tool.gnu.c.compiler.input.110435108">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
</scannerConfigBuildInfo>
|
||||||
|
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.release.1243951975;cdt.managedbuild.config.gnu.cross.exe.release.1243951975.;cdt.managedbuild.tool.gnu.cross.cpp.compiler.1248793934;cdt.managedbuild.tool.gnu.cpp.compiler.input.2011583782">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
</scannerConfigBuildInfo>
|
||||||
|
<scannerConfigBuildInfo instanceId="cdt.managedbuild.config.gnu.cross.exe.debug.1234347164;cdt.managedbuild.config.gnu.cross.exe.debug.1234347164.;cdt.managedbuild.tool.gnu.cross.c.compiler.1059078889;cdt.managedbuild.tool.gnu.c.compiler.input.2001659488">
|
||||||
|
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
|
||||||
|
</scannerConfigBuildInfo>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
|
||||||
|
<storageModule moduleId="refreshScope" versionNumber="2">
|
||||||
|
<configuration configurationName="Debug">
|
||||||
|
<resource resourceType="PROJECT" workspacePath="/CPP-Patterns"/>
|
||||||
|
</configuration>
|
||||||
|
<configuration configurationName="Release">
|
||||||
|
<resource resourceType="PROJECT" workspacePath="/CPP-Patterns"/>
|
||||||
|
</configuration>
|
||||||
|
</storageModule>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||||
|
</cproject>
|
||||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -30,3 +30,12 @@
|
|||||||
*.exe
|
*.exe
|
||||||
*.out
|
*.out
|
||||||
*.app
|
*.app
|
||||||
|
|
||||||
|
build/
|
||||||
|
install/
|
||||||
|
.test/
|
||||||
|
|
||||||
|
*.dblite
|
||||||
|
*.pdb
|
||||||
|
*.out
|
||||||
|
|
||||||
|
|||||||
33
.project
Normal file
33
.project
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<projectDescription>
|
||||||
|
<name>CPP-Patterns</name>
|
||||||
|
<comment></comment>
|
||||||
|
<projects>
|
||||||
|
</projects>
|
||||||
|
<buildSpec>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.python.pydev.PyDevBuilder</name>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
|
||||||
|
<triggers>clean,full,incremental,</triggers>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
<buildCommand>
|
||||||
|
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||||
|
<triggers>full,incremental,</triggers>
|
||||||
|
<arguments>
|
||||||
|
</arguments>
|
||||||
|
</buildCommand>
|
||||||
|
</buildSpec>
|
||||||
|
<natures>
|
||||||
|
<nature>org.eclipse.cdt.core.cnature</nature>
|
||||||
|
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||||
|
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||||
|
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||||
|
<nature>org.python.pydev.pythonNature</nature>
|
||||||
|
</natures>
|
||||||
|
</projectDescription>
|
||||||
8
.pydevproject
Normal file
8
.pydevproject
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<?eclipse-pydev version="1.0"?><pydev_project>
|
||||||
|
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
|
||||||
|
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 3.6</pydev_property>
|
||||||
|
<pydev_pathproperty name="org.python.pydev.PROJECT_SOURCE_PATH">
|
||||||
|
<path>/${PROJECT_DIR_NAME}/src/site_scons</path>
|
||||||
|
</pydev_pathproperty>
|
||||||
|
</pydev_project>
|
||||||
25
.settings/language.settings.xml
Normal file
25
.settings/language.settings.xml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<project>
|
||||||
|
<configuration id="cdt.managedbuild.config.gnu.cross.exe.debug.1234347164" name="Debug">
|
||||||
|
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||||
|
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||||
|
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
|
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
|
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="605751381233419494" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||||
|
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||||
|
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||||
|
</provider>
|
||||||
|
</extension>
|
||||||
|
</configuration>
|
||||||
|
<configuration id="cdt.managedbuild.config.gnu.cross.exe.release.1243951975" name="Release">
|
||||||
|
<extension point="org.eclipse.cdt.core.LanguageSettingsProvider">
|
||||||
|
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
|
||||||
|
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
|
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
|
||||||
|
<provider class="org.eclipse.cdt.internal.build.crossgcc.CrossGCCBuiltinSpecsDetector" console="false" env-hash="605751780412865290" id="org.eclipse.cdt.build.crossgcc.CrossGCCBuiltinSpecsDetector" keep-relative-paths="false" name="CDT Cross GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD "${INPUTS}"" prefer-non-shared="true">
|
||||||
|
<language-scope id="org.eclipse.cdt.core.gcc"/>
|
||||||
|
<language-scope id="org.eclipse.cdt.core.g++"/>
|
||||||
|
</provider>
|
||||||
|
</extension>
|
||||||
|
</configuration>
|
||||||
|
</project>
|
||||||
201
.settings/org.eclipse.cdt.codan.core.prefs
Normal file
201
.settings/org.eclipse.cdt.codan.core.prefs
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.cdt.codan.checkers.errnoreturn=Warning
|
||||||
|
org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return\\")",implicit\=>false}
|
||||||
|
org.eclipse.cdt.codan.checkers.errreturnvalue=Error
|
||||||
|
org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused return value\\")"}
|
||||||
|
org.eclipse.cdt.codan.checkers.nocommentinside=-Error
|
||||||
|
org.eclipse.cdt.codan.checkers.nocommentinside.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Nesting comments\\")"}
|
||||||
|
org.eclipse.cdt.codan.checkers.nolinecomment=-Error
|
||||||
|
org.eclipse.cdt.codan.checkers.nolinecomment.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Line comments\\")"}
|
||||||
|
org.eclipse.cdt.codan.checkers.noreturn=Error
|
||||||
|
org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No return value\\")",implicit\=>false}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Abstract class cannot be instantiated\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Ambiguous problem\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment in condition\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Assignment to itself\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"No break at end of case\\")",no_break_comment\=>"no break",last_case_param\=>false,empty_case_param\=>false,enable_fallthrough_quickfix_param\=>false}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Catching by reference is recommended\\")",unknown\=>false,exceptions\=>()}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Circular inheritance\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class members should be properly initialized\\")",skip\=>true}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.DecltypeAutoProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid 'decltype(auto)' specifier\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Field cannot be resolved\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Function cannot be resolved\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.InvalidArguments=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid arguments\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid template argument\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Label statement not found\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Member declaration not found\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Method cannot be resolved\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Name convention for function\\")",pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Class has a virtual method and non-virtual destructor\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.OverloadProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid overload\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redeclaration\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Invalid redefinition\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Return with parenthesis\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Format String Vulnerability\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Statement has no effect\\")",macro\=>true,exceptions\=>()}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suggested parenthesis around expression\\")",paramNot\=>false}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Suspicious semicolon\\")",else\=>false,afterelse\=>false}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Type cannot be resolved\\")"}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused function declaration\\")",macro\=>true}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused static function\\")",macro\=>true}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Unused variable declaration in file scope\\")",macro\=>true,exceptions\=>("@(\#)","$Id")}
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=Error
|
||||||
|
org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},suppression_comment\=>"@suppress(\\"Symbol is not resolved\\")"}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.c++11=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.c++11.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.categorized=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.categorized.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.deprecated=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.deprecated.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.endif_comment=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.endif_comment.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.explicit_make_pair=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.explicit_make_pair.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.forward_decl=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.forward_decl.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.header_guard=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.header_guard.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.include=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.include.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.include_alpha=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.include_alpha.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.include_order=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.include_order.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.include_what_you_use=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.include_what_you_use.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.namespaces=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.namespaces.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.printf_format=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.printf_format.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.storage_class=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.build.storage_class.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.legal.copyright=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.legal.copyright.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.alt_tokens=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.alt_tokens.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.braces=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.braces.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.casting=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.casting.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.check=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.check.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.constructors=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.constructors.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.fn_size=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.fn_size.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.function=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.function.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.inheritance=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.inheritance.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.multiline_comment=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.multiline_comment.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.multiline_string=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.multiline_string.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.namespace=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.namespace.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.nolint=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.nolint.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.nul=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.nul.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.strings=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.strings.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.todo=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.todo.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.utf8=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.readability.utf8.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.arrays=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.arrays.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.casting=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.casting.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.explicit=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.explicit.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.indentation_namespace=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.indentation_namespace.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.init=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.init.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.int=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.int.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.invalid_increment=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.invalid_increment.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.member_string_references=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.member_string_references.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.memset=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.memset.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.operator=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.operator.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.printf=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.printf.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.printf_format=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.printf_format.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.references=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.references.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.string=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.string.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.threadsafe_fn=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.threadsafe_fn.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.vlog=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.runtime.vlog.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.blank_line=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.blank_line.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.braces=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.braces.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.comma=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.comma.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.comments=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.comments.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.empty_conditional_body=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.empty_conditional_body.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.empty_loop_body=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.empty_loop_body.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.end_of_line=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.end_of_line.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.ending_newline=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.ending_newline.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.forcolon=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.forcolon.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.indent=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.indent.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.line_length=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.line_length.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.newline=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.newline.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.operators=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.operators.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.parens=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.parens.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.semicolon=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.semicolon.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.tab=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.tab.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.todo=Error
|
||||||
|
org.wangzw.plugin.cppstyle.cpplint.whitespace.todo.params={fileScope\=>inclusion\=>("*.cc","*.h","*.cpp","*.cu","*.cuh","*.hpp"),exclusion\=>(),launchModes\=>{RUN_ON_FULL_BUILD\=>false,RUN_ON_INC_BUILD\=>false,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>true,RUN_AS_YOU_TYPE\=>false,RUN_ON_DEMAND\=>true},suppression_comment\=>null}
|
||||||
165
.settings/org.eclipse.cdt.core.prefs
Normal file
165
.settings/org.eclipse.cdt.core.prefs
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
eclipse.preferences.version=1
|
||||||
|
org.eclipse.cdt.core.code_formatter=org.eclipse.cdt.core.defaultCodeFormatter
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation=83
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_assignment=16
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration=80
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_binary_expression=16
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_compact_if=16
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression=34
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain=18
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list=83
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_declarator_list=16
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_enumerator_list=83
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_expression_list=0
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer=18
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_member_access=0
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain=18
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration=83
|
||||||
|
org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration=83
|
||||||
|
org.eclipse.cdt.core.formatter.brace_position_for_array_initializer=end_of_line
|
||||||
|
org.eclipse.cdt.core.formatter.brace_position_for_block=end_of_line
|
||||||
|
org.eclipse.cdt.core.formatter.brace_position_for_block_in_case=end_of_line
|
||||||
|
org.eclipse.cdt.core.formatter.brace_position_for_method_declaration=next_line
|
||||||
|
org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration=end_of_line
|
||||||
|
org.eclipse.cdt.core.formatter.brace_position_for_switch=end_of_line
|
||||||
|
org.eclipse.cdt.core.formatter.brace_position_for_type_declaration=end_of_line
|
||||||
|
org.eclipse.cdt.core.formatter.comment.line_up_line_comment_in_blocks_on_first_column=false
|
||||||
|
org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment=1
|
||||||
|
org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column=true
|
||||||
|
org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=true
|
||||||
|
org.eclipse.cdt.core.formatter.compact_else_if=true
|
||||||
|
org.eclipse.cdt.core.formatter.continuation_indentation=2
|
||||||
|
org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer=2
|
||||||
|
org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line=false
|
||||||
|
org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header=false
|
||||||
|
org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces=0
|
||||||
|
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier=true
|
||||||
|
org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header=false
|
||||||
|
org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases=true
|
||||||
|
org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header=false
|
||||||
|
org.eclipse.cdt.core.formatter.indent_empty_lines=false
|
||||||
|
org.eclipse.cdt.core.formatter.indent_statements_compare_to_block=true
|
||||||
|
org.eclipse.cdt.core.formatter.indent_statements_compare_to_body=true
|
||||||
|
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases=true
|
||||||
|
org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch=false
|
||||||
|
org.eclipse.cdt.core.formatter.indentation.size=2
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_binary_operator=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_after_unary_operator=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_binary_operator=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional=insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_semicolon=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_before_unary_operator=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
|
||||||
|
org.eclipse.cdt.core.formatter.join_wrapped_lines=true
|
||||||
|
org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line=false
|
||||||
|
org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line=false
|
||||||
|
org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line=false
|
||||||
|
org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line=false
|
||||||
|
org.eclipse.cdt.core.formatter.lineSplit=80
|
||||||
|
org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve=1
|
||||||
|
org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line=true
|
||||||
|
org.eclipse.cdt.core.formatter.tabulation.char=space
|
||||||
|
org.eclipse.cdt.core.formatter.tabulation.size=2
|
||||||
|
org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations=false
|
||||||
3
.settings/org.eclipse.cdt.ui.prefs
Normal file
3
.settings/org.eclipse.cdt.ui.prefs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
eclipse.preferences.version=1
|
||||||
|
formatter_profile=_K&R [built-in] modified
|
||||||
|
formatter_settings_version=1
|
||||||
217
src/.style.yapf
Normal file
217
src/.style.yapf
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
[style]
|
||||||
|
# Align closing bracket with visual indentation.
|
||||||
|
align_closing_bracket_with_visual_indent=False
|
||||||
|
|
||||||
|
# Allow dictionary keys to exist on multiple lines. For example:
|
||||||
|
#
|
||||||
|
# x = {
|
||||||
|
# ('this is the first element of a tuple',
|
||||||
|
# 'this is the second element of a tuple'):
|
||||||
|
# value,
|
||||||
|
# }
|
||||||
|
allow_multiline_dictionary_keys=False
|
||||||
|
|
||||||
|
# Allow lambdas to be formatted on more than one line.
|
||||||
|
allow_multiline_lambdas=False
|
||||||
|
|
||||||
|
# Allow splits before the dictionary value.
|
||||||
|
allow_split_before_dict_value=True
|
||||||
|
|
||||||
|
# Insert a blank line before a class-level docstring.
|
||||||
|
blank_line_before_class_docstring=False
|
||||||
|
|
||||||
|
# Insert a blank line before a 'def' or 'class' immediately nested
|
||||||
|
# within another 'def' or 'class'. For example:
|
||||||
|
#
|
||||||
|
# class Foo:
|
||||||
|
# # <------ this blank line
|
||||||
|
# def method():
|
||||||
|
# ...
|
||||||
|
blank_line_before_nested_class_or_def=True
|
||||||
|
|
||||||
|
# Do not split consecutive brackets. Only relevant when
|
||||||
|
# dedent_closing_brackets is set. For example:
|
||||||
|
#
|
||||||
|
# call_func_that_takes_a_dict(
|
||||||
|
# {
|
||||||
|
# 'key1': 'value1',
|
||||||
|
# 'key2': 'value2',
|
||||||
|
# }
|
||||||
|
# )
|
||||||
|
#
|
||||||
|
# would reformat to:
|
||||||
|
#
|
||||||
|
# call_func_that_takes_a_dict({
|
||||||
|
# 'key1': 'value1',
|
||||||
|
# 'key2': 'value2',
|
||||||
|
# })
|
||||||
|
coalesce_brackets=False
|
||||||
|
|
||||||
|
# The column limit.
|
||||||
|
column_limit=80
|
||||||
|
|
||||||
|
# Indent width used for line continuations.
|
||||||
|
continuation_indent_width=4
|
||||||
|
|
||||||
|
# Put closing brackets on a separate line, dedented, if the bracketed
|
||||||
|
# expression can't fit in a single line. Applies to all kinds of brackets,
|
||||||
|
# including function definitions and calls. For example:
|
||||||
|
#
|
||||||
|
# config = {
|
||||||
|
# 'key1': 'value1',
|
||||||
|
# 'key2': 'value2',
|
||||||
|
# } # <--- this bracket is dedented and on a separate line
|
||||||
|
#
|
||||||
|
# time_series = self.remote_client.query_entity_counters(
|
||||||
|
# entity='dev3246.region1',
|
||||||
|
# key='dns.query_latency_tcp',
|
||||||
|
# transform=Transformation.AVERAGE(window=timedelta(seconds=60)),
|
||||||
|
# start_ts=now()-timedelta(days=3),
|
||||||
|
# end_ts=now(),
|
||||||
|
# ) # <--- this bracket is dedented and on a separate line
|
||||||
|
dedent_closing_brackets=True
|
||||||
|
|
||||||
|
# Place each dictionary entry onto its own line.
|
||||||
|
each_dict_entry_on_separate_line=True
|
||||||
|
|
||||||
|
# The regex for an i18n comment. The presence of this comment stops
|
||||||
|
# reformatting of that line, because the comments are required to be
|
||||||
|
# next to the string they translate.
|
||||||
|
i18n_comment=#\..*
|
||||||
|
|
||||||
|
# The i18n function call names. The presence of this function stops
|
||||||
|
# reformattting on that line, because the string it has cannot be moved
|
||||||
|
# away from the i18n comment.
|
||||||
|
i18n_function_call=['N_', '_']
|
||||||
|
|
||||||
|
# Indent the dictionary value if it cannot fit on the same line as the
|
||||||
|
# dictionary key. For example:
|
||||||
|
#
|
||||||
|
# config = {
|
||||||
|
# 'key1':
|
||||||
|
# 'value1',
|
||||||
|
# 'key2': value1 +
|
||||||
|
# value2,
|
||||||
|
# }
|
||||||
|
indent_dictionary_value=False
|
||||||
|
|
||||||
|
# The number of columns to use for indentation.
|
||||||
|
indent_width=4
|
||||||
|
|
||||||
|
# Join short lines into one line. E.g., single line 'if' statements.
|
||||||
|
join_multiple_lines=True
|
||||||
|
|
||||||
|
# Do not include spaces around selected binary operators. For example:
|
||||||
|
#
|
||||||
|
# 1 + 2 * 3 - 4 / 5
|
||||||
|
#
|
||||||
|
# will be formatted as follows when configured with a value "*,/":
|
||||||
|
#
|
||||||
|
# 1 + 2*3 - 4/5
|
||||||
|
#
|
||||||
|
no_spaces_around_selected_binary_operators=set()
|
||||||
|
|
||||||
|
# Use spaces around default or named assigns.
|
||||||
|
spaces_around_default_or_named_assign=False
|
||||||
|
|
||||||
|
# Use spaces around the power operator.
|
||||||
|
spaces_around_power_operator=False
|
||||||
|
|
||||||
|
# The number of spaces required before a trailing comment.
|
||||||
|
spaces_before_comment=2
|
||||||
|
|
||||||
|
# Insert a space between the ending comma and closing bracket of a list,
|
||||||
|
# etc.
|
||||||
|
space_between_ending_comma_and_closing_bracket=False
|
||||||
|
|
||||||
|
# Split before arguments if the argument list is terminated by a
|
||||||
|
# comma.
|
||||||
|
split_arguments_when_comma_terminated=False
|
||||||
|
|
||||||
|
# Set to True to prefer splitting before '&', '|' or '^' rather than
|
||||||
|
# after.
|
||||||
|
split_before_bitwise_operator=False
|
||||||
|
|
||||||
|
# Split before a dictionary or set generator (comp_for). For example, note
|
||||||
|
# the split before the 'for':
|
||||||
|
#
|
||||||
|
# foo = {
|
||||||
|
# variable: 'Hello world, have a nice day!'
|
||||||
|
# for variable in bar if variable != 42
|
||||||
|
# }
|
||||||
|
split_before_dict_set_generator=True
|
||||||
|
|
||||||
|
# Split after the opening paren which surrounds an expression if it doesn't
|
||||||
|
# fit on a single line.
|
||||||
|
split_before_expression_after_opening_paren=False
|
||||||
|
|
||||||
|
# If an argument / parameter list is going to be split, then split before
|
||||||
|
# the first argument.
|
||||||
|
split_before_first_argument=False
|
||||||
|
|
||||||
|
# Set to True to prefer splitting before 'and' or 'or' rather than
|
||||||
|
# after.
|
||||||
|
split_before_logical_operator=False
|
||||||
|
|
||||||
|
# Split named assignments onto individual lines.
|
||||||
|
split_before_named_assigns=True
|
||||||
|
|
||||||
|
# Set to True to split list comprehensions and generators that have
|
||||||
|
# non-trivial expressions and multiple clauses before each of these
|
||||||
|
# clauses. For example:
|
||||||
|
#
|
||||||
|
# result = [
|
||||||
|
# a_long_var + 100 for a_long_var in xrange(1000)
|
||||||
|
# if a_long_var % 10]
|
||||||
|
#
|
||||||
|
# would reformat to something like:
|
||||||
|
#
|
||||||
|
# result = [
|
||||||
|
# a_long_var + 100
|
||||||
|
# for a_long_var in xrange(1000)
|
||||||
|
# if a_long_var % 10]
|
||||||
|
split_complex_comprehension=True
|
||||||
|
|
||||||
|
# The penalty for splitting right after the opening bracket.
|
||||||
|
split_penalty_after_opening_bracket=30
|
||||||
|
|
||||||
|
# The penalty for splitting the line after a unary operator.
|
||||||
|
split_penalty_after_unary_operator=10000
|
||||||
|
|
||||||
|
# The penalty for splitting right before an if expression.
|
||||||
|
split_penalty_before_if_expr=0
|
||||||
|
|
||||||
|
# The penalty of splitting the line around the '&', '|', and '^'
|
||||||
|
# operators.
|
||||||
|
split_penalty_bitwise_operator=300
|
||||||
|
|
||||||
|
# The penalty for splitting a list comprehension or generator
|
||||||
|
# expression.
|
||||||
|
split_penalty_comprehension=2100
|
||||||
|
|
||||||
|
# The penalty for characters over the column limit.
|
||||||
|
split_penalty_excess_character=4500
|
||||||
|
|
||||||
|
# The penalty incurred by adding a line split to the unwrapped line. The
|
||||||
|
# more line splits added the higher the penalty.
|
||||||
|
split_penalty_for_added_line_split=30
|
||||||
|
|
||||||
|
# The penalty of splitting a list of "import as" names. For example:
|
||||||
|
#
|
||||||
|
# from a_very_long_or_indented_module_name_yada_yad import (long_argument_1,
|
||||||
|
# long_argument_2,
|
||||||
|
# long_argument_3)
|
||||||
|
#
|
||||||
|
# would reformat to something like:
|
||||||
|
#
|
||||||
|
# from a_very_long_or_indented_module_name_yada_yad import (
|
||||||
|
# long_argument_1, long_argument_2, long_argument_3)
|
||||||
|
split_penalty_import_names=0
|
||||||
|
|
||||||
|
# The penalty of splitting the line around the 'and' and 'or'
|
||||||
|
# operators.
|
||||||
|
split_penalty_logical_operator=300
|
||||||
|
|
||||||
|
# Use the Tab character for indentation.
|
||||||
|
use_tabs=False
|
||||||
|
|
||||||
31
src/SConstruct
Normal file
31
src/SConstruct
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
Help("""
|
||||||
|
|
||||||
|
DEBUG=1,0 - enable debug build, default 1
|
||||||
|
|
||||||
|
""")
|
||||||
|
|
||||||
|
def build():
|
||||||
|
from miscsetup import CustomBuildEnvironment
|
||||||
|
env = CustomBuildEnvironment()
|
||||||
|
env.build()
|
||||||
|
|
||||||
|
|
||||||
|
if not GetOption('help'):
|
||||||
|
build()
|
||||||
3
src/site_scons/.gitignore
vendored
Normal file
3
src/site_scons/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
|
||||||
|
__pycache__/
|
||||||
|
|
||||||
62
src/site_scons/localtargets/Executable.py
Normal file
62
src/site_scons/localtargets/Executable.py
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
from .RunableTarget import RunableTarget
|
||||||
|
|
||||||
|
|
||||||
|
class Executable(RunableTarget):
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self, env, name, sources, localStaticLibs, localSharedLibs,
|
||||||
|
externalLibs, isBin
|
||||||
|
):
|
||||||
|
|
||||||
|
self.__target = None
|
||||||
|
self.__isBin = isBin
|
||||||
|
|
||||||
|
super(Executable, self).__init__(
|
||||||
|
env, name, sources, localStaticLibs, localSharedLibs, externalLibs
|
||||||
|
)
|
||||||
|
|
||||||
|
self.writeScript()
|
||||||
|
|
||||||
|
self.env.Install(self.installDir, self.target)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def installDir(self):
|
||||||
|
return self.binDir if self.__isBin else \
|
||||||
|
self.etcDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def scriptFileDir(self):
|
||||||
|
return self.installDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def target(self):
|
||||||
|
|
||||||
|
if self.__target is None:
|
||||||
|
self.__target = \
|
||||||
|
self.env.Program(target=self.name,
|
||||||
|
source=self.sources,
|
||||||
|
LIBS=self.localSharedLibsNames + self.externalLibsNames,
|
||||||
|
LIBPATH=self.env['LIBPATH'] +
|
||||||
|
self.externalLibsPaths,
|
||||||
|
CPPPATH=self.env['CPPPATH'] +
|
||||||
|
self.externalLibsIncludes,
|
||||||
|
CPPFLAGS=self.cppFlags,
|
||||||
|
LINKFLAGS=self.linkFlags)
|
||||||
|
return self.__target
|
||||||
163
src/site_scons/localtargets/LocalTarget.py
Normal file
163
src/site_scons/localtargets/LocalTarget.py
Normal file
@@ -0,0 +1,163 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
|
||||||
|
class LocalTarget(object):
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self, env, name, sources, localStaticLibs, localSharedLibs, externalLibs
|
||||||
|
):
|
||||||
|
|
||||||
|
self.__env = env
|
||||||
|
self.__name = name
|
||||||
|
self.__sources = sources
|
||||||
|
self.__localStaticLibs = localStaticLibs
|
||||||
|
self.__localSharedLibs = localSharedLibs
|
||||||
|
self.__externalLibs = externalLibs
|
||||||
|
|
||||||
|
self.__localDir = os.getcwd()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def installDir(self):
|
||||||
|
assert False
|
||||||
|
|
||||||
|
@property
|
||||||
|
def target(self):
|
||||||
|
assert False
|
||||||
|
|
||||||
|
@property
|
||||||
|
def env(self):
|
||||||
|
return self.defaultEnv
|
||||||
|
|
||||||
|
@property
|
||||||
|
def defaultEnv(self):
|
||||||
|
return self.__env.defaultEnv
|
||||||
|
|
||||||
|
@property
|
||||||
|
def swigEnv(self):
|
||||||
|
return self.__env.swigEnv
|
||||||
|
|
||||||
|
@property
|
||||||
|
def srcDir(self):
|
||||||
|
return self.__env.srcDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def buildDir(self):
|
||||||
|
return self.__env.buildDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def binDir(self):
|
||||||
|
return self.__env.binDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libDir(self):
|
||||||
|
return self.__env.libDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libPyDir(self):
|
||||||
|
return self.__env.libPyDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def testDir(self):
|
||||||
|
return self.__env.testDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def etcDir(self):
|
||||||
|
return self.__env.etcDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isWindows(self):
|
||||||
|
return self.__env.isWindows
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isLinux(self):
|
||||||
|
return self.__env.isLinux
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isClean(self):
|
||||||
|
return self.__env.isClean
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
return self.__name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sources(self):
|
||||||
|
return self.__sources
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cppFlags(self):
|
||||||
|
return self.env['CPPFLAGS']
|
||||||
|
|
||||||
|
@property
|
||||||
|
def linkFlags(self):
|
||||||
|
return self.env['LINKFLAGS']
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cppDefines(self):
|
||||||
|
return self.env['CPPDEFINES'].copy()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def localSharedLibsNames(self):
|
||||||
|
return self.__localSharedLibs
|
||||||
|
|
||||||
|
@property
|
||||||
|
def externalLibs(self):
|
||||||
|
return self.__externalLibs
|
||||||
|
|
||||||
|
@property
|
||||||
|
def localDir(self):
|
||||||
|
return self.__localDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def externalLibsNames(self):
|
||||||
|
nameList = []
|
||||||
|
for externalLib in self.externalLibs:
|
||||||
|
nameList += externalLib.lib
|
||||||
|
return nameList
|
||||||
|
|
||||||
|
@property
|
||||||
|
def externalLibsPaths(self):
|
||||||
|
return [lib.libPath for lib in self.externalLibs if lib.libPath]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def externalLibsIncludes(self):
|
||||||
|
return [lib.include for lib in self.externalLibs if lib.include]
|
||||||
|
|
||||||
|
def absPath(self, path):
|
||||||
|
return os.path.abspath(path)
|
||||||
|
|
||||||
|
def dirName(self, path):
|
||||||
|
return os.path.dirname(path)
|
||||||
|
|
||||||
|
def join(self, *paths):
|
||||||
|
return os.path.join(*paths)
|
||||||
|
|
||||||
|
def isFile(self, fileNamePath):
|
||||||
|
return os.path.isfile(fileNamePath)
|
||||||
|
|
||||||
|
def clean(self, fileNamePath):
|
||||||
|
if not all([self.isClean, self.isFile(fileNamePath)]):
|
||||||
|
return
|
||||||
|
os.remove(fileNamePath)
|
||||||
|
print('Removed', fileNamePath)
|
||||||
|
|
||||||
|
def summary(self):
|
||||||
|
lstr = self.name + '\n'
|
||||||
|
return lstr
|
||||||
78
src/site_scons/localtargets/RunableTarget.py
Normal file
78
src/site_scons/localtargets/RunableTarget.py
Normal file
@@ -0,0 +1,78 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
from .LocalTarget import LocalTarget
|
||||||
|
|
||||||
|
|
||||||
|
class RunableTarget(LocalTarget):
|
||||||
|
|
||||||
|
def __init__(
|
||||||
|
self, env, name, sources, localStaticLibs, localSharedLibs, externalLibs
|
||||||
|
):
|
||||||
|
|
||||||
|
super(RunableTarget, self).__init__(
|
||||||
|
env, name, sources, localStaticLibs, localSharedLibs, externalLibs
|
||||||
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def scriptFileDir(self):
|
||||||
|
assert False
|
||||||
|
|
||||||
|
def getScriptFilePath(self):
|
||||||
|
import os
|
||||||
|
scriptFileDir = self.scriptFileDir
|
||||||
|
if not os.path.exists(scriptFileDir):
|
||||||
|
os.makedirs(scriptFileDir)
|
||||||
|
if self.isLinux:
|
||||||
|
return os.path.join(scriptFileDir, self.name) + '.sh'
|
||||||
|
elif self.isWindows:
|
||||||
|
return os.path.join(scriptFileDir, self.name) + '.exe.bat'
|
||||||
|
|
||||||
|
def _writeLinuxScript(self):
|
||||||
|
scriptPath = self.getScriptFilePath()
|
||||||
|
self.clean(scriptPath)
|
||||||
|
if all([not self.isClean, not self.isFile(scriptPath)]):
|
||||||
|
print('Writing', scriptPath)
|
||||||
|
with open(scriptPath, 'w') as f:
|
||||||
|
f.write(r'#!/bin/sh' + '\n')
|
||||||
|
f.write(r'SCRIPT=`realpath -s $0`' + '\n')
|
||||||
|
f.write(r'SCRIPTPATH=`dirname $SCRIPT`' + '\n')
|
||||||
|
f.write(
|
||||||
|
r'export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:' + self.libDir +
|
||||||
|
'\n'
|
||||||
|
)
|
||||||
|
f.write(r'$SCRIPTPATH/' + self.name + r' "$@"')
|
||||||
|
import os
|
||||||
|
os.system('chmod +x ' + scriptPath)
|
||||||
|
|
||||||
|
def _writeWindowsScript(self):
|
||||||
|
scriptPath = self.getScriptFilePath()
|
||||||
|
self.clean(scriptPath)
|
||||||
|
if all([not self.isClean, not self.isFile(scriptPath)]):
|
||||||
|
print('Writing', scriptPath)
|
||||||
|
with open(scriptPath, 'w') as f:
|
||||||
|
f.write(r'@echo off' + '\n')
|
||||||
|
f.write(r'setlocal' + '\n')
|
||||||
|
f.write(r'set scriptPath=%~dp0' + '\n')
|
||||||
|
f.write(r'PATH=$PATH;' + self.libDir + '\n')
|
||||||
|
f.write(r'%scriptPath%' + self.name + r' %*')
|
||||||
|
|
||||||
|
def writeScript(self):
|
||||||
|
if self.isLinux:
|
||||||
|
return self._writeLinuxScript()
|
||||||
|
elif self.isWindows:
|
||||||
|
return self._writeWindowsScript()
|
||||||
18
src/site_scons/localtargets/__init__.py
Normal file
18
src/site_scons/localtargets/__init__.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
from .Executable import Executable
|
||||||
95
src/site_scons/miscsetup/Architecture.py
Normal file
95
src/site_scons/miscsetup/Architecture.py
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import os
|
||||||
|
import platform
|
||||||
|
import sys
|
||||||
|
|
||||||
|
import SCons
|
||||||
|
|
||||||
|
|
||||||
|
class Architecture(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
|
||||||
|
self.__osName = platform.system()
|
||||||
|
self.__pythonVersion = platform.python_version()
|
||||||
|
self.__sconsVersion = SCons.__version__
|
||||||
|
|
||||||
|
if self.__osName not in self.supportedSystems:
|
||||||
|
raise RuntimeError('Unsupported OS architecture.')
|
||||||
|
|
||||||
|
self.__sysDirName = 'unknown'
|
||||||
|
if self.isLinux:
|
||||||
|
self.__sysDirName = 'linx64'
|
||||||
|
if not 'LD_LIBRARY_PATH' in os.environ:
|
||||||
|
os.environ['LD_LIBRARY_PATH'] = ''
|
||||||
|
elif self.isWindows:
|
||||||
|
self.__sysDirName = 'winx64'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def supportedSystems(self):
|
||||||
|
return ['Windows', 'Linux']
|
||||||
|
|
||||||
|
@property
|
||||||
|
def osName(self):
|
||||||
|
return self.__osName
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isWindows(self):
|
||||||
|
return self.osName == 'Windows'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isLinux(self):
|
||||||
|
return self.osName == 'Linux'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def pythonVersion(self):
|
||||||
|
return self.__pythonVersion
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sconsVersion(self):
|
||||||
|
return self.__sconsVersion
|
||||||
|
|
||||||
|
@property
|
||||||
|
def sysDirName(self):
|
||||||
|
return self.__sysDirName
|
||||||
|
|
||||||
|
def _getFormatedPaths(self, pathStr):
|
||||||
|
return str(pathStr.split(os.pathsep)).replace(', ', ',\n').replace(
|
||||||
|
'[', '[\n'
|
||||||
|
).replace(']', '\n]')
|
||||||
|
|
||||||
|
def summary(self):
|
||||||
|
lstr = '=' * 50 + '\n'
|
||||||
|
lstr += 'Architecture Summary\n'
|
||||||
|
lstr += '=' * 50 + '\n'
|
||||||
|
lstr += 'operating system: ' + self.osName + '\n'
|
||||||
|
lstr += 'python version: ' + self.pythonVersion + '\n'
|
||||||
|
lstr += 'scons version: ' + self.sconsVersion + '\n'
|
||||||
|
lstr += 'path: ' + \
|
||||||
|
self._getFormatedPaths(os.environ['PATH']) + '\n'
|
||||||
|
if self.isLinux:
|
||||||
|
lstr += 'LD_LIBRARY_PATH: ' + \
|
||||||
|
self._getFormatedPaths(os.environ['LD_LIBRARY_PATH']) + '\n'
|
||||||
|
if os.environ.get('PYTHONPATH'):
|
||||||
|
lstr += 'python path: ' + \
|
||||||
|
self._getFormatedPaths(os.environ['PYTHONPATH']) + '\n'
|
||||||
|
lstr += 'session python path: ' + \
|
||||||
|
self._getFormatedPaths(os.pathsep.join(sys.path)) + '\n'
|
||||||
|
lstr += '-' * 50 + '\n'
|
||||||
|
return lstr
|
||||||
66
src/site_scons/miscsetup/ArgumentsSetup.py
Normal file
66
src/site_scons/miscsetup/ArgumentsSetup.py
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
class ArgumentsSetup(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
|
||||||
|
from SCons.Script import ARGUMENTS, GetOption
|
||||||
|
|
||||||
|
self.__debugArg = ARGUMENTS.get('DEBUG', '1')
|
||||||
|
if self.__debugArg not in ['0', '1']:
|
||||||
|
raise RuntimeError('Check the DEBUG input argument.')
|
||||||
|
|
||||||
|
self.__assertArg = '1' if self.__debugArg == '1' else '0'
|
||||||
|
if self.__assertArg not in ['0', '1']:
|
||||||
|
raise RuntimeError('Check the ASSERT input argument.')
|
||||||
|
|
||||||
|
self.__compilerName = ARGUMENTS.get('COMPILER', '')
|
||||||
|
|
||||||
|
self.__isClean = GetOption('clean')
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isDebug(self):
|
||||||
|
return self.__debugArg == '1'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isAssert(self):
|
||||||
|
return self.__assertArg == '1'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def compilerName(self):
|
||||||
|
return self.__compilerName
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isClean(self):
|
||||||
|
return self.__isClean
|
||||||
|
|
||||||
|
def summary(self):
|
||||||
|
|
||||||
|
def printDefault(x):
|
||||||
|
return x if x else '-default-'
|
||||||
|
|
||||||
|
lstr = '=' * 50 + '\n'
|
||||||
|
lstr += 'Build Arguments Summary\n'
|
||||||
|
lstr += '=' * 50 + '\n'
|
||||||
|
lstr += 'debug: ' + str(self.isDebug) + '\n'
|
||||||
|
lstr += 'assert: ' + str(self.isAssert) + '\n'
|
||||||
|
lstr += 'compiler name: ' + printDefault(self.compilerName) + '\n'
|
||||||
|
lstr += 'clean build: ' + str(self.isClean) + '\n'
|
||||||
|
lstr += '-' * 50 + '\n'
|
||||||
|
return lstr
|
||||||
162
src/site_scons/miscsetup/BuildPath.py
Normal file
162
src/site_scons/miscsetup/BuildPath.py
Normal file
@@ -0,0 +1,162 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
class BuildPath(object):
|
||||||
|
|
||||||
|
def __init__(self, archObj, argObj):
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from SCons.Script import Dir
|
||||||
|
|
||||||
|
# main
|
||||||
|
self.__srcDir = Dir('#').abspath
|
||||||
|
|
||||||
|
self.__projectDir = os.path.abspath(os.path.join(self.__srcDir, '..'))
|
||||||
|
self.__runtimeDir = os.path.join(self.__projectDir, 'runtime')
|
||||||
|
self.__thirdpartyDir = os.path.join(self.__projectDir, 'thirdparty')
|
||||||
|
|
||||||
|
#assert os.path.exists(self.__runtimeDir)
|
||||||
|
#assert os.path.exists(self.__thirdpartyDir)
|
||||||
|
|
||||||
|
def _exist(path):
|
||||||
|
if not os.path.exists(path):
|
||||||
|
os.makedirs(path)
|
||||||
|
return path
|
||||||
|
|
||||||
|
# build variables
|
||||||
|
self.__buildDir = os.path.join(
|
||||||
|
self.__projectDir, 'build', archObj.sysDirName
|
||||||
|
)
|
||||||
|
self.__installDir = os.path.join(
|
||||||
|
self.__projectDir, 'install', archObj.sysDirName
|
||||||
|
)
|
||||||
|
|
||||||
|
self.__buildDir = _exist(self.__buildDir)
|
||||||
|
|
||||||
|
self.__binDir = _exist(os.path.join(self.__installDir, 'bin'))
|
||||||
|
self.__libDir = _exist(os.path.join(self.__installDir, 'lib'))
|
||||||
|
self.__libPyDir = _exist(os.path.join(self.__libDir, 'py'))
|
||||||
|
self.__testDir = _exist(os.path.join(self.__installDir, 'test'))
|
||||||
|
self.__etcDir = _exist(os.path.join(self.__installDir, 'etc'))
|
||||||
|
|
||||||
|
# lib
|
||||||
|
self.__runtimeArchDir = os.path.join(
|
||||||
|
self.__runtimeDir, archObj.sysDirName
|
||||||
|
)
|
||||||
|
#assert os.path.exists(self.__runtimeArchDir)
|
||||||
|
|
||||||
|
# thirdparty
|
||||||
|
__thirdpartyNoArchDir = os.path.join(self.__thirdpartyDir, 'noarch')
|
||||||
|
__thirdpartyArchDir = os.path.join(
|
||||||
|
self.__thirdpartyDir, archObj.sysDirName
|
||||||
|
)
|
||||||
|
|
||||||
|
self.__thirdpartyNoArchBinDir = os.path.join(
|
||||||
|
__thirdpartyNoArchDir, 'bin'
|
||||||
|
)
|
||||||
|
self.__thirdpartyArchBinDir = os.path.join(__thirdpartyArchDir, 'bin')
|
||||||
|
#assert os.path.exists(self.__thirdpartyNoArchBinDir)
|
||||||
|
#assert os.path.exists(self.__thirdpartyArchBinDir)
|
||||||
|
|
||||||
|
self.__thirdpartyNoArchIncludeDir = os.path.join(
|
||||||
|
__thirdpartyNoArchDir, 'include'
|
||||||
|
)
|
||||||
|
self.__thirdpartyArchIncludeDir = os.path.join(
|
||||||
|
__thirdpartyArchDir, 'include'
|
||||||
|
)
|
||||||
|
#assert os.path.exists(self.__thirdpartyNoArchIncludeDir)
|
||||||
|
#assert os.path.exists(self.__thirdpartyArchIncludeDir)
|
||||||
|
|
||||||
|
self.__thirdpartyNoArchLibDir = os.path.join(
|
||||||
|
__thirdpartyNoArchDir, 'lib'
|
||||||
|
)
|
||||||
|
self.__thirdpartyArchLibDir = os.path.join(__thirdpartyArchDir, 'lib')
|
||||||
|
#assert os.path.exists(self.__thirdpartyNoArchLibDir)
|
||||||
|
#assert os.path.exists(self.__thirdpartyArchLibDir)
|
||||||
|
|
||||||
|
self.__thirdpartyNoArchLibPyDir = os.path.join(
|
||||||
|
self.__thirdpartyNoArchLibDir, 'py'
|
||||||
|
)
|
||||||
|
#assert os.path.exists(self.__thirdpartyNoArchLibPyDir)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def projectDir(self):
|
||||||
|
return self.__projectDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def srcDir(self):
|
||||||
|
return self.__srcDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def buildDir(self):
|
||||||
|
return self.__buildDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def binDir(self):
|
||||||
|
return self.__binDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libDir(self):
|
||||||
|
return self.__libDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libPyDir(self):
|
||||||
|
return self.__libPyDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def testDir(self):
|
||||||
|
return self.__testDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def etcDir(self):
|
||||||
|
return self.__etcDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def runtimeArchDir(self):
|
||||||
|
return self.__runtimeArchDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def thirdpartyNoArchIncludeDir(self):
|
||||||
|
return self.__thirdpartyNoArchIncludeDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def thirdpartyArchIncludeDir(self):
|
||||||
|
return self.__thirdpartyArchIncludeDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def thirdpartyArchLibDir(self):
|
||||||
|
return self.__thirdpartyArchLibDir
|
||||||
|
|
||||||
|
def summary(self):
|
||||||
|
lstr = '=' * 50 + '\n'
|
||||||
|
lstr += 'Paths Summary\n'
|
||||||
|
lstr += '=' * 50 + '\n'
|
||||||
|
lstr += 'project: ' + self.projectDir + '\n'
|
||||||
|
lstr += 'build: ' + self.buildDir + '\n'
|
||||||
|
lstr += 'install bin: ' + self.binDir + '\n'
|
||||||
|
lstr += 'install lib: ' + self.libDir + '\n'
|
||||||
|
lstr += 'install py: ' + self.libPyDir + '\n'
|
||||||
|
lstr += 'install test: ' + self.testDir + '\n'
|
||||||
|
lstr += 'install etc: ' + self.etcDir + '\n'
|
||||||
|
lstr += 'runtime: ' + self.runtimeArchDir + '\n'
|
||||||
|
lstr += 'thirdparty noarch include: ' + self.thirdpartyNoArchIncludeDir + '\n'
|
||||||
|
lstr += 'thirdparty arch include: ' + self.thirdpartyArchIncludeDir + '\n'
|
||||||
|
lstr += 'thirdparty arch lib: ' + self.thirdpartyArchLibDir + '\n'
|
||||||
|
lstr += '-' * 50 + '\n'
|
||||||
|
return lstr
|
||||||
243
src/site_scons/miscsetup/CompilerSetup.py
Normal file
243
src/site_scons/miscsetup/CompilerSetup.py
Normal file
@@ -0,0 +1,243 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
class CompilerSetup(object):
|
||||||
|
|
||||||
|
def __init__(self, archObj, argObj):
|
||||||
|
|
||||||
|
self.__archObj = archObj
|
||||||
|
self.__argObj = argObj
|
||||||
|
|
||||||
|
self.__gccCom = 'gcc'
|
||||||
|
self.__intelCom = 'intel'
|
||||||
|
self.__clangCom = 'clang'
|
||||||
|
self.__msvcCom = 'msvc'
|
||||||
|
|
||||||
|
if archObj.isLinux:
|
||||||
|
self.__defaultCompiler = self.__gccCom
|
||||||
|
self.__compilers = {
|
||||||
|
self.__gccCom: ['gcc', 'g++'],
|
||||||
|
self.__intelCom: ['ic', 'icpc'],
|
||||||
|
self.__clangCom: ['clang', 'clang++']
|
||||||
|
}
|
||||||
|
elif archObj.isWindows:
|
||||||
|
self.__defaultCompiler = self.__msvcCom
|
||||||
|
self.__compilers = {
|
||||||
|
self.__msvcCom: ['cl', 'cl'],
|
||||||
|
self.__intelCom: ['ic', 'icpp'],
|
||||||
|
self.__clangCom: ['clang', 'clang++']
|
||||||
|
}
|
||||||
|
|
||||||
|
self.__compiler = argObj.compilerName if argObj.compilerName else \
|
||||||
|
self.__defaultCompiler
|
||||||
|
|
||||||
|
if self.__compiler not in self.__compilers:
|
||||||
|
raise RuntimeError('Check the COMPILER input argument.')
|
||||||
|
|
||||||
|
#
|
||||||
|
# widnows compilers
|
||||||
|
#
|
||||||
|
def _clang_windows(self):
|
||||||
|
return dict(
|
||||||
|
ccFlags=["-std=c++1z", '-fms-compatibility-version=21'],
|
||||||
|
optCFlags=["-O3"],
|
||||||
|
optLinkFlags=["-Wl,--export-dynamic"],
|
||||||
|
debugCFlags=[
|
||||||
|
"-O0", "-Wall", "-Wuninitialized", "-Wunused", "-Wconversion",
|
||||||
|
"-fpermissive"
|
||||||
|
],
|
||||||
|
debugLinkFlags=["-g"],
|
||||||
|
profileCFlags=["-g"],
|
||||||
|
profileLinkFlags=["-g"],
|
||||||
|
ompCFlags=["-fopenmp"],
|
||||||
|
ompLinkFlags=["-fopenmp"],
|
||||||
|
defFlagsStr="-D",
|
||||||
|
includeFlagsStr="-I"
|
||||||
|
)
|
||||||
|
|
||||||
|
def _intel_windows(self):
|
||||||
|
return dict(
|
||||||
|
ccFlags=["/MD", "/EHsc", "/Qvc10"],
|
||||||
|
optCFlags=[
|
||||||
|
"/O3", "/Qrestrict", "/Qprec-div-", "/Qvec-report0", "/Qip"
|
||||||
|
], # last not profile only
|
||||||
|
optLinkFlags=["/MANIFEST"],
|
||||||
|
debugCFlags=[
|
||||||
|
"/Zi", "/Qrestrict", "/Fd${TARGET}.pdb", "/Od", "/W3", "/Wcheck"
|
||||||
|
],
|
||||||
|
debugLinkFlags=["/debug"],
|
||||||
|
profileCFlags=["/Zi", "/Fd${TARGET}.pdb", "/Qprof-gen-"],
|
||||||
|
profileLinkFlags=["/debug"],
|
||||||
|
ompCFlags=["/Qopenmp"],
|
||||||
|
ompLinkFlags=[""],
|
||||||
|
defFlagsStr="/D",
|
||||||
|
includeFlagsStr="/I"
|
||||||
|
)
|
||||||
|
|
||||||
|
def _msvc_windows(self):
|
||||||
|
return dict(
|
||||||
|
ccFlags=["/MD", "/EHsc", "/wd4251"],
|
||||||
|
optCFlags=["/O2"],
|
||||||
|
optLinkFlags=["/MANIFEST"],
|
||||||
|
debugCFlags=["/Od", "/Zi", "/Fd${TARGET}.pdb", "/W3"],
|
||||||
|
debugLinkFlags=["/debug"],
|
||||||
|
profileCFlags=["/Zi", "/Fd${TARGET}.pdb"],
|
||||||
|
profileLinkFlags=["/debug"],
|
||||||
|
ompCFlags=["/openmp"],
|
||||||
|
ompLinkFlags=[""],
|
||||||
|
defFlagsStr="/D",
|
||||||
|
includeFlagsStr="/I"
|
||||||
|
)
|
||||||
|
|
||||||
|
#
|
||||||
|
# linux compilers
|
||||||
|
#
|
||||||
|
def _clang_linux(self):
|
||||||
|
return dict(
|
||||||
|
ccFlags=["-std=c++1z"],
|
||||||
|
optCFlags=["-O3"],
|
||||||
|
optLinkFlags=["-Wl,--export-dynamic"],
|
||||||
|
debugCFlags=[
|
||||||
|
"-g", "-O0", "-Wall", "-Wuninitialized", "-Wunused",
|
||||||
|
"-Wconversion", "-fpermissive"
|
||||||
|
],
|
||||||
|
debugLinkFlags=["-g"],
|
||||||
|
profileCFlags=["-g"],
|
||||||
|
profileLinkFlags=["-g"],
|
||||||
|
ompCFlags=["-fopenmp"],
|
||||||
|
ompLinkFlags=["-fopenmp"],
|
||||||
|
defFlagsStr="-D",
|
||||||
|
includeFlagsStr="-I"
|
||||||
|
)
|
||||||
|
|
||||||
|
def _intel_linux(self):
|
||||||
|
return dict(
|
||||||
|
ccFlags=["-Wcheck"],
|
||||||
|
optCFlags=["-O3", "-no-prec-div", "-ip", "-qopt-report"],
|
||||||
|
optLinkFlags=["-O3"],
|
||||||
|
debugCFlags=["-g", "-O0", "-Wall"],
|
||||||
|
debugLinkFlags=["-g", "-O0"],
|
||||||
|
profileCFlags=["-g"],
|
||||||
|
profileLinkFlags=["-g"],
|
||||||
|
ompCFlags=["-openmp"],
|
||||||
|
ompLinkFlags=["-openmp"],
|
||||||
|
defFlagsStr="-D",
|
||||||
|
includeFlagsStr="-I"
|
||||||
|
)
|
||||||
|
|
||||||
|
def _gcc_linux(self):
|
||||||
|
return dict(
|
||||||
|
ccFlags=["-std=c++1z"],
|
||||||
|
optCFlags=["-O3"],
|
||||||
|
optLinkFlags=["-Wl,--export-dynamic"],
|
||||||
|
debugCFlags=[
|
||||||
|
"-g", "-O0", "-Wall", "-Wuninitialized", "-Wunused",
|
||||||
|
"-Wconversion", "-fpermissive", "-Wimplicit-fallthrough"
|
||||||
|
],
|
||||||
|
debugLinkFlags=["-g"],
|
||||||
|
profileCFlags=["-g"],
|
||||||
|
profileLinkFlags=["-g"],
|
||||||
|
ompCFlags=["-fopenmp"],
|
||||||
|
ompLinkFlags=["-fopenmp"],
|
||||||
|
defFlagsStr="-D",
|
||||||
|
includeFlagsStr="-I"
|
||||||
|
)
|
||||||
|
|
||||||
|
def _arch_compiler_flags(self):
|
||||||
|
if self.__archObj.isLinux:
|
||||||
|
if self.__compiler == self.__gccCom:
|
||||||
|
return self._gcc_linux()
|
||||||
|
elif self.__compiler == self.__intelCom:
|
||||||
|
return self._intel_linux()
|
||||||
|
elif self.__compiler == self.__clangCom:
|
||||||
|
return self._clang_linux()
|
||||||
|
elif self.__archObj.isWindows:
|
||||||
|
retDict = None
|
||||||
|
if self.__compiler == self.__msvcCom:
|
||||||
|
retDict = self._msvc_windows()
|
||||||
|
elif self.__compiler == self.__intelCom:
|
||||||
|
retDict = self._intel_windows()
|
||||||
|
elif self.__compiler == self.__clangCom:
|
||||||
|
retDict = self._clang_windows()
|
||||||
|
return retDict
|
||||||
|
|
||||||
|
@property
|
||||||
|
def compilers(self):
|
||||||
|
return self.__compilers
|
||||||
|
|
||||||
|
@property
|
||||||
|
def defaultCompiler(self):
|
||||||
|
return self.__defaultCompiler
|
||||||
|
|
||||||
|
@property
|
||||||
|
def compiler(self):
|
||||||
|
return self.__compiler
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cCompiler(self):
|
||||||
|
return self.__compilers[self.compiler][0]
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cppCompiler(self):
|
||||||
|
return self.__compilers[self.compiler][1]
|
||||||
|
|
||||||
|
def getFlags(self):
|
||||||
|
__buildFlags = []
|
||||||
|
__linkFlags = []
|
||||||
|
|
||||||
|
__archFlags = self._arch_compiler_flags()
|
||||||
|
__buildFlags += __archFlags['ccFlags']
|
||||||
|
|
||||||
|
if self.__argObj.isDebug:
|
||||||
|
__buildFlags += __archFlags['debugCFlags']
|
||||||
|
__linkFlags += __archFlags['debugLinkFlags']
|
||||||
|
else:
|
||||||
|
__buildFlags += __archFlags['optCFlags']
|
||||||
|
__linkFlags += __archFlags['optLinkFlags']
|
||||||
|
|
||||||
|
__localDefs = {}
|
||||||
|
|
||||||
|
if not self.__argObj.isAssert:
|
||||||
|
__localDefs['NDEBUG'] = None
|
||||||
|
|
||||||
|
if self.__archObj.isWindows:
|
||||||
|
#__localDefs['BOOST_LIB_TOOLSET'] = 'vc141'
|
||||||
|
__localDefs['BOOST_ALL_DYN_LINK'] = None
|
||||||
|
#__localDefs['BOOST_LIB_DIAGNOSTIC'] = None
|
||||||
|
|
||||||
|
return dict(
|
||||||
|
buildFlags=__buildFlags,
|
||||||
|
linkFlags=__linkFlags,
|
||||||
|
localDefs=__localDefs,
|
||||||
|
defFlagsStr=__archFlags['defFlagsStr'],
|
||||||
|
includeFlagsStr=__archFlags['includeFlagsStr']
|
||||||
|
)
|
||||||
|
|
||||||
|
def summary(self):
|
||||||
|
__archFlags = self.getFlags()
|
||||||
|
lstr = '=' * 50 + '\n'
|
||||||
|
lstr += 'Compiler Configuration Summary\n'
|
||||||
|
lstr += '=' * 50 + '\n'
|
||||||
|
lstr += 'system compilers: ' + str(self.compilers) + '\n'
|
||||||
|
lstr += 'default compiler: ' + self.defaultCompiler + '\n'
|
||||||
|
lstr += 'selected compiler: ' + self.compiler + '\n'
|
||||||
|
lstr += 'build flags: ' + str(__archFlags['buildFlags']) + '\n'
|
||||||
|
lstr += 'link flags: ' + str(__archFlags['linkFlags']) + '\n'
|
||||||
|
lstr += 'def flags: ' + str(__archFlags['localDefs']) + '\n'
|
||||||
|
lstr += '-' * 50 + '\n'
|
||||||
|
return lstr
|
||||||
253
src/site_scons/miscsetup/CustomBuildEnvironment.py
Normal file
253
src/site_scons/miscsetup/CustomBuildEnvironment.py
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from SCons.Script import (Environment, Alias, Default, VariantDir, SConscript)
|
||||||
|
|
||||||
|
from localtargets import Executable as LocalExecutable
|
||||||
|
|
||||||
|
|
||||||
|
class CustomBuildEnvironment(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
|
||||||
|
from .Architecture import Architecture
|
||||||
|
from .ArgumentsSetup import ArgumentsSetup
|
||||||
|
from .CompilerSetup import CompilerSetup
|
||||||
|
from .BuildPath import BuildPath
|
||||||
|
from .NamedObjectTable import NamedObjectTable
|
||||||
|
|
||||||
|
self.__archConfig = Architecture()
|
||||||
|
self.__argumentsConfig = ArgumentsSetup()
|
||||||
|
self.__compilerConfig = CompilerSetup(
|
||||||
|
self.__archConfig, self.__argumentsConfig
|
||||||
|
)
|
||||||
|
self.__pathConfig = BuildPath(self.__archConfig, self.__argumentsConfig)
|
||||||
|
|
||||||
|
additionalEnv = dict(
|
||||||
|
tools=[
|
||||||
|
'default',
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
self.__defaultEnv = Environment(ENV=os.environ, **additionalEnv)
|
||||||
|
|
||||||
|
buildAndLinkFlags = self.__compilerConfig.getFlags()
|
||||||
|
|
||||||
|
self.__defaultEnv.Replace(
|
||||||
|
CC=self.__compilerConfig.cCompiler,
|
||||||
|
CXX=self.__compilerConfig.cppCompiler
|
||||||
|
)
|
||||||
|
self.__defaultEnv['CPPFLAGS'] = buildAndLinkFlags['buildFlags']
|
||||||
|
self.__defaultEnv['LINKFLAGS'] = buildAndLinkFlags['linkFlags']
|
||||||
|
self.__defaultEnv['CPPDEFINES'] = buildAndLinkFlags['localDefs']
|
||||||
|
self.__defaultEnv['CPPDEFPREFIX'] = buildAndLinkFlags['defFlagsStr']
|
||||||
|
self.__defaultEnv['INCPREFIX'] = buildAndLinkFlags['includeFlagsStr']
|
||||||
|
self.__defaultEnv['CPPPATH'] = [
|
||||||
|
self.__pathConfig.srcDir,
|
||||||
|
self.__pathConfig.thirdpartyNoArchIncludeDir,
|
||||||
|
self.__pathConfig.thirdpartyArchIncludeDir,
|
||||||
|
]
|
||||||
|
self.__defaultEnv['LIBPATH'] = [self.__pathConfig.libDir]
|
||||||
|
'''
|
||||||
|
self.__defaultEnv['_MSVC_OUTPUT_FLAG'] = '-o $TARGET'
|
||||||
|
self.__defaultEnv['CCCOM'] = self.__defaultEnv['CCCOM'].replace('/c', '-c')
|
||||||
|
self.__defaultEnv['CXXCOM'] = self.__defaultEnv['CXXCOM'].replace('/c', '-c')
|
||||||
|
self.__defaultEnv['SHCCCOM'] = self.__defaultEnv['SHCCCOM'].replace('/c', '-c')
|
||||||
|
self.__defaultEnv['SHCXXCOM'] = self.__defaultEnv['SHCXXCOM'].replace('/c', '-c')
|
||||||
|
self.__defaultEnv['CCFLAGS'].remove('/nologo')
|
||||||
|
self.__defaultEnv['CXXFLAGS'].remove('/TP')
|
||||||
|
'''
|
||||||
|
|
||||||
|
Alias('installBin', self.__pathConfig.binDir)
|
||||||
|
Alias('installLib', self.__pathConfig.libDir)
|
||||||
|
Alias('installLibPy', self.__pathConfig.libPyDir)
|
||||||
|
Alias('installTest', self.__pathConfig.testDir)
|
||||||
|
Alias('installEtc', self.__pathConfig.etcDir)
|
||||||
|
|
||||||
|
Alias(
|
||||||
|
'install', [
|
||||||
|
'installBin', 'installLib', 'installLibPy',
|
||||||
|
'installTest', 'installEtc'
|
||||||
|
]
|
||||||
|
)
|
||||||
|
|
||||||
|
Default('install')
|
||||||
|
|
||||||
|
'''
|
||||||
|
open('defaultEnv.txt', 'w').write(self.__defaultEnv.Dump())
|
||||||
|
'''
|
||||||
|
|
||||||
|
self.__localTargets = {
|
||||||
|
name: NamedObjectTable(tableName=title)
|
||||||
|
for name, title in [
|
||||||
|
('program', 'Programs'),
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
if self.isLinux:
|
||||||
|
pass #self.defaultEnv.Install(self.libDir, self.runtimeArchDir)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def SConscript(self):
|
||||||
|
return 'SConscript'
|
||||||
|
|
||||||
|
@property
|
||||||
|
def defaultEnv(self):
|
||||||
|
return self.__defaultEnv
|
||||||
|
|
||||||
|
@property
|
||||||
|
def swigEnv(self):
|
||||||
|
return self.__swigEnv
|
||||||
|
|
||||||
|
@property
|
||||||
|
def srcDir(self):
|
||||||
|
return self.__pathConfig.srcDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def startDir(self):
|
||||||
|
return self.__pathConfig.startDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cppDir(self):
|
||||||
|
return self.__pathConfig.cppDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def buildDir(self):
|
||||||
|
return self.__pathConfig.buildDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def binDir(self):
|
||||||
|
return self.__pathConfig.binDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libDir(self):
|
||||||
|
return self.__pathConfig.libDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def libPyDir(self):
|
||||||
|
return self.__pathConfig.libPyDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def testDir(self):
|
||||||
|
return self.__pathConfig.testDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def etcDir(self):
|
||||||
|
return self.__pathConfig.etcDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def runtimeArchDir(self):
|
||||||
|
return self.__pathConfig.runtimeArchDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def thirdpartyArchLibDir(self):
|
||||||
|
return self.__pathConfig.thirdpartyArchLibDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def thirdpartyLibsPyDir(self):
|
||||||
|
return self.__pathConfig.thirdpartyLibsPyDir
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isWindows(self):
|
||||||
|
return self.__archConfig.isWindows
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isLinux(self):
|
||||||
|
return self.__archConfig.isLinux
|
||||||
|
|
||||||
|
@property
|
||||||
|
def isClean(self):
|
||||||
|
return self.__argumentsConfig.isClean
|
||||||
|
|
||||||
|
def _checkSources(self, sources, isShared=False):
|
||||||
|
|
||||||
|
if isinstance(sources, str):
|
||||||
|
sources = [sources]
|
||||||
|
|
||||||
|
assert isinstance(sources, list)
|
||||||
|
|
||||||
|
# sources = list(set(sources))
|
||||||
|
newSources = []
|
||||||
|
for src in sources:
|
||||||
|
if '.proto' in src:
|
||||||
|
protoObj = self.__localTargets['proto'].get(
|
||||||
|
[src.replace('.proto', '')]
|
||||||
|
)[0]
|
||||||
|
for ccSrc in protoObj.getCC():
|
||||||
|
newSources.append(
|
||||||
|
self.defaultEnv.SharedObject(ccSrc)
|
||||||
|
if isShared else self.defaultEnv.Object(ccSrc)
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
newSources.append(src)
|
||||||
|
|
||||||
|
return newSources
|
||||||
|
|
||||||
|
def program(
|
||||||
|
self,
|
||||||
|
targetName,
|
||||||
|
sources,
|
||||||
|
localStaticLibs=[],
|
||||||
|
localSharedLibs=[],
|
||||||
|
externalLibs=[],
|
||||||
|
isBin=False
|
||||||
|
):
|
||||||
|
sources = self._checkSources(sources)
|
||||||
|
progObj = LocalExecutable(
|
||||||
|
env=self,
|
||||||
|
name=targetName,
|
||||||
|
sources=sources,
|
||||||
|
localStaticLibs=localStaticLibs,
|
||||||
|
localSharedLibs=localSharedLibs,
|
||||||
|
externalLibs=[],#self.__externalLibTable.get(externalLibs),
|
||||||
|
isBin=isBin
|
||||||
|
)
|
||||||
|
self.__localTargets['program'].register(progObj)
|
||||||
|
return progObj
|
||||||
|
|
||||||
|
def _buildSConscript(self):
|
||||||
|
|
||||||
|
def _getRootList():
|
||||||
|
for root, _, files in os.walk(self.srcDir):
|
||||||
|
if self.SConscript in files:
|
||||||
|
yield root.replace(self.srcDir, self.buildDir)
|
||||||
|
|
||||||
|
for root in _getRootList():
|
||||||
|
SConscript(
|
||||||
|
os.path.join(root, self.SConscript), exports={
|
||||||
|
'env': self
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
def build(self):
|
||||||
|
|
||||||
|
VariantDir(variant_dir=self.buildDir, src_dir=self.srcDir, duplicate=0)
|
||||||
|
|
||||||
|
self._buildSConscript()
|
||||||
|
|
||||||
|
print(self.summary())
|
||||||
|
|
||||||
|
def summary(self):
|
||||||
|
lstr = self.__archConfig.summary()
|
||||||
|
lstr += self.__argumentsConfig.summary()
|
||||||
|
lstr += self.__compilerConfig.summary()
|
||||||
|
lstr += self.__pathConfig.summary()
|
||||||
|
for name in sorted(list(self.__localTargets.keys())):
|
||||||
|
lstr += self.__localTargets[name].summary()
|
||||||
|
return lstr
|
||||||
52
src/site_scons/miscsetup/NamedObjectTable.py
Normal file
52
src/site_scons/miscsetup/NamedObjectTable.py
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
class NamedObjectTable(object):
|
||||||
|
|
||||||
|
def __init__(self, tableName):
|
||||||
|
self.__name = tableName
|
||||||
|
|
||||||
|
self.__list = {}
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self):
|
||||||
|
return self.__name
|
||||||
|
|
||||||
|
def register(self, namedObj):
|
||||||
|
self.__list[namedObj.name] = namedObj
|
||||||
|
|
||||||
|
def get(self, objNames):
|
||||||
|
keys = list(self.__list.keys())
|
||||||
|
namedObjs = []
|
||||||
|
for objName in objNames:
|
||||||
|
if objName in keys:
|
||||||
|
namedObjs.append(self.__list[objName])
|
||||||
|
else:
|
||||||
|
raise RuntimeError('Unknown ' + self.name + ': ' + objName)
|
||||||
|
return namedObjs
|
||||||
|
|
||||||
|
def iterObjects(self):
|
||||||
|
return iter(list(self.__list.values()))
|
||||||
|
|
||||||
|
def summary(self):
|
||||||
|
lstr = '=' * 50 + '\n'
|
||||||
|
lstr += self.name + ' Summary\n'
|
||||||
|
lstr += '=' * 50 + '\n'
|
||||||
|
for namedObj in list(self.__list.values()):
|
||||||
|
lstr += namedObj.summary() + '-' * 50 + '\n'
|
||||||
|
return lstr
|
||||||
18
src/site_scons/miscsetup/__init__.py
Normal file
18
src/site_scons/miscsetup/__init__.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
from .CustomBuildEnvironment import CustomBuildEnvironment
|
||||||
16
src/site_scons/site_init.py
Normal file
16
src/site_scons/site_init.py
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
22
src/structural/SConscript
Normal file
22
src/structural/SConscript
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
#
|
||||||
|
# This file is part of cpp-patterns.
|
||||||
|
#
|
||||||
|
# cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
|
# (at your option) any later version.
|
||||||
|
#
|
||||||
|
# cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
#
|
||||||
|
|
||||||
|
Import('env')
|
||||||
|
|
||||||
|
env.program(targetName='decoratorEx',
|
||||||
|
sources=['decorator/decorator.cpp'],
|
||||||
|
localSharedLibs=[])
|
||||||
50
src/structural/decorator/Command.hpp
Normal file
50
src/structural/decorator/Command.hpp
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of cpp-patterns.
|
||||||
|
*
|
||||||
|
* cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SRC_STRUCTURAL_DECORATOR_COMMAND_HPP_
|
||||||
|
#define SRC_STRUCTURAL_DECORATOR_COMMAND_HPP_
|
||||||
|
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
namespace structural {
|
||||||
|
|
||||||
|
namespace decorator {
|
||||||
|
|
||||||
|
struct Command {
|
||||||
|
virtual ~Command() = default;
|
||||||
|
|
||||||
|
virtual void execute() const = 0;
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
static Command* generate(Command* p = nullptr)
|
||||||
|
{
|
||||||
|
return p ? p : new T();
|
||||||
|
}
|
||||||
|
|
||||||
|
template <class D, class... Types>
|
||||||
|
static std::enable_if_t<sizeof...(Types) >= 1, Command*> generate(
|
||||||
|
Command* p = nullptr)
|
||||||
|
{
|
||||||
|
return new D(generate<Types...>(p));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace decorator
|
||||||
|
|
||||||
|
} // namespace structural
|
||||||
|
|
||||||
|
#endif // SRC_STRUCTURAL_DECORATOR_COMMAND_HPP_
|
||||||
54
src/structural/decorator/Decorator.hpp
Normal file
54
src/structural/decorator/Decorator.hpp
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of cpp-patterns.
|
||||||
|
*
|
||||||
|
* cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SRC_STRUCTURAL_DECORATOR_DECORATOR_HPP_
|
||||||
|
#define SRC_STRUCTURAL_DECORATOR_DECORATOR_HPP_
|
||||||
|
|
||||||
|
#include "Command.hpp"
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
namespace structural {
|
||||||
|
|
||||||
|
namespace decorator {
|
||||||
|
|
||||||
|
class Decorator : public Command {
|
||||||
|
public:
|
||||||
|
Decorator(const Command* const p) : m_p(p) {}
|
||||||
|
|
||||||
|
virtual ~Decorator() = default;
|
||||||
|
|
||||||
|
virtual void execute() const override final
|
||||||
|
{
|
||||||
|
this->decorateBefore();
|
||||||
|
m_p->execute();
|
||||||
|
this->decorateAfter();
|
||||||
|
}
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void decorateBefore() const = 0;
|
||||||
|
virtual void decorateAfter() const = 0;
|
||||||
|
|
||||||
|
private:
|
||||||
|
const std::unique_ptr<const Command> m_p;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace decorator
|
||||||
|
|
||||||
|
} // namespace structural
|
||||||
|
|
||||||
|
#endif // SRC_STRUCTURAL_DECORATOR_DECORATOR_HPP_
|
||||||
51
src/structural/decorator/Decorators.hpp
Normal file
51
src/structural/decorator/Decorators.hpp
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of cpp-patterns.
|
||||||
|
*
|
||||||
|
* cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef SRC_STRUCTURAL_DECORATOR_DECORATORS_HPP_
|
||||||
|
#define SRC_STRUCTURAL_DECORATOR_DECORATORS_HPP_
|
||||||
|
|
||||||
|
#include "Decorator.hpp"
|
||||||
|
|
||||||
|
namespace structural {
|
||||||
|
|
||||||
|
namespace decorator {
|
||||||
|
|
||||||
|
class BeforeDecorator : public Decorator {
|
||||||
|
public:
|
||||||
|
BeforeDecorator(const Command* const p) : Decorator(p) {}
|
||||||
|
|
||||||
|
virtual ~BeforeDecorator() = default;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void decorateAfter() const override final {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class AfterDecorator : public Decorator {
|
||||||
|
public:
|
||||||
|
AfterDecorator(const Command* const p) : Decorator(p) {}
|
||||||
|
|
||||||
|
virtual ~AfterDecorator() = default;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void decorateBefore() const override final {}
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace decorator
|
||||||
|
|
||||||
|
} // namespace structural
|
||||||
|
|
||||||
|
#endif // SRC_STRUCTURAL_DECORATOR_DECORATORS_HPP_
|
||||||
120
src/structural/decorator/decorator.cpp
Normal file
120
src/structural/decorator/decorator.cpp
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of cpp-patterns.
|
||||||
|
*
|
||||||
|
* cpp-patterns is free software: you can redistribute it and/or modify
|
||||||
|
* it under the terms of the GNU General Public License as published by
|
||||||
|
* the Free Software Foundation, either version 3 of the License, or
|
||||||
|
* (at your option) any later version.
|
||||||
|
*
|
||||||
|
* cpp-patterns is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
* GNU General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU General Public License
|
||||||
|
* along with cpp-patterns. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Decorators.hpp"
|
||||||
|
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
class DecoratorA : public structural::decorator::BeforeDecorator {
|
||||||
|
public:
|
||||||
|
DecoratorA(const structural::decorator::Command* const p)
|
||||||
|
: structural::decorator::BeforeDecorator(p)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~DecoratorA() { std::cout << "destroying DecoratorA\n"; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void decorateBefore() const override
|
||||||
|
{
|
||||||
|
std::cout << "DecoratorA::decorateBefore()\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class DecoratorB : public structural::decorator::AfterDecorator {
|
||||||
|
public:
|
||||||
|
DecoratorB(const structural::decorator::Command* const p)
|
||||||
|
: structural::decorator::AfterDecorator(p)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~DecoratorB() { std::cout << "destroying DecoratorB\n"; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void decorateAfter() const override
|
||||||
|
{
|
||||||
|
std::cout << "DecoratorB::decorateAfter()\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class DecoratorC : public structural::decorator::AfterDecorator {
|
||||||
|
public:
|
||||||
|
DecoratorC(const structural::decorator::Command* const p)
|
||||||
|
: structural::decorator::AfterDecorator(p)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~DecoratorC() { std::cout << "destroying DecoratorC\n"; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void decorateAfter() const override
|
||||||
|
{
|
||||||
|
std::cout << "DecoratorC::decorateAfter()\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class DecoratorD : public structural::decorator::BeforeDecorator {
|
||||||
|
public:
|
||||||
|
DecoratorD(const structural::decorator::Command* const p)
|
||||||
|
: structural::decorator::BeforeDecorator(p)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
virtual ~DecoratorD() { std::cout << "destroying DecoratorD\n"; }
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void decorateBefore() const override
|
||||||
|
{
|
||||||
|
std::cout << "DecoratorD::decorateBefore()\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
struct CommandA : public structural::decorator::Command {
|
||||||
|
CommandA() = default;
|
||||||
|
|
||||||
|
virtual ~CommandA() = default;
|
||||||
|
|
||||||
|
virtual void execute() const override
|
||||||
|
{
|
||||||
|
std::cout << "CommandA::execute()\n";
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
int
|
||||||
|
main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
// auto a = structural::decorator::Command::generate<DecoratorA, CommandA>();
|
||||||
|
auto af = structural::decorator::Command::
|
||||||
|
generate<DecoratorB, DecoratorD, DecoratorA, DecoratorC, CommandA>();
|
||||||
|
// auto ag = structural::decorator::Command::generate<DecoratorB, DecoratorD,
|
||||||
|
// DecoratorA, DecoratorC, CommandA>(af); auto ak =
|
||||||
|
// structural::decorator::Command::generate<DecoratorB, DecoratorD,
|
||||||
|
// DecoratorA, DecoratorC, DecoratorB, DecoratorD, DecoratorA, DecoratorC,
|
||||||
|
// CommandA>();
|
||||||
|
|
||||||
|
std::cout << "----------------------\n";
|
||||||
|
// a->execute();
|
||||||
|
af->execute();
|
||||||
|
// ag->execute();
|
||||||
|
// ak->execute();
|
||||||
|
|
||||||
|
std::cout << "----------------------\n";
|
||||||
|
// delete a;
|
||||||
|
delete af;
|
||||||
|
// delete ak;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user