From 0c22c2d2dedd85f2a413a6ba89f6f9618dcf71e2 Mon Sep 17 00:00:00 2001 From: Jonathan Naylor Date: Mon, 22 Apr 2024 13:24:52 +0100 Subject: [PATCH] Get the programs compiling on VS2019 again. --- NXDNGateway/NXDNGateway.cpp | 3 ++- NXDNGateway/NXDNGateway.vcxproj | 12 ++++++++++ NXDNGateway/UDPSocket.h | 3 ++- NXDNGateway/prebuild.cmd | 38 ++++++++++++++++++++++++++++++++ NXDNParrot/NXDNParrot.cpp | 39 +++++++++++++++++++++------------ NXDNParrot/NXDNParrot.vcxproj | 12 ++++++++++ NXDNParrot/UDPSocket.h | 3 ++- NXDNParrot/prebuild.cmd | 38 ++++++++++++++++++++++++++++++++ 8 files changed, 131 insertions(+), 17 deletions(-) create mode 100644 NXDNGateway/prebuild.cmd create mode 100644 NXDNParrot/prebuild.cmd diff --git a/NXDNGateway/NXDNGateway.cpp b/NXDNGateway/NXDNGateway.cpp index 65eedf1..9235e6f 100644 --- a/NXDNGateway/NXDNGateway.cpp +++ b/NXDNGateway/NXDNGateway.cpp @@ -31,6 +31,7 @@ #include "Timer.h" #include "Utils.h" #include "Log.h" +#include "GitVersion.h" #if defined(_WIN32) || defined(_WIN64) #include @@ -79,7 +80,7 @@ int main(int argc, char** argv) for (int currentArg = 1; currentArg < argc; ++currentArg) { std::string arg = argv[currentArg]; if ((arg == "-v") || (arg == "--version")) { - ::fprintf(stdout, "NXDNGateway version %s\n", VERSION); + ::fprintf(stdout, "NXDNGateway version %s git #%.7s\n", VERSION, gitversion); return 0; } else if (arg.substr(0, 1) == "-") { ::fprintf(stderr, "Usage: NXDNGateway [-v|--version] [filename]\n"); diff --git a/NXDNGateway/NXDNGateway.vcxproj b/NXDNGateway/NXDNGateway.vcxproj index 6e9f282..c08bd48 100644 --- a/NXDNGateway/NXDNGateway.vcxproj +++ b/NXDNGateway/NXDNGateway.vcxproj @@ -94,6 +94,9 @@ true ws2_32.lib;%(AdditionalDependencies) + + prebuild.cmd + @@ -108,6 +111,9 @@ true ws2_32.lib;%(AdditionalDependencies) + + prebuild.cmd + @@ -126,6 +132,9 @@ true ws2_32.lib;%(AdditionalDependencies) + + prebuild.cmd + @@ -144,6 +153,9 @@ true ws2_32.lib;%(AdditionalDependencies) + + prebuild.cmd + diff --git a/NXDNGateway/UDPSocket.h b/NXDNGateway/UDPSocket.h index 28e350c..75228a3 100644 --- a/NXDNGateway/UDPSocket.h +++ b/NXDNGateway/UDPSocket.h @@ -69,10 +69,11 @@ private: unsigned short m_localPort; #if defined(_WIN32) || defined(_WIN64) SOCKET m_fd; + int m_af; #else int m_fd; -#endif sa_family_t m_af; +#endif }; #endif diff --git a/NXDNGateway/prebuild.cmd b/NXDNGateway/prebuild.cmd new file mode 100644 index 0000000..697fde9 --- /dev/null +++ b/NXDNGateway/prebuild.cmd @@ -0,0 +1,38 @@ +@echo off +REM This pre-build file is for MSVS VC++. It parses the git master hash and +REM converts it into GitVersion.h for compiling into builds. [George M1GEO] + +cd %1 +setlocal enabledelayedexpansion +set HEADFILE=..\.git\HEAD +set HASHFILE=0 +if exist %HEADFILE% ( + for /F "tokens=4 delims=/:" %%a in ('type %HEADFILE%') do set HEADBRANCH=%%a + set HASHFILE=.git\refs\heads\!HEADBRANCH! + echo Found Git HEAD file: %HEADFILE% + echo Git HEAD branch: !HEADBRANCH! + echo Git HASH file: !HASHFILE! + call :USEHASH +) else ( + echo No head file :( + call :USENULL +) + +goto :EOF + +:USENULL +set GITHASH=0000000000000000000000000000000000000000 +goto :WRITEGITVERSIONHEADER + +:USEHASH +for /f %%i in ('type !HASHFILE!') do set GITHASH=%%i +goto :WRITEGITVERSIONHEADER + +:WRITEGITVERSIONHEADER +echo // File contains Git commit ID SHA1 present at buildtime (prebuild.cmd) > GitVersion.h +echo const char *gitversion = "%GITHASH%"; >> GitVersion.h +echo Current Git HASH: %GITHASH% +goto :FINISHED + +:FINISHED +echo GitVersion.h written... diff --git a/NXDNParrot/NXDNParrot.cpp b/NXDNParrot/NXDNParrot.cpp index 793236b..b210f26 100644 --- a/NXDNParrot/NXDNParrot.cpp +++ b/NXDNParrot/NXDNParrot.cpp @@ -23,6 +23,7 @@ #include "Parrot.h" #include "Thread.h" #include "Timer.h" +#include "GitVersion.h" #include #include @@ -30,21 +31,31 @@ int main(int argc, char** argv) { - if (argc == 1) { - ::fprintf(stderr, "Usage: NXDNParrot \n"); - return 1; + if (argc > 1) { + for (int currentArg = 1; currentArg < argc; ++currentArg) { + std::string arg = argv[currentArg]; + if ((arg == "-v") || (arg == "--version")) { + ::fprintf(stdout, "NXDNParrot version %s git #%.7s\n", VERSION, gitversion); + return 0; + } + else if (arg.substr(0, 1) == "-") { + ::fprintf(stderr, "Usage: NXDNParrot [-v|--version] [-d|--debug] \n"); + return 1; + } + else { + unsigned short port = (unsigned short)::atoi(argv[1U]); + if (port == 0U) { + ::fprintf(stderr, "NXDNParrot: invalid port number - %s\n", argv[1U]); + return 1; + } + + CNXDNParrot parrot(port); + parrot.run(); + + return 0; + } + } } - - unsigned short port = (unsigned short)::atoi(argv[1U]); - if (port == 0U) { - ::fprintf(stderr, "NXDNParrot: invalid port number - %s\n", argv[1U]); - return 1; - } - - CNXDNParrot parrot(port); - parrot.run(); - - return 0; } CNXDNParrot::CNXDNParrot(unsigned short port) : diff --git a/NXDNParrot/NXDNParrot.vcxproj b/NXDNParrot/NXDNParrot.vcxproj index a92087d..aa07da5 100644 --- a/NXDNParrot/NXDNParrot.vcxproj +++ b/NXDNParrot/NXDNParrot.vcxproj @@ -94,6 +94,9 @@ true ws2_32.lib;%(AdditionalDependencies) + + prebuild.cmd + @@ -108,6 +111,9 @@ true ws2_32.lib;%(AdditionalDependencies) + + prebuild.cmd + @@ -126,6 +132,9 @@ true ws2_32.lib;%(AdditionalDependencies) + + prebuild.cmd + @@ -144,6 +153,9 @@ true ws2_32.lib;%(AdditionalDependencies) + + prebuild.cmd + diff --git a/NXDNParrot/UDPSocket.h b/NXDNParrot/UDPSocket.h index 28e350c..75228a3 100644 --- a/NXDNParrot/UDPSocket.h +++ b/NXDNParrot/UDPSocket.h @@ -69,10 +69,11 @@ private: unsigned short m_localPort; #if defined(_WIN32) || defined(_WIN64) SOCKET m_fd; + int m_af; #else int m_fd; -#endif sa_family_t m_af; +#endif }; #endif diff --git a/NXDNParrot/prebuild.cmd b/NXDNParrot/prebuild.cmd new file mode 100644 index 0000000..697fde9 --- /dev/null +++ b/NXDNParrot/prebuild.cmd @@ -0,0 +1,38 @@ +@echo off +REM This pre-build file is for MSVS VC++. It parses the git master hash and +REM converts it into GitVersion.h for compiling into builds. [George M1GEO] + +cd %1 +setlocal enabledelayedexpansion +set HEADFILE=..\.git\HEAD +set HASHFILE=0 +if exist %HEADFILE% ( + for /F "tokens=4 delims=/:" %%a in ('type %HEADFILE%') do set HEADBRANCH=%%a + set HASHFILE=.git\refs\heads\!HEADBRANCH! + echo Found Git HEAD file: %HEADFILE% + echo Git HEAD branch: !HEADBRANCH! + echo Git HASH file: !HASHFILE! + call :USEHASH +) else ( + echo No head file :( + call :USENULL +) + +goto :EOF + +:USENULL +set GITHASH=0000000000000000000000000000000000000000 +goto :WRITEGITVERSIONHEADER + +:USEHASH +for /f %%i in ('type !HASHFILE!') do set GITHASH=%%i +goto :WRITEGITVERSIONHEADER + +:WRITEGITVERSIONHEADER +echo // File contains Git commit ID SHA1 present at buildtime (prebuild.cmd) > GitVersion.h +echo const char *gitversion = "%GITHASH%"; >> GitVersion.h +echo Current Git HASH: %GITHASH% +goto :FINISHED + +:FINISHED +echo GitVersion.h written...