diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -303,25 +303,13 @@ ### FITS (optional) ############################### IF (ENABLE_FITS) -FIND_LIBRARY (CFITSIO_LIBRARY cfitsio - PATHS - /usr/lib - /usr/local/lib - $ENV{CFITSIO} -) -FIND_PATH (CFITSIO_INCLUDE_DIR fitsio.h - /usr/include - /usr/include/cfitsio - /usr/local/include - $ENV{CFITSIO} -) -IF (CFITSIO_LIBRARY AND CFITSIO_INCLUDE_DIR) - SET (CFITSIO_FOUND TRUE) -ELSE () - SET (CFITSIO_FOUND FALSE) -ENDIF () +FIND_PACKAGE (CFitsio) +SET_PACKAGE_PROPERTIES (CFitsio PROPERTIES + DESCRIPTION "FITS IO Library" + URL "http://heasarc.gsfc.nasa.gov/fitsio/fitsio.html" + PURPOSE "Support for the FITS (Flexible Image Transport System) data format.") IF (CFITSIO_FOUND) - MESSAGE (STATUS "Found Flexible Image Transport System Data Format (FITS) Library: ${CFITSIO_INCLUDE_DIR} ${CFITSIO_LIBRARY}") + MESSAGE (STATUS "Found Flexible Image Transport System Data Format (FITS) Library: ${CFITSIO_INCLUDE_DIR} ${CFITSIO_LIBRARIES}") add_definitions (-DHAVE_FITS) include_directories (${CFITSIO_INCLUDE_DIR}) ELSE () diff --git a/cmake/FindCFitsio.cmake b/cmake/FindCFitsio.cmake new file mode 100644 --- /dev/null +++ b/cmake/FindCFitsio.cmake @@ -0,0 +1,81 @@ +# - Try to find CFITSIO +# Once done this will define +# +# CFITSIO_FOUND - system has CFITSIO +# CFITSIO_INCLUDE_DIR - the CFITSIO include directory +# CFITSIO_LIBRARIES - Link these to use CFITSIO + +# Copyright (c) 2006, Jasem Mutlaq +# Based on FindLibfacile by Carsten Niehaus, +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +if (CFITSIO_INCLUDE_DIR AND CFITSIO_LIBRARIES) + + # in cache already + set(CFITSIO_FOUND TRUE) + message(STATUS "Found CFITSIO: ${CFITSIO_LIBRARIES}") + + +else (CFITSIO_INCLUDE_DIR AND CFITSIO_LIBRARIES) + + if (NOT WIN32) + find_package(PkgConfig) + if (PKG_CONFIG_FOUND) + pkg_check_modules(PC_CFITSIO cfitsio) + endif (PKG_CONFIG_FOUND) + endif (NOT WIN32) + + find_path(CFITSIO_INCLUDE_DIR fitsio.h + ${PC_CFITSIO_INCLUDE_DIRS} + ${_obIncDir} + ${GNUWIN32_DIR}/include + ) + + find_library(CFITSIO_LIBRARIES NAMES cfitsio libcfitsio + PATHS + ${PC_CFITSIO_LIBRARY_DIRS} + ${_obIncDir} + ${GNUWIN32_DIR}/include + ) + + if(CFITSIO_INCLUDE_DIR AND CFITSIO_LIBRARIES) + set(CFITSIO_FOUND TRUE) + else (CFITSIO_INCLUDE_DIR AND CFITSIO_LIBRARIES) + set(CFITSIO_FOUND FALSE) + endif(CFITSIO_INCLUDE_DIR AND CFITSIO_LIBRARIES) + + if (CFITSIO_FOUND) + if (NOT CFitsio_FIND_QUIETLY) + message(STATUS "Found CFITSIO: ${CFITSIO_LIBRARIES}") + endif (NOT CFitsio_FIND_QUIETLY) + else (CFITSIO_FOUND) + if (CFitsio_FIND_REQUIRED) + message(FATAL_ERROR "CFITSIO not found. Please install libcfitsio-dev and try again.") + endif (CFitsio_FIND_REQUIRED) + endif (CFITSIO_FOUND) + + mark_as_advanced(CFITSIO_INCLUDE_DIR CFITSIO_LIBRARIES) + +endif (CFITSIO_INCLUDE_DIR AND CFITSIO_LIBRARIES) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -408,7 +408,7 @@ target_link_libraries( labplot2lib ${NETCDF_LIBRARY} ) ENDIF () IF (CFITSIO_FOUND) - target_link_libraries( labplot2lib ${CFITSIO_LIBRARY} ) + target_link_libraries( labplot2lib ${CFITSIO_LIBRARIES} ) ENDIF () IF (LIBCERF_FOUND) target_link_libraries( labplot2lib ${LIBCERF_LIBRARY} ) diff --git a/tests/import_export/ASCII/CMakeLists.txt b/tests/import_export/ASCII/CMakeLists.txt --- a/tests/import_export/ASCII/CMakeLists.txt +++ b/tests/import_export/ASCII/CMakeLists.txt @@ -24,7 +24,7 @@ target_link_libraries(asciifiltertest ${NETCDF_LIBRARY} ) ENDIF () IF (CFITSIO_FOUND) - target_link_libraries(asciifiltertest ${CFITSIO_LIBRARY} ) + target_link_libraries(asciifiltertest ${CFITSIO_LIBRARIES} ) ENDIF () IF (USE_LIBORIGIN) target_link_libraries(asciifiltertest liborigin-static ) diff --git a/tests/import_export/JSON/CMakeLists.txt b/tests/import_export/JSON/CMakeLists.txt --- a/tests/import_export/JSON/CMakeLists.txt +++ b/tests/import_export/JSON/CMakeLists.txt @@ -24,7 +24,7 @@ target_link_libraries(jsonfiltertest ${NETCDF_LIBRARY} ) ENDIF () IF (CFITSIO_FOUND) - target_link_libraries(jsonfiltertest ${CFITSIO_LIBRARY} ) + target_link_libraries(jsonfiltertest ${CFITSIO_LIBRARIES} ) ENDIF () IF (USE_LIBORIGIN) target_link_libraries(jsonfiltertest liborigin-static ) diff --git a/tests/import_export/MQTT/CMakeLists.txt b/tests/import_export/MQTT/CMakeLists.txt --- a/tests/import_export/MQTT/CMakeLists.txt +++ b/tests/import_export/MQTT/CMakeLists.txt @@ -26,7 +26,7 @@ target_link_libraries(mqttunittest ${NETCDF_LIBRARY} ) ENDIF () IF (CFITSIO_FOUND) - target_link_libraries(mqttunittest ${CFITSIO_LIBRARY} ) + target_link_libraries(mqttunittest ${CFITSIO_LIBRARIES} ) ENDIF () IF (USE_LIBORIGIN) target_link_libraries(mqttunittest liborigin-static ) diff --git a/tests/import_export/project/CMakeLists.txt b/tests/import_export/project/CMakeLists.txt --- a/tests/import_export/project/CMakeLists.txt +++ b/tests/import_export/project/CMakeLists.txt @@ -24,7 +24,7 @@ target_link_libraries(projectimporttest ${NETCDF_LIBRARY} ) ENDIF () IF (CFITSIO_FOUND) - target_link_libraries(projectimporttest ${CFITSIO_LIBRARY} ) + target_link_libraries(projectimporttest ${CFITSIO_LIBRARIES} ) ENDIF () IF (USE_LIBORIGIN) target_link_libraries(projectimporttest liborigin-static )