From dcb7c5c79260ca9ccac4ba4e4a76e0056c3f96c1 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Mon, 28 Feb 2022 14:54:06 +0100 Subject: Setup clang-tidy using clangd --- .clangd | 7 +++++++ .gitignore | 1 - src/CMakeLists.txt | 3 +-- src/vk-api.cpp | 7 ++++--- 4 files changed, 12 insertions(+), 6 deletions(-) create mode 100644 .clangd diff --git a/.clangd b/.clangd new file mode 100644 index 0000000..18142d9 --- /dev/null +++ b/.clangd @@ -0,0 +1,7 @@ +Diagnostics: +# UnusedIncludes: Strict // clangd 14 + ClangTidy: + Add: [performance*, modernize*, readability*, bugprone*] + Remove: [modernize-avoir-c-arrays] +# InlayHints: // clangd 14 +# Enabled: Yes // clangd 14 diff --git a/.gitignore b/.gitignore index 208e889..6565d3d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,5 @@ /build /out /.vs -/.clangd /.cache compile_commands.json diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index c91cb83..2956cb6 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -7,7 +7,7 @@ if(UNIX AND NOT APPLE) include_directories(${X11_xcb_INCLUDE_PATH}) endif() -set(LIBRARIES imgui::imgui) +set(LIBRARIES imgui::imgui nlohmann_json::nlohmann_json) add_executable( path-tracer @@ -31,4 +31,3 @@ if(UNIX AND NOT APPLE) endif() target_link_libraries(path-tracer PRIVATE ${LIBRARIES}) -target_link_libraries(path-tracer PRIVATE nlohmann_json nlohmann_json::nlohmann_json) diff --git a/src/vk-api.cpp b/src/vk-api.cpp index 226314a..0d26e49 100644 --- a/src/vk-api.cpp +++ b/src/vk-api.cpp @@ -135,13 +135,14 @@ vkapi::vkapi() { vkapi::~vkapi() { // Free resources - while (buffers.size()) + while (buffers.empty()) { destroy_buffer(buffers.begin()->second); + } - while (images.size()) + while (images.empty()) destroy_image(images.begin()->second); - while (samplers.size()) + while (samplers.empty()) destroy_sampler(samplers.begin()->second); // Free bindless descriptor stuff -- cgit v1.3 From 0f367adeafbd0b74030495f28e8a341cfd1264e0 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Mon, 28 Feb 2022 16:28:23 +0100 Subject: Setup cppcheck --- CMakeLists.txt | 34 ++++++++++++++++++++++++++++------ 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6aaa0f0..1255615 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,19 +1,27 @@ cmake_minimum_required(VERSION 3.10) -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file") - if(WIN32) add_compile_options( -msse4.1 -fcolor-diagnostics -fansi-escape-codes # colored output when using ninja + # https://github.com/cpp-best-practices/cppbestpractices/blob/master/02-Use_the_Tools_Available.md#gcc--clang + -Wall + -Wextra + -Wshadow + -Wcast-align + -Wnon-virtual-dtor + -Wpedantic + -Wunused ) endif() project(path-tracer VERSION 1.0 LANGUAGES CXX) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file") + find_package(imgui CONFIG REQUIRED) find_package(Vulkan REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) @@ -22,5 +30,19 @@ if(UNIX AND NOT APPLE) find_package(X11 REQUIRED) endif() +find_program(CMAKE_CXX_CPPCHECK NAMES cppcheck) +if (CMAKE_CXX_CPPCHECK) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/cppcheck) + + list( + APPEND CMAKE_CXX_CPPCHECK + "-j 16" + "--project=${CMAKE_BINARY_DIR}/compile_commands.json" + "--cppcheck-build-dir=${CMAKE_BINARY_DIR}/cppcheck" + "--enable=all" + "-iinclude/thirdparty" + ) +endif() + add_subdirectory(src) add_subdirectory(shaders) -- cgit v1.3 From 1f619e6ca06931fbe3c991f0649d20e9852224e8 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Tue, 1 Mar 2022 13:00:02 +0100 Subject: Add clang-format --- .clang-format | 38 ++++++++++++++++++++++++++++++++++++++ CMakeLists.txt | 4 ++-- 2 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 .clang-format diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..386c0ac --- /dev/null +++ b/.clang-format @@ -0,0 +1,38 @@ +AccessModifierOffset: 0 +AlignAfterOpenBracket: DontAlign +AlignConsecutiveAssignments: false +AlignConsecutiveDeclarations: false +AlignEscapedNewlines: Left +AlignOperands: true +AlignTrailingComments: false +AllowAllParametersOfDeclarationOnNextLine: false +AllowShortBlocksOnASingleLine: true +AllowShortCaseLabelsOnASingleLine: false +AllowShortFunctionsOnASingleLine: All +AllowShortIfStatementsOnASingleLine: true +AllowShortLoopsOnASingleLine: true +BraceWrapping: + AfterClass: true + AfterControlStatement: false + AfterEnum: false + AfterFunction: true + AfterNamespace: false + AfterObjCDeclaration: false + AfterStruct: true + AfterUnion: false + BeforeCatch: false + BeforeElse: false + IndentBraces: false + SplitEmptyFunction: false + SplitEmptyNamespace: true + SplitEmptyRecord: true +ColumnLimit: 120 +ConstructorInitializerIndentWidth: 4 +ContinuationIndentWidth: 4 +IndentWidth: 4 +Language: Cpp +MaxEmptyLinesToKeep: 2 +SortIncludes: true +Standard: c++20 +TabWidth: 4 +UseTab: Never diff --git a/CMakeLists.txt b/CMakeLists.txt index 1255615..8720727 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,9 +22,10 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file") + find_package(imgui CONFIG REQUIRED) -find_package(Vulkan REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) +find_package(Vulkan REQUIRED) if(UNIX AND NOT APPLE) find_package(X11 REQUIRED) @@ -36,7 +37,6 @@ if (CMAKE_CXX_CPPCHECK) list( APPEND CMAKE_CXX_CPPCHECK - "-j 16" "--project=${CMAKE_BINARY_DIR}/compile_commands.json" "--cppcheck-build-dir=${CMAKE_BINARY_DIR}/cppcheck" "--enable=all" -- cgit v1.3 From f05dcfa134ea0e551da359ecd3486b3b7bf2e5b8 Mon Sep 17 00:00:00 2001 From: ladevieq Date: Tue, 1 Mar 2022 13:25:03 +0100 Subject: Clean up compile flags --- CMakeLists.txt | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8720727..3b18938 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,14 @@ cmake_minimum_required(VERSION 3.10) -if(WIN32) +set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file") + +project(path-tracer VERSION 1.0 LANGUAGES CXX) + +if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") add_compile_options( -msse4.1 -fcolor-diagnostics -fansi-escape-codes # colored output when using ninja # https://github.com/cpp-best-practices/cppbestpractices/blob/master/02-Use_the_Tools_Available.md#gcc--clang @@ -14,15 +22,6 @@ add_compile_options( ) endif() -project(path-tracer VERSION 1.0 LANGUAGES CXX) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) -set(CMAKE_TOOLCHAIN_FILE "${CMAKE_CURRENT_SOURCE_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file") - - find_package(imgui CONFIG REQUIRED) find_package(nlohmann_json CONFIG REQUIRED) find_package(Vulkan REQUIRED) -- cgit v1.3