Refactor (#1)

This commit is contained in:
6arelyFuture 2022-10-18 23:02:39 +01:00 committed by GitHub
parent 2e5b226cff
commit 24496780d4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 154 additions and 29 deletions

64
.github/workflows/build.yml vendored Normal file
View File

@ -0,0 +1,64 @@
name: Build
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
types: [opened, synchronize, reopened]
jobs:
build-lin:
name: Build Linux
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
configuration:
- Debug
- Release
arch:
- x86
- x64
include:
- configuration: Debug
config: debug
- configuration: Release
config: release
steps:
- name: Check out files
uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
# NOTE - If LFS ever starts getting used during builds, switch this to true!
lfs: false
- name: Install dependencies (x64)
if: matrix.arch == 'x64'
run: |
sudo apt-get update
sudo apt-get -y install libcurl4-gnutls-dev
- name: Install dependencies (x86)
if: matrix.arch == 'x86'
run: |
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get -y install gcc-multilib g++-multilib libcurl4-gnutls-dev:i386
- name: Generate project files
run: ./generate.sh
- name: Set up problem matching
uses: ammaraskar/gcc-problem-matcher@master
- name: Build ${{matrix.configuration}} ${{matrix.arch}} binaries
run: |
pushd build
make config=${{matrix.config}}_${{matrix.arch}} -j$(nproc)
- name: Upload ${{matrix.configuration}} ${{matrix.arch}} binaries
uses: actions/upload-artifact@v3.1.0
with:
name: Linux ${{matrix.configuration}} ${{matrix.arch}} binaries
path: |
build/bin/${{matrix.arch}}/${{matrix.configuration}}/MonitorRam

View File

@ -0,0 +1,20 @@
name: clang-format Check
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
types: [opened, synchronize, reopened]
jobs:
formatting-check:
name: Formatting Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run clang-format style check for C/C++/Protobuf programs.
uses: jidicula/clang-format-action@v4.9.0
with:
clang-format-version: '15'
check-path: 'src'

2
generate.sh Executable file
View File

@ -0,0 +1,2 @@
#!/bin/bash
./tools/premake5-linux gmake2

View File

@ -1,24 +0,0 @@
TARGET = monitor
LIBS = -lm
CC = gcc
CFLAGS = -O2 -g -Wall -std=gnu11
.PHONY: clean all default
default: $(TARGET)
all: default
OBJECTS = $(patsubst %.c, %.o, $(wildcard *.c))
HEADERS = $(wildcard *.h)
%.o: %.c $(HEADERS)
$(CC) $(CFLAGS) -c $< -o $@
.PRECIOUS: $(TARGET) $(OBJECTS)
$(TARGET): $(OBJECTS)
$(CC) $(OBJECTS) -Wall $(LIBS) -o $@
clean:
-rm -f *.o
-rm -f $(TARGET)

60
premake5.lua Normal file
View File

@ -0,0 +1,60 @@
workspace "MonitorRam"
startproject "MonitorRam"
location "./build"
objdir "%{wks.location}/obj"
targetdir "%{wks.location}/bin/%{cfg.platform}/%{cfg.buildcfg}"
configurations {"Debug", "Release"}
platforms {"x86", "x64"}
filter "platforms:x86"
architecture "x86"
filter {}
filter "platforms:x64"
architecture "x86_64"
filter {}
buildoptions {"-std=gnu11"}
symbols "On"
staticruntime "On"
editandcontinue "Off"
warnings "Extra"
characterset "ASCII"
if os.istarget("linux") then
buildoptions {"-pthread"}
linkoptions {"-pthread"}
end
if os.getenv("CI") then
defines {"CI"}
end
flags {"NoIncrementalLink", "NoMinimalRebuild", "MultiProcessorCompile", "No64BitChecks"}
filter "configurations:Release"
optimize "Speed"
defines {"NDEBUG"}
flags {"FatalCompileWarnings"}
filter {}
filter "configurations:Debug"
optimize "Debug"
defines {"DEBUG", "_DEBUG"}
filter {}
project "MonitorRam"
kind "ConsoleApp"
language "C"
targetname "MonitorRam"
files {"./src/**.h", "./src/**.c"}
includedirs {"./src", "%{prj.location}/src"}
resincludedirs {"%{_MAIN_SCRIPT_DIR}/src"}

View File

@ -3,6 +3,6 @@
#define BUFFER_SIZE 4096 #define BUFFER_SIZE 4096
void get_time_stamp(char* buf); extern void get_time_stamp(char* buf);
#endif /* COMMON_H */ #endif /* COMMON_H */

View File

@ -7,7 +7,10 @@
volatile sig_atomic_t sigint_received = 0; volatile sig_atomic_t sigint_received = 0;
void sigint_handler(int a) { sigint_received = 1; } void sigint_handler(int a) {
sigint_received = 1;
(void)a;
}
int main(int argc, char* argv[]) { int main(int argc, char* argv[]) {
if (argc < 2) { if (argc < 2) {

View File

@ -1,7 +1,7 @@
#ifndef MONITOR_H #ifndef MONITOR_H
#define MONITOR_H #define MONITOR_H
int setup(const char* pid); extern int setup(const char* pid);
int analyse(); extern int analyse();
#endif /* MONITOR_H */ #endif /* MONITOR_H */

View File

@ -1,6 +1,6 @@
#ifndef UTILS_H #ifndef UTILS_H
#define UTILS_H #define UTILS_H
char* va(const char* fmt, ...); extern char* va(const char* fmt, ...);
#endif /* UTILS_H */ #endif /* UTILS_H */

BIN
tools/premake5-linux Executable file

Binary file not shown.