問題タブ [meson-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
711 参照

c++ - -Wno-pedantic は古い gcc では無視されます

ゼロ引数可変引数マクロを使用している C++ アプリケーションがあります。ただし、さまざまな回答でSOにここに投稿された標準準拠のソリューションはあまり好きではなく、GCC固有のものを維持して##__VAR_ARGS__ください。

ただし、できるだけ多くの警告をキャッチしたいと思います。

私のビルド システムは meson で、オプションを渡し、追加のプロジェクト引数として--buildtype=debugoptimized --warning_level=2 --werror=true指定します。-Wno-pedantic

Ob Ubuntu 18.04、gcc 7.3.0、meson 0.45.1 これにより、コンパイラに次のオプションが追加されます-Wall -Wextra -Werror -Wpedantic -Wno-pedantic -std=c++11。すべてが正常にビルドされます。

CentOS 7.4.1708、gcc 4.8.5、meson 0.44.1 で同じコード、同じオプションを使用すると、まったく同じオプションがコンパイラに追加されますが、コンパイルされず、次のエラーが発生します。

ISO C99 requires rest arguments to be used(可変長マクロの場合)

-Wno-pedanticこのコンパイラでは無視されているようです。

警告オプションを少しいじることはできますが、Ubuntu または CentOS のいずれかでビルドが失敗します。Ubuntu ビルドが失敗した場合、エラー メッセージは少し異なります。

ISO C++11 requires at least one argument for the "..." in a variadic macro

これまでに見つけた両方のビルドを成功させる唯一の解決策は、プロジェクト引数として使用meson --buildtype=plain --warning_level=1 -werror=trueして設定することです。-Wall -Wextra

したがって、これがコンパイラの問題なのか、メソンの問題なのか、それとも私がヒットしている不幸なバージョンの違いなのかはわかりません。

0 投票する
1 に答える
835 参照

vala - libpeas-1.0 は meson-dependency ではなく pkg-config で見つかりました

私は GNOME ビルダーを使用して vala プロジェクトを作成し、次の方法で meson への依存関係として libpeas-1.0 を追加しようとしました。

これは失敗します:

私が実行した場合:

バッシュで、私は得る:

また機能するのは次のとおりです。

ここで何がうまくいかないのでしょうか?

0 投票する
0 に答える
784 参照

mysql - Meson find_program がプログラムを見つけられない

gnome-builder と flatpak を使用して Vala プログラムを構築しています。mySQL データベースに接続したくありません。mysql_configそのため、適切なコンパイラ フラグを取得するために実行する必要があります。

だから私mysql_config = find_program('mysql_config')は meson.build ファイルに追加しました。

コンパイルしようとすると、meson.build:7:0: ERROR: Program(s) ['mysql_config'] not found or not executable.

whereis mysql_configコマンドラインで実行すると、期待される結果が得られmysql_config: /usr/bin/mysql_configます。またmysql_config --cflags、期待される結果でコマンドラインから実行することもできます-I/usr/include/mysql -I/usr/include/mysql

そういうわけで、flatpak-builder でビルドしていることが問題だと思います。

私の ./meson.build:

私の ./src/meson.build

ビルド プロセスの完全な出力:

Github.comで完全なコードを見つけることができます。

0 投票する
1 に答える
427 参照

vala - Flatpak バンドル libmysqlclient

flatpak で Vala プログラムを構築しようとしています。mysql サーバーに接続する必要があるためlibmysqlclient、flatpak にバンドルする必要があります。

mysql_configそれが私が meson.build ファイルに追加した理由です。

問題は、flatpak ランタイムで mysql_config を使用できないことです。そのため、フラットパックにバンドルする必要があります。

ただし、Flatpak のドキュメントはあまり役に立ちませんでした。

フラットパックのドキュメント

モジュール

モジュール リストは、ビルド プロセスの一部としてビルドされる各モジュールを指定します。これらのモジュールの 1 つはアプリケーション自体であり、他のモジュールは Flatpak の一部としてバンドルされている依存関係とライブラリです。単純なアプリケーションは 1 つまたは 2 つのモジュールしか指定しないため、モジュール セクションが短くなる場合がありますが、一部のアプリケーションでは多数のモジュールをバンドルできるため、モジュール セクションが長くなります。

GNOME ディクショナリのモジュール セクションは短く、アプリケーション自体が含まれているだけで、次のようになっています。

ご覧のとおり、リストされた各モジュールには名前 (自由に割り当てることができます) とソースのリストがあります。各ソースにはタイプがあり、使用可能なタイプは次のとおりです。

ソースの種類ごとに異なるプロパティを使用できます。これは、Flatpak Builder コマンド リファレンスに一覧表示されています。

libmysqlclientflatpakに追加する方法と、flatpakmysql_configに正しいコンパイラ フラグを設定する方法を教えてください。

これは私のマニフェストです (gnome-builder のデフォルト):