blob: 48837f986965b23653a4ca3e937a7ac792f0735c [file] [log] [blame]
# ===================================================================
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you 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.
# ===================================================================
# Find the version number in serf.h so that we don't keep it in two places.
function(serf_parse_version_number_from_header)
set(header_ "${SERF_SOURCE_DIR}/serf.h")
file(STRINGS "${header_}" version_parts_
REGEX "^ *# *define +SERF_[A-Z]+_VERSION +[0-9]+ *$")
foreach(STR ${version_parts_})
if(STR MATCHES "SERF_MAJOR_VERSION")
string(REGEX REPLACE "^[^0-9]+([0-9])+ *$" "\\1" major_ ${STR})
elseif(STR MATCHES "SERF_MINOR_VERSION")
string(REGEX REPLACE "^[^0-9]+([0-9])+ *$" "\\1" minor_ ${STR})
elseif(STR MATCHES "SERF_PATCH_VERSION")
string(REGEX REPLACE "^[^0-9]+([0-9])+ *$" "\\1" patch_ ${STR})
endif()
endforeach()
if(NOT DEFINED major_ OR NOT DEFINED minor_ OR NOT DEFINED patch_)
message(FATAL_ERROR "Could not find the version number in '${header_}'")
endif()
set(SERF_VERSION "${major_}.${minor_}.${patch_}" PARENT_SCOPE)
set(SERF_SOVERSION "${major_}.${minor_}.0" PARENT_SCOPE)
set(SERF_MAJOR_VERSION "${major_}" PARENT_SCOPE)
set(SERF_MINOR_VERSION "${minor_}" PARENT_SCOPE)
set(SERF_PATCH_VERSION "${patch_}" PARENT_SCOPE)
endfunction()
unset(SERF_VERSION)
unset(SERF_SOVERSION)
unset(SERF_MAJOR_VERSION)
unset(SERF_MINOR_VERSION)
unset(SERF_PATCH_VERSION)
serf_parse_version_number_from_header()