mirror of https://github.com/wb2osz/direwolf.git
574 lines
9.1 KiB
CMake
574 lines
9.1 KiB
CMake
|
|
# global includes
|
|
# not ideal but not so slow
|
|
# otherwise use target_include_directories
|
|
include_directories(
|
|
${GPSD_INCLUDE_DIRS}
|
|
${HAMLIB_INCLUDE_DIRS}
|
|
${ALSA_INCLUDE_DIRS}
|
|
${UDEV_INCLUDE_DIRS}
|
|
${PORTAUDIO_INCLUDE_DIRS}
|
|
${SNDIO_INCLUDE_DIRS}
|
|
${CUSTOM_GEOTRANZ_DIR}
|
|
${CUSTOM_HIDAPI_DIR}
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
include_directories(
|
|
${CUSTOM_REGEX_DIR}
|
|
)
|
|
endif()
|
|
|
|
|
|
# direwolf
|
|
list(APPEND direwolf_SOURCES
|
|
direwolf.c
|
|
ais.c
|
|
aprs_tt.c
|
|
audio_stats.c
|
|
ax25_link.c
|
|
ax25_pad.c
|
|
ax25_pad2.c
|
|
beacon.c
|
|
config.c
|
|
decode_aprs.c
|
|
dedupe.c
|
|
demod_9600.c
|
|
demod_afsk.c
|
|
demod_psk.c
|
|
demod.c
|
|
digipeater.c
|
|
cdigipeater.c
|
|
dlq.c
|
|
dsp.c
|
|
dtime_now.c
|
|
dtmf.c
|
|
dwgps.c
|
|
dwsock.c
|
|
encode_aprs.c
|
|
encode_aprs.c
|
|
fcs_calc.c
|
|
fcs_calc.c
|
|
fx25_encode.c
|
|
fx25_extract.c
|
|
fx25_init.c
|
|
fx25_rec.c
|
|
fx25_send.c
|
|
fx25_auto.c
|
|
gen_tone.c
|
|
hdlc_rec.c
|
|
hdlc_rec2.c
|
|
hdlc_send.c
|
|
igate.c
|
|
il2p_codec.c
|
|
il2p_scramble.c
|
|
il2p_rec.c
|
|
il2p_payload.c
|
|
il2p_init.c
|
|
il2p_header.c
|
|
il2p_send.c
|
|
kiss_frame.c
|
|
kiss.c
|
|
kissserial.c
|
|
kissnet.c
|
|
latlong.c
|
|
latlong.c
|
|
log.c
|
|
morse.c
|
|
multi_modem.c
|
|
waypoint.c
|
|
serial_port.c
|
|
pfilter.c
|
|
ptt.c
|
|
recv.c
|
|
rrbb.c
|
|
server.c
|
|
symbols.c
|
|
telemetry.c
|
|
textcolor.c
|
|
tq.c
|
|
tt_text.c
|
|
tt_user.c
|
|
xid.c
|
|
xmit.c
|
|
dwgps.c
|
|
dwgpsnmea.c
|
|
dwgpsd.c
|
|
mheard.c
|
|
)
|
|
|
|
if(LINUX)
|
|
list(APPEND direwolf_SOURCES
|
|
audio.c
|
|
)
|
|
if(UDEV_FOUND)
|
|
list(APPEND direwolf_SOURCES
|
|
cm108.c
|
|
)
|
|
endif()
|
|
if(AVAHI_CLIENT_FOUND)
|
|
list(APPEND direwolf_SOURCES
|
|
dns_sd_common.c
|
|
dns_sd_avahi.c
|
|
)
|
|
endif()
|
|
elseif(WIN32 OR CYGWIN) # windows
|
|
list(APPEND direwolf_SOURCES
|
|
audio_win.c
|
|
cm108.c
|
|
|
|
# icon
|
|
# require plain gcc binary or link
|
|
#${CMAKE_SOURCE_DIR}/cmake/cpack/direwolf.rc
|
|
)
|
|
list(REMOVE_ITEM direwolf_SOURCES
|
|
dwgpsd.c
|
|
)
|
|
elseif(HAVE_SNDIO)
|
|
list(APPEND direwolf_SOURCES
|
|
audio.c
|
|
)
|
|
else() # macOS freebsd
|
|
list(APPEND direwolf_SOURCES
|
|
audio_portaudio.c
|
|
)
|
|
if(USE_MACOS_DNSSD)
|
|
list(APPEND direwolf_SOURCES
|
|
dns_sd_common.c
|
|
dns_sd_macos.c
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
add_executable(direwolf
|
|
${direwolf_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(direwolf
|
|
${GEOTRANZ_LIBRARIES}
|
|
${MISC_LIBRARIES}
|
|
${REGEX_LIBRARIES}
|
|
${HIDAPI_LIBRARIES}
|
|
Threads::Threads
|
|
${GPSD_LIBRARIES}
|
|
${HAMLIB_LIBRARIES}
|
|
${ALSA_LIBRARIES}
|
|
${UDEV_LIBRARIES}
|
|
${PORTAUDIO_LIBRARIES}
|
|
${SNDIO_LIBRARIES}
|
|
${AVAHI_LIBRARIES}
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
set_target_properties(direwolf
|
|
PROPERTIES COMPILE_FLAGS "-DUSE_REGEX_STATIC"
|
|
)
|
|
target_link_libraries(direwolf winmm ws2_32 setupapi)
|
|
endif()
|
|
|
|
# decode_aprs
|
|
list(APPEND decode_aprs_SOURCES
|
|
decode_aprs.c
|
|
ais.c
|
|
kiss_frame.c
|
|
ax25_pad.c
|
|
dwgpsnmea.c
|
|
dwgps.c
|
|
dwgpsd.c
|
|
serial_port.c
|
|
symbols.c
|
|
textcolor.c
|
|
fcs_calc.c
|
|
latlong.c
|
|
log.c
|
|
telemetry.c
|
|
tt_text.c
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
list(REMOVE_ITEM decode_aprs_SOURCES
|
|
dwgpsd.c
|
|
)
|
|
endif()
|
|
|
|
add_executable(decode_aprs
|
|
${decode_aprs_SOURCES}
|
|
)
|
|
|
|
set_target_properties(decode_aprs
|
|
PROPERTIES COMPILE_FLAGS "-DDECAMAIN -DUSE_REGEX_STATIC"
|
|
)
|
|
|
|
target_link_libraries(decode_aprs
|
|
${MISC_LIBRARIES}
|
|
${REGEX_LIBRARIES}
|
|
Threads::Threads
|
|
${GPSD_LIBRARIES}
|
|
)
|
|
|
|
|
|
# Convert between text and touch tone representation.
|
|
# text2tt
|
|
list(APPEND text2tt_SOURCES
|
|
tt_text.c
|
|
)
|
|
|
|
add_executable(text2tt
|
|
${text2tt_SOURCES}
|
|
)
|
|
|
|
set_target_properties(text2tt
|
|
PROPERTIES COMPILE_FLAGS "-DENC_MAIN"
|
|
)
|
|
|
|
target_link_libraries(text2tt
|
|
${MISC_LIBRARIES}
|
|
)
|
|
|
|
# tt2text
|
|
list(APPEND tt2text_SOURCES
|
|
tt_text.c
|
|
)
|
|
|
|
add_executable(tt2text
|
|
${tt2text_SOURCES}
|
|
)
|
|
|
|
set_target_properties(tt2text
|
|
PROPERTIES COMPILE_FLAGS "-DDEC_MAIN"
|
|
)
|
|
|
|
target_link_libraries(tt2text
|
|
${MISC_LIBRARIES}
|
|
)
|
|
|
|
|
|
# Convert between Latitude/Longitude and UTM coordinates.
|
|
# ll2utm
|
|
list(APPEND ll2utm_SOURCES
|
|
ll2utm.c
|
|
textcolor.c
|
|
)
|
|
|
|
add_executable(ll2utm
|
|
${ll2utm_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(ll2utm
|
|
${GEOTRANZ_LIBRARIES}
|
|
${MISC_LIBRARIES}
|
|
)
|
|
|
|
# utm2ll
|
|
list(APPEND utm2ll_SOURCES
|
|
utm2ll.c
|
|
textcolor.c
|
|
)
|
|
|
|
add_executable(utm2ll
|
|
${utm2ll_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(utm2ll
|
|
${GEOTRANZ_LIBRARIES}
|
|
${MISC_LIBRARIES}
|
|
)
|
|
|
|
|
|
# Convert from log file to GPX.
|
|
# log2gpx
|
|
list(APPEND log2gpx_SOURCES
|
|
log2gpx.c
|
|
textcolor.c
|
|
)
|
|
|
|
add_executable(log2gpx
|
|
${log2gpx_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(log2gpx
|
|
${MISC_LIBRARIES}
|
|
)
|
|
|
|
|
|
# Test application to generate sound.
|
|
# gen_packets
|
|
list(APPEND gen_packets_SOURCES
|
|
gen_packets.c
|
|
ax25_pad.c
|
|
ax25_pad2.c
|
|
fx25_encode.c
|
|
fx25_extract.c
|
|
fx25_init.c
|
|
fx25_send.c
|
|
hdlc_send.c
|
|
fcs_calc.c
|
|
gen_tone.c
|
|
il2p_codec.c
|
|
il2p_scramble.c
|
|
il2p_payload.c
|
|
il2p_init.c
|
|
il2p_header.c
|
|
il2p_send.c
|
|
morse.c
|
|
dtmf.c
|
|
textcolor.c
|
|
dsp.c
|
|
)
|
|
|
|
add_executable(gen_packets
|
|
${gen_packets_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(gen_packets
|
|
${MISC_LIBRARIES}
|
|
)
|
|
|
|
|
|
# Unit test for AFSK demodulator
|
|
# atest
|
|
list(APPEND atest_SOURCES
|
|
atest.c
|
|
ais.c
|
|
demod.c
|
|
demod_afsk.c
|
|
demod_psk.c
|
|
demod_9600.c
|
|
dsp.c
|
|
fx25_extract.c
|
|
fx25_encode.c
|
|
fx25_init.c
|
|
fx25_rec.c
|
|
hdlc_rec.c
|
|
hdlc_rec2.c
|
|
il2p_codec.c
|
|
il2p_scramble.c
|
|
il2p_rec.c
|
|
il2p_payload.c
|
|
il2p_init.c
|
|
il2p_header.c
|
|
multi_modem.c
|
|
rrbb.c
|
|
fcs_calc.c
|
|
ax25_pad.c
|
|
ax25_pad2.c
|
|
decode_aprs.c
|
|
dwgpsnmea.c
|
|
dwgps.c
|
|
dwgpsd.c
|
|
serial_port.c
|
|
telemetry.c
|
|
dtime_now.c
|
|
latlong.c
|
|
symbols.c
|
|
tt_text.c
|
|
textcolor.c
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
list(REMOVE_ITEM atest_SOURCES
|
|
dwgpsd.c
|
|
)
|
|
endif()
|
|
|
|
add_executable(atest
|
|
${atest_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(atest
|
|
${MISC_LIBRARIES}
|
|
${GPSD_LIBRARIES}
|
|
${REGEX_LIBRARIES}
|
|
Threads::Threads
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
set_target_properties(atest
|
|
PROPERTIES COMPILE_FLAGS "-DUSE_REGEX_STATIC"
|
|
)
|
|
endif()
|
|
|
|
|
|
# Multiple AGWPE network or serial port clients to test TNCs side by side.
|
|
# aclients
|
|
list(APPEND aclients_SOURCES
|
|
aclients.c
|
|
ax25_pad.c
|
|
fcs_calc.c
|
|
textcolor.c
|
|
)
|
|
|
|
add_executable(aclients
|
|
${aclients_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(aclients
|
|
${MISC_LIBRARIES}
|
|
Threads::Threads
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
target_link_libraries(aclients ws2_32)
|
|
endif()
|
|
|
|
|
|
# Talk to a KISS TNC.
|
|
# Note: kiss_frame.c has conditional compilation on KISSUTIL.
|
|
# kissutil
|
|
list(APPEND kissutil_SOURCES
|
|
kissutil.c
|
|
kiss_frame.c
|
|
ax25_pad.c
|
|
fcs_calc.c
|
|
textcolor.c
|
|
serial_port.c
|
|
dtime_now.c
|
|
dwsock.c
|
|
)
|
|
|
|
add_executable(kissutil
|
|
${kissutil_SOURCES}
|
|
)
|
|
|
|
set_target_properties(kissutil
|
|
PROPERTIES COMPILE_FLAGS "-DKISSUTIL"
|
|
)
|
|
|
|
target_link_libraries(kissutil
|
|
${MISC_LIBRARIES}
|
|
Threads::Threads
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
target_link_libraries(kissutil ws2_32)
|
|
endif()
|
|
|
|
|
|
# TNC interoperability testing for AX.25 connected mode.
|
|
# tnctest
|
|
list(APPEND tnctest_SOURCES
|
|
tnctest.c
|
|
textcolor.c
|
|
dtime_now.c
|
|
serial_port.c
|
|
)
|
|
|
|
add_executable(tnctest
|
|
${tnctest_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(tnctest
|
|
${MISC_LIBRARIES}
|
|
Threads::Threads
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
target_link_libraries(tnctest ws2_32)
|
|
endif()
|
|
|
|
|
|
# List USB audio adapters than can use GPIO for PTT.
|
|
# Originally for Linux only (using udev).
|
|
# Version 1.7 adds it for Windows. Needs hidapi library.
|
|
|
|
# cm108
|
|
if(UDEV_FOUND OR WIN32 OR CYGWIN)
|
|
list(APPEND cm108_SOURCES
|
|
cm108.c
|
|
textcolor.c
|
|
)
|
|
|
|
add_executable(cm108
|
|
${cm108_SOURCES}
|
|
)
|
|
|
|
set_target_properties(cm108
|
|
PROPERTIES COMPILE_FLAGS "-DCM108_MAIN"
|
|
)
|
|
|
|
target_link_libraries(cm108
|
|
${MISC_LIBRARIES}
|
|
)
|
|
|
|
if (LINUX)
|
|
target_link_libraries(cm108
|
|
${UDEV_LIBRARIES}
|
|
)
|
|
endif()
|
|
|
|
if (WIN32 OR CYGWIN)
|
|
target_link_libraries(cm108
|
|
${HIDAPI_LIBRARIES}
|
|
ws2_32
|
|
setupapi
|
|
)
|
|
endif()
|
|
endif()
|
|
|
|
|
|
# Touch Tone to Speech sample application.
|
|
# ttcalc
|
|
list(APPEND ttcalc_SOURCES
|
|
ttcalc.c
|
|
ax25_pad.c
|
|
fcs_calc.c
|
|
textcolor.c
|
|
)
|
|
|
|
add_executable(ttcalc
|
|
${ttcalc_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(ttcalc
|
|
${MISC_LIBRARIES}
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
target_link_libraries(ttcalc ws2_32)
|
|
endif()
|
|
|
|
|
|
# Sample for packet radio server application.
|
|
# appserver
|
|
list(APPEND appserver_SOURCES
|
|
appserver.c
|
|
agwlib.c
|
|
dwsock.c
|
|
dtime_now.c
|
|
ax25_pad.c
|
|
fcs_calc.c
|
|
textcolor.c
|
|
)
|
|
|
|
add_executable(appserver
|
|
${appserver_SOURCES}
|
|
)
|
|
|
|
target_link_libraries(appserver
|
|
${MISC_LIBRARIES}
|
|
Threads::Threads
|
|
)
|
|
|
|
if(WIN32 OR CYGWIN)
|
|
target_link_libraries(appserver ws2_32)
|
|
endif()
|
|
|
|
|
|
install(TARGETS direwolf DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS decode_aprs DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS text2tt DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS tt2text DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS ll2utm DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS utm2ll DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS aclients DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS log2gpx DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS gen_packets DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS atest DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS ttcalc DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS kissutil DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS tnctest DESTINATION ${INSTALL_BIN_DIR})
|
|
install(TARGETS appserver DESTINATION ${INSTALL_BIN_DIR})
|
|
if(UDEV_FOUND OR WIN32 OR CYGWIN)
|
|
install(TARGETS cm108 DESTINATION ${INSTALL_BIN_DIR})
|
|
endif()
|