需要帮助将Make文件转换为Mea的Meson构建文件

问题描述 投票:0回答:1

我正在Vala上开发应用程序。我需要在单个项目中同时使用webkit2gtk-web-extension-4.0webkit2gtk-4.0

我正在遵循-https://github.com/rschroll/webkitdom/tree/extension

示例中的制作文件如下:

PKGS=--pkg gtk+-3.0 --pkg libsoup-2.4
EXEC=dom-test
SOURCES=dom-test.vala custom-web-view.vala
LIB_BASE=dom-server
LIB_SOURCES=$(LIB_BASE).vala
LIBRARY=$(LIB_BASE).so

# If you have webkit2gtk-4.0 installed, you will need a Vala from git
# version 6a1a1ab1 (2014/10/16) or later, in order to have the fixed
# .vapi files.
#WEBKIT_VAPI=--pkg webkit2gtk-4.0
#WEBKIT_EXT_VAPI=--pkg webkit2gtk-web-extension-4.0
# Otherwise, use the -3.0 versions included here
WEBKIT_VAPI=--vapidir=. --pkg webkit2gtk-3.0
WEBKIT_EXT_VAPI=--vapidir=. --pkg webkit2gtk-web-extension-3.0 -X -I/usr/include/webkitgtk-3.0

all: $(EXEC) $(LIBRARY)

$(EXEC): $(SOURCES)
    valac $(WEBKIT_VAPI) $(PKGS) $^

$(LIBRARY): $(LIB_SOURCES)
    valac $(WEBKIT_EXT_VAPI) $(PKGS) --library=$(LIB_BASE) -X -fPIC -X -shared -o $@ $^

clean:
    rm $(EXEC) $(LIBRARY)

[使用Meson Build系统,我尝试使用共享库创建一个子项目,并将共享库链接到主项目中。但是我得到了错误

DOMServer.vala:1.1-1.10: error: The root namespace already contains a definition for `WebKit'

主项目meson.build文件如下:

project('com.linappfoundry.athmanam', ['c', 'vala'])

domserver_proj = subproject('DOMServer')
domserver_lib = domserver_proj.get_variable('domserver_lib')

cc = meson.get_compiler('c')
m_dep = cc.find_library('m', required : false)

executable(
    meson.project_name(),
    'AthmanamApp.vala',
    'Widgets/MainWindow.vala',
    'Widgets/PoemParserWebView.vala',
    dependencies: [
        dependency('gtk+-3.0'),
        dependency('glib-2.0'),
        dependency('libsoup-2.4'),
    dependency('webkit2gtk-4.0'),
        dependency('json-glib-1.0'),
        dependency('libxml-2.0'),
        m_dep
    ],
    link_with: [domserver_lib],
    install: true
)

并且子项目的meson.build文件如下:

project('com.linappfoundry.athmanam.DOMServer', ['c', 'vala'])

domserver_lib = shared_library(
    'com.linappfoundry.athmanam.DOMServer',
    'src/DOMServer.vala',
    dependencies: [
        dependency('glib-2.0'),
        dependency('gtk+-3.0'),
        dependency('libsoup-2.4'),
        dependency('webkit2gtk-web-extension-4.0')
    ],
    install: true
)

[我不确定我在做什么错,因为我对Vala和Meson都是陌生的。

gtk webkit gtk3 vala meson-build
1个回答
0
投票
来自Vala编译器,表示全局名称空间中已经存在Webkit的定义。错误可能很简单,例如使用大小写错误的关键字,例如Using Webkit;何时应为using Webkit;

Webkit被定义为全局(根)名称空间中的名称空间,并且在VAPI文件中完成。尝试查找将其重新定义为其他内容的位置。

© www.soinside.com 2019 - 2024. All rights reserved.