From 22805d3e7e454fb24e86b7fed36cad6bd19e6a4b Mon Sep 17 00:00:00 2001 From: ObeseTermite Date: Sun, 29 Jun 2025 21:39:02 -0700 Subject: [PATCH] Made a basic project for the calculator, just a gtk window so far, but build system set up, as well as directory structure. Added all the cmake crap to gitingore as well --- .gitignore | 10 ++++++++++ .gitmodules | 3 +++ calculator/CMakeLists.txt | 17 +++++++++++++++++ calculator/calc.c | 25 +++++++++++++++++++++++++ lib/wieve-libs | 1 + 5 files changed, 56 insertions(+) create mode 100644 .gitmodules create mode 100644 calculator/CMakeLists.txt create mode 100644 calculator/calc.c create mode 160000 lib/wieve-libs diff --git a/.gitignore b/.gitignore index cd531cf..adc17a6 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,13 @@ Module.symvers Mkfile.old dkms.conf +# CMake +**/bin/ +**/build/ +CMakeCache.txt +CMakeFiles +.cache +cmake_install.cmake +compile_commands.json +Makefile + diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..8407e59 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/wieve-libs"] + path = lib/wieve-libs + url = git@mudf.lat:ObeseTermite/wieve-libs.git diff --git a/calculator/CMakeLists.txt b/calculator/CMakeLists.txt new file mode 100644 index 0000000..59042d1 --- /dev/null +++ b/calculator/CMakeLists.txt @@ -0,0 +1,17 @@ +cmake_minimum_required(VERSION 3.5) + +project(calculator) + +set(CMAKE_BINARY_DIR ${CMAKE_SOURCE_DIR}/bin) +set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}) +set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}) + +find_package(PkgConfig REQUIRED) +pkg_check_modules(GTK3 REQUIRED gtk+-3.0) + +include_directories(${GTK3_INCLUDE_DIRS}) +link_directories(${GTK3_LIBRARY_DIRS}) +add_definitions(${GTK3_CFLAGS_OTHER}) + +add_executable(wieve-calc ${PROJECT_SOURCE_DIR}/calc.c) +target_link_libraries(wieve-calc ${GTK3_LIBRARIES}) diff --git a/calculator/calc.c b/calculator/calc.c new file mode 100644 index 0000000..14ba77c --- /dev/null +++ b/calculator/calc.c @@ -0,0 +1,25 @@ +#include + +static void activate (GtkApplication* app, gpointer user_data) +{ + GtkWidget *window; + + window = gtk_application_window_new (app); + gtk_window_set_title (GTK_WINDOW (window), "Calculator"); + gtk_window_set_default_size (GTK_WINDOW (window), 500, 800); + gtk_widget_show_all (window); +} + +int main (int argc, char **argv) +{ + GtkApplication *app; + int status; + + app = gtk_application_new ("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS); + g_signal_connect (app, "activate", G_CALLBACK (activate), NULL); + status = g_application_run (G_APPLICATION (app), argc, argv); + g_object_unref (app); + + return status; +} + diff --git a/lib/wieve-libs b/lib/wieve-libs new file mode 160000 index 0000000..98b87b4 --- /dev/null +++ b/lib/wieve-libs @@ -0,0 +1 @@ +Subproject commit 98b87b419528e48edcfa0291cc8eeb0c2a65d10e