Files
SimCore/libs/geographiclib/develop/CMakeLists.txt

96 lines
3.4 KiB
CMake

# Build the test programs...
# Use fftw for AreaEst? Because CMake support for installed fftw
# package is broken, using FFTW required building local copies of the
# library (a separate cmake configure and build for each precision). So
# default to not using fftw and fall back on kissfftw. For these
# reasons + the overall complexity of adding a dependency to
# GeographicLib, the DST class uses kissfft (despite it being somewhat
# slower that fftw).
set (USE_FFTW OFF)
if (USE_FFTW)
if (GEOGRAPHICLIB_PRECISION EQUAL 1)
set (FFTW_PACKAGE FFTW3f)
elseif (GEOGRAPHICLIB_PRECISION EQUAL 2)
set (FFTW_PACKAGE FFTW3)
elseif (GEOGRAPHICLIB_PRECISION EQUAL 3)
set (FFTW_PACKAGE FFTW3l)
elseif (GEOGRAPHICLIB_PRECISION EQUAL 4)
set (FFTW_PACKAGE FFTW3q)
else () # GEOGRAPHICLIB_PRECISION EQUAL 5
set (FFTW_PACKAGE OFF)
endif ()
if (FFTW_PACKAGE)
find_package (${FFTW_PACKAGE})
if (${FFTW_PACKAGE}_FOUND)
set (FFTW_FOUND ON)
set (FFTW_LIBRARIES ${${FFTW_PACKAGE}_LIBRARIES})
set (FFTW_LIBRARY_DIRS ${${FFTW_PACKAGE}_LIBRARY_DIRS})
set (FFTW_INCLUDE_DIRS ${${FFTW_PACKAGE}_INCLUDE_DIRS})
endif ()
endif ()
endif ()
set (DEVELPROGRAMS
ProjTest TMTest GeodTest ConicTest NaNTester HarmTest EllipticTest intersect
ClosestApproach M12zero GeodShort NormalTest)
if (Boost_FOUND AND NOT GEOGRAPHICLIB_PRECISION EQUAL 4)
# Skip LevelEllipsoid for quad precision because of compiler errors
# with boost 1.69 and g++ 9.2.1 (Fedora 30). Problem reported as
# https://github.com/boostorg/odeint/issues/40
set (DEVELPROGRAMS ${DEVELPROGRAMS} LevelEllipsoid)
include_directories ("${Boost_INCLUDE_DIRS}")
if (APPLE)
# Suppress warnings from Boost library
# warnings with Mac OS X and boost 1.63
# no warnings with Linux and boost 1.60
set (CMAKE_CXX_FLAGS
"${CMAKE_CXX_FLAGS} -Wno-unused-parameter -Wno-unused-variable -Wno-unused-local-typedef")
endif ()
endif ()
# Loop over all the tools, specifying the source and library.
add_custom_target (develprograms)
foreach (DEVELPROGRAM ${DEVELPROGRAMS})
add_executable (${DEVELPROGRAM} EXCLUDE_FROM_ALL ${DEVELPROGRAM}.cpp)
add_dependencies (develprograms ${DEVELPROGRAM})
target_link_libraries (${DEVELPROGRAM} ${PROJECT_LIBRARIES}
${HIGHPREC_LIBRARIES})
endforeach ()
add_executable (GeodExact EXCLUDE_FROM_ALL GeodExact.cpp
Geodesic30.cpp GeodesicLine30.cpp
Geodesic30.hpp GeodesicLine30.hpp)
add_dependencies (develprograms GeodExact)
target_link_libraries (GeodExact ${PROJECT_LIBRARIES} ${HIGHPREC_LIBRARIES})
set (DEVELPROGRAMS ${DEVELPROGRAMS} GeodExact)
add_executable (AreaEst EXCLUDE_FROM_ALL AreaEst.cpp)
add_dependencies (develprograms AreaEst)
target_link_libraries (AreaEst ${PROJECT_LIBRARIES} ${FFTW_LIBRARIES}
${HIGHPREC_LIBRARIES})
if (FFTW_FOUND)
target_compile_definitions (AreaEst PUBLIC HAVE_FFTW=1)
target_include_directories (AreaEst PUBLIC ${FFTW_INCLUDE_DIRS})
endif ()
set (DEVELPROGRAMS ${DEVELPROGRAMS} AreaEst)
add_executable (reformat EXCLUDE_FROM_ALL reformat.cpp)
add_dependencies (develprograms reformat)
set (DEVELPROGRAMS ${DEVELPROGRAMS} reformat)
if (MSVC OR CMAKE_CONFIGURATION_TYPES)
# Add _d suffix for your debug versions of the tools
set_target_properties (${DEVELPROGRAMS} PROPERTIES
DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX})
endif ()
# Put all the programs into a folder in the IDE
set_property (TARGET develprograms ${DEVELPROGRAMS} PROPERTY FOLDER develop)
# Don't install develop programs