diff --git a/external/external_build.cmake b/external/external_build.cmake index 85358a5..3512a8c 100644 --- a/external/external_build.cmake +++ b/external/external_build.cmake @@ -7,12 +7,14 @@ OPTION(SDF_SUPPORT "Set to Yes to activate support for SDF" ON) IF(ENABLE_OPENMP) IF (NOT OPENMP_FOUND) - MESSAGE(FATAL_ERROR "No known compiler option for enabling OpenMP") + MESSAGE(WARNING "No known compiler option for enabling OpenMP") + SET(ENABLE_OPENMP FALSE) ENDIF(NOT OPENMP_FOUND) ENDIF(ENABLE_OPENMP) SET(BUILD_PREFIX ${CMAKE_BINARY_DIR}/ep_build) +SET(EXT_INSTALL ${CMAKE_BINARY_DIR}/ext_install) SET(INTERNAL_FFTW OFF) OPTION(INTERNAL_GSL "Use internal GSL" ON) @@ -28,37 +30,41 @@ IF(INTERNAL_GENGETOPT) ENDIF(INTERNAL_GENGETOPT) IF(INTERNAL_HDF5) - SET(HDF5_URL "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.8/hdf5-1.8.15/src/hdf5-1.8.15.tar.gz" CACHE STRING "URL to download HDF5 from") + SET(HDF5_URL "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.5/src/hdf5-1.10.5.tar.gz" CACHE STRING "URL to download HDF5 from") mark_as_advanced(HDF5_URL) ENDIF(INTERNAL_HDF5) IF(INTERNAL_NETCDF) - SET(NETCDF_URL "http://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-4.1.3.tar.gz" CACHE STRING "URL to download NetCDF from") + SET(NETCDF_URL "https://github.com/Unidata/netcdf-c/archive/v4.7.3.tar.gz" CACHE STRING "URL to download NetCDF from") + SET(NETCDFCXX_URL "https://github.com/Unidata/netcdf-cxx4/archive/v4.3.1.tar.gz" CACHE STRING "URL to download NetCDF-CXX from") mark_as_advanced(NETCDF_URL) ENDIF(INTERNAL_NETCDF) IF(INTERNAL_BOOST) - SET(BOOST_URL "http://sourceforge.net/projects/boost/files/boost/1.56.0/boost_1_56_0.tar.gz/download" CACHE STRING "URL to download Boost from") + SET(BOOST_URL "https://dl.bintray.com/boostorg/release/1.74.0/source/boost_1_74_0.tar.gz" CACHE STRING "URL to download Boost from") mark_as_advanced(BOOST_URL) ELSE(INTERNAL_BOOST) - find_package(Boost 1.49.0 COMPONENTS format spirit phoenix python FATAL_ERROR) + find_package(Boost 1.74.0 COMPONENTS format spirit phoenix python FATAL_ERROR) ENDIF(INTERNAL_BOOST) -IF(INTERNAL_GSL) - SET(GSL_URL "ftp://ftp.gnu.org/gnu/gsl/gsl-1.15.tar.gz" CACHE STRING "URL to download GSL from ") - mark_as_advanced(GSL_URL) -ENDIF(INTERNAL_GSL) - IF(INTERNAL_QHULL) - SET(QHULL_URL "http://www.qhull.org/download/qhull-2012.1-src.tgz" CACHE STRING "URL to download QHull from") + SET(QHULL_URL "${CMAKE_SOURCE_DIR}/external/qhull-2012.1-src.tgz" CACHE STRING "URL to download QHull from") mark_as_advanced(QHULL_URL) ENDIF(INTERNAL_QHULL) +SET(HEALPIX_URL "https://sourceforge.net/projects/healpix/files/Healpix_3.50/healpix_cxx-3.50.0.tar.gz/download" CACHE STRING "URL for Healpix") +mark_as_advanced(HEALPIX_URL) + find_library(ZLIB_LIBRARY z) +find_library(DL_LIBRARY dl) SET(CONFIGURE_CPP_FLAGS "${EXTRA_CPP_FLAGS}") -SET(CONFIGURE_LD_FLAGS "${EXTRA_LD_FLAGS}") +string(REPLACE ":" ";" OUT_LIBRARY_PATH "$ENV{LIBRARY_PATH}") +foreach(P ${OUT_LIBRARY_PATH}) + SET(CONFIGURE_LD_FLAGS "${CONFIGURE_LD_FLAGS} -L${P}") +endforeach() +message(STATUS "Extra flags for configure: ${CONFIGURE_LD_FLAGS}") ################## @@ -67,7 +73,7 @@ SET(CONFIGURE_LD_FLAGS "${EXTRA_LD_FLAGS}") if (INTERNAL_GENGETOPT) SET(GENGETOPT_SOURCE_DIR ${BUILD_PREFIX}/gengetopt-prefix/src/gengetopt) - SET(GENGETOPT_BIN_DIR ${CMAKE_BINARY_DIR}/ext_build/gengetopt) + SET(GENGETOPT_BIN_DIR ${EXT_INSTALL}) ExternalProject_Add(gengetopt DOWNLOAD_DIR ${VIDE_DOWNLOAD_CACHE} PREFIX ${BUILD_PREFIX}/gengetopt-prefix @@ -78,7 +84,6 @@ if (INTERNAL_GENGETOPT) LDFLAGS=${CONFIGURE_LD_FLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} - BUILD_IN_SOURCE 1 INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install ) SET(GENGETOPT ${GENGETOPT_BIN_DIR}/bin/gengetopt CACHE FILEPATH "Path GenGetOpt binary") @@ -92,40 +97,45 @@ mark_as_advanced(GENGETOPT) ############### if (INTERNAL_HDF5) + SET(HDF5_SOURCE_DIR ${BUILD_PREFIX}/hdf5-prefix/src/hdf5) - SET(HDF5_BIN_DIR ${CMAKE_BINARY_DIR}/ext_build/hdf5) + SET(HDF5_BIN_DIR ${EXT_INSTALL}) ExternalProject_Add(hdf5 DOWNLOAD_DIR ${VIDE_DOWNLOAD_CACHE} PREFIX ${BUILD_PREFIX}/hdf5-prefix URL ${HDF5_URL} - CONFIGURE_COMMAND ${HDF5_SOURCE_DIR}/configure - --disable-shared --enable-cxx --with-pic - --prefix=${HDF5_BIN_DIR} --libdir=${HDF5_BIN_DIR}/lib - CPPFLAGS=${CONFIGURE_CPP_FLAGS} CC=${CMAKE_C_COMPILER} - CXX=${CMAKE_CXX_COMPILER} - BUILD_IN_SOURCE 1 - INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install + URL_HASH MD5=e115eeb66e944fa7814482415dd21cc4 + CMAKE_ARGS + -DCMAKE_INSTALL_PREFIX=${EXT_INSTALL} + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} + -DHDF5_BUILD_CPP_LIB=ON + -DHDF5_BUILD_TOOLS=ON + -DHDF5_BUILD_HL_LIB=ON + -DBUILD_SHARED_LIBS=ON + BUILD_BYPRODUCTS ${EXT_INSTALL}/lib/libhdf5-static.a ${EXT_INSTALL}/lib/libhdf5_cpp.a ) - SET(cosmotool_DEPS ${cosmotool_DEPS} hdf5) SET(hdf5_built hdf5) - 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_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(ENV{HDF5_ROOT} ${HDF5_BIN_DIR}) - SET(HDF5_ROOTDIR ${HDF5_BIN_DIR}) + set(HDF5_LIBRARIES ${HDF5_BIN_DIR}/lib/libhdf5.a CACHE STRING "HDF5 lib" FORCE) + set(HDF5_HL_LIBRARIES ${HDF5_BIN_DIR}/lib/libhdf5_hl.a CACHE STRING "HDF5 lib" FORCE) + set(HDF5_CXX_LIBRARIES ${HDF5_BIN_DIR}/lib/libhdf5_cpp.a CACHE STRING "HDF5 C++ lib" FORCE) + SET(HDF5_INCLUDE_DIR ${HDF5_BIN_DIR}/include CACHE STRING "HDF5 include path" FORCE) SET(CONFIGURE_LDFLAGS "${CONFIGURE_LDFLAGS} -L${HDF5_BIN_DIR}/lib") + SET(HDF5_ROOTDIR ${HDF5_BIN_DIR}) + SET(ares_DEPS ${ares_DEPS} hdf5) + mark_as_advanced(HDF5_LIBRARIES HDF5_HL_LIBRARIES HDF5_CXX_LIBRARIES HDF5_INCLUDE_DIR) else(INTERNAL_HDF5) - find_path(HDF5_INCLUDE_PATH hdf5.h) - 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) + mark_as_advanced(CLEAR HDF5_LIBRARIES HDF5_CXX_LIBRARIES HDF5_INCLUDE_DIR) + find_package(HDF5 COMPONENTS CXX) + SET(HDF5_ROOTDIR ${HDF5_BIN_DIR}) + SET(HDF5_INCLUDE_DIR ${HDF5_INCLUDE_DIRS}) endif (INTERNAL_HDF5) -SET(CONFIGURE_CPP_FLAGS "${CONFIGURE_CPP_FLAGS} -I${HDF5_INCLUDE_PATH}") + +IF(HDF5_INCLUDE_DIR) + SET(CONFIGURE_CPP_FLAGS "${CONFIGURE_CPP_FLAGS} -I${HDF5_INCLUDE_DIR}") +ENDIF() SET(CONFIGURE_LIBS_FLAGS "${DL_LIB}") -mark_as_advanced(HDF5_INCLUDE_PATH HDF5_LIBRARY HDF5_CPP_LIBRARY HDF5HL_LIBRARY HDF5HL_CPP_LIBRARY) +mark_as_advanced(HDF5_INCLUDE_PATH HDF5_LIBRARIES HDF5_HL_LIBRARIES HDF5_CXX_LIBRARIES) ############### # Build NetCDF @@ -134,10 +144,11 @@ mark_as_advanced(HDF5_INCLUDE_PATH HDF5_LIBRARY HDF5_CPP_LIBRARY HDF5HL_LIBRARY if (INTERNAL_NETCDF) SET(NETCDF_SOURCE_DIR ${BUILD_PREFIX}/netcdf-prefix/src/netcdf) - SET(NETCDF_BIN_DIR ${CMAKE_BINARY_DIR}/ext_build/netcdf) + SET(NETCDF_CXX_SOURCE_DIR ${BUILD_PREFIX}/netcdf-cxx-prefix/src/netcdf_cxx) + SET(NETCDF_BIN_DIR ${EXT_INSTALL}) SET(CONFIGURE_CPP_FLAGS "${CONFIGURE_CPP_FLAGS} -I${NETCDF_BIN_DIR}/include") - SET(CONFIGURE_LDFLAGS "${CONFIGURE_LDFLAGS} -L${NETCDF_BIN_DIR}/lib") - SET(EXTRA_NC_FLAGS CPPFLAGS=${CONFIGURE_CPP_FLAGS} LDFLAGS=${CONFIGURE_LDFLAGS} LIBS=${CONFIGURE_LIBS_FLAGS}) + SET(CONFIGURE_LD_FLAGS "${CONFIGURE_LD_FLAGS} -L${NETCDF_BIN_DIR}/lib") + SET(EXTRA_NC_FLAGS CPPFLAGS=${CONFIGURE_CPP_FLAGS} LDFLAGS=${CONFIGURE_LD_FLAGS} LIBS=${CONFIGURE_LIBS_FLAGS}) ExternalProject_Add(netcdf DOWNLOAD_DIR ${VIDE_DOWNLOAD_CACHE} DEPENDS ${hdf5_built} @@ -148,7 +159,7 @@ if (INTERNAL_NETCDF) -DPATCH_FILE=${CMAKE_SOURCE_DIR}/external/patch_netcdf -DSOURCE_PREFIX=${BUILD_PREFIX}/netcdf-prefix/src/netcdf/ncgen3 -P ${CMAKE_SOURCE_DIR}/external/check_and_apply_patch.cmake - CONFIGURE_COMMAND ${NETCDF_SOURCE_DIR}/configure + CONFIGURE_COMMAND env PATH=${EXT_INSTALL}/bin:$ENV{PATH} ${NETCDF_SOURCE_DIR}/configure --prefix=${NETCDF_BIN_DIR} --libdir=${NETCDF_BIN_DIR}/lib --enable-netcdf-4 --with-pic --disable-shared --disable-dap --disable-cdmremote --disable-rpc @@ -157,11 +168,25 @@ if (INTERNAL_NETCDF) BUILD_IN_SOURCE 1 INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install ) + + ExternalProject_Add(netcdf_cxx + DEPENDS netcdf + PREFIX ${BUILD_PREFIX}/netcdf-cxx-prefix + URL ${NETCDFCXX_URL} + CONFIGURE_COMMAND env PATH=${EXT_INSTALL}/bin:$ENV{PATH} ${NETCDF_CXX_SOURCE_DIR}/configure + --prefix=${NETCDF_BIN_DIR} --libdir=${NETCDF_BIN_DIR}/lib + --with-pic --disable-shared + --disable-examples ${EXTRA_NC_FLAGS} CC=${CMAKE_C_COMPILER} + CXX=${CMAKE_CXX_COMPILER} + BUILD_IN_SOURCE 1 + INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install + ) + SET(CONFIGURE_CPP_LDFLAGS "${CONFIGURE_LDFLAGS}") SET(EXTRA_NC_FLAGS CPPFLAGS=${CONFIGURE_CPP_FLAGS} LDFLAGS=${CONFIGURE_CPP_LDFLAGS}) - SET(cosmotool_DEPS ${cosmotool_DEPS} netcdf) + SET(cosmotool_DEPS ${cosmotool_DEPS} netcdf netcdf_cxx) SET(NETCDF_LIBRARY ${NETCDF_BIN_DIR}/lib/libnetcdf.a CACHE STRING "NetCDF lib" FORCE) - SET(NETCDFCPP_LIBRARY ${NETCDF_BIN_DIR}/lib/libnetcdf_c++.a CACHE STRING "NetCDF-C++ lib" FORCE) + SET(NETCDFCPP_LIBRARY ${NETCDF_BIN_DIR}/lib/libnetcdf_c++4.a CACHE STRING "NetCDF-C++ lib" FORCE) SET(NETCDF_INCLUDE_PATH ${NETCDF_BIN_DIR}/include CACHE STRING "NetCDF include" FORCE) SET(NETCDFCPP_INCLUDE_PATH ${NETCDF_INCLUDE_PATH} CACHE STRING "NetCDF C++ include path" FORCE) @@ -180,20 +205,51 @@ mark_as_advanced(NETCDF_LIBRARY NETCDFCPP_LIBRARY NETCDF_INCLUDE_PATH NETCDFCPP_ ################## if (INTERNAL_BOOST) - SET(BOOST_SOURCE_DIR ${BUILD_PREFIX}/boost-prefix/src/boost) SET(cosmotool_DEPS ${cosmotool_DEPS} boost) + SET(BOOST_SOURCE_DIR ${BUILD_PREFIX}/boost-prefix/src/boost) + + set(LINKER_EXTRA_FLAGS) + message(STATUS "Compiler version is ${CMAKE_CXX_COMPILER_VERSION}") + string(REGEX REPLACE "^([0-9]+\\.[0-9]+).*$" "\\1" ToolsetVer "${CMAKE_CXX_COMPILER_VERSION}") + IF(CMAKE_CXX_COMPILER_ID MATCHES "^Intel$") + SET(b2_toolset intel) + SET(COMPILER_EXTRA_FLAGS "-fPIC") + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") + SET(b2_toolset darwin) + else() + SET(b2_toolset gcc) + SET(COMPILER_EXTRA_FLAGS "-fPIC -std=gnu++14") + endif() + add_definitions("-Wno-unused-local-typedefs") + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang") + SET(b2_toolset darwin) + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") + SET(b2_toolset clang) + endif() + SET(COMPILER_EXTRA_FLAGS "${COMPILER_EXTRA_FLAGS} -I${EXT_INSTALL}/include") + SET(LINKER_EXTRA_FLAGS "${LINKER_EXTRA_FLAGS} -L${EXT_INSTALL}/lib") + + message(STATUS "Building boost with toolset ${b2_toolset}") + + SET(BOOST_LIBRARIES + ${EXT_INSTALL}/lib/libboost_exception.a + ) + ExternalProject_Add(boost DOWNLOAD_DIR ${VIDE_DOWNLOAD_CACHE} URL ${BOOST_URL} + URL_HASH SHA1=107cebeec706988639cf2932fc0ce43200de4c0a PREFIX ${BUILD_PREFIX}/boost-prefix - CONFIGURE_COMMAND - ${BOOST_SOURCE_DIR}/bootstrap.sh --prefix=${CMAKE_BINARY_DIR}/ext_build/boost + CONFIGURE_COMMAND ${CMAKE_COMMAND} -DTOOLSET=${b2_toolset} "-DCOMPILER:STRING=${CMAKE_CXX_COMPILER}" "-DCOMPILER_EXTRA_FLAGS=${COMPILER_EXTRA_FLAGS}" "-DINSTALL_PATH:STRING=${EXT_INSTALL}" "-DLINKER_EXTRA_FLAGS=${LINKER_EXTRA_FLAGS}" "-DSRC_DIR:STRING=${BOOST_SOURCE_DIR}" -P ${CMAKE_SOURCE_DIR}/external/configure_boost.cmake BUILD_IN_SOURCE 1 - BUILD_COMMAND ${BOOST_SOURCE_DIR}/b2 --with-exception --with-python - INSTALL_COMMAND echo "No install" + BUILD_COMMAND ${BOOST_SOURCE_DIR}/b2 --with-exception toolset=${b2_toolset}-cmake variant=release + INSTALL_COMMAND ${BOOST_SOURCE_DIR}/b2 install --with-exception + BUILD_BYPRODUCTS ${BOOST_LIBRARIES} ) set(Boost_INCLUDE_DIRS ${BOOST_SOURCE_DIR} CACHE STRING "Boost path" FORCE) - set(Boost_LIBRARIES ${BOOST_SOURCE_DIR}/stage/lib/libboost_python.a CACHE STRING "Boost libraries" FORCE) + set(Boost_INTERNAL_INSTALL ${EXT_INSTALL}) + ## set(Boost_LIBRARIES ${BOOST_SOURCE_DIR}/stage/lib/libboost_python.a CACHE STRING "Boost libraries" FORCE) endif (INTERNAL_BOOST) mark_as_advanced(Boost_INCLUDE_DIRS Boost_LIBRARIES) @@ -202,84 +258,88 @@ mark_as_advanced(Boost_INCLUDE_DIRS Boost_LIBRARIES) ################## IF(INTERNAL_GSL) + SET(GSL_URL "http://ftpmirror.gnu.org/gsl/gsl-2.3.tar.gz" CACHE STRING "URL to download GSL from ") + mark_as_advanced(GSL_URL) + SET(GSL_SOURCE_DIR ${BUILD_PREFIX}/gsl-prefix/src/gsl) ExternalProject_Add(gsl DOWNLOAD_DIR ${VIDE_DOWNLOAD_CACHE} URL ${GSL_URL} PREFIX ${BUILD_PREFIX}/gsl-prefix CONFIGURE_COMMAND ${GSL_SOURCE_DIR}/configure - --prefix=${CMAKE_BINARY_DIR}/ext_build/gsl --disable-shared - --with-pic --libdir=${CMAKE_BINARY_DIR}/ext_build/gsl/lib + --prefix=${EXT_INSTALL} --disable-shared + --with-pic --libdir=${EXT_INSTALL}/lib CPPFLAGS=${CONFIGURE_CPP_FLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} BUILD_IN_SOURCE 1 - BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} - INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install + BUILD_BYPRODUCTS ${EXT_INSTALL}/lib/libgsl.a ${EXT_INSTALL}/lib/libgslcblas.a ) - SET(GSL_INTERNAL_LIBS ${CMAKE_BINARY_DIR}/ext_build/gsl/lib) + SET(GSL_INTERNAL_LIBS ${EXT_INSTALL}/lib) SET(GSL_LIBRARY ${GSL_INTERNAL_LIBS}/libgsl.a CACHE STRING "GSL internal path" FORCE) - SET(GSLCBLAS_LIBRARY ${GSL_INTERNAL_LIBS}/libgslcblas.a CACHE STRING "GSL internal path" FORCE) - set(GSL_INCLUDE_PATH ${CMAKE_BINARY_DIR}/ext_build/gsl/include CACHE STRING "GSL internal path" FORCE) + SET(GSL_CBLAS_LIBRARY ${GSL_INTERNAL_LIBS}/libgslcblas.a CACHE STRING "GSL internal path" FORCE) + set(GSL_INCLUDE ${CMAKE_BINARY_DIR}/ext_install/include CACHE STRING "GSL internal path" FORCE) SET(cosmotool_DEPS ${cosmotool_DEPS} gsl) + mark_as_advanced(GSL_LIBRARY GSL_INCLUDE GSL_CBLAS_LIBRARY) ELSE(INTERNAL_GSL) - find_library(GSL_LIBRARY gsl) - find_library(GSLCBLAS_LIBRARY gslcblas) - find_path(GSL_INCLUDE_PATH NAMES gsl/gsl_blas.h) + mark_as_advanced(CLEAR GSL_LIBRARY GSL_INCLUDE GSL_CBLAS_LIBRARY) + if (NOT DEFINED GSL_LIBRARY OR NOT GSL_LIBRARY) + find_library(GSL_LIBRARY gsl) + endif() + if (NOT DEFINED GSL_CBLAS_LIBRARY OR NOT GSL_CBLAS_LIBRARY) + find_library(GSL_CBLAS_LIBRARY gslcblas) + endif() + if (NOT DEFINED GSL_INCLUDES OR NOT GSL_INCLUDES) + find_path(GSL_INCLUDE NAMES gsl/gsl_blas.h ) + endif() + if (NOT (GSL_LIBRARY OR GSL_CBLAS_LIBRARY OR GSL_INCLUDE)) + message(FATAL_ERROR "GSL has not been found") + endif() ENDIF(INTERNAL_GSL) -mark_as_advanced(GSL_LIBRARY GSLCBLAS_LIBRARY GSL_INCLUDE_PATH) +message(STATUS "GSL paths: ${GSL_LIBRARY} ${GSL_CBLAS_LIBRARY} ${GSL_INCLUDE}") + ################# # Build cfitsio ################# + ExternalProject_Add(cfitsio - DOWNLOAD_DIR ${VIDE_DOWNLOAD_CACHE} - SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/cfitsio + URL file://${CMAKE_SOURCE_DIR}/external/cfitsio-3.47.tar.gz + URL_HASH SHA1=5a25016dcaf12117d950e4278e10d39c6c7d33a5 PREFIX ${BUILD_PREFIX}/cfitsio-prefix - CONFIGURE_COMMAND - ${CMAKE_SOURCE_DIR}/external/cfitsio/configure - --prefix=${CMAKE_BINARY_DIR}/ext_build/cfitsio --libdir=${CMAKE_BINARY_DIR}/ext_build/cfitsio/lib - CPPFLAGS=${CONFIGURE_CPP_FLAGS} - CC=${CMAKE_C_COMPILER} - CXX=${CMAKE_CXX_COMPILER} - BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} + CONFIGURE_COMMAND ./configure --prefix=${EXT_INSTALL} --disable-curl --libdir=${EXT_INSTALL}/lib CPPFLAGS=${CONFIGURE_CPP_FLAGS} CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} BUILD_IN_SOURCE 1 - INSTALL_COMMAND ${CMAKE_MAKE_PROGRAM} install + BUILD_BYPRODUCTS ${EXT_INSTALL}/lib/libcfitsio.a ) -SET(CFITSIO_PREFIX ${CMAKE_BINARY_DIR}/ext_build/cfitsio) -SET(CFITSIO_LIBRARY ${CFITSIO_PREFIX}/lib/libcfitsio.a) -SET(CFITSIO_INCLUDE_PATH ${CFITSIO_PREFIX}/include) + +SET(CFITSIO_LIBRARY ${EXT_INSTALL}/lib/libcfitsio.a) +SET(CFITSIO_INCLUDE_PATH ${EXT_INSTALL}/include) ################# # Build Healpix ################# +SET(HEALPIX_BUILD ${BUILD_PREFIX}/healpix-prefix/src/healpix-build) +SET(HEALPIX_DIR ${BUILD_PREFIX}/healpix-prefix/src/healpix) ExternalProject_Add(healpix - DOWNLOAD_DIR ${VIDE_DOWNLOAD_CACHE} - DEPENDS cfitsio - PREFIX ${BUILD_PREFIX}/healpix-prefix - SOURCE_DIR ${CMAKE_SOURCE_DIR}/external/healpix - CONFIGURE_COMMAND echo No configure - BUILD_COMMAND ${CMAKE_MAKE_PROGRAM} - 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 - 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 + DOWNLOAD_DIR ${VIDE_DOWNLOAD_CACHE} + DEPENDS cfitsio + PREFIX ${BUILD_PREFIX}/healpix-prefix + URL ${HEALPIX_URL} + URL_HASH SHA1=c8a537e743f760dfa453cad246065d37f72fc0cb + CONFIGURE_COMMAND ${CMAKE_COMMAND} + -DHEALPIX_CC=${CMAKE_C_COMPILER} + -DHEALPIX_CXX=${CMAKE_CXX_COMPILER} + -DHEALPIX_DIR:STRING=${HEALPIX_DIR} + -DHEALPIX_INSTALL:STRING=${EXT_INSTALL} + -DCFITSIO_LIB:STRING=${CFITSIO_LIBRARY} + -P ${CMAKE_SOURCE_DIR}/external/configure_healpix.cmake ) -set(HPIX_LIBPATH ${CMAKE_BINARY_DIR}/ext_build/healpix/lib) +set(HPIX_LIBPATH ${EXT_INSTALL}/lib) set(HEALPIX_LIBRARY ${HPIX_LIBPATH}/libhealpix_cxx.a) -set(FFTPACK_LIBRARY ${HPIX_LIBPATH}/libfftpack.a) -set(CXXSUPPORT_LIBRARY ${HPIX_LIBPATH}/libcxxsupport.a) -set(PSHT_LIBRARY ${HPIX_LIBPATH}/libpsht.a) -set(CUTILS_LIBRARY ${HPIX_LIBPATH}/libc_utils.a) -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(NETCDF_LIBRARIES ${NETCDFCPP_LIBRARY} ${NETCDF_LIBRARY} ${HDF5HL_LIBRARY} ${HDF5_LIBRARY} ${ZLIB_LIBRARY}) +SET(HEALPIX_INCLUDE_PATH ${EXT_INSTALL}/include/healpix_cxx) +SET(HEALPIX_LIBRARIES ${HEALPIX_LIBRARY} ${CFITSIO_LIBRARY} ) +set(GSL_LIBRARIES ${GSL_LIBRARY} ${GSL_CBLAS_LIBRARY}) +SET(NETCDF_LIBRARIES ${NETCDFCPP_LIBRARY} ${NETCDF_LIBRARY} ${HDF5_HL_LIBRARIES} ${HDF5_LIBRARIES} ${ZLIB_LIBRARY}) ############### # Build QHull @@ -345,3 +405,5 @@ include_directories(${CMAKE_BINARY_DIR}/src ${HDF5_INCLUDE_PATH} ${Boost_INCLUDE_DIRS} ${QHULL_INCLUDE_PATH} ${LIBSDF_INCLUDE_PATH}) + +message(STATUS "Boost_INTERNAL_INSTALL=${Boost_INTERNAL_INSTALL}") diff --git a/external/qhull-2012.1-src.tgz b/external/qhull-2012.1-src.tgz new file mode 100644 index 0000000..a47249b Binary files /dev/null and b/external/qhull-2012.1-src.tgz differ