Create example
This commit is contained in:
commit
83be52c91a
|
@ -0,0 +1 @@
|
|||
build
|
|
@ -0,0 +1,13 @@
|
|||
PROJECT ( example )
|
||||
|
||||
cmake_minimum_required( VERSION 3.22 )
|
||||
|
||||
FIND_PACKAGE ( PkgConfig REQUIRED )
|
||||
PKG_CHECK_MODULES( GTK REQUIRED gtkmm-4.0)
|
||||
INCLUDE_DIRECTORIES ( ${GTK_INCLUDE_DIRS} )
|
||||
|
||||
|
||||
|
||||
ADD_EXECUTABLE ( example main.cpp )
|
||||
TARGET_LINK_LIBRARIES( example ${CMAKE_THREAD_LIBS_INIT} ${GTK_LIBRARIES} )
|
||||
|
|
@ -0,0 +1,7 @@
|
|||
# GTK Example
|
||||
|
||||
### Ubuntu
|
||||
|
||||
```bash
|
||||
sudo apt install libgtkmm-2.4-dev
|
||||
```
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/bash
|
||||
|
||||
#g++ main.cpp $(pkg-config gtkmm-4.0 --cflags --libs)
|
||||
|
||||
mkdir -p build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
|
@ -0,0 +1,69 @@
|
|||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
# https://terminalroot.com/how-to-install-gtkmm-4-on-ubuntu-2204/
|
||||
# https://www.devdungeon.com/wiki/doku.php?id=programming:gtk4
|
||||
|
||||
#sudo apt install build-essential git g++ autotools-dev libgtkmm-3.0-dev \
|
||||
# libgtkmm-3.0-doc mm-common libgtk-4-bin \
|
||||
# libgtk-4-common libgtk-4-dev libgtk-4-doc pkg-config
|
||||
|
||||
if [ ! -f libsigc++-3.0.7.tar.xz ]; then
|
||||
wget https://download.gnome.org/sources/libsigc++/3.0/libsigc++-3.0.7.tar.xz
|
||||
fi
|
||||
tar Jxvf libsigc++-3.0.7.tar.xz
|
||||
cd libsigc++-3.0.7/
|
||||
./autogen.sh --prefix=/usr/local
|
||||
make -j`nproc --ignore=2`
|
||||
sudo make install
|
||||
|
||||
if [ ! -f glibmm-2.68.2.tar.xz ]; then
|
||||
wget https://download.gnome.org/sources/glibmm/2.68/glibmm-2.68.2.tar.xz
|
||||
fi
|
||||
tar Jxvf glibmm-2.68.2.tar.xz
|
||||
cd glibmm-2.68.2/
|
||||
./autogen.sh --prefix=/usr
|
||||
make -j`nproc --ignore=2`
|
||||
sudo make install
|
||||
|
||||
cd ..
|
||||
|
||||
if [ ! -d cairomm ]; then
|
||||
git clone https://github.com/freedesktop/cairomm.git
|
||||
fi
|
||||
cd cairomm
|
||||
./autogen.sh --prefix=/usr
|
||||
make -j`nproc --ignore=2`
|
||||
sudo make install
|
||||
|
||||
cd ..
|
||||
|
||||
if [ ! -f pangomm-2.50.0.tar.xz ]; then
|
||||
wget https://download.gnome.org/sources/pangomm/2.50/pangomm-2.50.0.tar.xz
|
||||
fi
|
||||
tar Jxvf pangomm-2.50.0.tar.xz
|
||||
cd pangomm-2.50.0/
|
||||
./autogen.sh --prefix=/usr
|
||||
make -j`nproc --ignore=2`
|
||||
sudo make install
|
||||
|
||||
cd ..
|
||||
|
||||
ls /usr/lib/libsigc-3*
|
||||
|
||||
sudo ln -s /usr/local/lib/libsigc-3.0.so.0.0.0 /usr/lib/libsigc-3.0.so.0.0.0
|
||||
sudo ln -s /usr/local/lib/libsigc-3.0.la /usr/lib/libsigc-3.0.la
|
||||
sudo ln -s /usr/local/lib/libsigc-3.0.so /usr/lib/libsigc-3.0.so
|
||||
sudo ln -s /usr/local/lib/libsigc-3.0.so.0 /usr/lib/libsigc-3.0.so.0
|
||||
|
||||
if [ ! -f gtkmm-4.6.1.tar.xz ]; then
|
||||
wget https://download.gnome.org/sources/gtkmm/4.6/gtkmm-4.6.1.tar.xz
|
||||
wget https://download.gnome.org/sources/gtkmm/4.6/gtkmm-4.6.1.sha256sum
|
||||
sha256sum -c --ignore-missing gtkmm-4.6.1.sha256sum
|
||||
fi
|
||||
tar Jxvf gtkmm-4.6.1.tar.xz
|
||||
cd gtkmm-4.6.1
|
||||
./autogen.sh --prefix=/usr
|
||||
make -j`nproc --ignore=2`
|
||||
sudo make install
|
|
@ -0,0 +1,16 @@
|
|||
#include <gtkmm.h>
|
||||
|
||||
class GTKExample : public Gtk::Window {
|
||||
public:
|
||||
GTKExample();
|
||||
};
|
||||
|
||||
GTKExample::GTKExample(){
|
||||
set_title("GTK Example");
|
||||
set_default_size(800, 450);
|
||||
}
|
||||
|
||||
int main(int argc, char ** argv){
|
||||
auto app = Gtk::Application::create("com.example.gtk");
|
||||
return app->make_window_and_run<GTKExample>(argc, argv);
|
||||
}
|
Loading…
Reference in New Issue