From 5f039ab457d78b61097d38b76753e08ce6f7517b Mon Sep 17 00:00:00 2001 From: Eyck Jentzsch Date: Fri, 5 Sep 2025 08:36:02 +0200 Subject: [PATCH] cleans project setup --- .vscode/extensions.json | 16 +++ .vscode/launch.json | 25 ++--- .vscode/settings.json | 30 ++++++ .vscode/tasks.json | 16 --- CMakePresets.json | 42 +++----- cmake/GetGitRevisionDescription.cmake | 130 ----------------------- cmake/GetGitRevisionDescription.cmake.in | 41 ------- cmake/PackageConfigurator.cmake | 44 -------- cmake/Submodules.cmake | 57 ---------- 9 files changed, 74 insertions(+), 327 deletions(-) create mode 100644 .vscode/extensions.json create mode 100644 .vscode/settings.json delete mode 100644 .vscode/tasks.json delete mode 100644 cmake/GetGitRevisionDescription.cmake delete mode 100644 cmake/GetGitRevisionDescription.cmake.in delete mode 100644 cmake/PackageConfigurator.cmake delete mode 100644 cmake/Submodules.cmake diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..ff64ab2 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,16 @@ +{ + "recommendations": [ + "mkhl.direnv", + "sanaajani.taskrunnercode", + "ms-vscode.cpptools-themes", + "cnshenj.vscode-task-manager", + "twxs.cmake", + "kylinideteam.cmake-intellisence", + "kylinideteam.kylin-cmake-tools", + "llvm-vs-code-extensions.vscode-clangd", + "eclipse-cdt.cdt-gdb-vscode", + "eclipse-cdt.memory-inspector", + "eclipse-cdt.peripheral-inspector", + "ms-python.python" + ] +} \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json index fc26538..ea0ead0 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,21 +5,18 @@ "version": "0.2.0", "configurations": [{ "name": "cci_param_restricted", - "type": "cppdbg", + "type": "gdb", "request": "launch", "cwd": "${workspaceRoot}", - "program": "${workspaceRoot}/build/tests/cci_param_restricted/cci_param_restricted", - "linux": { - "MIMode": "gdb", - "miDebuggerPath": "/usr/bin/gdb" - }, - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - } - ], + "program": "${workspaceRoot}/build/Debug/tests/cci_param_restricted/cci_param_restricted", "preLaunchTask": "CMake: build" - }] + },{ + "name": "dmi_access", + "type": "gdb", + "request": "launch", + "cwd": "${workspaceRoot}", + "program": "${workspaceRoot}/build/Debug/tests/memory_subsys/memory_subsys", + "preLaunchTask": "CMake: build" + } + ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..7287207 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,30 @@ +{ + "editor.rulers": [ + { + "column": 140, + "comment": "clang-format" + } + ], + "clangd.arguments": [ + "--pretty", + "--background-index", + "--compile-commands-dir=${workspaceFolder}/build" + ], + "cmake.buildDirectory" : "${workspaceRoot}/build/${buildType}", + "cmake.configureArgs": ["-B", "${workspaceRoot}/build/${buildType}"], + "cmake.configureOnOpen": false, + "cmake.configureOnEdit": true, + "cmake.autoSelectActiveFolder": true, + "cmake.exportCompileCommandsFile": true, + "cmake.skipConfigureIfCachePresent": false, + "cmake.copyCompileCommands": "${workspaceFolder}/build/compile_commands.json", + "cmake.options.statusBarVisibility": "hidden", + "cmake.options.advanced": { + "configure": {"projectStatusVisibility": "visible"}, + "build": {"statusBarVisibility": "visible"} + }, + "todo-tree.ripgrep.ripgrep": "/bin/rg", + "files.watcherExclude": { + "**/build": true + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 8714fea..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "version": "2.0.0", - "tasks": [ - { - "type": "cmake", - "label": "CMake: build", - "command": "build", - "targets": [ - "all" - ], - "group": "build", - "problemMatcher": ["$gcc"], - "detail": "CMake template build task", - } - ] -} \ No newline at end of file diff --git a/CMakePresets.json b/CMakePresets.json index 5fa3a72..91e39fa 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -9,45 +9,37 @@ "patch": 0 }, "configurePresets": [ - { - "name": "Debug", + { + "name": "Base", + "generator": "Ninja", + "binaryDir": "${sourceDir}/build/${presetName}", "cacheVariables": { "CMAKE_POLICY_DEFAULT_CMP0091": "NEW", - "CMAKE_BUILD_TYPE": "Debug", "CMAKE_CXX_STANDARD": "17", + "CMAKE_INSTALL_PREFIX": "${sourceDir}/install/${presetName}", + "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", "CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "cmake-conan/conan_provider.cmake", - "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + "CONAN_BUILD_PROFILE": "auto-cmake", + "WITH_TCC": "OFF" + } + }, + { + "name": "Debug", + "inherits": "Base", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" } }, { "name": "RelWithDebInfo", "cacheVariables": { - "CMAKE_POLICY_DEFAULT_CMP0091": "NEW", - "CMAKE_BUILD_TYPE": "RelWithDebInfo", - "CMAKE_CXX_STANDARD": "17", - "CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "cmake-conan/conan_provider.cmake", - "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" + "CMAKE_BUILD_TYPE": "RelWithDebInfo" } }, { "name": "Release", "cacheVariables": { - "CMAKE_POLICY_DEFAULT_CMP0091": "NEW", - "CMAKE_BUILD_TYPE": "Release", - "CMAKE_CXX_STANDARD": "17", - "CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "cmake-conan/conan_provider.cmake", - "CMAKE_EXPORT_COMPILE_COMMANDS": "ON" - } - },{ - "name": "DebugSC30", - "cacheVariables": { - "CMAKE_POLICY_DEFAULT_CMP0091": "NEW", - "CMAKE_BUILD_TYPE": "Debug", - "CMAKE_CXX_STANDARD": "17", - "CMAKE_PROJECT_TOP_LEVEL_INCLUDES": "cmake-conan/conan_provider.cmake", - "CMAKE_EXPORT_COMPILE_COMMANDS": "ON", - "CMAKE_PREFIX_PATH": "/opt/shared/systemc/RockyLinux/3.0.1-cxx17" - + "CMAKE_BUILD_TYPE": "Release" } } ] diff --git a/cmake/GetGitRevisionDescription.cmake b/cmake/GetGitRevisionDescription.cmake deleted file mode 100644 index bcd1d72..0000000 --- a/cmake/GetGitRevisionDescription.cmake +++ /dev/null @@ -1,130 +0,0 @@ -# - Returns a version string from Git -# -# These functions force a re-configure on each git commit so that you can -# trust the values of the variables in your build system. -# -# get_git_head_revision( [ ...]) -# -# Returns the refspec and sha hash of the current head revision -# -# git_describe( [ ...]) -# -# Returns the results of git describe on the source tree, and adjusting -# the output so that it tests false if an error occurs. -# -# git_get_exact_tag( [ ...]) -# -# Returns the results of git describe --exact-match on the source tree, -# and adjusting the output so that it tests false if there was no exact -# matching tag. -# -# Requires CMake 2.6 or newer (uses the 'function' command) -# -# Original Author: -# 2009-2010 Ryan Pavlik -# http://academic.cleardefinition.com -# Iowa State University HCI Graduate Program/VRAC -# -# Copyright Iowa State University 2009-2010. -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) - -if(__get_git_revision_description) - return() -endif() -set(__get_git_revision_description YES) - -# We must run the following at "include" time, not at function call time, -# to find the path to this module rather than the path to a calling list file -get_filename_component(_gitdescmoddir ${CMAKE_CURRENT_LIST_FILE} PATH) - -function(get_git_head_revision _refspecvar _hashvar) - set(GIT_PARENT_DIR "${CMAKE_CURRENT_LIST_DIR}") - set(GIT_DIR "${GIT_PARENT_DIR}/.git") - while(NOT EXISTS "${GIT_DIR}") # .git dir not found, search parent directories - set(GIT_PREVIOUS_PARENT "${GIT_PARENT_DIR}") - get_filename_component(GIT_PARENT_DIR ${GIT_PARENT_DIR} PATH) - if(GIT_PARENT_DIR STREQUAL GIT_PREVIOUS_PARENT) - # We have reached the root directory, we are not in git - set(${_refspecvar} "GITDIR-NOTFOUND" PARENT_SCOPE) - set(${_hashvar} "GITDIR-NOTFOUND" PARENT_SCOPE) - return() - endif() - set(GIT_DIR "${GIT_PARENT_DIR}/.git") - endwhile() - # check if this is a submodule - if(NOT IS_DIRECTORY ${GIT_DIR}) - file(READ ${GIT_DIR} submodule) - string(REGEX REPLACE "gitdir: (.*)\n$" "\\1" GIT_DIR_RELATIVE ${submodule}) - get_filename_component(SUBMODULE_DIR ${GIT_DIR} PATH) - get_filename_component(GIT_DIR ${SUBMODULE_DIR}/${GIT_DIR_RELATIVE} ABSOLUTE) - endif() - set(GIT_DATA "${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/git-data") - if(NOT EXISTS "${GIT_DATA}") - file(MAKE_DIRECTORY "${GIT_DATA}") - endif() - - if(NOT EXISTS "${GIT_DIR}/HEAD") - return() - endif() - set(HEAD_FILE "${GIT_DATA}/HEAD") - configure_file("${GIT_DIR}/HEAD" "${HEAD_FILE}" COPYONLY) - - configure_file("${_gitdescmoddir}/GetGitRevisionDescription.cmake.in" - "${GIT_DATA}/grabRef.cmake" - @ONLY) - include("${GIT_DATA}/grabRef.cmake") - - set(${_refspecvar} "${HEAD_REF}" PARENT_SCOPE) - set(${_hashvar} "${HEAD_HASH}" PARENT_SCOPE) -endfunction() - -function(git_describe _var) - if(NOT GIT_FOUND) - find_package(Git QUIET) - endif() - get_git_head_revision(refspec hash) - if(NOT GIT_FOUND) - set(${_var} "GIT-NOTFOUND" PARENT_SCOPE) - return() - endif() - if(NOT hash) - set(${_var} "HEAD-HASH-NOTFOUND" PARENT_SCOPE) - return() - endif() - - # TODO sanitize - #if((${ARGN}" MATCHES "&&") OR - # (ARGN MATCHES "||") OR - # (ARGN MATCHES "\\;")) - # message("Please report the following error to the project!") - # message(FATAL_ERROR "Looks like someone's doing something nefarious with git_describe! Passed arguments ${ARGN}") - #endif() - - #message(STATUS "Arguments to execute_process: ${ARGN}") - - execute_process(COMMAND - "${GIT_EXECUTABLE}" - describe - ${hash} - ${ARGN} - WORKING_DIRECTORY - "${CMAKE_SOURCE_DIR}" - RESULT_VARIABLE - res - OUTPUT_VARIABLE - out - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE) - if(NOT res EQUAL 0) - set(out "${out}-${res}-NOTFOUND") - endif() - - set(${_var} "${out}" PARENT_SCOPE) -endfunction() - -function(git_get_exact_tag _var) - git_describe(out --exact-match ${ARGN}) - set(${_var} "${out}" PARENT_SCOPE) -endfunction() diff --git a/cmake/GetGitRevisionDescription.cmake.in b/cmake/GetGitRevisionDescription.cmake.in deleted file mode 100644 index 6d8b708..0000000 --- a/cmake/GetGitRevisionDescription.cmake.in +++ /dev/null @@ -1,41 +0,0 @@ -# -# Internal file for GetGitRevisionDescription.cmake -# -# Requires CMake 2.6 or newer (uses the 'function' command) -# -# Original Author: -# 2009-2010 Ryan Pavlik -# http://academic.cleardefinition.com -# Iowa State University HCI Graduate Program/VRAC -# -# Copyright Iowa State University 2009-2010. -# Distributed under the Boost Software License, Version 1.0. -# (See accompanying file LICENSE_1_0.txt or copy at -# http://www.boost.org/LICENSE_1_0.txt) - -set(HEAD_HASH) - -file(READ "@HEAD_FILE@" HEAD_CONTENTS LIMIT 1024) - -string(STRIP "${HEAD_CONTENTS}" HEAD_CONTENTS) -if(HEAD_CONTENTS MATCHES "ref") - # named branch - string(REPLACE "ref: " "" HEAD_REF "${HEAD_CONTENTS}") - if(EXISTS "@GIT_DIR@/${HEAD_REF}") - configure_file("@GIT_DIR@/${HEAD_REF}" "@GIT_DATA@/head-ref" COPYONLY) - else() - configure_file("@GIT_DIR@/packed-refs" "@GIT_DATA@/packed-refs" COPYONLY) - file(READ "@GIT_DATA@/packed-refs" PACKED_REFS) - if(${PACKED_REFS} MATCHES "([0-9a-z]*) ${HEAD_REF}") - set(HEAD_HASH "${CMAKE_MATCH_1}") - endif() - endif() -else() - # detached HEAD - configure_file("@GIT_DIR@/HEAD" "@GIT_DATA@/head-ref" COPYONLY) -endif() - -if(NOT HEAD_HASH) - file(READ "@GIT_DATA@/head-ref" HEAD_HASH LIMIT 1024) - string(STRIP "${HEAD_HASH}" HEAD_HASH) -endif() diff --git a/cmake/PackageConfigurator.cmake b/cmake/PackageConfigurator.cmake deleted file mode 100644 index b67615d..0000000 --- a/cmake/PackageConfigurator.cmake +++ /dev/null @@ -1,44 +0,0 @@ -# Create package-config files : -# - ConfigVersion.cmake -# - Config.cmake -# They are installed in lib/cmake/. -# -# Required variables : -# - VERSION -# - PROJECT_NAME -# - -# Include needed for 'write_basic_package_version_file' -include(CMakePackageConfigHelpers) - -write_basic_package_version_file( - "${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake" - VERSION ${VERSION} - COMPATIBILITY AnyNewerVersion -) - -configure_file(cmake/${PROJECT_NAME}Config.cmake - "${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}Config.cmake" - COPYONLY -) - -# Destination -set(config_install_dir lib/cmake/${PROJECT_NAME}) - -# Config installation -# * /lib/cmake//Targets.cmake -install( - EXPORT ${PROJECT_NAME}Targets - DESTINATION ${config_install_dir} -) - -# Config installation -# * /lib/cmake//Config.cmake -# * /lib/cmake//ConfigVersion.cmake -install( - FILES - cmake/${PROJECT_NAME}Config.cmake - "${CMAKE_CURRENT_BINARY_DIR}/cmake/${PROJECT_NAME}ConfigVersion.cmake" - DESTINATION ${config_install_dir} - COMPONENT devel -) \ No newline at end of file diff --git a/cmake/Submodules.cmake b/cmake/Submodules.cmake deleted file mode 100644 index 0d1b89d..0000000 --- a/cmake/Submodules.cmake +++ /dev/null @@ -1,57 +0,0 @@ -if(EXISTS "${PROJECT_SOURCE_DIR}/.gitmodules") -message(STATUS "Updating submodules to their latest/fixed versions") -message(STATUS "(this can take a while, please be patient)") - -### First, get all submodules in -if(${GIT_SUBMODULES_CHECKOUT_QUIET}) - execute_process( - COMMAND git submodule update --init --recursive - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - OUTPUT_QUIET - ERROR_QUIET - ) -else() - execute_process( - COMMAND git submodule update --init --recursive - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - ) -endif() - -### Then, checkout each submodule to the specified commit -# Note: Execute separate processes here, to make sure each one is run, -# should one crash (because of branch not existing, this, that ... whatever) -foreach(GIT_SUBMODULE ${GIT_SUBMODULES}) - - if( "${GIT_SUBMODULE_VERSION_${GIT_SUBMODULE}}" STREQUAL "" ) - message(STATUS "no specific version given for submodule ${GIT_SUBMODULE}, checking out master") - if( "${GIT_SUBMODULE_BRANCH_${GIT_SUBMODULE}}" STREQUAL "" ) - set(GIT_SUBMODULE_VERSION_${GIT_SUBMODULE} "master") - else() - set(GIT_SUBMODULE_VERSION_${GIT_SUBMODULE} ${GIT_SUBMODULE_BRANCH_${GIT_SUBMODULE}}) - endif() - endif() - - if( "${GIT_SUBMODULE_DIR_${GIT_SUBMODULE}}" STREQUAL "" ) - set(GIT_SUBMODULES_DIRECTORY external) - else() - set(GIT_SUBMODULES_DIRECTORY ${GIT_SUBMODULE_DIR_${GIT_SUBMODULE}}) - endif() - - if(${GIT_SUBMODULES_CHECKOUT_QUIET}) - execute_process( - COMMAND git checkout ${GIT_SUBMODULE_VERSION_${GIT_SUBMODULE}} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/${GIT_SUBMODULES_DIRECTORY}/${GIT_SUBMODULE} - OUTPUT_QUIET - ERROR_QUIET - ) - else() - message(STATUS "checking out ${GIT_SUBMODULE}'s commit/tag ${GIT_SUBMODULE_VERSION_${GIT_SUBMODULE}}") - execute_process( - COMMAND git checkout ${GIT_SUBMODULE_VERSION_${GIT_SUBMODULE}} - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/${GIT_SUBMODULES_DIRECTORY}/${GIT_SUBMODULE} - ) - endif() - -endforeach(${GIT_SUBMODULE}) - -endif()