Removed FindHealpix as we have now an internal healpix package. Added gengetopt as a dependency to build. Fixed library broken linkage.

This commit is contained in:
Guilhem Lavaux 2012-10-30 14:38:41 -04:00
parent 51f6798f88
commit 2e9a820d34
3 changed files with 64 additions and 43 deletions

View file

@ -1,8 +1,29 @@
include(FindOpenMP)
OPTION(ENABLE_OPENMP "Set to Yes if Healpix and/or you need openMP" OFF)
IF(ENABLE_OPENMP)
IF (NOT OPENMP_FOUND)
MESSAGE(ERROR "No known compiler option for enabling OpenMP")
ENDIF(NOT OPENMP_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKED_FLAGS} ${OpenMP_C_FLAGS}")
ENDIF(ENABLE_OPENMP)
SET(INTERNAL_FFTW OFF) SET(INTERNAL_FFTW OFF)
SET(INTERNAL_GSL ON) SET(INTERNAL_GSL ON)
SET(INTERNAL_BOOST ON) SET(INTERNAL_BOOST ON)
SET(INTERNAL_NETCDF ON) SET(INTERNAL_NETCDF ON)
SET(INTERNAL_HDF5 ON) SET(INTERNAL_HDF5 ON)
SET(INTERNAL_GENGETOPT ON)
IF(INTERNAL_GENGETOPT)
SET(GENGETOPT_URL "ftp://ftp.gnu.org/gnu/gengetopt/gengetopt-2.22.5.tar.gz" CACHE STRING "URL to download gengetopt from")
ENDIF(INTERNAL_GENGETOPT)
IF(INTERNAL_HDF5) IF(INTERNAL_HDF5)
SET(HDF5_URL "http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.9.tar.gz" CACHE STRING "URL to download HDF5 from") SET(HDF5_URL "http://www.hdfgroup.org/ftp/HDF5/current/src/hdf5-1.8.9.tar.gz" CACHE STRING "URL to download HDF5 from")
@ -28,6 +49,30 @@ find_program(GENGETOPT gengetopt)
SET(CONFIGURE_CPP_FLAGS "${EXTRA_CPP_FLAGS}") SET(CONFIGURE_CPP_FLAGS "${EXTRA_CPP_FLAGS}")
SET(CONFIGURE_LD_FLAGS "${EXTRA_LD_FLAGS}") SET(CONFIGURE_LD_FLAGS "${EXTRA_LD_FLAGS}")
##################
# Build gengetopt
##################
if (INTERNAL_GENGETOPT)
SET(GENGETOPT_SOURCE_DIR ${CMAKE_BINARY_DIR}/gengetopt-prefix/src/gengetopt)
SET(GENGETOPT_BIN_DIR ${CMAKE_BINARY_DIR}/ext_build/gengetopt)
ExternalProject_Add(gengetopt
URL ${GENGETOPT_URL}
CONFIGURE_COMMAND ${GENGETOPT_SOURCE_DIR}/configure
--prefix=${GENGETOPT_BIN_DIR}
CPPFLAGS=${CONFIGURE_CPP_FLAGS}
LDFLAGS=${CONFIGURE_LD_FLAGS}
CC=${CMAKE_C_COMPILER}
CXX=${CMAKE_CXX_COMPILER}
BUILD_IN_SOURCE 1
INSTALL_COMMAND make install
)
SET(GENGETOPT ${GENGETOPT_BIN_DIR}/bin/gengetopt)
else(INTERNAL_GENGETOPT)
find_program(GENGETOPT gengetopt)
endif(INTERNAL_GENGETOPT)
############### ###############
# Build HDF5 # Build HDF5
############### ###############
@ -44,7 +89,9 @@ if (INTERNAL_HDF5)
SET(cosmotool_DEPS ${cosmotool_DEPS} hdf5) SET(cosmotool_DEPS ${cosmotool_DEPS} hdf5)
SET(hdf5_built hdf5) SET(hdf5_built hdf5)
set(HDF5_LIBRARY ${HDF5_BIN_DIR}/lib/libhdf5.a CACHE STRING "HDF5 lib" FORCE) set(HDF5_LIBRARY ${HDF5_BIN_DIR}/lib/libhdf5.a CACHE STRING "HDF5 lib" FORCE)
set(HDF5_CPP_LIBRARY ${HDF5_BIN_DIR}/lib/libhdf5_cpp.a CACHE STRING "HDF5 C++ lib" FORCE)
set(HDF5HL_LIBRARY ${HDF5_BIN_DIR}/lib/libhdf5_hl.a CACHE STRING "HDF5-HL lib" FORCE) set(HDF5HL_LIBRARY ${HDF5_BIN_DIR}/lib/libhdf5_hl.a CACHE STRING "HDF5-HL lib" FORCE)
set(HDF5HL_CPP_LIBRARY ${HDF5_BIN_DIR}/lib/libhdf5_hl_cpp.a CACHE STRING "HDF5-HL C++ lib" FORCE)
SET(HDF5_INCLUDE_PATH ${HDF5_BIN_DIR}/include CACHE STRING "HDF5 include path" FORCE) SET(HDF5_INCLUDE_PATH ${HDF5_BIN_DIR}/include CACHE STRING "HDF5 include path" FORCE)
SET(ENV{HDF5_ROOT} ${HDF5_BIN_DIR}) SET(ENV{HDF5_ROOT} ${HDF5_BIN_DIR})
SET(HDF5_ROOTDIR ${HDF5_BIN_DIR}) SET(HDF5_ROOTDIR ${HDF5_BIN_DIR})
@ -52,6 +99,8 @@ if (INTERNAL_HDF5)
else(INTERNAL_HDF5) else(INTERNAL_HDF5)
find_path(HDF5_INCLUDE_PATH hdf5.h) find_path(HDF5_INCLUDE_PATH hdf5.h)
find_library(HDF5_LIBRARY hdf5) find_library(HDF5_LIBRARY hdf5)
find_library(HDF5_CPP_LIBRARY hdf5_cpp)
find_library(HDF5HL_CPP_LIBRARY hdf5_hl_cpp)
find_library(HDF5HL_LIBRARY hdf5_hl) find_library(HDF5HL_LIBRARY hdf5_hl)
endif (INTERNAL_HDF5) endif (INTERNAL_HDF5)
SET(CONFIGURE_CPP_FLAGS "${CONFIGURE_CPP_FLAGS} -I${HDF5_INCLUDE_PATH}") SET(CONFIGURE_CPP_FLAGS "${CONFIGURE_CPP_FLAGS} -I${HDF5_INCLUDE_PATH}")
@ -164,7 +213,14 @@ ExternalProject_Add(healpix
DEPENDS cfitsio DEPENDS cfitsio
SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/healpix SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/healpix
CONFIGURE_COMMAND echo No configure CONFIGURE_COMMAND echo No configure
BUILD_COMMAND make HEALPIX_TARGET=sampler HEALPIX_CC=${CMAKE_C_COMPILER} HEALPIX_CXX=${CMAKE_CXX_COMPILER} HEALPIX_BASE_PATH=${CMAKE_BINARY_DIR} OMP_SUPPORT=${ENABLE_OPENMP} EXTRA_CPPFLAGS=${CONFIGURE_CPP_FLAGS} OMP_FLAGS=${OpenMP_C_FLAGS} BUILD_COMMAND make
HEALPIX_TARGET=sampler
HEALPIX_CC=${CMAKE_C_COMPILER}
HEALPIX_CXX=${CMAKE_CXX_COMPILER}
HEALPIX_BASE_PATH=${CMAKE_BINARY_DIR}
OMP_SUPPORT=${ENABLE_OPENMP}
EXTRA_CPPFLAGS=${CONFIGURE_CPP_FLAGS}
OMP_FLAGS=${OpenMP_C_FLAGS}
BUILD_IN_SOURCE 1 BUILD_IN_SOURCE 1
INSTALL_COMMAND ${CMAKE_COMMAND} -DHEALPIX_DIR:STRING=${CMAKE_SOURCE_DIR}/external/healpix -DDEST_DIR:STRING=${CMAKE_BINARY_DIR}/ext_build/healpix -P ${CMAKE_SOURCE_DIR}/external/install_healpix.cmake INSTALL_COMMAND ${CMAKE_COMMAND} -DHEALPIX_DIR:STRING=${CMAKE_SOURCE_DIR}/external/healpix -DDEST_DIR:STRING=${CMAKE_BINARY_DIR}/ext_build/healpix -P ${CMAKE_SOURCE_DIR}/external/install_healpix.cmake
) )
@ -176,6 +232,7 @@ set(PSHT_LIBRARY ${HPIX_LIBPATH}/libpsht.a)
set(CUTILS_LIBRARY ${HPIX_LIBPATH}/libc_utils.a) set(CUTILS_LIBRARY ${HPIX_LIBPATH}/libc_utils.a)
SET(HEALPIX_INCLUDE_PATH ${CMAKE_BINARY_DIR}/ext_build/healpix/include) SET(HEALPIX_INCLUDE_PATH ${CMAKE_BINARY_DIR}/ext_build/healpix/include)
SET(HEALPIX_LIBRARIES ${HEALPIX_LIBRARY} ${FFTPACK_LIBRARY} ${CXXSUPPORT_LIBRARY} ${PSHT_LIBRARY} ${CUTILS_LIBRARY} ${CFITSIO_LIBRARY} )
set(GSL_LIBRARIES ${GSL_LIBRARY} ${GSLCBLAS_LIBRARY}) set(GSL_LIBRARIES ${GSL_LIBRARY} ${GSLCBLAS_LIBRARY})
SET(NETCDF_LIBRARIES ${NETCDFCPP_LIBRARY} ${NETCDF_LIBRARY} ${HDF5HL_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARY}) SET(NETCDF_LIBRARIES ${NETCDFCPP_LIBRARY} ${NETCDF_LIBRARY} ${HDF5HL_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARY})

6
external/install_healpix.cmake vendored Normal file
View file

@ -0,0 +1,6 @@
execute_process(COMMAND ${MAKE} -C ${HEALPIX_DIR} hdrcopy)
set(bdir ${HEALPIX_DIR}/sampler)
file(MAKE_DIRECTORY ${DEST_DIR})
file(COPY ${bdir}/bin ${bdir}/lib ${bdir}/include DESTINATION ${DEST_DIR} NO_SOURCE_PERMISSIONS)

View file

@ -1,42 +0,0 @@
OPTION(ENABLE_OPENMP "Set to Yes if Healpix and/or you need openMP" OFF)
#
# OpenMP handling
#
INCLUDE(FindOpenMP)
IF(ENABLE_OPENMP)
IF (NOT OPENMP_FOUND)
MESSAGE(ERROR "No known compiler option for enabling OpenMP")
ENDIF(NOT OPENMP_FOUND)
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKED_FLAGS} ${OpenMP_C_FLAGS}")
ENDIF(ENABLE_OPENMP)
SET(HEALPIX_BASE_PATH $ENV{HEALPIX})
SET(HEALPIX_TARGET $ENV{HEALPIX_TARGET})
SET(HEALPIX_PATH ${HEALPIX_BASE_PATH}/src/cxx/${HEALPIX_TARGET})
SET(HEALPIX_HINT_INCLUDE ${HEALPIX_PATH}/include)
SET(HEALPIX_HINT_LIB ${HEALPIX_PATH}/lib)
find_path(HEALPIX_INCLUDE_PATH NAMES healpix_map.h PATHS ${HEALPIX_HINT_INCLUDE})
find_library(HEALPIX_LIBRARY healpix_cxx PATHS ${HEALPIX_HINT_LIB})
find_library(FFTPACK_LIBRARY fftpack PATHS ${HEALPIX_HINT_LIB})
find_library(CFITSIO_LIBRARY cfitsio PATHS ${HEALPIX_HINT_LIB})
find_library(CXXSUPPORT_LIBRARY cxxsupport PATHS ${HEALPIX_HINT_LIB})
find_library(PSHT_LIBRARY psht PATHS ${HEALPIX_HINT_LIB})
find_library(CUTILS_LIBRARY c_utils PATHS ${HEALPIX_HINT_LIB})
SET(HEALPIX_LIBRARIES
${HEALPIX_LIBRARY} ${EXTRA_HEALPIX_LIBRARIES}
${FFTPACK_LIBRARY} ${CXXSUPPORT_LIBRARY} ${CFITSIO_LIBRARY}
)