mate-desktop / mate-calc

Calculator for MATE
http://www.mate-desktop.org
GNU General Public License v2.0
40 stars 33 forks source link

Add build support for meson #197

Closed zhuyaliang closed 3 years ago

zhuyaliang commented 3 years ago

Add build support for meson Continuation of #37

test

meson build --prefix /usr
ninja -C build
sudo DESTDIR=/tmp/tmp_install ninja -C build install
raveit65 commented 3 years ago

meson build gives me a little warning.

Library m found: YES
Library mpc found: YES
Library mpfr found: YES
Configuring config.h using configuration
src/meson.build:84: WARNING: Keyword argument "install" defined multiple times.
WARNING: This will be an error in future Meson releases.

Edit: Looks like install : true is defined 2 times.

raveit65 commented 3 years ago

Some files won't be installed comparing to my fedora rpm package.

/usr/bin/mate-calc-cmd
/usr/bin/mate-calculator (symlink to mate-calc)

And man pages should be installed as gz archives, or not? Normal installation:

[root@mother rave]# ls -la /usr/share/man/man1 | grep mate-calc
-rw-r--r--   1 root root    865 27. Jan 2018  mate-calc.1.gz
-rw-r--r--   1 root root    416 27. Jan 2018  mate-calc-cmd.1.gz

With meson to /usr/local/man/man1/

[root@mother rave]# ls -la /usr/local/share/man/man1 | grep mate-calc
-rw-r--r-- 1 root root 1645 27. Jan 2018  mate-calc.1
-rw-r--r-- 1 root root  693 27. Jan 2018  mate-calc-cmd.1

And appdata file seems to be wrong. Normal installation.

[root@mother rave]# ls -la /usr/local/share/metainfo/ | grep mate-calc.appdata
-rw-r--r-- 1 root root 17921 27. Jul 16:19 mate-calc.appdata.xml.in

Meson installation.

[root@mother rave]# ls -la /usr/share/metainfo/ | grep mate-calc.appdata
-rw-r--r--    1 root root  17921 30. Mai 11:58 mate-calc.appdata.xml

Rest looks good.

raveit65 commented 3 years ago

Hmm, i do not see mp-serializer.c and unittest.c in src/meson.build

vkareh commented 3 years ago

With this latest change I get these runtime errors:

Could not find signal handler 'bit_toggle_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'button_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'character_code_dialog_activate_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'character_code_dialog_delete_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'character_code_dialog_response_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'clear_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'digit_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'factorize_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'insert_character_code_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'memory_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'numeric_point_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'set_subscript_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'set_superscript_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'shift_left_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'shift_right_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'solve_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'subtract_cb'.  Did you compile with -rdynamic?
Could not find signal handler 'undo_cb'.  Did you compile with -rdynamic?
zhuyaliang commented 3 years ago

@raveit65 @vkareh Please test again

zhuyaliang commented 3 years ago

Hmm, i do not see mp-serializer.c and unittest.c in src/meson.build

The mp-serializer.c file is defined in src/meson.build I didn't find the function of unittest.c file in makefile,I don't know what this file does

zhuyaliang commented 3 years ago

mate-calc.1.gz and mate-calc-cmd.1.gz seems to have been completed during packaging The same result is obtained using makefile (mate-calc.1 and mate-calc-cmd.1 )

zhuyaliang commented 3 years ago

[root@mother rave]# ls -la /usr/local/share/metainfo/ | grep mate-calc.appdata -rw-r--r-- 1 root root 17921 27. Jul 16:19 mate-calc.appdata.xml.in

use meson build --prefix /usr/local

raveit65 commented 3 years ago

Hmm, i do not see mp-serializer.c and unittest.c in src/meson.build

The mp-serializer.c file is defined in src/meson.build

Opps, it is there, sorry my fault.

I didn't find the function of unittest.c file in makefile,I don't know what this file does

@mbkma Can you help and explain for what it is good for, please ?

raveit65 commented 3 years ago

With latest changes:

[rave@mother mate-calc-dist]$ meson build --prefix /usr/local
The Meson build system
Version: 0.56.2
Source dir: /media/Data/Programme/Linux/Mate-Desktop/git-version/github-matedesktop/mate-calc-dist
Build dir: /media/Data/Programme/Linux/Mate-Desktop/git-version/github-matedesktop/mate-calc-dist/build
Build type: native build
Project name: mate-calc
Project version: 1.25.1
C compiler for the host machine: cc (gcc 11.1.1 "cc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)")
C linker for the host machine: cc ld.bfd 2.35.1-41
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Run-time dependency gio-2.0 found: YES 2.68.2
Run-time dependency glib-2.0 found: YES 2.68.2
Run-time dependency gobject-2.0 found: YES 2.68.2
Run-time dependency libxml-2.0 found: YES 2.9.12
Run-time dependency gtk+-3.0 found: YES 3.24.30
Library mpc found: YES
Library mpfr found: YES
Configuring config.h using configuration
Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)

src/meson.build:111:0: ERROR: File mp-enums.c does not exist.

A full log can be found at /media/Data/Programme/Linux/Mate-Desktop/git-version/github-matedesktop/mate-calc-dist/build/meson-logs/meson-log.txt

I see only mp-enums.c.template in /src/ directory.

mbkma commented 3 years ago

@raveit65 I think we need this commit: https://gitlab.gnome.org/GNOME/gnome-calculator/-/commit/aaeb94066a70e1898d0b3a63988a90c9b8472a75

raveit65 commented 3 years ago

@mbkma Seems that should be done before meson integration to avoid double work?

mbkma commented 3 years ago

@raveit65 yes, see #198

raveit65 commented 3 years ago

@zhuyaliang https://github.com/mate-desktop/mate-calc/pull/198 is merged. Please rebase with master.

raveit65 commented 3 years ago

But this error still exists after local rebase with master.

src/meson.build:111:0: ERROR: File mp-enums.c does not exist.
raveit65 commented 3 years ago

mate-calc.1.gz and mate-calc-cmd.1.gz seems to have been completed during packaging The same result is obtained using makefile (mate-calc.1 and mate-calc-cmd.1 )

You're right, same with master and installing by hand.

raveit65 commented 3 years ago

[root@mother rave]# ls -la /usr/local/share/metainfo/ | grep mate-calc.appdata -rw-r--r-- 1 root root 17921 27. Jul 16:19 mate-calc.appdata.xml.in

use meson build --prefix /usr/local

I did :)

zhuyaliang commented 3 years ago

rebase to master

Does the problem still exist? src/meson.build:111:0: ERROR: File mp-enums.c does not exist.

raveit65 commented 3 years ago

rebase to master

Does the problem still exist? src/meson.build:111:0: ERROR: File mp-enums.c does not exist.

Same like before.

[rave@mother mate-calc-dist]$ meson build --prefix /usr/local
The Meson build system
Version: 0.56.2
Source dir: /media/Data/Programme/Linux/Mate-Desktop/git-version/github-matedesktop/mate-calc-dist
Build dir: /media/Data/Programme/Linux/Mate-Desktop/git-version/github-matedesktop/mate-calc-dist/build
Build type: native build
Project name: mate-calc
Project version: 1.25.1
C compiler for the host machine: cc (gcc 11.1.1 "cc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)")
C linker for the host machine: cc ld.bfd 2.35.1-41
Host machine cpu family: x86_64
Host machine cpu: x86_64
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Run-time dependency gio-2.0 found: YES 2.68.2
Run-time dependency glib-2.0 found: YES 2.68.2
Run-time dependency gobject-2.0 found: YES 2.68.2
Run-time dependency libxml-2.0 found: YES 2.9.12
Run-time dependency gtk+-3.0 found: YES 3.24.30
Library mpc found: YES
Library mpfr found: YES
Configuring config.h using configuration
Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)

src/meson.build:111:0: ERROR: File mp-enums.c does not exist.

A full log can be found at /media/Data/Programme/Linux/Mate-Desktop/git-version/github-matedesktop/mate-calc-dist/build/meson-logs/meson-log.txt
[rave@mother mate-calc-dist]$

Should be reproducible.

zhuyaliang commented 3 years ago

@raveit65 This is my negligence, please test again

raveit65 commented 3 years ago

Build error is gone, thank you. But this issue is left.

[rave@mother mate-calc-dist]$ meson build --prefix /usr/local
[rave@mother mate-calc-dist]$ ninja -C build
[rave@mother mate-calc-dist]$ sudo ninja -C build install
[rave@mother mate-calc-dist]$ ls -l /usr/local/share/metainfo/
-rw-r--r-- 1 root root 17921 Jul 30 13:15 mate-calc.appdata.xml.in

Should be /usr/local/share/metainfo/mate-calc.appdata.xml

zhuyaliang commented 3 years ago

@raveit65 The problem was fixed