Files
jerryscript/jerry-main/CMakeLists.txt
T
Akos Kiss 714e8d261b Add git commit hash to jerry version info
Previously, jerry-core was built with various build identification
info (build date, git commit hash, git branch name), which was both
available from string constants of the library and also exposed by
jerry-main via the `--version` command line option. As of late,
jerry-core identifies itself only with API version number macros,
but sometimes it could be helpful to get access to the git commit
hash as well, even if that info does not become part of the API.

This patch moves the git commit hash retrieval logic from the build
scripts of jerry-core to jerry-main, and changes `--version` handler
to print the hash as well.

Resolves #1295

JerryScript-DCO-1.0-Signed-off-by: Akos Kiss akiss@inf.u-szeged.hu
2016-09-07 11:14:40 +02:00

72 lines
2.2 KiB
CMake

# Copyright 2016 Samsung Electronics Co., Ltd.
# Copyright 2016 University of Szeged.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
cmake_minimum_required (VERSION 2.8.12)
set(JERRY_NAME jerry)
project (${JERRY_NAME} C)
# Sources
# Jerry standalone
set(SOURCE_JERRY_STANDALONE_MAIN main-unix.c)
# Generate map file
if("${PLATFORM}" STREQUAL "DARWIN")
set(MAP_FILE_FLAGS "-Xlinker -map")
else()
set(MAP_FILE_FLAGS "-Xlinker -Map")
endif()
set(MAP_FILE_FLAGS "${MAP_FILE_FLAGS} -Xlinker jerry.map")
set(LINKER_FLAGS_COMMON "${LINKER_FLAGS_COMMON} ${MAP_FILE_FLAGS}")
# Disable static build
if(NOT ("${PLATFORM}" STREQUAL "DARWIN"))
set(LINKER_FLAGS_STATIC "-static")
endif()
# Get version information from git
if(IS_DIRECTORY "${CMAKE_SOURCE_DIR}/.git")
execute_process(COMMAND git rev-parse --short HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE JERRY_COMMIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE)
set(JERRY_COMMIT_HASH " (${JERRY_COMMIT_HASH})")
else()
set(JERRY_COMMIT_HASH "")
endif()
set(DEFINES_JERRY ${DEFINES_JERRY} JERRY_COMMIT_HASH="${JERRY_COMMIT_HASH}")
add_executable(${JERRY_NAME} ${SOURCE_JERRY_STANDALONE_MAIN})
set_property(TARGET ${JERRY_NAME}
PROPERTY LINK_FLAGS "${LINKER_FLAGS_STATIC} ${LINKER_FLAGS_COMMON}")
target_compile_definitions(${JERRY_NAME} PRIVATE ${DEFINES_JERRY})
target_include_directories(${JERRY_NAME} PRIVATE ${PORT_DIR})
link_directories(${CMAKE_BINARY_DIR})
set(JERRY_LIBS jerry-core)
if(JERRY_LIBM)
set(JERRY_LIBS ${JERRY_LIBS} jerry-libm)
endif()
if(JERRY_LIBC)
set(JERRY_LIBS ${JERRY_LIBS} jerry-libc)
endif()
set(JERRY_LIBS ${JERRY_LIBS} ${IMPORTED_LIB})
target_link_libraries(${JERRY_NAME} ${JERRY_LIBS})