Skip to content

Commit

Permalink
Add data provider and basic UI.
Browse files Browse the repository at this point in the history
  • Loading branch information
Sibras committed Nov 3, 2021
1 parent 66b9e85 commit b9d04eb
Show file tree
Hide file tree
Showing 20 changed files with 1,663 additions and 0 deletions.
105 changes: 105 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
---
Language: Cpp
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignConsecutiveMacros: false
AlignEscapedNewlines: Left
AlignOperands: false
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: true
AllowAllConstructorInitializersOnNextLine: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: Never
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: None
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: Inline
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
AfterCaseLabel: false
AfterClass: true
AfterControlStatement: false
AfterEnum: true
AfterFunction: true
AfterNamespace: false
AfterStruct: true
AfterUnion: true
AfterExternBlock: false
BeforeCatch: false
BeforeElse: false
#BeforeLambdaBody: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakAfterJavaFieldAnnotations: true
BreakBeforeBinaryOperators: None
BreakBeforeBraces: Custom
BreakBeforeTernaryOperators: false
BreakConstructorInitializers: BeforeComma
BreakInheritanceList: BeforeComma
BreakStringLiterals: false
ColumnLimit: 120
CompactNamespaces: false
ConstructorInitializerAllOnOneLineOrOnePerLine: false
ConstructorInitializerIndentWidth: 4
ContinuationIndentWidth: 4
Cpp11BracedListStyle: true
DeriveLineEnding: false
DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
IncludeBlocks: Regroup
IncludeCategories:
- Regex: '^"'
Priority: 1
- Regex: '^<'
Priority: 2
IncludeIsMainSourceRegex: '(.inl)$'
#IndentCaseBlocks: false
IndentCaseLabels: true
IndentGotoLabels: false
IndentPPDirectives: AfterHash
IndentWidth: 4
IndentWrappedFunctionNames: false
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
NamespaceIndentation: None
PointerAlignment: Left
ReflowComments: true
SortIncludes: true
SortUsingDeclarations: true
SpaceAfterCStyleCast: false
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCpp11BracedList: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceBeforeSquareBrackets: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInCStyleCastParentheses: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Auto #Latest
TabWidth: 4
UseCRLF: false
UseTab: Never
...

105 changes: 105 additions & 0 deletions .clang-tidy
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
Checks: 'bugprone-*,cert-*,clang-analyzer-*,cppcoreguidelines-*,fuchsia-*,google-*,hicpp-*,misc-*,modernize-*,perforamnce-*,readability-*,-modernize-use-trailing-return-type,-portability-simd-intrinsics,-readability-function-size,-llvmlibc-implementation-in-namespace,-fuchsia-default-arguments-declarations,-fuchsia-default-arguments-calls,-llvmlibc-callee-namespace,-google-runtime-references,-llvm-header-guard,-cppcoreguidelines-avoid-magic-numbers,-readability-magic-numbers,-cppcoreguidelines-owning-memory'
CheckOptions:
- key: readability-identifier-naming.AbstractClassCase
value: 'CamelCase'
- key: readability-identifier-naming.ClassCase
value: 'CamelCase'
- key: readability-identifier-naming.ClassConstantCase
value: 'camelBack'
- key: readability-identifier-naming.ClassMemberCase
value: 'camelBack'
- key: readability-identifier-naming.ClassMethodCase
value: 'camelBack'
- key: readability-identifier-naming.ConstantCase
value: 'camelBack'
- key: readability-identifier-naming.ConstantMemberCase
value: 'camelBack'
- key: readability-identifier-naming.ConstantParameterCase
value: 'camelBack'
- key: readability-identifier-naming.ConstantPointerParameterCase
value: 'camelBack'
- key: readability-identifier-naming.ConstexprFunctionCase
value: 'camelBack'
- key: readability-identifier-naming.ConstexprMethodCase
value: 'camelBack'
- key: readability-identifier-naming.ConstexprVariableCase
value: 'camelBack'
- key: readability-identifier-naming.EnumCase
value: 'CamelCase'
- key: readability-identifier-naming.EnumConstantCase
value: 'CamelCase'
- key: readability-identifier-naming.FunctionCase
value: 'camelBack'
- key: readability-identifier-naming.GlobalConstantCase
value: 'camelBack'
- key: readability-identifier-naming.GlobalConstantPointerCase
value: 'camelBack'
- key: readability-identifier-naming.GlobalFunctionCase
value: 'camelBack'
- key: readability-identifier-naming.GlobalPointerCase
value: 'camelBack'
- key: readability-identifier-naming.GlobalVariableCase
value: 'camelBack'
- key: readability-identifier-naming.InlineNamespaceCase
value: 'CamelCase'
- key: readability-identifier-naming.LocalConstantCase
value: 'camelBack'
- key: readability-identifier-naming.LocalConstantPointerCase
value: 'camelBack'
- key: readability-identifier-naming.LocalPointerCase
value: 'camelBack'
- key: readability-identifier-naming.LocalVariableCase
value: 'camelBack'
- key: readability-identifier-naming.MacroDefinitionCase
value: 'UPPER_CASE'
- key: readability-identifier-naming.MemberCase
value: 'camelBack'
- key: readability-identifier-naming.MethodCase
value: 'camelBack'
- key: readability-identifier-naming.NamespaceCase
value: 'CamelCase'
- key: readability-identifier-naming.ParameterCase
value: 'camelBack'
- key: readability-identifier-naming.ParameterPackCase
value: 'camelBack'
- key: readability-identifier-naming.PointerParameterCase
value: 'camelBack'
- key: readability-identifier-naming.PrivateMemberCase
value: 'camelBack'
- key: readability-identifier-naming.PrivateMethodCase
value: 'camelBack'
- key: readability-identifier-naming.ProtectedMemberCase
value: 'camelBack'
- key: readability-identifier-naming.ProtectedMethodCase
value: 'camelBack'
- key: readability-identifier-naming.PublicMemberCase
value: 'camelBack'
- key: readability-identifier-naming.PublicMethodCase
value: 'camelBack'
- key: readability-identifier-naming.ScopedEnumConstantCase
value: 'CamelCase'
- key: readability-identifier-naming.StaticConstantCase
value: 'camelBack'
- key: readability-identifier-naming.StaticVariableCase
value: 'camelBack'
- key: readability-identifier-naming.StructCase
value: 'CamelCase'
- key: readability-identifier-naming.TemplateParameterCase
value: 'CamelCase'
- key: readability-identifier-naming.TemplateTemplateParameterCase
value: 'CamelCase'
- key: readability-identifier-naming.TypeAliasCase
value: 'CamelCase'
- key: readability-identifier-naming.TypedefCase
value: 'CamelCase'
- key: readability-identifier-naming.TypeTemplateParameterCase
value: 'camelBack'
- key: readability-identifier-naming.UnionCase
value: 'CamelCase'
- key: readability-identifier-naming.ValueTemplateParameterCase
value: 'camelBack'
- key: readability-identifier-naming.VariableCase
value: 'camelBack'
- key: readability-identifier-naming.VirtualMethodCase
value: 'camelBack'
FormatStyle: 'file'
12 changes: 12 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@

[*.{c,c++,cc,config,cp,cpp,cu,cxx,h,hh,hpp,hxx,inc,inl]
indent_style=space
indent_size=4
tab_width=4

[*]

# Standard properties
end_of_line=lf
insert_final_newline=true
max_line_length=120
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* text eol=lf
11 changes: 11 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -30,3 +30,14 @@
*.exe
*.out
*.app

# Build folders
.vs/
build/
install/

*.pdb
packages/
*.onnx
_Resharper.Caches
*.DotSettings
99 changes: 99 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
cmake_minimum_required(VERSION 3.21)

# Detect vcpkg ports
if(DEFINED ENV{VCPKG_ROOT} AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
file(TO_CMAKE_PATH "$ENV{VCPKG_ROOT}" ENV_VCPKG_ROOT)
set(CMAKE_TOOLCHAIN_FILE "${ENV_VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake"
CACHE STRING "")
endif()

# Import Qt6 dirctory if available
if(DEFINED ENV{Qt6_HOME})
set(CMAKE_PREFIX_PATH $ENV{Qt6_HOME})
endif()

set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

project(ShiftIntrinsicGuide
LANGUAGES CXX
VERSION 1.0.0
DESCRIPTION "A GUI for viewing x86 intrinsics and associated performance data"
)


# Only do these if this is the main project, and not if it is included through add_subdirectory
if(CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME)
# Default to a release build if desired configuration is not specified
if(NOT CMAKE_CONFIGURATION_TYPES)
if(NOT CMAKE_BUILD_TYPE)
message(STATUS "Setting build type to 'Release' as none was specified.")
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY VALUE "Release")
endif()
endif()

# Set the install location to the source location if not currently specified
if("${CMAKE_INSTALL_PREFIX}" STREQUAL "")
message("Installing into source folder")
set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install CACHE PATH "..." FORCE)
endif()

# Use folder structure for arranging files within IDEs
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
endif()

find_package(Qt6 COMPONENTS GUI QML Network XML Concurrent REQUIRED)

qt_add_executable(ShiftIntrinsicGuide MANUAL_FINALIZATION)

# Add in the executable code
target_sources(ShiftIntrinsicGuide PRIVATE
"${CMAKE_CURRENT_SOURCE_DIR}/include/Application.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/DataModel.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/Downloader.h"
"${CMAKE_CURRENT_SOURCE_DIR}/include/DataProvider.h"
"${CMAKE_CURRENT_SOURCE_DIR}/source/main.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/source/Application.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/source/DataModel.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/source/Downloader.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/source/DataProvider.cpp"
"${CMAKE_CURRENT_SOURCE_DIR}/source/qml.qrc"
)

target_compile_features(ShiftIntrinsicGuide
INTERFACE cxx_std_17
)

target_include_directories(ShiftIntrinsicGuide
PRIVATE
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include/>"
)

target_link_libraries(ShiftIntrinsicGuide PRIVATE
Qt6::Gui
Qt6::Qml
Qt6::Network
Qt6::Xml
Qt6::Concurrent
)

source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Header Files" REGULAR_EXPRESSION "*.hpp")
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Source Files" REGULAR_EXPRESSION "*.cpp")
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}" PREFIX "Source Files" REGULAR_EXPRESSION "*.inl")

include(GNUInstallDirs)
install(TARGETS ShiftIntrinsicGuide
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
)

qt_import_qml_plugins(ShiftIntrinsicGuide)
qt_finalize_executable(ShiftIntrinsicGuide)

# Include Qt deployment helper function
include(DeployQt)
deployqt(ShiftIntrinsicGuide "${CMAKE_CURRENT_SOURCE_DIR}/source/")
Loading

0 comments on commit b9d04eb

Please sign in to comment.