Improve build (CMake)

This commit is contained in:
Attila Body 2025-06-01 20:28:13 +02:00
parent 5ee5c5cb2e
commit 9fc63b3e00
Signed by: abody
GPG key ID: BD0C6214E68FB5CF
3 changed files with 23 additions and 9 deletions

7
.gitignore vendored
View file

@ -1,6 +1,9 @@
/build/
/.cache/
/cmake_install.cmake
/build.ninja
/.ninja_*
CMakeFiles/
CMakeCache.txt
cmake_install.cmake
build.ninja

View file

@ -1,18 +1,25 @@
cmake_minimum_required(VERSION 3.10) # Or a newer version if you prefer
project(RingBufferTest CXX)
# Get the full path to the project source directory
string(REPLACE "\\" "/" PROJECT_PATH "${CMAKE_SOURCE_DIR}") # Normalize slashes for cross-platform compatibility
# Extract the last component of the path
get_filename_component(PROJECT_NAME "${PROJECT_PATH}" NAME)
# Use the extracted name as the project name
project(${PROJECT_NAME} CXX)
# Specify the C++ standard to use (e.g., C++17)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# Add your executable
add_executable(ringbuffer_test main.cpp ringbuffer.cpp)
add_executable(${PROJECT_NAME} main.cpp ringbuffer.cpp)
# Add include directories for your header files
target_include_directories(ringbuffer_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
# Add debugging flags (important for debugging)
if (CMAKE_BUILD_TYPE STREQUAL "Debug")
target_compile_options(ringbuffer_test PRIVATE -g)
target_compile_options(${PROJECT_NAME} PRIVATE -g)
endif()

View file

@ -9,7 +9,7 @@
{
"name": "base",
"hidden": true,
"generator": "Ninja", // Or "Unix Makefiles", "MinGW Makefiles", etc.
"generator": "Ninja",
"binaryDir": "${sourceDir}/build/${presetName}",
"cacheVariables": {
"CMAKE_CXX_STANDARD": "17",
@ -22,7 +22,11 @@
"displayName": "Debug Build",
"inherits": "base",
"cacheVariables": {
"CMAKE_BUILD_TYPE": "Debug"
"CMAKE_BUILD_TYPE": "Debug",
"CMAKE_VERBOSE_MAKEFILE": {
"type": "BOOL",
"value": "ON"
}
}
},
{
@ -52,7 +56,7 @@
{
"name": "default",
"displayName": "Run Tests",
"configurePreset": "debug", // Use the debug configuration for running tests
"configurePreset": "debug",
"output": {
"outputOnFailure": true
},