Очень удобно всегда знать какой конкретно версии та или иная сборка проекта. Для этого обычно вводят номер версии, состоящий из нескольких цифр. Я являюсь сторонником структуры состоящей из 4 цифр, вида:
Все вместе это и формирует полное именование версии (Major.Minor.Pathch.Build):
Некоторые используют в качестве build уникальное числовое значение, которое увеличивается каждый раз, например, при ночной сборке. Я считаю, что никакого смысла в этом нет – гораздо удобнее привязать данный номер к ревизии в репозитории. Я использую Subversion и CMake, поэтому продемонстрирую как можно автоматизировать проставлении версии билда с этими инструментами.
Первое – необходимо добавить заголовочный файл в проект (например, version.h):
#include #include namespace Version { const std:: string & AsText() ; boost:: uint64_t AsNumber() ; } |
Здесь находится простой интерфейс, через который из программы можно получить номер полной версии в текстовом виде или в виде уникального целочисленного идентификатора.
Теперь приведу содержимое version.cpp:
#include
#include "../version.h"
namespace
{
const
boost::
uint8_t
MAJOR =
4
;
const
boost::
uint16_t
MINOR =
6
;
const
boost::
uint16_t
PATCH =
12
;
const
boost::
uint32_t
BUILD =
589
;
// Это значение будет изменено автоматически
}
const
std::
string
&
Version::
AsText
()
{
static
const
std::
string
text =
boost::
str
(boost::
format
("%1%.%2%.%3%.%4%"
)
%
static_cast
<
unsigned
>
(MAJOR)
%
MINOR %
PATCH %
BUILD)
;
return
text;
}
boost::
uint64_t
Version::
AsNumber
()
{
BOOST_STATIC_ASSERT(BUILD <
0xFFFFFF
)
;
using
namespace
boost;
const
size_t
size =
sizeof
(uint64_t
)
;
static
const
boost::
uint64_t
number =
(static_cast
<
uint64_t
>
(MAJOR)
(MINOR)
(PATCH)
name;
echo "Email: " . $data->email;
echo "Message: " . $data->message;
// sned an email
$to = $data->email;
$subject = "Тестовое письмо сайт для тестирования angularjs контактной формы";
$message = $data->message;
$headers = "From: " . $data->name .. "\r\n" .. "\r\n" .
"X-Mailer: PHP/" . phpversion();
//функция PHP mail для отправки электронной почты на адрес электронной почты
mail($to, $subject, $message, $headers);
?>
|