WSJT-X/CMakeLists.txt
Murray Curtis 13dba2b1ba 1. Decoded text should now remain left justified even if the font is too large for the window
2. The main window can be expanded wider to allow those with large screens to use larger fonts
3. New class DecodedText handles the formatted text from decoder.f90.


git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3564 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
2013-08-25 01:48:45 +00:00

206 lines
4.4 KiB
CMake

cmake_minimum_required (VERSION 2.8.9)
project (wsjtx C CXX Fortran)
set (WSJTX_VERSION_MAJOR 1)
set (WSJTX_VERSION_MINOR 2)
if (POLICY CMP0020)
cmake_policy (SET CMP0020 NEW) # link to Qt winmain on Windows
endif (POLICY CMP0020)
# make sure that the default is a RELEASE
if (NOT CMAKE_BUILD_TYPE)
set (CMAKE_BUILD_TYPE RELEASE CACHE STRING
"Choose the type of build, options are: None Debug Release."
FORCE)
endif (NOT CMAKE_BUILD_TYPE)
#
# C++ setup
#
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
set (CXXSRCS
logbook/adif.cpp
logbook/countrydat.cpp
logbook/countriesworked.cpp
logbook/logbook.cpp
rigclass.cpp
psk_reporter.cpp
Modulator.cpp
Detector.cpp
logqso.cpp
displaytext.cpp
decodedtext.cpp
getfile.cpp
soundout.cpp
soundin.cpp
meterwidget.cpp
signalmeter.cpp
plotter.cpp
widegraph.cpp
devsetup.cpp
about.cpp
mainwindow.cpp
main.cpp
)
if (WIN32)
set (CXXSRCS ${CXXSRCS} killbyname.cpp)
endif (WIN32)
set_property (SOURCE ${CXXSRCS} APPEND PROPERTY COMPILE_FLAGS "-include wsjtx_config.h")
set (UISRCS
mainwindow.ui
about.ui
devsetup.ui
widegraph.ui
logqso.ui
)
#
# sort out pre-requisites
#
#
# libfftw3 setup
#
find_path (fftw3f_INCLUDES fftw3.f)
find_library (fftw3f NAMES fftw3f fftw3f-3)
include_directories (${fftw3f_INCLUDES})
#
# libhamlib setup
#
find_path (hamlib_INCLUDES hamlib/rig.h)
find_library (hamlib NAMES hamlib hamlib-2)
find_library (usb NAMES usb0)
find_path (hamlib-runtime-path libhamlib-2.dll)
file (GLOB hamlib-backends ${hamlib-runtime-path}/hamlib*.dll)
include_directories (${hamlib_INCLUDES})
#
# Qt5 setup
#
# Widgets finds its own dependencies.
find_package (Qt5Widgets REQUIRED)
find_package (Qt5Multimedia REQUIRED)
# Tell CMake to run moc when necessary
set (CMAKE_AUTOMOC ON)
# don't use Qt "keywords" signal, slot, emit in generated files to
# avoid compatability issue with other libraries
#ADD_DEFINITIONS (-DQT_NO_KEYWORDS)
# As moc files are generated in the binary dir, tell CMake to always
# look for includes there:
set (CMAKE_INCLUDE_CURRENT_DIR ON)
# project definitions
add_definitions (-DQT5)
if (CMAKE_HOST_UNIX)
add_definitions (-DUNIX)
elseif (CMAKE_HOST_WIN32)
add_definitions (-DWIN32)
endif ()
# add_definitions (-DWSJT_SOFT_KEYING)
set_property (DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS_RELEASE QT_NO_DEBUG_OUTPUT QT_NO_WARNING_OUTPUT)
#
# build the subdirectories
#
add_subdirectory (lib)
#
# fetch kvasd
#
if (APPLE)
set (kvasd_NAME http://svn.berlios.de/wsvn/wsjt/trunk/KVASD_gfortran_Mac${CMAKE_EXECUTABLE_SUFFIX})
else ()
set (kvasd_NAME http://www.physics.princeton.edu/pulsar/K1JT/kvasd${CMAKE_EXECUTABLE_SUFFIX})
endif ()
file (
DOWNLOAD ${kvasd_NAME} contrib/kvasd${CMAKE_EXECUTABLE_SUFFIX}
STATUS kvasd_STATUS
LOG kvasd_LOG
SHOW_PROGRESS
)
message (${kvasd_LOG})
list (GET kvasd_STATUS 0 kvasd_RC)
if (!kvasd_RC)
message (FATAL_ERROR "${kvasd_STATUS}")
endif (!kvasd_RC)
add_custom_target (kvasd DEPENDS contrib/kvasd${CMAKE_EXECUTABLE_SUFFIX})
# UI generation
qt5_wrap_ui (GENUISRCS ${UISRCS})
add_executable (wsjtx ${CXXSRCS} ${GENUISRCS} wsjtx.rc)
target_link_libraries (wsjtx jt9impl ${hamlib} ${fftw3f})
if (WIN32)
target_link_libraries (wsjtx ${CMAKE_CURRENT_SOURCE_DIR}/libHRDInterface001.a)
endif (WIN32)
add_dependencies (wsjtx hamlib kvasd)
qt5_use_modules (wsjtx Widgets Multimedia OpenGL)
install (
TARGETS wsjtx
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
)
install (DIRECTORY Palettes DESTINATION bin PATTERN *.pal)
install (DIRECTORY samples DESTINATION bin/save)
install (
PROGRAMS ${CMAKE_BINARY_DIR}/contrib/kvasd${CMAKE_EXECUTABLE_SUFFIX}
DESTINATION bin
)
install (
FILES WSJT-X_Users_Guide_v${WSJTX_VERSION_MAJOR}.${WSJTX_VERSION_MINOR}.docx
DESTINATION bin
)
if (WIN32)
install (
FILES ${hamlib} ${hamlib-backends} ${fftw3f} ${usb} contrib/HRDInterface001.dll
DESTINATION bin COMPONENT Runtime
)
endif (WIN32)
# a custom target that is always built
ADD_CUSTOM_TARGET (revisiontag ALL)
# creates svnversion.h using cmake script
ADD_CUSTOM_COMMAND (TARGET revisiontag COMMAND ${CMAKE_COMMAND}
-DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/getsvn.cmake)
# explicitly say that the executable depends on custom target
add_dependencies(wsjtx revisiontag)
#
# versioning
#
configure_file (
"${PROJECT_SOURCE_DIR}/wsjtx_config.h.in"
"${PROJECT_BINARY_DIR}/wsjtx_config.h"
)
include_directories ("${PROJECT_BINARY_DIR}")