Parsing version from configure.ac for CMake project
This commit is contained in:
parent
82983433cf
commit
743ec448c5
@ -11,24 +11,31 @@ if (MSVC)
|
||||
option(ZLIB "Build with zlib support" OFF)
|
||||
endif (MSVC)
|
||||
|
||||
# Path to common header
|
||||
set(protobuf_COMMON_HEADER "../src/google/protobuf/stubs/common.h")
|
||||
# Path to main configure script
|
||||
set(protobuf_CONFIGURE_SCRIPT "../configure.ac")
|
||||
|
||||
# Parse version from common header
|
||||
file(STRINGS "${protobuf_COMMON_HEADER}" protobuf_VERSION_LINE
|
||||
# Parse version from configure script
|
||||
file(STRINGS "${protobuf_CONFIGURE_SCRIPT}" protobuf_VERSION_LINE
|
||||
LIMIT_COUNT 1
|
||||
REGEX "^#define GOOGLE_PROTOBUF_VERSION [0-9]+$")
|
||||
string(REGEX REPLACE "^.*PROTOBUF_VERSION ([0-9]+).*$" "\\1"
|
||||
protobuf_VERSION_NUMBER "${protobuf_VERSION_LINE}")
|
||||
math(EXPR protobuf_VERSION_MICRO
|
||||
"${protobuf_VERSION_NUMBER} % 1000")
|
||||
math(EXPR protobuf_VERSION_MINOR
|
||||
"(${protobuf_VERSION_NUMBER} - ${protobuf_VERSION_MICRO}) % 1000000 / 1000")
|
||||
math(EXPR protobuf_VERSION_MAJOR
|
||||
"(${protobuf_VERSION_NUMBER} - ${protobuf_VERSION_MINOR} * 1000 - ${protobuf_VERSION_MICRO}) % 1000000000 / 1000000")
|
||||
set(protobuf_VERSION_PATCH ${protobuf_VERSION_MICRO})
|
||||
REGEX "^AC_INIT")
|
||||
# Replace special characters
|
||||
string(REPLACE "(" "_" protobuf_VERSION_LINE ${protobuf_VERSION_LINE})
|
||||
string(REPLACE ")" "_" protobuf_VERSION_LINE ${protobuf_VERSION_LINE})
|
||||
string(REPLACE "[" "_" protobuf_VERSION_LINE ${protobuf_VERSION_LINE})
|
||||
string(REPLACE "]" "_" protobuf_VERSION_LINE ${protobuf_VERSION_LINE})
|
||||
# Parse version string
|
||||
string(REGEX REPLACE "^AC_INIT__Protocol Buffers_,_([^_]+).*$" "\\1"
|
||||
protobuf_VERSION_STRING "${protobuf_VERSION_LINE}")
|
||||
# Parse version tweaks
|
||||
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\1"
|
||||
protobuf_VERSION_MAJOR "${protobuf_VERSION_STRING}")
|
||||
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\2"
|
||||
protobuf_VERSION_MINOR "${protobuf_VERSION_STRING}")
|
||||
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+).*$" "\\3"
|
||||
protobuf_VERSION_PATCH "${protobuf_VERSION_STRING}")
|
||||
# Package version
|
||||
set(protobuf_VERSION
|
||||
"${protobuf_VERSION_MAJOR}.${protobuf_VERSION_MINOR}.${protobuf_VERSION_MICRO}")
|
||||
"${protobuf_VERSION_MAJOR}.${protobuf_VERSION_MINOR}.${protobuf_VERSION_PATCH}")
|
||||
|
||||
add_definitions(-DGOOGLE_PROTOBUF_CMAKE_BUILD)
|
||||
|
||||
|
@ -1 +1,3 @@
|
||||
set(protobuf_VERSION_STRING "@protobuf_VERSION_STRING@")
|
||||
|
||||
include("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake")
|
||||
|
Loading…
Reference in New Issue
Block a user