9662a76ebd
* ci: Fix compile warning as errors was not correct
We want to enable warning as errors both Windows and Linux. This is
easiest to do with cmake option as -Werror does not work with MSVC. Also
it is self explaining what it does so no comment needed.
* dlmstp_linux: Fix -Wdeclaration-after-statement compiler warnings
Make dlmstp_linux C89/C90 combatible
```
/bacnet-stack/ports/linux/dlmstp_linux.c: In function ‘Timer_Silence’:
/bacnet-stack/ports/linux/dlmstp_linux.c:56:5: warning:
ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
56 | int32_t res;
| ^~~~~~~
/bacnet-stack/ports/linux/dlmstp_linux.c: In function ‘dlmstp_init’:
/bacnet-stack/ports/linux/dlmstp_linux.c:795:5: warning:
ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
795 | struct termios newtio;
| ^~~~~~
```
* Fix warnings produces by MSVC
Now that we have enabled /Wall for MSVC we get some warnings with it
which can be easily fixed.
We get following warnings:
```
src\bacnet\bacstr.c(223,39): warning C4127: conditional expression is constant
apps\router-mstp\main.c(1123,1): warning C4702: unreachable code
apps\epics\main.c(885,53): warning C4459: declaration of 'myState' hides global declaration
```
* cmake: Use /Wall with MSVC
Make MSVC to build cleanly with Wall. This might matter for some Windows
developers. And you never know if MSVC will find more bugs.
* cmake: Improve router build
Router build gives some warnings as it is not C90 compatible. It is ok
that example is not following C90 rules. Also it is annoing to new user
to build this cmake as first error usually is that libconfig is not
found. Let's just give warning about this so first build will usually go
smoother.
---------
Co-authored-by: Kari Argillander <kari.argillander@fidelix.com>
74 lines
1.8 KiB
C
74 lines
1.8 KiB
C
/**************************************************************************
|
|
*
|
|
* Copyright (C) 2005 Steve Karg <skarg@users.sourceforge.net>
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*
|
|
*********************************************************************/
|
|
|
|
#ifndef BACPORT_H
|
|
#define BACPORT_H
|
|
|
|
#include "bacnet/basic/sys/bacnet_stack_exports.h"
|
|
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#define STRICT 1
|
|
/* Windows XP minimum */
|
|
#if (_WIN32_WINNT < _WIN32_WINNT_WINXP)
|
|
#undef _WIN32_WINNT
|
|
#define _WIN32_WINNT _WIN32_WINNT_WINXP
|
|
#undef NTDDI_VERSION
|
|
#define NTDDI_VERSION NTDDI_WINXP
|
|
#endif
|
|
|
|
#include <windows.h>
|
|
#ifndef BACNET_IP_BROADCAST_USE_CLASSADDR
|
|
#include <iphlpapi.h>
|
|
#if defined(_MSC_VER)
|
|
#pragma comment(lib, "IPHLPAPI.lib")
|
|
#endif
|
|
#endif
|
|
#include <winsock2.h>
|
|
#include <ws2tcpip.h>
|
|
#if defined(_MSC_VER)
|
|
#pragma comment(lib, "Ws2_32.lib")
|
|
#endif
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#ifdef __MINGW32__
|
|
#include <ws2spi.h>
|
|
#else
|
|
#pragma warning( push )
|
|
#pragma warning(disable: 4101 4191)
|
|
#include <wspiapi.h>
|
|
#pragma warning( pop )
|
|
/* add winmm.lib to our build */
|
|
#pragma comment(lib, "winmm.lib")
|
|
#endif
|
|
#include <mmsystem.h>
|
|
|
|
#if !defined(_MSC_VER)
|
|
#include <sys/time.h>
|
|
#endif
|
|
#include <sys/timeb.h>
|
|
|
|
#ifdef _MSC_VER
|
|
#define inline __inline
|
|
#endif
|
|
#ifdef __BORLANDC__
|
|
#define inline __inline
|
|
#endif
|
|
|
|
BACNET_STACK_EXPORT
|
|
extern int bip_get_local_netmask(
|
|
struct in_addr *netmask);
|
|
|
|
#define BACNET_OBJECT_TABLE(table_name, _type, _init, _count, \
|
|
_index_to_instance, _valid_instance, _object_name, \
|
|
_read_property, _write_property, _RPM_list, \
|
|
_RR_info, _iterator, _value_list, _COV, \
|
|
_COV_clear, _intrinsic_reporting) \
|
|
static_assert(false, "Unsupported BACNET_OBJECT_TABLE for this platform")
|
|
|
|
#endif
|