Warning, /pim/trojita/cmake/TrojitaVersion.cmake is written in an unsupported language. File is not indexed.

0001 file(READ ${SOURCE_DIR}/src/trojita-version TROJITA_VERSION)
0002 string(REPLACE "\n" "" TROJITA_VERSION ${TROJITA_VERSION})
0003 
0004 if(GIT_EXECUTABLE AND EXISTS ${SOURCE_DIR}/.git)
0005     execute_process(COMMAND ${GIT_EXECUTABLE} describe --dirty --long --always
0006         WORKING_DIRECTORY ${SOURCE_DIR}
0007         OUTPUT_VARIABLE TROJITA_GIT_VERSION)
0008     string(REPLACE "\n" "" TROJITA_GIT_VERSION ${TROJITA_GIT_VERSION})
0009 endif()
0010 
0011 # Windows resources using four 16bit integers as version number, so prepare these numbers in VERNUMX variables from VERSION
0012 macro(set_win_rc_vernum VERSION VERNUM1 VERNUM2 VERNUM3 VERNUM4)
0013     string(REGEX REPLACE "[^0-9-]" "_" VERNUM ${VERSION})
0014     if(VERNUM MATCHES "^_*([0-9]+)_+([0-9]+)_+([0-9]+)_+([0-9]+)")
0015         set(${VERNUM1} ${CMAKE_MATCH_1})
0016         set(${VERNUM2} ${CMAKE_MATCH_2})
0017         set(${VERNUM3} ${CMAKE_MATCH_3})
0018         set(${VERNUM4} ${CMAKE_MATCH_4})
0019     elseif(VERNUM MATCHES "^_*([0-9]+)_+([0-9]+)_+([0-9]+)")
0020         set(${VERNUM1} ${CMAKE_MATCH_1})
0021         set(${VERNUM2} ${CMAKE_MATCH_2})
0022         set(${VERNUM3} ${CMAKE_MATCH_3})
0023         set(${VERNUM4} "0")
0024     elseif(VERNUM MATCHES "^_*([0-9]+)_+([0-9]+)")
0025         set(${VERNUM1} ${CMAKE_MATCH_1})
0026         set(${VERNUM2} ${CMAKE_MATCH_2})
0027         set(${VERNUM3} "0")
0028         set(${VERNUM4} "0")
0029     elseif(VERNUM MATCHES "^_*([0-9]+)")
0030         set(${VERNUM1} ${CMAKE_MATCH_1})
0031         set(${VERNUM2} "0")
0032         set(${VERNUM3} "0")
0033         set(${VERNUM4} "0")
0034     else()
0035         set(${VERNUM1} "0")
0036         set(${VERNUM2} "0")
0037         set(${VERNUM3} "0")
0038         set(${VERNUM4} "0")
0039     endif()
0040 endmacro()
0041 
0042 set_win_rc_vernum(${TROJITA_VERSION} TROJITA_VERNUM1 TROJITA_VERNUM2 TROJITA_VERNUM3 TROJITA_VERNUM4)
0043 set(TROJITA_VERSION_H
0044     "#define TROJITA_VERSION \"${TROJITA_VERSION}\"\n"
0045     "#define TROJITA_VERNUM1 ${TROJITA_VERNUM1}\n"
0046     "#define TROJITA_VERNUM2 ${TROJITA_VERNUM2}\n"
0047     "#define TROJITA_VERNUM3 ${TROJITA_VERNUM3}\n"
0048     "#define TROJITA_VERNUM4 ${TROJITA_VERNUM4}\n"
0049 )
0050 
0051 if(TROJITA_GIT_VERSION)
0052     set_win_rc_vernum(${TROJITA_GIT_VERSION} TROJITA_GIT_VERNUM1 TROJITA_GIT_VERNUM2 TROJITA_GIT_VERNUM3 TROJITA_GIT_VERNUM4)
0053     set(TROJITA_GIT_VERSION_H
0054         "#define TROJITA_GIT_VERSION \"${TROJITA_GIT_VERSION}\"\n"
0055         "#define TROJITA_GIT_VERNUM1 ${TROJITA_GIT_VERNUM1}\n"
0056         "#define TROJITA_GIT_VERNUM2 ${TROJITA_GIT_VERNUM2}\n"
0057         "#define TROJITA_GIT_VERNUM3 ${TROJITA_GIT_VERNUM3}\n"
0058         "#define TROJITA_GIT_VERNUM4 ${TROJITA_GIT_VERNUM4}\n"
0059     )
0060 else()
0061     set(TROJITA_GIT_VERSION_H "")
0062 endif()
0063 
0064 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h.in ${TROJITA_VERSION_H})
0065 execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
0066     ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h)
0067 
0068 file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/trojita-git-version.h.in ${TROJITA_GIT_VERSION_H})
0069 execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
0070     ${CMAKE_CURRENT_BINARY_DIR}/trojita-git-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/trojita-git-version.h)
0071 
0072 if(NSIS)
0073     if(TROJITA_GIT_VERSION)
0074         string(REPLACE "GIT_" "" TROJITA_VERSION_NSI ${TROJITA_GIT_VERSION_H})
0075     else()
0076         set(TROJITA_VERSION_NSI ${TROJITA_VERSION_H})
0077     endif()
0078     string(REPLACE "#" "!" TROJITA_VERSION_NSI ${TROJITA_VERSION_NSI})
0079     file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.nsi.in ${TROJITA_VERSION_NSI})
0080     execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
0081         ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.nsi.in ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.nsi)
0082 endif()