Commit Graph

426 Commits

Author SHA1 Message Date
Davide Gerhard 1cf5a22333
cmake: implement basic cpack functionality
to create ZIP package run

    cpack

to add new generator modify CPACK_GENERATOR variable.

NOTE: pay attention on CPU flags optimization when you redistribuite
the package (segmentation fault)
2019-11-13 15:57:11 +01:00
Davide Gerhard 1ab26c66e2
cmake: not build ctest binaries as default
unit test binaries are disabled by default now.
To enable it use either

cmake -DUNITTEST=1 ..

or

cmake -DCMAKE_BUILD_TYPE=DEBUG

where CMAKE_BUILD_TYPE must be different from "RELEASE"
see https://cmake.org/cmake/help/v3.0/variable/CMAKE_BUILD_TYPE.html
2019-11-12 14:28:29 +01:00
Davide Gerhard 8fd4bebf45
install udev rules on /etc and not ${CMAKE_INSTALL_PREFIX}/etc
This should works fine also with cpack and packaging seen that they
are using DESTDIR.

CPACK:
- from 2.8.3 CPACK_SET_DESTDIR is default to ON
- if you have trouble read CPACK_PACKAGING_INSTALL_PREFIX
2019-11-09 09:21:47 +01:00
Davide Gerhard 8cd1f87ef6
cmake: windows build fixes
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
2019-11-09 08:31:35 +01:00
Davide Gerhard 184b2af329
cmake: change install-conf script with configure_file()
in this way, If the input file is modified the build system will
re-run CMake to re-configure the file and generate the build system
again.
2019-11-09 08:26:37 +01:00
Davide Gerhard 0e5049c08a
cmake: implements tests using CTest suite
the new tests are implemented with CTest suite of CMake.
To enable the tests you need to run cmake with -DBUILD_TESTING=ON
There are optional tests (that might not work) that can be enabled with
-DOPTIONAL_TEST=ON

So, to enable all tests and run it use the following command

mkdir build
cmake -DBUILD_TESTING=ON -DOPTIONA_TEST=ON ..
make
ctest

to debug the errors use

ctest --debug

You can always find all tests binary on build/test/

Implementation:
- check-modem* tests are implemented with shell script because it
  requires to execute many commands and therefore will be easy to
  manage. The file is configured at configuration time.
- for single binary we verify the exit status (default = 0) so you
  only need to build the binary and add it to add_test()
2019-11-09 08:26:37 +01:00
Davide Gerhard de98f26229
walk96: fix builing errors (api mismatch) 2019-11-09 08:26:37 +01:00
Davide Gerhard 6f8ac80afd
igate: fix build errors 2019-11-09 08:26:37 +01:00
Davide Gerhard d06b644630
cmake: move install-conf target to conf/install_conf.cmake file
this way permit to use cmake language to manipulate the target and
avoid restriction imposed by CMAKE_COMMAND command mode
2019-11-09 08:26:36 +01:00
Davide Gerhard df22522126
cmake: fix cpu flags autodiscovery and terminal for raspberry
- we set cpu flags for CXX and C
- raspberry "only" has lxterminal not xterm
2019-11-09 08:26:36 +01:00
Davide Gerhard a1c16a67ef
cmake: new build tool
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
2019-11-09 08:26:33 +01:00
Davide Gerhard bc582cf24f
version: use version from cmake
in this way there is not mismatch
2019-11-09 08:26:08 +01:00
Davide Gerhard 8c9741b3e4
configuration file: update tag to facilitate the parsing
to facilitate the parsing con cmake move from single letter like C to
tag like %C%
2019-11-09 08:26:08 +01:00
Davide Gerhard e35964ec98
add new search location for symbols-new.txt and tocalls.txt
seen that we moved data in the data/ directory we need to add the new
patch to source code.
2019-11-09 08:26:07 +01:00
Davide Gerhard 05828dc65f
reshape the repository moving objects to folders based on subject 2019-11-09 08:26:01 +01:00
wb2osz edafba9fe6 Mitigate impact of cmake defining NDEBUG. 2019-11-08 21:00:12 -05:00
wb2osz d9d6bb4257 Better error message for unprintable data type indicator. 2019-11-08 20:36:10 -05:00
wb2osz a7a84269fc 64 bit target for Windows. 2019-11-03 10:01:07 -05:00
wb2osz 29c48ddcc8 Update discussion group location. 2019-10-16 21:49:40 -04:00
wb2osz 69fc783a17 More error checking for valid AX.25 format. 2019-10-14 19:13:11 -04:00
wb2osz 357f2e633c Recognize more ALSA audio "card" formats for matching to
corresponding HID devices for PTT.
2019-10-14 19:10:55 -04:00
wb2osz 316c8d8194 Replace defective strsep. 2019-10-14 19:08:49 -04:00
wb2osz 3765f26554 Default to no colors if output is not terminal. 2019-09-30 22:04:49 -04:00
wb2osz 10ad90b3db Another alternative for text colors. 2019-09-30 22:00:14 -04:00
wb2osz e6c721a58d Better error checking. 2019-09-30 21:55:48 -04:00
wb2osz 37cb5440a6 Better error messages. 2019-09-30 21:51:40 -04:00
wb2osz c72d06c285 Issue 220. Recognize MIC-E encoding for Yaesu FT3D, Anytone D578UV, and Anytone D878UV. 2019-08-27 06:50:55 -04:00
wb2osz e219426a37 Better support for OpenBSD and FreeBSD.
Combination of pull requests 92 & 192.
2019-07-07 21:58:22 -04:00
wb2osz c59053536e Add short delay after enabling GPIO pin. Issue #176 2019-07-07 11:29:23 -04:00
wb2osz edaf661bb1 Detect MINGW, as well as CYGWIN, for Windows build environment. #76 2019-07-07 08:44:06 -04:00
wb2osz e0c2c31181 Compatibility with GPSD API 8. #214 2019-07-07 08:24:51 -04:00
wb2osz ca7db91da2 Text color improvements. 2019-07-06 20:34:51 -04:00
wb2osz e962246fd2 Fix compiler warning. 2019-07-06 17:31:16 -04:00
wb2osz 342989b100 Issue 210. USB Audio GPIO bytes reversed. 2019-07-05 21:08:23 -04:00
wb2osz ce6c617203 Typo in comment. 2019-06-30 19:51:26 -04:00
wb2osz 742d046c40 Clarifying comments. 2019-06-30 19:46:00 -04:00
wb2osz 698ca1ea87 Use same text color escape sequences for ARM and other.
Add "-t 2" option for better results with PuTTY.
2019-06-29 21:28:51 -04:00
wb2osz 4c5004b6a1 Fix new warnings for gcc 8.3. 2019-06-29 10:00:40 -04:00
wb2osz 90921b9376 cut-n-paste error. 2019-05-19 21:41:05 -04:00
wb2osz a32064571d Make file omissions. 2019-05-19 21:17:49 -04:00
wb2osz b37fda96fb 2400 bps PSK compatibility with MFJ-2400. 2019-05-19 20:57:56 -04:00
wb2osz ad12fa86d6 Replace channel valid boolean with more versatile enum. 2019-05-13 06:25:12 -04:00
wb2osz d6ea439f98 New features for version 1.6. 2019-04-21 19:57:11 -04:00
wb2osz a5f3de2222 Fix compile warning. 2019-04-21 19:52:18 -04:00
wb2osz a4d87e4013 New function to generate APRS "message." 2019-04-21 19:36:20 -04:00
wb2osz 7fc9f31fbc More comments about GNSS. 2019-04-21 19:31:41 -04:00
wb2osz d828a8abe3 Add description for raw GPS data. 2019-04-21 19:27:44 -04:00
wb2osz aea1eb7b41 Better error message for invalid channel which could
be caused by use of SMACK rather than standard KISS.
2019-04-21 19:17:06 -04:00
wb2osz c559f0d443 Clarifying comment. 2019-04-21 19:14:52 -04:00
wb2osz 792569b991 More error checking. 2019-04-21 19:13:18 -04:00