Setup and clear of string pool.
[SquirrelJME.git] / nanocoat / cmake / identify-squirreljme-version.cmake
blob35b4b0a43406841756c306a026ec0247d753866f
1 # ---------------------------------------------------------------------------
2 # SquirrelJME
3 #     Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
4 # ---------------------------------------------------------------------------
5 # SquirrelJME is under the Mozilla Public License Version 2.0.
6 # See license.mkd for licensing and copyright information.
7 # ---------------------------------------------------------------------------
8 # DESCRIPTION: Identify SquirrelJME version
10 # Load version number
11 file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/squirreljme-version"
12         SQUIRRELJME_VERSION LIMIT_COUNT 1)
13 message(STATUS
14         "Building for SquirrelJME ${SQUIRRELJME_VERSION}!")
16 # Make Windows compatible version
17 set(SQUIRRELJME_VERSION_WINDOWS "${SQUIRRELJME_VERSION}.0")
18 string(REGEX REPLACE "\\." "," SQUIRRELJME_VERSION_WINDOWS_RC
19         "${SQUIRRELJME_VERSION_WINDOWS}")
21 # Put down the configure time
22 string(TIMESTAMP SQUIRRELJME_VERSION_ID_TIME "%Y-%m-%dT%H:%M:%SZ" UTC)
23 message(STATUS
24         "Configure time is ${SQUIRRELJME_VERSION_ID_TIME}.")
26 # Load Fossil manifest, if possible
27 if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/../manifest.uuid" AND
28         NOT IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../manifest.uuid")
29         file(STRINGS "${CMAKE_CURRENT_SOURCE_DIR}/../manifest.uuid"
30                 SQUIRRELJME_VERSION_ID_FOSSIL LIMIT_COUNT 1)
31         set(SQUIRRELJME_VERSION_ID "fossil:${SQUIRRELJME_VERSION_ID_FOSSIL}")
32 else()
33         # Try to get version from Git Commit
34         execute_process(COMMAND git rev-parse HEAD
35                 WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}"
36                 ERROR_QUIET
37                 RESULT_VARIABLE SQUIRRELJME_VERSION_ID_GIT_CODE
38                 OUTPUT_VARIABLE SQUIRRELJME_VERSION_ID_GIT
39                 ERROR_VARIABLE SQUIRRELJME_VERSION_GIT_ERROR
40                 OUTPUT_STRIP_TRAILING_WHITESPACE)
42         if("${SQUIRRELJME_VERSION_ID_GIT_CODE}" EQUAL 0)
43                 set(SQUIRRELJME_VERSION_ID "git:${SQUIRRELJME_VERSION_ID_GIT}")
44         else()
45                 # Otherwise use a basic timestamp
46                 set(SQUIRRELJME_VERSION_ID "unknown:${SQUIRRELJME_VERSION_ID_TIME}")
47         endif()
48 endif()
50 # Show ID version
51 message(STATUS
52         "Version ID: ${SQUIRRELJME_VERSION_ID}")