1

現在、大規模なプロジェクトを GNU autotools から CMake に移植しています。ユーザー (Scientific Computing: ユーザーは開発者) にとって非常に興味深い未解決の問題は、プロジェクト全体を再構成せずにデバッグ コンパイラ フラグに切り替えることです。

もちろん、次のようなものを追加する回避策があります

set_property(TARGET <target> PROPERTY COMPILE_FLAGS <debugflags>)

CMakeLists.txt に追加して実行します

make target

そして、その特定のものだけを構成するためのcmakesキャッシング機能を頼りにします

しかし、オートメイクに慣れている私たちのユーザーにとっては

make CXXFLAGS="<debugflags>" <target>

これは説得力のある方法ではありません。

同じことが、2 つの構築済みディレクトリ (1 つはデバッグ フラグあり、もう 1 つはデバッグ フラグなし) の場合にも当てはまります。

私は、成功せずにそのような動作を模倣する可能性をさらに探しました。何でも知ってますか?または、将来のcmakeリリースでそのような機能が計画されているかどうか知っていますか?

4

1 に答える 1

1

「問題」は、CmakeListsファイルを変更し、その後その変更を元に戻す必要があることです

このために CMakeLists ファイルを変更する必要はありません。CMake では、make ベースのジェネレーターのコマンド ラインでビルド タイプを指定できます。

cmake -DCMAKE_BUILD_TYPE=Debug [...] && make

-gこれにより、コンパイルフラグが既に追加されています。追加のプロジェクト固有のフラグが必要な場合は、ビルド タイプに応じて条件付きで追加できます。

if(CMAKE_BUILD_TYPE STREQUAL "Debug")
    # do your stuff
endif()

ビルド タイプを指定すると、コマンド ラインで別のビルド タイプを明示的に設定するか、キャッシュを削除しない限り、CMake はその後のすべての実行で同じビルド タイプを使用し続けることに注意してください。

于 2013-09-27T07:49:10.670 に答える