hamonikr / nimf

다국어 입력기 프레임워크 Nimf is a lightweight, fast and extensible input method framework
GNU Lesser General Public License v3.0
143 stars 25 forks source link

Replace autotools with meson #16

Closed palindrom615 closed 4 years ago

palindrom615 commented 4 years ago

Meson is widely used build system. Meson is battle tested in big projects(especially in Gnome projects such as gimp or geary)

By replacing existing autotools with meson, these can be achived:

chaeya commented 4 years ago

제안하신 방법으로 빌드 시도 후 아래와 같은 에러가 있습니다.

Build started at 2020-03-23T13:52:29.642376
Main binary: /usr/bin/python3
Python system: Linux
The Meson build system
Version: 0.45.1
Source dir: /home/hamonikr/workspaces/nimf
Build dir: /home/hamonikr/workspaces/nimf/build
Build type: native build

meson_options.txt:1:0: ERROR: Unknown type feature.

작업한 코드는 meson 버전이 0.49 이상으로 정의되어 있는데, 현재 하모니카에서 제공하는 meson 은 0.45.1 입니다. 현재 하모니카 3.0 환경에서 제공하는 환경에서 빌드가 가능해야 머지 가능할것 같습니다.

chaeya commented 4 years ago

해당 커밋을 빌드시도하면 아래와 같은 오류 메세지가 나옵니다.

build error report form PR

Build started at 2020-03-23T16:37:13.461120
Main binary: /usr/bin/python3
Python system: Linux
The Meson build system
Version: 0.45.1
Source dir: /home/hamonikr/workspaces/nimf
Build dir: /home/hamonikr/workspaces/nimf/build
Build type: native build
Project name: nimf
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckc.c -o /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckc.exe
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckc.exe
Native C compiler: cc (gcc 7.5.0 "cc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0")
Sanity testing C++ compiler: c++
Is cross compiler: False.
Sanity check compiler command line: c++ /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckcpp.cc -o /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckcpp.exe
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckcpp.exe
Native C++ compiler: c++ (gcc 7.5.0 "c++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64

meson.build:27:12: ERROR: Division works only with integers.
chaeya commented 4 years ago

Build error from PR, Please look at below

Build started at 2020-03-23T18:20:32.781338
Main binary: /usr/bin/python3
Python system: Linux
The Meson build system
Version: 0.45.1
Source dir: /home/hamonikr/workspaces/nimf
Build dir: /home/hamonikr/workspaces/nimf/build
Build type: native build
Project name: nimf
Sanity testing C compiler: cc
Is cross compiler: False.
Sanity check compiler command line: cc /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckc.c -o /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckc.exe
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckc.exe
Native C compiler: cc (gcc 7.5.0 "cc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0")
Sanity testing C++ compiler: c++
Is cross compiler: False.
Sanity check compiler command line: c++ /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckcpp.cc -o /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckcpp.exe
Sanity check compile stdout:

-----
Sanity check compile stderr:

-----
Running test binary command: /home/hamonikr/workspaces/nimf/build/meson-private/sanitycheckcpp.exe
Native C++ compiler: c++ (gcc 7.5.0 "c++ (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0")
Build machine cpu family: x86_64
Build machine cpu: x86_64
Configuring config.h using configuration
Found pkg-config: /usr/bin/pkg-config (0.29.1)
Determining dependency 'glib-2.0' with pkg-config executable '/usr/bin/pkg-config'
Native dependency glib-2.0 found: YES 2.56.4
Program glib-genmarshal found: YES (/usr/bin/glib-genmarshal)
Program glib-mkenums found: YES (/usr/bin/glib-mkenums)
Determining dependency 'glib-2.0' with pkg-config executable '/usr/bin/pkg-config'
Native dependency glib-2.0 found: YES 2.56.4
Determining dependency 'gio-2.0' with pkg-config executable '/usr/bin/pkg-config'
Native dependency gio-2.0 found: YES 2.56.4
Determining dependency 'gio-unix-2.0' with pkg-config executable '/usr/bin/pkg-config'
Native dependency gio-unix-2.0 found: YES 2.56.4
Determining dependency 'gobject-2.0' with pkg-config executable '/usr/bin/pkg-config'
Native dependency gobject-2.0 found: YES 2.56.4
Determining dependency 'gmodule-2.0' with pkg-config executable '/usr/bin/pkg-config'
Native dependency gmodule-2.0 found: YES 2.56.4
Program /home/hamonikr/workspaces/nimf/meson_post_install.py found: YES (/usr/bin/env python3 /home/hamonikr/workspaces/nimf/meson_post_install.py)
Dependency glib-2.0 found: YES (cached)
Dependency gobject-2.0 found: YES (cached)
Dependency gio-2.0 found: YES (cached)
Determining dependency 'xkbcommon' with pkg-config executable '/usr/bin/pkg-config'
Native dependency xkbcommon found: YES 0.8.2
Program /home/hamonikr/workspaces/nimf/meson_post_install.py found: YES (/usr/bin/env python3 /home/hamonikr/workspaces/nimf/meson_post_install.py)
Determining dependency 'libhangul' with pkg-config executable '/usr/bin/pkg-config'
Native dependency libhangul found: YES 0.1.0
Program /home/hamonikr/workspaces/nimf/meson_post_install.py found: YES (/usr/bin/env python3 /home/hamonikr/workspaces/nimf/meson_post_install.py)

modules/engines/nimf-anthy/meson.build:4:64: ERROR: Expecting eof got eol_cont.
is_anthy_dic_exists = fs.is_file('/var/lib/anthy/anthy.dic') or \
                                                                ^
chaeya commented 4 years ago

@palindrom615 기여해주셔서 감사합니다. 아래 주소에서 별도의 브랜치로 작업중인것을 확인했습니다. https://github.com/hamonikr/nimf/tree/meson-build 추후 해당 브랜치를 확인하고 머지하면 되기 때문에 이 PR은 닫아두겠습니다.