Setup repo

This commit is contained in:
atxr 2024-02-06 14:42:35 +01:00
parent 4dc37c0e2e
commit 05b42d1b86
8 changed files with 231 additions and 0 deletions

158
.clang-format Normal file
View file

@ -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: '^<ext/.*\.h>'
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
...

2
.gitignore vendored
View file

@ -9,3 +9,5 @@ install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps
build
bin

37
CMakeLists.txt Normal file
View file

@ -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}")

View file

@ -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 $<BUILD_INTERFACE:${libmineziper_STATIC_INCLUDE}> $<INSTALL_INTERFACE:include>
)

View file

View file

14
mineziper/CMakeLists.txt Normal file
View file

@ -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)

View file