mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-23 20:58:55 -05:00
b8b489ba97
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@3548 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
187 lines
3.5 KiB
CMake
187 lines
3.5 KiB
CMake
cmake_minimum_required (VERSION 2.8.8)
|
|
|
|
project (libjt9 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_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
|
|
afc9.f90
|
|
analytic.f90
|
|
azdist.f90
|
|
ccf2.f90
|
|
ccf65.f90
|
|
chkhist.f90
|
|
chkss2.f90
|
|
db.f90
|
|
decode65a.f90
|
|
decode65b.f90
|
|
decode9.f90
|
|
decoder.f90
|
|
deg2grid.f90
|
|
demod64a.f90
|
|
downsam9.f90
|
|
encode232.f90
|
|
entail.f90
|
|
extract.F90
|
|
f77_wisdom.f90
|
|
fano232.f90
|
|
fchisq.f90
|
|
fchisq65.f90
|
|
fil3.f90
|
|
fil6521.f90
|
|
filbig.f90
|
|
fillcom.f90
|
|
flat2.f90
|
|
flat65.f90
|
|
four2a.f90
|
|
gen65.f90
|
|
genjt9.f90
|
|
geodist.f90
|
|
getlags.f90
|
|
getpfx1.f90
|
|
getpfx2.f90
|
|
graycode.f90
|
|
graycode65.f90
|
|
grid2deg.f90
|
|
grid2k.f90
|
|
grid2n.f90
|
|
indexx.f90
|
|
interleave63.f90
|
|
interleave9.f90
|
|
jt65a.f90
|
|
k2grid.f90
|
|
morse.f90
|
|
move.f90
|
|
n2grid.f90
|
|
nchar.f90
|
|
packbits.f90
|
|
packcall.f90
|
|
packgrid.f90
|
|
packmsg.f90
|
|
packtext.f90
|
|
pctile.f90
|
|
peakdt9.f90
|
|
pfxdump.f90
|
|
sec_midn.f90
|
|
setup65.f90
|
|
sleep_msec.f90
|
|
smo121.f90
|
|
softsym.f90
|
|
sort.f90
|
|
ssort.f90
|
|
stdmsg.f90
|
|
symspec.f90
|
|
symspec2.f90
|
|
symspec65.f90
|
|
sync9.f90
|
|
timer.f90
|
|
twkfreq.f90
|
|
twkfreq65.f90
|
|
unpackbits.f90
|
|
unpackcall.f90
|
|
unpackgrid.f90
|
|
unpackmsg.f90
|
|
unpacktext.f90
|
|
zplot9.f90
|
|
)
|
|
|
|
set (CSRCS
|
|
cutil.c
|
|
decode_rs.c
|
|
encode_rs.c
|
|
gran.c
|
|
igray.c
|
|
init_rs.c
|
|
wrapkarn.c
|
|
)
|
|
|
|
set (CXXSRCS
|
|
ipcomm.cpp
|
|
)
|
|
|
|
|
|
add_definitions (-DBIGSYM=1)
|
|
|
|
#
|
|
# build our targets
|
|
#
|
|
add_library (jt9impl STATIC ${FSRCS} ${CSRCS} ${CXXSRCS})
|
|
qt5_use_modules (jt9impl Core)
|
|
|
|
add_executable (jt9sim jt9sim.f90)
|
|
target_link_libraries (jt9sim jt9impl)
|
|
|
|
add_executable (jt9code jt9code.f90)
|
|
target_link_libraries (jt9code jt9impl)
|
|
|
|
add_executable (jt9 jt9.f90 jt9a.f90 jt9b.f90 jt9c.f90)
|
|
target_link_libraries (jt9 jt9impl ${fftw3f})
|
|
add_dependencies (jt9 fftw3f)
|
|
qt5_use_modules (jt9 Core)
|
|
|
|
install (
|
|
TARGETS jt9
|
|
RUNTIME DESTINATION bin
|
|
LIBRARY DESTINATION lib
|
|
)
|