diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..b8a2515 --- /dev/null +++ b/.clang-format @@ -0,0 +1,158 @@ +# clang-format configuration applied to all source files in this project. +# Requires clang-format version 10.0.0 or newer. +--- +Language: Cpp +BasedOnStyle: Google +AccessModifierOffset: -1 +AlignAfterOpenBracket: AlwaysBreak +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignConsecutiveMacros: true +AlignEscapedNewlines: Left +AlignOperands: true +AlignTrailingComments: true +AllowAllArgumentsOnNextLine: true +AllowAllConstructorInitializersOnNextLine: true +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: false +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: Inline +AllowShortLambdasOnASingleLine: All +AllowShortIfStatementsOnASingleLine: Never +AllowShortLoopsOnASingleLine: true +AlwaysBreakAfterDefinitionReturnType: None +AlwaysBreakAfterReturnType: None +AlwaysBreakBeforeMultilineStrings: false +AlwaysBreakTemplateDeclarations: Yes +BinPackArguments: false +BinPackParameters: false +BraceWrapping: + AfterCaseLabel: false + AfterClass: false + AfterControlStatement: true + AfterEnum: false + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: true + AfterUnion: false + AfterExternBlock: false + BeforeCatch: true + BeforeElse: true + IndentBraces: false + SplitEmptyFunction: true + SplitEmptyRecord: true + SplitEmptyNamespace: true +BreakBeforeBinaryOperators: None +BreakBeforeBraces: Allman +BreakBeforeInheritanceComma: false +BreakInheritanceList: BeforeColon +BreakBeforeTernaryOperators: true +BreakConstructorInitializersBeforeComma: false +BreakConstructorInitializers: BeforeColon +BreakAfterJavaFieldAnnotations: false +BreakStringLiterals: true +ColumnLimit: 80 +CommentPragmas: '^ IWYU pragma:' +CompactNamespaces: false +ConstructorInitializerAllOnOneLineOrOnePerLine: true +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +Cpp11BracedListStyle: true +DerivePointerAlignment: true +DisableFormat: false +ExperimentalAutoDetectBinPacking: false +FixNamespaceComments: true +IncludeBlocks: Preserve +IncludeCategories: + - Regex: '^' + Priority: 2 + - Regex: '^<.*\.h>' + Priority: 1 + - Regex: '^<.*' + Priority: 2 + - Regex: '.*' + Priority: 3 +IncludeIsMainRegex: '([-_](test|unittest))?$' +IndentCaseLabels: false +IndentPPDirectives: None +IndentWidth: 2 +IndentWrappedFunctionNames: false +JavaScriptQuotes: Leave +JavaScriptWrapImports: true +KeepEmptyLinesAtTheStartOfBlocks: false +MacroBlockBegin: "^\ +begin_declarations|\ +begin_struct.*$" +MacroBlockEnd: "^\ +end_declarations|\ +end_struct.*$" +MaxEmptyLinesToKeep: 1 +NamespaceIndentation: None +ObjCBinPackProtocolList: Never +ObjCBlockIndentWidth: 2 +ObjCSpaceAfterProperty: false +ObjCSpaceBeforeProtocolList: true +PenaltyBreakAssignment: 100 +PenaltyBreakBeforeFirstCallParameter: 1 +PenaltyBreakComment: 300 +PenaltyBreakFirstLessLess: 120 +PenaltyBreakString: 1000 +PenaltyBreakTemplateDeclaration: 10 +PenaltyExcessCharacter: 1000000 +PenaltyReturnTypeOnItsOwnLine: 1000 +PointerAlignment: Left +RawStringFormats: + - Language: Cpp + Delimiters: + - cc + - CC + - cpp + - Cpp + - CPP + - 'c++' + - 'C++' + CanonicalDelimiter: '' + BasedOnStyle: google + - Language: TextProto + Delimiters: + - pb + - PB + - proto + - PROTO + EnclosingFunctions: + - EqualsProto + - EquivToProto + - PARSE_PARTIAL_TEXT_PROTO + - PARSE_TEST_PROTO + - PARSE_TEXT_PROTO + - ParseTextOrDie + - ParseTextProtoOrDie + CanonicalDelimiter: '' + BasedOnStyle: google +ReflowComments: true +SortIncludes: true +SortUsingDeclarations: true +SpaceAfterCStyleCast: true +SpaceAfterLogicalNot: false +SpaceAfterTemplateKeyword: true +SpaceBeforeAssignmentOperators: true +SpaceBeforeCpp11BracedList: false +SpaceBeforeCtorInitializerColon: true +SpaceBeforeInheritanceColon: true +SpaceBeforeParens: ControlStatements +SpaceBeforeRangeBasedForLoopColon: true +SpaceInEmptyParentheses: false +SpacesBeforeTrailingComments: 2 +SpacesInAngles: false +SpacesInContainerLiterals: true +SpacesInCStyleCastParentheses: false +SpacesInParentheses: false +SpacesInSquareBrackets: false +Standard: Auto +StatementMacros: + - Q_UNUSED + - QT_REQUIRE_VERSION +TabWidth: 8 +UseTab: Never +... diff --git a/.gitignore b/.gitignore index 46f42f8..e8dc68d 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,5 @@ install_manifest.txt compile_commands.json CTestTestfile.cmake _deps +build +bin \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..62b2645 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,37 @@ +# Minimum CMake required +cmake_minimum_required(VERSION 3.11) + +# Project +project(mineziper LANGUAGES C VERSION 1.0.0) + +# Opions +option(BUILD_TESTS "Build test programs" OFF) +#option(INSTALL_TTDDLL "Try to find and install ttd dll from Windbg Preview install folder" OFF) + +# Config +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +set(CMAKE_POSITION_INDEPENDENT_CODE ON) + +SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) +SET(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) + +# Add cmake folder for +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake") + +# The yarattd library +add_subdirectory(libmineziper) + +# The mineziper executable program +add_subdirectory(mineziper) + +# Tests +if(BUILD_TESTS) + add_subdirectory(tests) +endif(BUILD_TESTS) + +# Summary +message(STATUS "Configuration summary") +message(STATUS "Project name : ${PROJECT_NAME}") +message(STATUS "Project version : ${PROJECT_VERSION}") +message(STATUS "Build Tests : ${BUILD_TESTS}") diff --git a/libmineziper/CMakeLists.txt b/libmineziper/CMakeLists.txt new file mode 100644 index 0000000..fd7dc47 --- /dev/null +++ b/libmineziper/CMakeLists.txt @@ -0,0 +1,20 @@ +set(libmineziper_STATIC_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src) +set(libmineziper_STATIC_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/include) + +# mineziper sources +set(libmineziper_SRC + ${libmineziper_STATIC_SRC}/libmineziper.c +) + +set(libmineziper_INCLUDE + ${libmineziper_STATIC_INCLUDE}/libmineziper.h +) + +# Create static library +add_library(libmineziper STATIC ${libmineziper_SRC} ${libmineziper_INCLUDE}) + +# Include directories management +target_include_directories( + libmineziper + PUBLIC $ $ +) \ No newline at end of file diff --git a/libmineziper/include/libmineziper.h b/libmineziper/include/libmineziper.h new file mode 100644 index 0000000..e69de29 diff --git a/libmineziper/src/libmineziper.c b/libmineziper/src/libmineziper.c new file mode 100644 index 0000000..e69de29 diff --git a/mineziper/CMakeLists.txt b/mineziper/CMakeLists.txt new file mode 100644 index 0000000..3311cf0 --- /dev/null +++ b/mineziper/CMakeLists.txt @@ -0,0 +1,14 @@ +set(mineziper_STATIC_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src) +set(mineziper_STATIC_INCLUDE ${CMAKE_CURRENT_SOURCE_DIR}/include) + +# mineziper sources +set(mineziper_SRC + ${mineziper_STATIC_SRC}/mineziper.c +) + +set(mineziper_INCLUDE +) + +add_executable(mineziper ${mineziper_SRC} ${mineziper_INCLUDE}) +target_include_directories(mineziper PUBLIC ${mineziper_STATIC_INCLUDE}) +target_link_libraries(mineziper PUBLIC libmineziper) diff --git a/mineziper/src/mineziper.c b/mineziper/src/mineziper.c new file mode 100644 index 0000000..e69de29