The cmake option AUTOMATED_BUILD_SYSTEM is removed and replaced by an automated detection. Now it is possible to ship source tarballs that build without mercurial on all platforms. The needed information is generated by the script tools/generateReleaseInfo.{sh,bat} before the tarball is build.
42 lines
2.4 KiB
CMake
42 lines
2.4 KiB
CMake
# cmakefile executed within a makefile target
|
|
# there should be a better way of getting the compiler + compiler version, not restrained to Gcc
|
|
execute_process(COMMAND gcc -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
# If we find ReleaseInfo.cmake we use the info from there and don't need Mercurial to be installed
|
|
find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${CMAKE_CURRENT_SOURCE_DIR}" NO_DEFAULT_PATH)
|
|
if (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND)
|
|
# we look for the hg command in this paths by order of preference
|
|
if (WIN32)
|
|
find_file(HG_CMD hg.exe HINTS ENV Path PATH_SUFFIXES ../)
|
|
elseif (APPLE)
|
|
find_file(HG_CMD hg PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin")
|
|
find_file(HG_CMD hg)
|
|
set (SHELL "/bin/bash")
|
|
else (WIN32) # Linux
|
|
find_file(HG_CMD hg)
|
|
set (SHELL "/bin/bash")
|
|
endif (WIN32)
|
|
|
|
# Fail if Mercurial is not installed
|
|
if (HG_CMD STREQUAL HG_CMD-NOTFOUND)
|
|
message(FATAL_ERROR "hg command not found!")
|
|
else (HG_CMD STREQUAL HG_CMD-NOTFOUND)
|
|
message(STATUS "hg command found: ${HG_CMD}")
|
|
endif (HG_CMD STREQUAL HG_CMD-NOTFOUND)
|
|
|
|
execute_process(COMMAND ${HG_CMD} -R ${CMAKE_CURRENT_SOURCE_DIR} branch OUTPUT_VARIABLE HG_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
execute_process(COMMAND ${HG_CMD} parents --template={latesttag}.{latesttagdistance} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
execute_process(COMMAND ${HG_CMD} parents --template={node|short} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_CHANGESET OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
execute_process(COMMAND ${HG_CMD} parents --template={latesttagdistance} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE HG_TAGDISTANCE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
if (CACHE_NAME_SUFFIX STREQUAL "")
|
|
execute_process(COMMAND ${HG_CMD} parents --template={latesttag} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE CACHE_NAME_SUFFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
endif (CACHE_NAME_SUFFIX STREQUAL "")
|
|
else (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND)
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/ReleaseInfo.cmake)
|
|
endif (REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND)
|
|
|
|
# build version.h from template
|
|
configure_file (${SRC_DIR}/rtgui/version.h.in ${SRC_DIR}/rtgui/version.h)
|
|
# build AboutThisBuild.txt from template
|
|
configure_file (${SRC_DIR}/AboutThisBuild.txt.in ${SRC_DIR}/AboutThisBuild.txt)
|