Cmake で基盤となるプラットフォーム/フレーバーを検出する 質問する

Cmake で基盤となるプラットフォーム/フレーバーを検出する 質問する

実行されている基盤となるプラットフォーム名/フレーバー名を取得できる cmake 変数やフックなどをご存知の方はいませんか? 例: Linux-CentOs Linux-Ubuntu Linux-SLES

cmake には「CMAKE_SYSTEM」変数があることは知っていますが、これはたとえば Linux の種類を区別するのには役立ちません。ご協力いただければ幸いです。

編集: lsb_release コマンドを使用して実行できると読みました。

ベストアンサー1

次のスニペットは、LSB_RELEASE_ID_SHORT基盤となる Linux システムに関する情報を cmake 変数に入力します。

find_program(LSB_RELEASE_EXEC lsb_release)
execute_process(COMMAND ${LSB_RELEASE_EXEC} -is
    OUTPUT_VARIABLE LSB_RELEASE_ID_SHORT
    OUTPUT_STRIP_TRAILING_WHITESPACE
)

たとえば、Ubuntu では、 という結果になりますUbuntu

おすすめ記事