mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-15 16:42:12 -05:00
191 lines
3.8 KiB
CMake
191 lines
3.8 KiB
CMake
cmake_minimum_required (VERSION 2.8.8)
|
|
|
|
project (libm65 C CXX Fortran)
|
|
|
|
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)
|
|
|
|
set (CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
|
|
# Fortran setup
|
|
|
|
# FFLAGS depend on the compiler
|
|
get_filename_component (Fortran_COMPILER_NAME ${CMAKE_Fortran_COMPILER} NAME)
|
|
|
|
if (Fortran_COMPILER_NAME MATCHES "gfortran.*")
|
|
# gfortran
|
|
# set (CMAKE_Fortran_FLAGS_RELEASE "-funroll-all-loops -fno-f2c -O3")
|
|
set (CMAKE_Fortran_FLAGS_RELEASE "-O2 -fbounds-check")
|
|
set (CMAKE_Fortran_FLAGS_DEBUG "-fno-f2c -O0 -g")
|
|
elseif (Fortran_COMPILER_NAME MATCHES "ifort.*")
|
|
# ifort (untested)
|
|
set (CMAKE_Fortran_FLAGS_RELEASE "-f77rtl -O3")
|
|
set (CMAKE_Fortran_FLAGS_DEBUG "-f77rtl -O0 -g")
|
|
elseif (Fortran_COMPILER_NAME MATCHES "g77")
|
|
# g77
|
|
set (CMAKE_Fortran_FLAGS_RELEASE "-funroll-all-loops -fno-f2c -O3 -m32")
|
|
set (CMAKE_Fortran_FLAGS_DEBUG "-fno-f2c -O0 -g -m32")
|
|
else (Fortran_COMPILER_NAME MATCHES "gfortran.*")
|
|
message ("CMAKE_Fortran_COMPILER full path: " ${CMAKE_Fortran_COMPILER})
|
|
message ("Fortran compiler: " ${Fortran_COMPILER_NAME})
|
|
message ("No optimized Fortran compiler flags are known, we just try -O2...")
|
|
set (CMAKE_Fortran_FLAGS_RELEASE "-O2")
|
|
set (CMAKE_Fortran_FLAGS_DEBUG "-O0 -g")
|
|
endif (Fortran_COMPILER_NAME MATCHES "gfortran.*")
|
|
|
|
# C++ setup
|
|
|
|
if (UNIX)
|
|
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
|
endif (UNIX)
|
|
|
|
# setup and test Fortran C/C++ interaction
|
|
|
|
include (FortranCInterface)
|
|
FortranCInterface_VERIFY (CXX QUIET)
|
|
FortranCInterface_HEADER (FC.h MACRO_NAMESPACE "FC_" SYMBOL_NAMESPACE "FC_"
|
|
SYMBOLS )
|
|
|
|
|
|
set (FSRCS
|
|
afc65b.f90
|
|
astro.f90
|
|
astro0.f90
|
|
astrosub.f90
|
|
averms.f90
|
|
badmsg.f90
|
|
ccf2.f90
|
|
ccf65.f90
|
|
cgen65.f90
|
|
chkhist.f90
|
|
chkmsg.f90
|
|
coord.f90
|
|
dcoord.f90
|
|
decode0.f90
|
|
decode1a.f90
|
|
decode65b.f90
|
|
deep65.f90
|
|
deg2grid.f90
|
|
demod64a.f90
|
|
display.f90
|
|
dot.f90
|
|
dpol.f90
|
|
encode65.f90
|
|
extract.f90
|
|
fchisq.f90
|
|
fchisq0.f90
|
|
fil6521.f90
|
|
filbig.f90
|
|
fmtmsg.f90
|
|
four2a.f90
|
|
ftninit.f90
|
|
ftnquit.f90
|
|
gen65.f90
|
|
genqra64a.f90
|
|
geocentric.f90
|
|
getdphi.f90
|
|
getpfx1.f90
|
|
getpfx2.f90
|
|
graycode.f90
|
|
graycode65.f90
|
|
grid2deg.f90
|
|
grid2k.f90
|
|
indexx.f90
|
|
interleave63.f90
|
|
iqcal.f90
|
|
iqfix.f90
|
|
jt65code.f90
|
|
k2grid.f90
|
|
lorentzian.f90
|
|
map65a.f90
|
|
moon2.f90
|
|
moondop.f90
|
|
nchar.f90
|
|
noisegen.f90
|
|
packjt.f90
|
|
pctile.f90
|
|
pfxdump.f90
|
|
qra64b.f90
|
|
qra64c.f90
|
|
qra64zap.f90
|
|
recvpkt.f90
|
|
rfile3a.f90
|
|
s3avg.f90
|
|
sec_midn.f90
|
|
set.f90
|
|
setup65.f90
|
|
shell.f90
|
|
sleep_msec.f90
|
|
smo.f90
|
|
spec64.f90
|
|
sun.f90
|
|
symspec.f90
|
|
sync64.f90
|
|
timer.f90
|
|
timf2.f90
|
|
tm2.f90
|
|
toxyz.f90
|
|
trimlist.f90
|
|
twkfreq.f90
|
|
twkfreq_xy.f90
|
|
|
|
f77_wisdom.f
|
|
)
|
|
|
|
set (CSRCS
|
|
decode_rs.c
|
|
encode_rs.c
|
|
ftrsd2.c
|
|
gran.c
|
|
igray.c
|
|
init_rs.c
|
|
tmoonsub.c
|
|
usleep.c
|
|
wrapkarn.c
|
|
qra64/qra64.c
|
|
qra64/qra64_subs.c
|
|
qracodes/npfwht.c
|
|
qracodes/pdmath.c
|
|
qracodes/qra12_63_64_irr_b.c
|
|
qracodes/qra13_64_64_irr_e.c
|
|
qracodes/qracodes.c
|
|
qracodes/normrnd.c
|
|
)
|
|
|
|
if (WIN32)
|
|
set (CSRCS ${CSRCS} ptt.c)
|
|
else (set (CSRCS ${CSRCS} ptt_unix.c))
|
|
endif (WIN32)
|
|
|
|
set (CXXSRCS
|
|
ipcomm.cpp
|
|
)
|
|
|
|
add_definitions (-DBIGSYM=1)
|
|
set_source_files_properties (sec_midn.f90 PROPERTIES COMPILE_FLAGS -fno-second-underscore)
|
|
|
|
#
|
|
# build our targets
|
|
#
|
|
add_library (m65impl STATIC ${FSRCS} ${CSRCS} ${CXXSRCS})
|
|
qt5_use_modules (m65impl Core)
|
|
|
|
add_executable (m65 m65.f90 m65a.f90)
|
|
target_link_libraries (m65 m65impl ${fftw3f_LIBRARIES})
|
|
add_dependencies (m65 fftw3f)
|
|
qt5_use_modules (m65 Core)
|
|
|
|
install (
|
|
TARGETS m65
|
|
RUNTIME DESTINATION bin
|
|
LIBRARY DESTINATION lib
|
|
)
|