From 553916f8c14566883346a701e8881e93c1de8256 Mon Sep 17 00:00:00 2001 From: OLEGSHA Date: Sat, 1 Apr 2023 23:19:07 +0200 Subject: [PATCH] TMP / Improved build tools layout --- .../clang-format.json => .clang-format | 0 tools/clang-tidy/clang-tidy.yml => .clang-tidy | 0 CMakeLists.txt | 6 +++--- .../clang-tidy.cmake => dev-mode.cmake} | 14 ++++++-------- tools/pre-commit.py | 10 +--------- ...ns.supp => valgrind-memcheck-suppressions.supp} | 0 6 files changed, 10 insertions(+), 20 deletions(-) rename tools/clang-format/clang-format.json => .clang-format (100%) rename tools/clang-tidy/clang-tidy.yml => .clang-tidy (100%) rename tools/{clang-tidy/clang-tidy.cmake => dev-mode.cmake} (92%) rename tools/{memcheck/suppressions.supp => valgrind-memcheck-suppressions.supp} (100%) diff --git a/tools/clang-format/clang-format.json b/.clang-format similarity index 100% rename from tools/clang-format/clang-format.json rename to .clang-format diff --git a/tools/clang-tidy/clang-tidy.yml b/.clang-tidy similarity index 100% rename from tools/clang-tidy/clang-tidy.yml rename to .clang-tidy diff --git a/CMakeLists.txt b/CMakeLists.txt index 820ebc7..c1f8bf8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,7 +28,7 @@ file(MAKE_DIRECTORY "${generated}") list(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/tools/") include(embed/embed) include(glslc) -include(clang-tidy/clang-tidy) +include(dev-mode) # Source files target_sources(progressia PRIVATE @@ -104,7 +104,7 @@ if (WIN32 AND NOT BUILD_ID STREQUAL "dev") target_link_options(progressia PRIVATE -static-libstdc++ -static-libgcc) elseif (compiler_cl_dialect STREQUAL "MSVC") target_link_options(progressia PRIVATE /entry:mainCRTStartup) - + # The static linking options for standard libraries are not available for MSVC when using a GPLv3 license, # as statically linking the standard C/C++ libraries would be a violation of the GPLv3 license. # The GPL requires that any derivative work that includes GPL-licensed code must also be licensed under the GPL, @@ -116,7 +116,7 @@ if (WIN32 AND NOT BUILD_ID STREQUAL "dev") # Yours faithfully, # ChatGPT message(WARNING "Release builds with MSVC/Clang-CL are not supported") - + endif() endif() diff --git a/tools/clang-tidy/clang-tidy.cmake b/tools/dev-mode.cmake similarity index 92% rename from tools/clang-tidy/clang-tidy.cmake rename to tools/dev-mode.cmake index 79e26b6..76bb235 100644 --- a/tools/clang-tidy/clang-tidy.cmake +++ b/tools/dev-mode.cmake @@ -1,11 +1,9 @@ if (DEV_MODE) find_program(clang_tidy_EXECUTABLE NAMES clang-tidy-13 clang-tidy REQUIRED) find_package(Python3 COMPONENTS Interpreter REQUIRED) - + # Setup clang-tidy - set(clang_tidy_config_file "${CMAKE_CURRENT_LIST_DIR}/clang-tidy.yml") list(APPEND clang_tidy_command "${clang_tidy_EXECUTABLE}" - "--config-file=${clang_tidy_config_file}" "--warnings-as-errors=*" "--use-color") @@ -16,16 +14,16 @@ if (DEV_MODE) add_custom_target(clang_tidy_marker ALL COMMAND ${CMAKE_COMMAND} -E echo "Clang-tidy is enabled. This is a marker for pre-commit.py") - + # Notify pre-commit.py about CMake settings execute_process(COMMAND ${Python3_EXECUTABLE} ${tools}/pre-commit.py set-build-info -- "${CMAKE_COMMAND}" "${CMAKE_BINARY_DIR}" RESULT_VARIABLE set_build_info_RESULT) - + if(${set_build_info_RESULT}) message(FATAL_ERROR "pre-commit.py set-build-info failed") endif() - + # Setup pre-commit git hook if (IS_DIRECTORY "${CMAKE_SOURCE_DIR}/.git/hooks") set(pre_commit_hook "${CMAKE_SOURCE_DIR}/.git/hooks/pre-commit") @@ -36,7 +34,7 @@ if (DEV_MODE) "# You may modify this hook freely " "(just make sure the checks run)\n" "/bin/env python3 ${CMAKE_SOURCE_DIR}/tools/pre-commit.py run") - + if (${CMAKE_VERSION} VERSION_LESS "3.19.0") if (${CMAKE_HOST_UNIX}) execute_process(COMMAND chmod "+x" "${pre_commit_hook}" @@ -52,5 +50,5 @@ if (DEV_MODE) endif() unset(pre_commit_hook) endif() - + endif() diff --git a/tools/pre-commit.py b/tools/pre-commit.py index 202ca6d..1368ab6 100755 --- a/tools/pre-commit.py +++ b/tools/pre-commit.py @@ -48,7 +48,6 @@ import json STASH_NAME = 'progressia_pre_commit_stash' # Paths are relative to this script's directory, tools/ SETTINGS_PATH = 'pre-commit-settings.json' -CLANG_FORMAT_PATH = 'clang-format/clang-format.json' CLANG_TIDY_CHECK_MARKER = 'Clang-tidy is enabled. ' \ 'This is a marker for pre-commit.py' @@ -163,17 +162,10 @@ def do_restore(): def format_project(): """Format staged files with clang-format-diff.""" - print('Formatting code') - format_file = os.path.join(os.path.dirname(__file__), - CLANG_FORMAT_PATH) - - with open(format_file, encoding='utf-8') as f: - style = f.read() - diff = invoke(*git, 'diff', '-U0', '--no-color', '--relative', 'HEAD', *(f"{d}/*.{e}" for d in src_dirs for e in exts)) - invoke(*clang_format_diff, '-p1', '-i', '--verbose', '-style=' + style, + invoke(*clang_format_diff, '-p1', '-i', '--verbose', stdin=diff, result_when_dry='', quiet=False) diff --git a/tools/memcheck/suppressions.supp b/tools/valgrind-memcheck-suppressions.supp similarity index 100% rename from tools/memcheck/suppressions.supp rename to tools/valgrind-memcheck-suppressions.supp