Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
82558c0
Setup a CMakeLists build environment for the GraphGenerator module
SoultatosStefanos Apr 11, 2022
f880a3b
Root GraphGenerator/CMakeLists.txt tidy
SoultatosStefanos Apr 12, 2022
5267428
.gitignore
SoultatosStefanos Apr 12, 2022
322e467
solved stddef.h error
VakrasVasileios Apr 17, 2022
60338dd
Merge branch 'IncrementalCompilation' of https://github.com/Soultatos…
SoultatosStefanos Apr 18, 2022
5aad664
Supressed clang::Expected<> assertion failure
SoultatosStefanos May 27, 2022
2e7c7b8
Implementing a caching mechanism for each symbol, when installing to …
SoultatosStefanos Jun 1, 2022
3ddae23
Tidy
SoultatosStefanos Jun 1, 2022
266d492
std::filesystem::exists
SoultatosStefanos Jun 1, 2022
6299d01
Implmenting import functions from the json output file
SoultatosStefanos Jun 1, 2022
6362576
Added compiler flags for incremental compilation
SoultatosStefanos Jun 1, 2022
d80e70a
tidy
SoultatosStefanos Jun 1, 2022
9bf414b
buggy deserialization
SoultatosStefanos Jun 2, 2022
c8008d6
Cleaning up the deserialization process
SoultatosStefanos Jun 2, 2022
0f5c441
Tidy
SoultatosStefanos Jun 2, 2022
f4fd3e3
Finishing json deserializing, must fix pragma warnings to progress
SoultatosStefanos Jun 2, 2022
c350a02
Tidy
SoultatosStefanos Jun 2, 2022
82c4fef
Renamed incremental flag
SoultatosStefanos Jun 2, 2022
30607d5
Method return type deserialization
SoultatosStefanos Jun 2, 2022
e171a32
Fixed minor bug, where the method definition type was not set
SoultatosStefanos Jun 2, 2022
6b8d079
Comments
SoultatosStefanos Jun 3, 2022
919ae9c
Introduced unit tests
SoultatosStefanos Jun 3, 2022
374c8c9
Testing the import functions
SoultatosStefanos Jun 3, 2022
f1ecf63
Testing the import functions
SoultatosStefanos Jun 3, 2022
635179c
Added useful symbol table debugging overloads
SoultatosStefanos Jun 3, 2022
5ae5d9b
Unittests fix
SoultatosStefanos Jun 3, 2022
e8c2d81
Tidy
SoultatosStefanos Jun 3, 2022
b6db4bc
Tidy
SoultatosStefanos Jun 3, 2022
06d3246
typo
SoultatosStefanos Jun 3, 2022
b021a80
Implemented strict equality checking between symbols
SoultatosStefanos Jun 3, 2022
6c5e053
Implemented debug friendly tools at SymbolTable
SoultatosStefanos Jun 3, 2022
93ed4a2
Tidy
SoultatosStefanos Jun 3, 2022
82c5a2b
Fixed tests
SoultatosStefanos Jun 3, 2022
f433f7f
Added json validity checking when generating incrementally
SoultatosStefanos Jun 3, 2022
fccbefc
Tidy
SoultatosStefanos Jun 3, 2022
97bfeda
At DependenciesMining.cpp, safely moved some GetIDfromDecl calls, in …
SoultatosStefanos Jun 3, 2022
f6d7317
Implemented early exits/lookups at DependenciesMining.cpp
SoultatosStefanos Jun 3, 2022
e7c8536
Implemented full structure json serialization
SoultatosStefanos Jun 3, 2022
ffcea54
Deserializing the structures as a whol
SoultatosStefanos Jun 3, 2022
31a5c73
ImportST implementation cleanup
SoultatosStefanos Jun 3, 2022
945c6f5
Fixed symbol table equality operation
SoultatosStefanos Jun 3, 2022
ab97092
tests tidy
SoultatosStefanos Jun 3, 2022
673128f
Cleaned up tests folder, introduced integration/unit seperation
SoultatosStefanos Jun 3, 2022
6838ae5
Fixing up the ST (de)serialization
SoultatosStefanos Jun 4, 2022
7ef6195
Fixing up the ImportST
SoultatosStefanos Jun 4, 2022
b038393
ImportST unit tests
SoultatosStefanos Jun 4, 2022
80ddaf7
Added some assertions at ImportST
SoultatosStefanos Jun 4, 2022
23f8db9
Testfile deletion
SoultatosStefanos Jun 4, 2022
e8ae6fe
Set up incremental integration test
SoultatosStefanos Jun 4, 2022
96a7844
Serialization update for consistency
SoultatosStefanos Jun 4, 2022
001c0c6
Cleaned up the ImportST function
SoultatosStefanos Jun 4, 2022
351ec14
Resolve infinite recursion, fixed UB when deleting due toinheritance
SoultatosStefanos Jun 4, 2022
f1b6601
Fixed testing utility
SoultatosStefanos Jun 5, 2022
9db7670
const correctness, removed unnecessary copies
SoultatosStefanos Jun 5, 2022
ac01190
Fixed infinite recursion upon symboltable equality comparisons
SoultatosStefanos Jun 5, 2022
7288c8a
Fixed tests, DependenciesMining cleanup
SoultatosStefanos Jun 5, 2022
18a6733
Namespace deserialization
SoultatosStefanos Jun 5, 2022
2bbbde9
slight fix
SoultatosStefanos Jun 5, 2022
ca11cc5
Fixed definition (full)type deserialization bug
SoultatosStefanos Jun 5, 2022
bdb0623
Refactored some unnecessary copies
SoultatosStefanos Jun 5, 2022
848f497
Slight importer fix
SoultatosStefanos Jun 5, 2022
3bf3538
Refactored the incremental integration tests to take the compilation …
SoultatosStefanos Jun 5, 2022
5f32a01
Enabled Incremental Generation flag
SoultatosStefanos Jun 5, 2022
f0c0cfc
TODOs, FIXMEs
SoultatosStefanos Jun 5, 2022
597a8dd
Almost done with the incremental generation
SoultatosStefanos Jun 5, 2022
b6bb98c
Fixed output
SoultatosStefanos Jun 6, 2022
fc39ae0
Definitions conflict issues
SoultatosStefanos Jun 6, 2022
14ece21
indent
SoultatosStefanos Jun 7, 2022
15676c2
Integrated WxWidgets
SoultatosStefanos Jun 7, 2022
601ca60
code cleanup
VakrasVasileios Jun 7, 2022
0559084
Added progress bar prototype
VakrasVasileios Jun 7, 2022
77a91f9
Added progress bar with current file and
SoultatosStefanos Jun 7, 2022
faf56a1
Cleaned up main() and DependenciesMining
SoultatosStefanos Jun 8, 2022
7b746f8
Implemented gui max size setting
SoultatosStefanos Jun 8, 2022
5555bb6
Handling ignored with GUI
SoultatosStefanos Jun 8, 2022
1a4298d
Added cancel button, remaining time and OnFinish
VakrasVasileios Jun 9, 2022
05d7623
Added remaining time, elapsed time
VakrasVasileios Jun 9, 2022
b348539
Added a SetOnFinish call in main, might need
VakrasVasileios Jun 9, 2022
0759cce
Fixed GUI
SoultatosStefanos Jun 11, 2022
f371d08
fixes and notes
SoultatosStefanos Jun 11, 2022
356ad7a
fixed integration
SoultatosStefanos Jun 12, 2022
57afec4
Comments
SoultatosStefanos Jun 12, 2022
5e71e4e
Incremental tidy
SoultatosStefanos Jun 12, 2022
0231399
Implemented parsed files filtering
SoultatosStefanos Jun 12, 2022
b4dfdb2
Fixed incremental generation
SoultatosStefanos Jun 12, 2022
bed57ee
Fixed Incremental
SoultatosStefanos Jun 12, 2022
0c8cb50
Fixed Method Definitions IDs
SoultatosStefanos Jun 16, 2022
9cf12cf
Attempting to skip files
SoultatosStefanos Jun 16, 2022
149a8fe
Fixed the GUI basic functionality
SoultatosStefanos Jun 18, 2022
ad5067c
Major GUI tidy
SoultatosStefanos Jun 18, 2022
49eecfa
Frame show = false
SoultatosStefanos Jun 18, 2022
1e223ed
Cleanup
SoultatosStefanos Jun 18, 2022
3c0b188
Fixing the incremental generation
SoultatosStefanos Jun 20, 2022
392b71e
Bad impl, got it right though
SoultatosStefanos Jun 20, 2022
2ceda3d
Fixed incremental generation
SoultatosStefanos Jun 20, 2022
cd3b342
CmakeLists
SoultatosStefanos Jun 20, 2022
fab1919
Fixed Gui::SkipFiles
SoultatosStefanos Jun 20, 2022
012ae5d
Final GUI fix
SoultatosStefanos Jun 20, 2022
260f524
Fixed names/ids confusion
SoultatosStefanos Jun 20, 2022
01048be
tidy
SoultatosStefanos Jun 20, 2022
446ac77
CMakeLists compatibility fix
SoultatosStefanos Jun 20, 2022
97569b4
Deleted .gitmodules
SoultatosStefanos Jun 21, 2022
f417771
Changed nested class serialization, in order to avoid repeated json v…
SoultatosStefanos Jun 25, 2022
7fa8ea3
multithreaded progress bar, but must fix incremental with gui
SoultatosStefanos Sep 27, 2022
ea2b465
tidy
SoultatosStefanos Sep 28, 2022
80492e8
tidy, fixed gui style and got file name
SoultatosStefanos Sep 28, 2022
29053c7
fixed incremental issue due to gui disruptions
SoultatosStefanos Sep 28, 2022
3bb847e
tidy
SoultatosStefanos Sep 28, 2022
a833c6c
fixed linux minor include path bag, + template specialization bug
SoultatosStefanos Oct 2, 2022
5066925
note
SoultatosStefanos Oct 3, 2022
872dee8
Extracted the CMake variables, made them cached
SoultatosStefanos Dec 13, 2022
7c737de
README
SoultatosStefanos Jan 22, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
*.app
Testfiles/.vscode/settings.json
GraphVisualizer/node_modules
.vscode


GraphVisualizer/.vscode/launch.json
Expand All @@ -42,3 +43,5 @@ IngoredNamespaces.txt
compile_commands.json
CodeSmellDetector/node_modules
CodeSmellDetector/code-smell-detector-GUI/node_modules/*

.vscode
1 change: 1 addition & 0 deletions GraphGenerator/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Build
57 changes: 57 additions & 0 deletions GraphGenerator/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
cmake_minimum_required(VERSION 3.13.0)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

project(GraphGenerator CXX)

if(MSVC)
add_compile_options(/W4 /WX)
else()
add_compile_options(-Wall -Wextra -pedantic)
endif()

find_package(wxWidgets REQUIRED gl core base OPTIONAL_COMPONENTS net)
include(${wxWidgets_USE_FILE})

add_library(${PROJECT_NAME})

add_definitions("-fno-rtti -D_GNU_SOURCE -D_DEBUG -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS")

set(CLANG_LIBS libclang-cpp.so)
set(JSONCPP_LIBS libjsoncpp.so)

# Try to guess the clang include paths (linux)
set(CLANG_INCLUDE_DIR "/usr/lib/llvm-15/lib/clang/15.0.2/include" CACHE STRING "The directory path to the .h files for clang.")
set(INCREMENTAL_GENERATION TRUE CACHE BOOL "Wether to mine incrementally after cancel and re-run.")
set(GUI TRUE CACHE BOOL "Wether to render the gui progress bar.")

message("CLANG_INCLUDE_DIR: " ${CLANG_INCLUDE_DIR})
message("INCREMENTAL_GENERATION: " ${INCREMENTAL_GENERATION})
message("GUI: " ${GUI})

add_definitions(-DCLANG_INCLUDE_DIR="${CLANG_INCLUDE_DIR}")
target_compile_definitions(${PROJECT_NAME} PUBLIC INCREMENTAL_GENERATION=${INCREMENTAL_GENERATION})
target_compile_definitions(${PROJECT_NAME} PUBLIC GUI=${GUI})

target_link_libraries(${PROJECT_NAME} PRIVATE ${CLANG_LIBS} ${JSONCPP_LIBS} ${wxWidgets_LIBRARIES})

set(SUBDIRECTORIES
DependenciesMining
FileSystem
Graph
GraphGeneration
GraphToJson
Gui
Incremental
Main
Messages
SourceLoader
Utilities
)

foreach(VAR ${SUBDIRECTORIES})
target_include_directories(${PROJECT_NAME} PUBLIC ${VAR})
add_subdirectory(${VAR})
endforeach()
15 changes: 15 additions & 0 deletions GraphGenerator/DependenciesMining/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
set(FILES )
set(SUBDIRECTORIES
ClangTool
Ignored
SymbolTable
)

foreach(VAR ${SUBDIRECTORIES})
target_include_directories(${PROJECT_NAME} PUBLIC ${VAR})
add_subdirectory(${VAR})
endforeach()

if(FILES)
target_sources(${PROJECT_NAME} PUBLIC ${FILES})
endif()
14 changes: 14 additions & 0 deletions GraphGenerator/DependenciesMining/ClangTool/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
set(FILES
DependenciesMining.cpp
DependenciesMining.h
)
set(SUBDIRECTORIES Utilities)

foreach(VAR ${SUBDIRECTORIES})
target_include_directories(${PROJECT_NAME} PUBLIC ${VAR})
add_subdirectory(${VAR})
endforeach()

if(FILES)
target_sources(${PROJECT_NAME} PUBLIC ${FILES})
endif()
Loading