問題タブ [cmake-modules]
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.
cmake - CMake の CHECK_TYPE_SIZE を条件付きで実行する
CMake のCHECK_TYPE_SIZE
コマンドを条件付きで実行する方法はありますか? CHECK_TYPE_SIZE
は、構造体のサイズを把握するのに最適ですが、時間が経つにつれて、構造体を使用してヘッダー ファイルを変更して新しいフィールドを追加する可能性があるという問題があります。誰かが構造体を更新したが、CMake キャッシュを吹き飛ばすのを忘れた (または知らなかった) ときに起こるのを待っている事故のようです。はい、構造体の横にメモを置いて、更新された場合にキャッシュを消去することはできますが、複数人のプロジェクトがあり、他の誰かがヘッダー ファイルを更新した場合、それは実際には役に立ちません。
を実行しようとしましたunset(HAS_MYVAR CACHE)
が、機能が再実行されていないように見えるため、機能していないようです。何か案は?
コード:
cmake - librsvg - cmake モジュールのデバッグ モードはサフィックスを追加します
依存しているネイティブ Windows ビルドを動作させようとしていますlibrsvg-2
。vcpkgを介して正しくインストールされています。通常は cmake でビルドし、このライブラリを見つけるためのカスタム モジュールを作成しました。これは UNIX の世界ではうまく機能しますが、Windows 内では機能せず、デバッグ ビルドまたはリリース ビルド (Visual Studio から) を対象としています。d
これは、Windows では実際の lib ファイルの末尾に a が付くためです。
これが私たちのFindLibRSVG.cmake
Windows でビルドを機能させるには、次のように cmake コマンドにフラグを指定する必要があります。
d
ライブラリの最後にある に注意してください。
利用可能なcmake モジュールがあることは知っていSelectLibraryConfigurations
ますが、これを適切に使用する方法がよくわかりません。
私が達成したいのは、このフラグを提供しなくてもデバッグ モードでビルドできるようにすることです。
c++ - CMake 3.15 で clang++/gcc 用のプリコンパイル済みヘッダーを作成して使用する方法
私のプロジェクトには、ほとんどすべてのファイルで使用するヘッダーがいくつかあります。そこで、ビルドの速度を上げるために、プリコンパイル済みヘッダーを使用することにしました。CMake 3.15 と clang++ を使用しています。CMake 3.16 では、target_precompile_headers() を使用できます。しかし、3.15 では利用できません。
ここでサンプルを説明しようと思います。engine.h、wheel.h、door.h などの一般的なヘッダーがあります。これらのファイルは my_proj/includes/ ディレクトリに保存されます。そして、これらのヘッダーはすべてのサブプロジェクトに含まれています。
scatchからcmake 3.15でプリコンパイル済みヘッダーとしてそれらを作成して使用する方法を知りたいです。