Add single header and single source entries for all components as well as the whole library #2

Merged
abdelrahman merged 5 commits from compilation-restructure into main 2025-02-23 15:19:15 +00:00
14 changed files with 136 additions and 4 deletions

View File

@ -8,7 +8,7 @@ $GeneralFlags = "/Wall /WX /wd4996"
$LibraryFlags = "/LD"
$IncludeDirs = Get-ChildItem -Path src -Recurse -Directory -ErrorAction SilentlyContinue -Force | %{$("/I " + '"' + $_.FullName + '"')}
$SrcFiles = Get-ChildItem -Path src -Recurse -Filter *.c -ErrorAction SilentlyContinue -Force | %{$('"' + $_.FullName + '"')}
$SrcFiles = "src/wapp.c"
$TestIncludeDirs = Get-ChildItem -Path tests -Recurse -Directory -ErrorAction SilentlyContinue -Force | %{$("/I " + '"' + $_.FullName + '"')}
$TestSrcFiles = Get-ChildItem -Path tests -Recurse -Filter *.c -ErrorAction SilentlyContinue -Force | %{$('"' + $_.FullName + '"')}

38
compile
View File

@ -1,6 +1,17 @@
#!/bin/bash
BUILD_TYPE="debug"
COMPONENTS="all"
function join_array {
DELIM="$1"
shift
local IFS="$DELIM"
echo "$*"
}
SUPPORTED_COMPONENTS=("all" "testing" "os" "core")
COMPONENTS_STRING="$(join_array "|" ${SUPPORTED_COMPONENTS[@]})"
while [[ $# > 0 ]];do
case $1 in
@ -8,8 +19,14 @@ while [[ $# > 0 ]];do
BUILD_TYPE="release"
shift
;;
--components)
COMPONENTS="$2"
shift
shift
;;
*|-*|--*)
echo "Unknown option $1"
echo "Usage: $0 [--release] [--components $COMPONENTS_STRING (Default: all)]"
exit 1
;;
esac
@ -25,7 +42,26 @@ if [[ $CC == "gcc" ]]; then
fi
INCLUDE="$(find src -type d | xargs -I{} echo -n "-I{} ")"
SRC="$(find src -type f -name "*.c" | xargs -I{} echo -n "{} ")"
case $COMPONENTS in
all)
SRC="src/wapp.c"
;;
testing)
SRC="src/testing/wapp_testing.c"
;;
os)
SRC="src/os/wapp_os.c"
;;
core)
SRC="src/core/wapp_core.c"
;;
*)
echo "Unrecognised option for components: $COMPONENTS"
echo "Accepted options: $COMPONENTS_STRING"
exit 2
;;
esac
TEST_INCLUDE="$(find tests -type d | xargs -I{} echo -n "-I{} ")"
TEST_SRC="$(find tests -type f -name "*.c" | xargs -I{} echo -n "{} ")"

8
src/common/wapp_common.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef WAPP_COMMON_H
#define WAPP_COMMON_H
#include "aliases.h"
#include "misc_utils.h"
#include "platform.h"
#endif // !WAPP_COMMON_H

10
src/core/wapp_core.c Normal file
View File

@ -0,0 +1,10 @@
#ifndef WAPP_CORE_C
#define WAPP_CORE_C
#include "wapp_core.h"
#include "mem_arena.c"
#include "mem_arena_allocator.c"
#include "mem_allocator.c"
#include "str8.c"
#endif // !WAPP_CORE_C

10
src/core/wapp_core.h Normal file
View File

@ -0,0 +1,10 @@
#ifndef WAPP_CORE_H
#define WAPP_CORE_H
#include "mem_arena_allocator.h"
#include "mem_arena.h"
#include "mem_allocator.h"
#include "str8.h"
#include "wapp_common.h"
#endif // !WAPP_CORE_H

17
src/os/wapp_os.c Normal file
View File

@ -0,0 +1,17 @@
#ifndef WAPP_OS_C
#define WAPP_OS_C
#include "wapp_os.h"
#include "termcolour_win.c"
#include "termcolour_posix.c"
#include "termcolour.c"
#include "commander_win.c"
#include "commander.c"
#include "commander_posix.c"
#include "mem_utils_win.c"
#include "mem_utils.c"
#include "mem_utils_posix.c"
#include "cpath.c"
#include "wapp_core.c"
#endif // !WAPP_OS_C

17
src/os/wapp_os.h Normal file
View File

@ -0,0 +1,17 @@
#ifndef WAPP_OS_H
#define WAPP_OS_H
#include "termcolour.h"
#include "terminal_colours.h"
#include "shell_utils.h"
#include "commander_output.h"
#include "commander.h"
#include "mem_utils_ops.h"
#include "mem_utils_win.h"
#include "mem_utils.h"
#include "mem_utils_posix.h"
#include "cpath.h"
#include "wapp_common.h"
#include "wapp_core.h"
#endif // !WAPP_OS_H

View File

@ -0,0 +1,9 @@
#ifndef WAPP_TESTING_C
#define WAPP_TESTING_C
#include "wapp_testing.h"
#include "tester.c"
#include "wapp_core.c"
#include "wapp_os.c"
#endif // !WAPP_TESTING_C

View File

@ -0,0 +1,9 @@
#ifndef WAPP_TESTING_H
#define WAPP_TESTING_H
#include "tester.h"
#include "wapp_common.h"
#include "wapp_core.h"
#include "wapp_os.h"
#endif // !WAPP_TESTING_H

9
src/wapp.c Normal file
View File

@ -0,0 +1,9 @@
#ifndef WAPP_C
#define WAPP_C
#include "wapp.h"
#include "wapp_core.c"
#include "wapp_os.c"
#include "wapp_testing.c"
#endif // !WAPP_C

9
src/wapp.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef WAPP_H
#define WAPP_H
#include "wapp_common.h"
#include "wapp_core.h"
#include "wapp_os.h"
#include "wapp_testing.h"
#endif // !WAPP_H

View File

@ -7,8 +7,6 @@
#include "tester.h"
#include <stdlib.h>
int main(void) {
wapp_tester_run_tests(test_arena_allocator,
test_arena_init,