commit 12197bfbbdcef1055e205f557c8c8db693b47f5c Author: laentropia Date: Mon Apr 13 11:16:58 2026 -0600 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0bd57ed --- /dev/null +++ b/.gitignore @@ -0,0 +1,56 @@ +# Directories +build/ +build-*/ +cmake-build-*/ +.cache/ +out/ +out/Debug/ +out/Release/ + +# Cmake files +CMakeCache.txt +CMakeFiles/ +cmake_install.cmake +CTestTestfile.cmake +Testing/ +compile_commands.json +../compile_commands.json +build/compile_commands.json + +# Make / Ninja +Makefile +*.ninja +*.ninja_deps +*.ninja_log +rules.ninja + +# Object files +*.o +*.obj +*.lo +*.la + +# Binaries +*.out +*.exe +*.dll +*.so +*.so.* +*.dylib +*.a + +# Debug / Sanitizer +*.dSYM/ +*.gcno +*.gcda +*.gcov + +# Editors +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Git +COMMIT_MESSAGE diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..9696f83 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,39 @@ +cmake_minimum_required(VERSION 3.20) +project(calculator VERSION 1.0 LANGUAGES C) + +set(CMAKE_C_STANDARD 11) +set(CMAKE_C_STANDARD_REQUIRED ON) + +# Export compile_commands.json (para clangd) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + +add_compile_options( + -Wall + -Wextra + -Wpedantic +) + + +include_directories(include) + +add_library(arraylist_lib + src/arraylist.c +) + +add_executable(arraylist_main src/main.c) + +target_link_libraries(arraylist_main arraylist_lib) + +function(enable_sanitizers target) + target_compile_options(${target} PRIVATE -fsanitize=address -fno-omit-frame-pointer) + target_link_options(${target} PRIVATE -fsanitize=address) +endfunction() + + +# ------------------------ +# Testing +# ------------------------ + +enable_testing() +add_subdirectory(test) + diff --git a/include/arraylist.h b/include/arraylist.h new file mode 100644 index 0000000..e69de29 diff --git a/src/arraylist.c b/src/arraylist.c new file mode 100644 index 0000000..e69de29 diff --git a/src/main.c b/src/main.c new file mode 100644 index 0000000..e69de29 diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..df65436 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,15 @@ +find_package(cmocka REQUIRED) + +add_executable(test_arraylist test_arraylist.c) + +target_link_libraries(test_arraylist + arena_lib + cmocka::cmocka +) + +enable_sanitizers(test_arraylist) + +target_compile_options(test_arraylist PRIVATE -fsanitize=address -fno-omit-frame-pointer) +target_link_options(test_arraylist PRIVATE -fsanitize=address) + +add_test(NAME arraylist_tests COMMAND arraylists_arena) diff --git a/test/test_arraylist.c b/test/test_arraylist.c new file mode 100644 index 0000000..e69de29