問題タブ [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.
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
したがって、これがコンパイラの問題なのか、メソンの問題なのか、それとも私がヒットしている不幸なバージョンの違いなのかはわかりません。
vala - libpeas-1.0 は meson-dependency ではなく pkg-config で見つかりました
私は GNOME ビルダーを使用して vala プロジェクトを作成し、次の方法で meson への依存関係として libpeas-1.0 を追加しようとしました。
これは失敗します:
私が実行した場合:
バッシュで、私は得る:
また機能するのは次のとおりです。
ここで何がうまくいかないのでしょうか?
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で完全なコードを見つけることができます。
vala - Flatpak バンドル libmysqlclient
flatpak で Vala プログラムを構築しようとしています。mysql サーバーに接続する必要があるためlibmysqlclient
、flatpak にバンドルする必要があります。
mysql_config
それが私が meson.build ファイルに追加した理由です。
問題は、flatpak ランタイムで mysql_config を使用できないことです。そのため、フラットパックにバンドルする必要があります。
ただし、Flatpak のドキュメントはあまり役に立ちませんでした。
モジュール
モジュール リストは、ビルド プロセスの一部としてビルドされる各モジュールを指定します。これらのモジュールの 1 つはアプリケーション自体であり、他のモジュールは Flatpak の一部としてバンドルされている依存関係とライブラリです。単純なアプリケーションは 1 つまたは 2 つのモジュールしか指定しないため、モジュール セクションが短くなる場合がありますが、一部のアプリケーションでは多数のモジュールをバンドルできるため、モジュール セクションが長くなります。
GNOME ディクショナリのモジュール セクションは短く、アプリケーション自体が含まれているだけで、次のようになっています。
ご覧のとおり、リストされた各モジュールには名前 (自由に割り当てることができます) とソースのリストがあります。各ソースにはタイプがあり、使用可能なタイプは次のとおりです。
ソースの種類ごとに異なるプロパティを使用できます。これは、Flatpak Builder コマンド リファレンスに一覧表示されています。
libmysqlclient
flatpakに追加する方法と、flatpakmysql_config
に正しいコンパイラ フラグを設定する方法を教えてください。
これは私のマニフェストです (gnome-builder のデフォルト):