Browse Source

Better handling of git versioning stuff.

cl-refactor
Gav Wood 11 years ago
parent
commit
7e452b55b7
  1. 28
      CMakeLists.txt
  2. 9
      release.sh

28
CMakeLists.txt

@ -141,19 +141,27 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# Generate header file containing useful build information # Generate header file containing useful build information
execute_process(COMMAND git --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git --work-tree=${CMAKE_CURRENT_SOURCE_DIR} rev-parse HEAD OUTPUT_VARIABLE ETH_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/BuildInfo.h)
execute_process(COMMAND git --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git --work-tree=${CMAKE_CURRENT_SOURCE_DIR} diff --shortstat OUTPUT_VARIABLE ETH_LOCAL_CHANGES OUTPUT_STRIP_TRAILING_WHITESPACE)
if("x${ETH_LOCAL_CHANGES}" STREQUAL "x")
set(ETH_CLEAN_REPO 1)
else() else()
set(ETH_CLEAN_REPO 0) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.git)
execute_process(COMMAND git --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git --work-tree=${CMAKE_CURRENT_SOURCE_DIR} rev-parse HEAD OUTPUT_VARIABLE ETH_COMMIT_HASH OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND git --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git --work-tree=${CMAKE_CURRENT_SOURCE_DIR} diff --shortstat OUTPUT_VARIABLE ETH_LOCAL_CHANGES OUTPUT_STRIP_TRAILING_WHITESPACE)
if("x${ETH_LOCAL_CHANGES}" STREQUAL "x")
set(ETH_CLEAN_REPO 1)
else()
set(ETH_CLEAN_REPO 0)
endif()
message("Commit Hash: ${ETH_COMMIT_HASH} (Clean: ${ETH_CLEAN_REPO} - ${ETH_LOCAL_CHANGES})")
else()
message("Unknown repo.")
set(ETH_COMMIT_HASH 0)
set(ETH_CLEAN_REPO 1)
endif()
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/BuildInfo.h "// This file was automatically generated by cmake\n#pragma once\n\n")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/BuildInfo.h "#define ETH_COMMIT_HASH ${ETH_COMMIT_HASH}\n#define ETH_CLEAN_REPO ${ETH_CLEAN_REPO}\n#define ETH_BUILD_TYPE ${CMAKE_BUILD_TYPE}\n#define ETH_BUILD_PLATFORM ${ETH_BUILD_PLATFORM}\n")
include_directories(${CMAKE_CURRENT_BINARY_DIR})
endif() endif()
message("Commit Hash: ${ETH_COMMIT_HASH} (Clean: ${ETH_CLEAN_REPO} - ${ETH_LOCAL_CHANGES})")
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/BuildInfo.h "// This file was automatically generated by cmake\n#pragma once\n\n")
file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/BuildInfo.h "#define ETH_COMMIT_HASH ${ETH_COMMIT_HASH}\n#define ETH_CLEAN_REPO ${ETH_CLEAN_REPO}\n#define ETH_BUILD_TYPE ${CMAKE_BUILD_TYPE}\n#define ETH_BUILD_PLATFORM ${ETH_BUILD_PLATFORM}\n")
include_directories(${CMAKE_CURRENT_BINARY_DIR})
add_subdirectory(secp256k1) add_subdirectory(secp256k1)
add_subdirectory(libethereum) add_subdirectory(libethereum)
add_subdirectory(test) add_subdirectory(test)

9
release.sh

@ -35,6 +35,14 @@ git checkout "$branch"
archdir="cpp-ethereum-$version" archdir="cpp-ethereum-$version"
archfile="$archdir.tar.bz2" archfile="$archdir.tar.bz2"
echo Making BuildInfo...
mkdir build
cd build
cmake ..
cd ..
cp build/BuildInfo.h .
rm -rf build
echo Cleaning backup files... echo Cleaning backup files...
find . | grep \~ | xargs rm -f find . | grep \~ | xargs rm -f
@ -51,6 +59,7 @@ mv cpp-ethereum $archdir
echo Creating archive... echo Creating archive...
tar c $archdir | bzip2 -- > $archfile tar c $archdir | bzip2 -- > $archfile
shasum $archfile
[[ ! "$version" == "" ]] && ln -sf $archfile "cpp-ethereum_$version.orig.tar.bz2" [[ ! "$version" == "" ]] && ln -sf $archfile "cpp-ethereum_$version.orig.tar.bz2"

Loading…
Cancel
Save