Merge https://github.com/hrydgard/ppsspp
[libretro-ppsspp.git] / git-version.cmake
bloba507a9304552dc56ddc6bfbf3710d1a17a4d0567
1 set(GIT_VERSION_FILE "${SOURCE_DIR}/git-version.cpp")
2 set(GIT_VERSION "unknown")
3 set(GIT_VERSION_UPDATE "1")
5 find_package(Git)
6 if(GIT_FOUND)
7         execute_process(COMMAND ${GIT_EXECUTABLE} describe --always
8                 WORKING_DIRECTORY ${SOURCE_DIR}
9                 RESULT_VARIABLE exit_code
10                 OUTPUT_VARIABLE GIT_VERSION)
11         if(NOT ${exit_code} EQUAL 0)
12                 message(WARNING "git describe failed, unable to include version.")
13         endif()
14         string(STRIP ${GIT_VERSION} GIT_VERSION)
15 else()
16         message(WARNING "git not found, unable to include version.")
17 endif()
19 if(EXISTS ${GIT_VERSION_FILE})
20         # Don't update if marked not to update.
21         file(STRINGS ${GIT_VERSION_FILE} match
22                 REGEX "PPSSPP_GIT_VERSION_NO_UPDATE = 1")
23         if(NOT ${match} EQUAL "")
24                 set(GIT_VERSION_UPDATE "0")
25         endif()
27         # Don't update if it's already the same.
28         file(STRINGS ${GIT_VERSION_FILE} match
29                 REGEX "${GIT_VERSION}")
30         if(NOT ${match} EQUAL "")
31                 set(GIT_VERSION_UPDATE "0")
32         endif() 
33 endif()
35 set(code_string "// This is a generated file.\n\n"
36         "const char *PPSSPP_GIT_VERSION = \"${GIT_VERSION}\"\;\n\n"
37         "// If you don't want this file to update/recompile, change to 1.\n"
38         "#define PPSSPP_GIT_VERSION_NO_UPDATE 0\n")
40 if ("${GIT_VERSION_UPDATE}" EQUAL "1")
41         file(WRITE ${GIT_VERSION_FILE} ${code_string})
42 endif()