From c35add8c40ad4d9425de1b311393dd15bfd88d22 Mon Sep 17 00:00:00 2001 From: talksik Date: Sun, 23 Jul 2023 06:24:57 -0700 Subject: [PATCH] adding in build setup and linking external library --- .gitignore | 3 +++ CMakeLists.txt | 19 +++++++++++++++++++ build.sh | 15 +++++++++++++++ src/main.cpp | 16 ++++++++++++++++ 4 files changed, 53 insertions(+) create mode 100644 .gitignore create mode 100644 CMakeLists.txt create mode 100755 build.sh create mode 100644 src/main.cpp diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8f1bc4c --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +build/ + +*.so diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..3067b96 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 3.10) + +project(gtk_hello_world) + +set(CMAKE_CXX_STANDARD 17) + +find_package(PkgConfig) + +pkg_check_modules(GTKMM gtkmm-4.0) + +set (source_dir "${PROJECT_SOURCE_DIR}/src") +file(GLOB source_files "${source_dir}/*.cpp") + +link_directories(${GTKMM_LIBRARY_DIRS}) +include_directories(${GTKMM_INCLUDE_DIRS}) + +add_executable(${PROJECT_NAME} ${source_files}) + +target_link_libraries(${PROJECT_NAME} ${GTKMM_LIBRARIES}) diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..81d5d90 --- /dev/null +++ b/build.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +echo "Building project | making build folder, and going into it..." +rm -rf build +mkdir build +cd build + +echo "Running cmake with build type Debug." +cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug .. + +echo "=====================" +echo "Running make..." +echo "=====================" + +make diff --git a/src/main.cpp b/src/main.cpp new file mode 100644 index 0000000..42f1488 --- /dev/null +++ b/src/main.cpp @@ -0,0 +1,16 @@ +#include + +class MyWindow : public Gtk::Window { +public: + MyWindow(); +}; + +MyWindow::MyWindow() { + set_title("Basic application"); + set_default_size(800, 450); +} + +int main(int argc, char **argv) { + auto app = Gtk::Application::create("org.gtkmm.examples.base"); + return app->make_window_and_run(argc, argv); +}