Git が dirty か判定する方法と CMake での応用例
方法
git diff --shortstat --exit-code --quiet
- 結果が
0
である -> dirty ではない
- 結果が
0
ではない -> dirty である
実用例
CMake での応用
execute_process(
COMMAND git diff --shortstat --exit-code --quiet
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE version_git_dirty_flag
)
if( version_git_dirty_flag )
message( "repository is dirty." )
endif()
git diff --shortstat --exit-code --quiet
0
である -> dirty ではない0
ではない -> dirty であるCMake での応用
execute_process(
COMMAND git diff --shortstat --exit-code --quiet
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
RESULT_VARIABLE version_git_dirty_flag
)
if( version_git_dirty_flag )
message( "repository is dirty." )
endif()
Git リポジトリーの状態により branch や commit と併せて target_compile_options
で渡して翻訳するソース内で使ったり、cmake の処理で扱いたい場合に使う。
Note
- コマンドが出力する result とシェルの世界の true/false 、 cmake の世界の true/false それぞれ混乱しないように取り扱い注意。
Reference
Author And Source
この問題について(Git が dirty か判定する方法と CMake での応用例), 我々は、より多くの情報をここで見つけました https://qiita.com/usagi/items/34e65259b4fdbd2c245e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .