The CMake changes are slightly complicated by the Windows build using
a local copy of some hidapi files, for some reason, instead of using
the hidapi library itself. The Mac version uses hidapi in the same way
as other libraries.
In the CMake files, it is unclear to me whether "elseif (NOT WIN32 AND
NOT CYGWIN)" means the same thing as "elseif (APPLE)", so they are
treated separately in order to avoid breaking other build types.
* Create codeql-analysis.yml
* cmake: add support for Visual Studio 2019
* enable github actions (aka continuous integration)
basic implementation to enable github actions with:
- triggered each push or pull request
- built on ubuntu (multiple version), macOS, windows
- the binary has debug facilities enabled
- ignore any commit/push on the .github folder
- run all tests
- create an archive with binaries (available for 90 days)
- can manually triggered setting custom cmake flags
* cmake: fix MSVC check
* github actions: remove ubuntu 18.04; add ubuntu 22.04
* github actions: fix windows ci
---------
Co-authored-by: wb2osz <wb2osz@comcast.net>
This allows client applications to locate the IP addresses and the port of
the KISS TCP service, allowing the end user to just select a Dire Wolf from
a list instead of trying to guess its dynamic IP address and typing it in
manually. This is especially convenient on mobile devices.
On Linux, the standard Avahi daemon is used via dbus and the avahi-client
library. Building with it requires installing the development header
package; README.md is updated accordingly.
On Mac, the MacOS dnssd API is used:
https://developer.apple.com/documentation/dnssd?language=objc
I don't have Windows, but more recent Windows 10 builds apparently have
a working DNS-SD mDNS implementation that can be used on 64-bit builds.
works with cygwin and x86_64-w64-mingw32-gcc/x86_64-w64-mingw32-g++
from the package installer of cygwin.
To use that add the following lines to .bash_profile
export CC=x86_64-w64-mingw32-gcc
export CXX=x86_64-w64-mingw32-g++
you also need cmake from cygwin
this step unify the builing system for all platforms (windows, linux,
osx and *BSD)
* Requirements:
- gcc/clang (C/C++ compiler) (in debian build-essential)
- cmake (in debian cmake)
- git if you build from source (in debian git)
- posix threads
** Requirements on *BSD/macOS:
- portaudio
** Optional Requirements:
- gpsd (in debian libgps-dev)
- libhamlib (in debian libhamlib-dev)
** Optional Requirements in Linux
- udev (in debian libudev-dev)
- alsa (in debian libasound2-dev)
* Main changes:
- version is now set only on CMakeLists.txt and automatically used
on the code
- cpu flags are auto-discovered in the default build and it works
on gcc/clang/msvc on x86/x86_64/arm; you can force cpu flags with
-DFORCE_SSE=1 for example (see CMakeLists.txt on root)
- use a more "complex" tag on generic.conf to facilitate parsing
by cmake (not more platform dependent). Now it is %C% or %R% for
example
- target `tocalls-symbols` is now called `data-update`
- created debian/ directory to contains files to use debuild
* Example to build:
mkdir build && cd build
cmake ..
make
make install
make install-conf
then you have the binary files on src/ and in the system directory
* CMake options (see the head of CMakeLists.txt)
- FORCE_SSE force sse instruction
- FORCE_SSSE3 force ssse3 instruction
- FORCE_SSE41 force ssse4.1 instruction
- OPTIONAL_TEST compile optional test (might be broken)
- BUILD_TESTING enable tests (ctest framework)
- CMAKE_INSTALL_PREFIX if you want to change your install path
prefix
for example:
cmake .. -DOPTIONAL_TEST=ON