Export symbols in order to support shared libraries (#54)

* Add BAC_ROUTING compile definition

* Reorder cmake

* Fix OpenSSL support: support both 1.0 and 1.1t pus

* Explicitly export symbols, hidden by default

* Build shared libraries on travis using cmake

* Learn Makefile about static library

* Fix build using mingw with cmake

* Do not cleanup twice or after potential free
This commit is contained in:
Anonymous Maarten
2020-03-06 22:42:03 +01:00
committed by GitHub
parent bb5fafc06a
commit 4a916468c6
174 changed files with 2200 additions and 91 deletions
+57
View File
@@ -26,6 +26,7 @@
#include <stdint.h>
#include <stdbool.h>
#include "bacnet/bacnet_stack_exports.h"
typedef enum BACnet_Weekday {
BACNET_WEEKDAY_MONDAY = 1,
@@ -76,21 +77,25 @@ extern "C" {
#endif /* __cplusplus */
/* utility initialization functions */
BACNET_STACK_EXPORT
void datetime_set_date(
BACNET_DATE * bdate,
uint16_t year,
uint8_t month,
uint8_t day);
BACNET_STACK_EXPORT
void datetime_set_time(
BACNET_TIME * btime,
uint8_t hour,
uint8_t minute,
uint8_t seconds,
uint8_t hundredths);
BACNET_STACK_EXPORT
void datetime_set(
BACNET_DATE_TIME * bdatetime,
BACNET_DATE * bdate,
BACNET_TIME * btime);
BACNET_STACK_EXPORT
void datetime_set_values(
BACNET_DATE_TIME * bdatetime,
uint16_t year,
@@ -101,40 +106,53 @@ extern "C" {
uint8_t seconds,
uint8_t hundredths);
/* utility test for validity */
BACNET_STACK_EXPORT
bool datetime_is_valid(
BACNET_DATE * bdate,
BACNET_TIME * btime);
BACNET_STACK_EXPORT
bool datetime_time_is_valid(
BACNET_TIME * btime);
BACNET_STACK_EXPORT
bool datetime_date_is_valid(
BACNET_DATE * bdate);
BACNET_STACK_EXPORT
/* date and time calculations and summaries */
uint32_t datetime_days_since_epoch(
BACNET_DATE * bdate);
BACNET_STACK_EXPORT
void datetime_days_since_epoch_into_date(
uint32_t days,
BACNET_DATE * bdate);
BACNET_STACK_EXPORT
uint32_t datetime_day_of_year(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
void datetime_day_of_year_into_date(
uint32_t days,
uint16_t year,
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
bool datetime_is_leap_year(
uint16_t year);
BACNET_STACK_EXPORT
uint8_t datetime_month_days(
uint16_t year,
uint8_t month);
BACNET_STACK_EXPORT
uint8_t datetime_day_of_week(
uint16_t year,
uint8_t month,
uint8_t day);
BACNET_STACK_EXPORT
bool datetime_ymd_is_valid(
uint16_t year,
uint8_t month,
uint8_t day);
BACNET_STACK_EXPORT
uint32_t datetime_seconds_since_midnight(
BACNET_TIME * btime);
BACNET_STACK_EXPORT
uint16_t datetime_minutes_since_midnight(
BACNET_TIME * btime);
@@ -142,12 +160,15 @@ extern "C" {
if the date/times are the same, return is 0
if date1 is before date2, returns negative
if date1 is after date2, returns positive */
BACNET_STACK_EXPORT
int datetime_compare_date(
BACNET_DATE * date1,
BACNET_DATE * date2);
BACNET_STACK_EXPORT
int datetime_compare_time(
BACNET_TIME * time1,
BACNET_TIME * time2);
BACNET_STACK_EXPORT
int datetime_compare(
BACNET_DATE_TIME * datetime1,
BACNET_DATE_TIME * datetime2);
@@ -158,112 +179,148 @@ extern "C" {
int datetime_wildcard_compare_date(
BACNET_DATE * date1,
BACNET_DATE * date2);
BACNET_STACK_EXPORT
int datetime_wildcard_compare_time(
BACNET_TIME * time1,
BACNET_TIME * time2);
BACNET_STACK_EXPORT
int datetime_wildcard_compare(
BACNET_DATE_TIME * datetime1,
BACNET_DATE_TIME * datetime2);
/* utility copy functions */
BACNET_STACK_EXPORT
void datetime_copy_date(
BACNET_DATE * dest,
BACNET_DATE * src);
BACNET_STACK_EXPORT
void datetime_copy_time(
BACNET_TIME * dest,
BACNET_TIME * src);
BACNET_STACK_EXPORT
void datetime_copy(
BACNET_DATE_TIME * dest,
BACNET_DATE_TIME * src);
/* utility add or subtract minutes function */
BACNET_STACK_EXPORT
void datetime_add_minutes(
BACNET_DATE_TIME * bdatetime,
int32_t minutes);
/* date and time wildcards */
BACNET_STACK_EXPORT
bool datetime_wildcard_year(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
void datetime_wildcard_year_set(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
bool datetime_wildcard_month(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
void datetime_wildcard_month_set(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
bool datetime_wildcard_day(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
void datetime_wildcard_day_set(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
bool datetime_wildcard_weekday(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
void datetime_wildcard_weekday_set(
BACNET_DATE *bdate);
BACNET_STACK_EXPORT
bool datetime_wildcard_hour(
BACNET_TIME *btime);
BACNET_STACK_EXPORT
void datetime_wildcard_hour_set(
BACNET_TIME *btime);
BACNET_STACK_EXPORT
bool datetime_wildcard_minute(
BACNET_TIME *btime);
BACNET_STACK_EXPORT
void datetime_wildcard_minute_set(
BACNET_TIME *btime);
BACNET_STACK_EXPORT
bool datetime_wildcard_second(
BACNET_TIME *btime);
BACNET_STACK_EXPORT
void datetime_wildcard_second_set(
BACNET_TIME *btime);
BACNET_STACK_EXPORT
bool datetime_wildcard_hundredths(
BACNET_TIME *btime);
BACNET_STACK_EXPORT
void datetime_wildcard_hundredths_set(
BACNET_TIME *btime);
BACNET_STACK_EXPORT
bool datetime_wildcard(
BACNET_DATE_TIME * bdatetime);
BACNET_STACK_EXPORT
bool datetime_wildcard_present(
BACNET_DATE_TIME * bdatetime);
BACNET_STACK_EXPORT
void datetime_wildcard_set(
BACNET_DATE_TIME * bdatetime);
BACNET_STACK_EXPORT
void datetime_date_wildcard_set(
BACNET_DATE * bdate);
BACNET_STACK_EXPORT
void datetime_time_wildcard_set(
BACNET_TIME * btime);
BACNET_STACK_EXPORT
bool datetime_local_to_utc(
BACNET_DATE_TIME * utc_time,
BACNET_DATE_TIME * local_time,
int16_t utc_offset_minutes,
int8_t dst_adjust_minutes);
BACNET_STACK_EXPORT
bool datetime_utc_to_local(
BACNET_DATE_TIME * local_time,
BACNET_DATE_TIME * utc_time,
int16_t utc_offset_minutes,
int8_t dst_adjust_minutes);
BACNET_STACK_EXPORT
int bacapp_encode_datetime(
uint8_t * apdu,
BACNET_DATE_TIME * value);
BACNET_STACK_EXPORT
int bacapp_encode_context_datetime(
uint8_t * apdu,
uint8_t tag_number,
BACNET_DATE_TIME * value);
BACNET_STACK_EXPORT
int bacapp_decode_datetime(
uint8_t * apdu,
BACNET_DATE_TIME * value);
BACNET_STACK_EXPORT
int bacapp_decode_context_datetime(
uint8_t * apdu,
uint8_t tag_number,
BACNET_DATE_TIME * value);
/* implementation agnostic functions - create your own! */
BACNET_STACK_EXPORT
bool datetime_local(
BACNET_DATE * bdate,
BACNET_TIME * btime,
int16_t * utc_offset_minutes,
bool * dst_active);
BACNET_STACK_EXPORT
void datetime_init(void);
#ifdef TEST
#include "ctest.h"
BACNET_STACK_EXPORT
void testDateTime(
Test * pTest);
#endif