Update cmake files. May need to raise the minimum to 2.6.4.

git-svn-id: https://subversion.assembla.com/svn/qmcdev/trunk@4508 e5b18d87-469d-4833-9cc0-8cdfa06e9491
This commit is contained in:
Jeongnim Kim 2009-12-23 15:49:53 +00:00
parent 0af01e47f7
commit b1d591c64b
10 changed files with 477 additions and 532 deletions

View File

@ -2,32 +2,32 @@
# this module look for boost (http://www.boost.org) support
# it will define the following values
#
# BOOST_INCLUDE_DIR = where boost/boost.h can be found
# Boost_INCLUDE_DIR = where boost/boost.h can be found
# Boost_FOUND = boolean
#
# May want to define this but seldom required
# BOOST_LIBRARY = where boost library can be found (reserved)
# BOOST_LIBRARIES = where boost library can be found (reserved)
#
IF(Boost_INCLUDE_DIRS)
FIND_PATH(BOOST_INCLUDE_DIR boost/config.hpp ${Boost_INCLUDE_DIRS})
ELSE(Boost_INCLUDE_DIRS)
SET(TRIAL_PATHS
${CMAKE_FIND_ROOT_PATH}
$ENV{BOOST_HOME}
/usr/apps/include
/usr/include
/opt/include
/usr/local/include
)
FIND_PATH(BOOST_INCLUDE_DIR boost/config.hpp ${TRIAL_PATHS})
# SET(TRIAL_PATHS
# ${CMAKE_FIND_ROOT_PATH}
# $ENV{BOOST_HOME}
# /usr/apps/include
# /usr/include
# /opt/include
# /usr/local/include
# )
FIND_PATH(Boost_INCLUDE_DIR boost/config.hpp ${QMC_INCLUDE_PATHS})
ENDIF(Boost_INCLUDE_DIRS)
IF(BOOST_INCLUDE_DIR)
SET(FOUND_BOOST 1 CACHE BOOL "Found boost library")
ELSE(BOOST_INCLUDE_DIR)
SET(FOUND_BOOST 0 CACHE BOOL "Found boost library")
ENDIF(BOOST_INCLUDE_DIR)
SET(Boost_FOUND false)
if(Boost_INCLUDE_DIR)
SET(Boost_FOUND true)
endif(Boost_INCLUDE_DIR)
MARK_AS_ADVANCED(
BOOST_INCLUDE_DIR
FOUND_BOOST
Boost_INCLUDE_DIR
Boost_FOUND
)

View File

@ -3,55 +3,41 @@
# it will define the following values
#
# EINSPLINE_INCLUDE_DIR = where einspline/config.h can be found
# EINSPLINE_LIBRARY = the library to link against
# FOUND_EINSPLINE = set to true after finding the library
# EINSPLINE_LIBRARIES = the library to link against
# EINSPLINE_FOUND = set to true after finding the pre-compiled library
#
SET(TRIAL_LIBRARY_PATHS
$ENV{EINSPLINE_HOME}/lib
/usr/apps/lib
/usr/lib
/usr/local/lib
/opt/lib
/sw/lib
)
# EINSPLINE_DIR = directory where the source files are located
#
#FIND_LIBRARY(EINSPLINE_LIBRARY einspline ${TRIAL_LIBRARY_PATHS})
#FIND_PATH(EINSPLINE_INCLUDE_DIR einspline/bspline.h ${TRIAL_INCLUDE_PATHS} )
FIND_LIBRARY(EINSPLINE_LIBRARIES einspline ${QMC_LIBRARY_PATHS})
FIND_PATH(EINSPLINE_INCLUDE_DIR einspline/bspline.h ${QMC_INCLUDE_PATHS})
SET(TRIAL_INCLUDE_PATHS
$ENV{EINSPLINE_HOME}/include
/usr/apps/include
/usr/include
/opt/include
/usr/local/include
/sw/include
)
SET(EINSPLINE_FOUND FALSE)
FIND_LIBRARY(EINSPLINE_LIBRARY einspline ${TRIAL_LIBRARY_PATHS})
FIND_PATH(EINSPLINE_INCLUDE_DIR einspline/bspline.h ${TRIAL_INCLUDE_PATHS} )
IF(EINSPLINE_INCLUDE_DIR AND EINSPLINE_LIBRARY)
SET(FOUND_EINSPLINE 1 CACHE BOOL "Found einspline library")
SET(HAVE_EINSPLINE 1)
IF(EINSPLINE_INCLUDE_DIR AND EINSPLINE_LIBRARIES)
SET(EINSPLINE_FOUND TRUE)
SET(HAVE_EINSPLINE_EXT 1)
MARK_AS_ADVANCED(
EINSPLINE_INCLUDE_DIR
EINSPLINE_LIBRARY
FOUND_EINSPLINE
)
ELSE(EINSPLINE_INCLUDE_DIR AND EINSPLINE_LIBRARY)
EINSPLINE_INCLUDE_DIR
EINSPLINE_LIBRARIES
EINSPLINE_FOUND
)
ELSE()
MESSAGE("-- Cannot find einspline library. Try to compile with the sources")
FIND_PATH(EINSPLINE_SRC_DIR src/bspline.h ${EINSPLINE_HOME} )
FIND_PATH(EINSPLINE_SRC_DIR src/bspline.h ${EINSPLINE_HOME} $ENV{EINSPLINE_HOME})
IF(EINSPLINE_SRC_DIR)
SET(FOUND_EINSPLINE 1 CACHE BOOL "Found einspline pre-buidlt library")
SET(HAVE_EINSPLINE 1)
SET(EINSPLINE_FOUND TRUE)
SET(EINSPLINE_DIR ${EINSPLINE_SRC_DIR})
SET(EINSPLINE_INCLUDE_DIR ${EINSPLINE_SRC_DIR})
MARK_AS_ADVANCED(
EINSPLINE_INCLUDE_DIR
EINSPLINE_DIR
FOUND_EINSPLINE
EINSPLINE_FOUND
)
ELSE(EINSPLINE_SRC_DIR)
SET(FOUND_EINSPLINE 0 CACHE BOOL "Cannot find einspline source or library.")
MESSAGE("-- EINSPLINE_HOME is not found. Disable Einspline library.")
MESSAGE("-- Download einspline library to utilize an optimized 3D-bspline library.")
ENDIF(EINSPLINE_SRC_DIR)
ENDIF(EINSPLINE_INCLUDE_DIR AND EINSPLINE_LIBRARY)
ENDIF()

View File

@ -1,45 +1,43 @@
#
# this module look for boost (http://www.boost.org) support
# it will define the following values
#
# BOOST_INCLUDE_DIR = where boost/boost.h can be found
#
# May want to define this but seldom required
# BOOST_LIBRARY = where boost library can be found (reserved)
#
# FFTW_INCLUDE_DIR = fftw3.h
# FFTW_LIBRARIES = libfftw3.a
# FFTW_FOUND = true if FFTW3 is found
IF(FFTW_INCLUDE_DIRS)
FIND_PATH(FFTW_INCLUDE_DIR fftw3.h ${FFTW_INCLUDE_DIRS})
FIND_LIBRARY(FFTW_LIBRARY fftw3 ${FFTW_LIBRARY_DIRS})
ELSE(FFTW_INCLUDE_DIRS)
SET(TRIAL_PATHS
$ENV{FFTW_HOME}/include
/usr/include
/usr/local/include
/opt/include
/usr/apps/include
)
FIND_PATH(FFTW_INCLUDE_DIR fftw3.h ${TRIAL_PATHS})
SET(TRIAL_LIBRARY_PATHS
$ENV{FFTW_HOME}/lib
/usr/lib
/usr/local/lib
/opt/lib
/sw/lib
)
FIND_LIBRARY(FFTW_LIBRARY fftw3 ${TRIAL_LIBRARY_PATHS})
# SET(TRIAL_PATHS
# $ENV{FFTW_HOME}/include
# /usr/include
# /usr/local/include
# /opt/include
# /usr/apps/include
# )
#
# SET(TRIAL_LIBRARY_PATHS
# $ENV{FFTW_HOME}/lib
# /usr/lib
# /usr/local/lib
# /opt/lib
# /sw/lib
# )
#
# FIND_PATH(FFTW_INCLUDE_DIR fftw3.h ${TRIAL_PATHS})
# FIND_LIBRARY(FFTW_LIBRARY fftw3 ${TRIAL_LIBRARY_PATHS})
FIND_PATH(FFTW_INCLUDE_DIR fftw3.h ${QMC_INCLUDE_PATHS})
FIND_LIBRARY(FFTW_LIBRARIES fftw3 ${QMC_LIBRARY_PATHS})
ENDIF(FFTW_INCLUDE_DIRS)
IF(FFTW_INCLUDE_DIR)
SET(FOUND_FFTW 1 CACHE BOOL "Found fftw library")
ELSE(FFTW_INCLUDE_DIR)
SET(FOUND_FFTW 0 CACHE BOOL "Not Found fftw library")
ENDIF(FFTW_INCLUDE_DIR)
SET(FFTW_FOUND FALSE)
IF(FFTW_INCLUDE_DIR AND FFTW_LIBRARIES)
MESSAGE(STATUS "FFTW_INCLUDE_DIR=${FFTW_INCLUDE_DIR}")
MESSAGE(STATUS "FFTW_LIBRARIES=${FFTW_LIBRARIES}")
SET(FFTW_FOUND TRUE)
ENDIF()
MARK_AS_ADVANCED(
FFTW_INCLUDE_DIR
FOUND_FFTW
FFTW_LIBRARIES
FFTW_FOUND
)

View File

@ -4,7 +4,7 @@
#
# HDF5_INCLUDE_DIR = where hdf5.h can be found
# HDF5_LIBRARY = the library to link against (hdf5 etc)
# FOUND_HDF5 = set to true after finding the library
# HDF5_FOUND = set to true after finding the library
#
IF(EXISTS ${PROJECT_CMAKE}/Hdf5Config.cmake)
INCLUDE(${PROJECT_CMAKE}/Hdf5Config.cmake)
@ -17,47 +17,63 @@ IF(Hdf5_INCLUDE_DIRS)
ELSE(Hdf5_INCLUDE_DIRS)
SET(TRIAL_LIBRARY_PATHS
$ENV{PHDF5_HOME}/lib
$ENV{HDF5_HOME}/lib
$ENV{HDF_HOME}/lib
/usr/apps/lib
/usr/lib
/usr/local/lib
/opt/lib
/sw/lib
)
SET(TRIAL_INCLUDE_PATHS
$ENV{PHDF5_HOME}/include
$ENV{HDF5_HOME}/include
$ENV{HDF_HOME}/include
/usr/apps/include
/usr/include
/opt/include
/usr/local/include
/sw/include
)
IF($ENV{HDF5_DIR} MATCHES "hdf")
MESSAGE(STATUS "Using environment variable HDF5_DIR.")
SET(TRIAL_LIBRARY_PATHS $ENV{HDF5_DIR}/lib ${TRIAL_LIBRARY_PATHS} )
SET(TRIAL_INCLUDE_PATHS $ENV{HDF5_DIR}/include ${TRIAL_INCLUDE_PATHS} )
ENDIF($ENV{HDF5_DIR} MATCHES "hdf")
FIND_LIBRARY(HDF5_LIBRARY hdf5 ${TRIAL_LIBRARY_PATHS})
FIND_PATH(HDF5_INCLUDE_DIR hdf5.h ${TRIAL_INCLUDE_PATHS} )
# SET(TRIAL_LIBRARY_PATHS
# $ENV{PHDF5_HOME}/lib
# $ENV{HDF5_HOME}/lib
# $ENV{HDF5_DIR}/lib
# $ENV{HDF_HOME}/lib
# /usr/apps/lib
# /usr/lib
# /usr/local/lib
# /opt/lib
# /sw/lib
# )
#
# SET(TRIAL_INCLUDE_PATHS
# $ENV{PHDF5_HOME}/include
# $ENV{HDF5_HOME}/include
# $ENV{HDF5_DIR}/include
# $ENV{HDF_HOME}/include
# /usr/apps/include
# /usr/include
# /opt/include
# /usr/local/include
# /sw/include
# )
#
# FIND_LIBRARY(HDF5_LIBRARIES hdf5 ${TRIAL_LIBRARY_PATHS})
# FIND_PATH(HDF5_INCLUDE_DIR hdf5.h ${TRIAL_INCLUDE_PATHS} )
FIND_LIBRARY(HDF5_LIBRARIES hdf5 ${QMC_LIBRARY_PATHS})
FIND_PATH(HDF5_INCLUDE_DIR hdf5.h ude ${QMC_INCLUDE_PATHS})
ENDIF(Hdf5_INCLUDE_DIRS)
IF(HDF5_INCLUDE_DIR AND HDF5_LIBRARY)
SET(FOUND_HDF5 1 CACHE BOOL "Found hdf5 library")
ELSE(HDF5_INCLUDE_DIR AND HDF5_LIBRARY)
SET(FOUND_HDF5 0 CACHE BOOL "Not fount hdf5 library")
ENDIF(HDF5_INCLUDE_DIR AND HDF5_LIBRARY)
IF(HDF5_INCLUDE_DIR AND HDF5_LIBRARIES)
MESSAGE(STATUS "HDF5_INCLUDE_DIR=${HDF5_INCLUDE_DIR}")
MESSAGE(STATUS "HDF5_LIBRARIES=${HDF5_LIBRARIES}")
SET(HDF5_FOUND TRUE)
find_file(h5settings libhdf5.settings ${QMC_LIBRARY_PATHS})
exec_program(grep
ARGS libraries ${h5settings}
OUTPUT_VARIABLE HDF5_EXTRA_LIBS
RETURN_VALUE mycheck
)
if(HDF5_EXTRA_LIBS MATCHES "sz")
STRING(REGEX MATCHALL "[-][L]([^ ;])+" HDF5_EXTRA_LIBS_LINK ${HDF5_EXTRA_LIBS})
STRING(REGEX REPLACE "[-][L]" "" SZLIB_PATH ${HDF5_EXTRA_LIBS_LINK})
find_library(SZLIB_LIBRARIES sz ${SZLIB_PATH})
if(SZLIB_LIBRARIES)
MESSAGE(STATUS "SZLIB_LIBRARIES="${SZLIB_LIBRARIES})
set(SZLIB_FOUND TRUE)
endif(SZLIB_LIBRARIES)
endif(HDF5_EXTRA_LIBS MATCHES "sz")
ELSE()
SET(HDF5_FOUND FALSE)
ENDIF()
MARK_AS_ADVANCED(
HDF5_INCLUDE_DIR
HDF5_LIBRARY
FOUND_HDF5
HDF5_LIBRARIES
HDF5_FOUND
)

View File

@ -1,220 +1,156 @@
# this module look for lapack/blas and other numerical library support
# it will define the following values
# LAPACK_LIBRARY
# BLAS_LIBRARY
#
# Since lapack and blas are essential, link_liraries are called.
# 1) search ENV MKL
# 2) search MKL in usual paths
# 3) search ENV ATLAS
# 4) search lapack/blas
# 5) give up
SET(MKL_PATHS "/usr/local/lib /usr/lib")
set(LAPACK_FOUND FALSE)
set(BLAS_FOUND FALSE)
set(MKL_FOUND FALSE)
#IF(NOT QMC_BUILD_STATIC)
IF($ENV{MKL} MATCHES "mkl")
MESSAGE(STATUS "Using intel/mkl library: $ENV{MKL}")
#look for the path where the mkl is installed
STRING(REGEX MATCHALL "[-][L]([^ ;])+" MKL_PATH_WITH_PREFIX "$ENV{MKL}")
STRING(REGEX REPLACE "[-][L]" "" MKL_PATHS ${MKL_PATH_WITH_PREFIX})
link_libraries($ENV{MKL})
set(LAPACK_FOUND TRUE)
set(BLAS_FOUND TRUE)
set(MKL_FOUND TRUE)
ENDIF($ENV{MKL} MATCHES "mkl")
SET(MKL_PATHS
$ENV{MKL_HOME}/lib/em${QMC_BITS}t
$ENV{MKL_HOME}/lib/${QMC_BITS}
$ENV{MKL_HOME}/lib
${MKL_PATHS}
)
MESSAGE(STATUS "Looking for intel/mkl library in ${MKL_PATHS}")
if($ENV{MKL_HOME} MATCHES "mkl")
if(NOT MKL_FOUND)
#default MKL libraries
set(mkl_libs "mkl_lapack;mkl;guide")
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" MKL_VERSION "$ENV{MKL_HOME}")
STRING(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+" MKL_VERSION "$ENV{MKL_HOME}")
SET(LINK_LAPACK_DEFAULT 1)
IF(${MKL_VERSION} MATCHES "10\\.0\\.[0-2]")
SET(LINK_LAPACK_DEFAULT 0)
ENDIF(${MKL_VERSION} MATCHES "10\\.0\\.[0-2]")
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
SET(MKLPATH $ENV{MKL_HOME}/lib/em64t)
if(${MKL_VERSION} MATCHES "10\\.2\\.[0-2]")
set(mkl_libs "mkl_intel_lp64;mkl_sequential;mkl_core;mkl_solver_lp64_sequential")
endif(${MKL_VERSION} MATCHES "10\\.2\\.[0-2]")
endif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
IF(${MKL_VERSION} MATCHES "10\\.2\\.[0-2]")
set(LAPACK_LIBRARY -L${MKL_HOME}/lib/em64t -lmkl_lapack -lmkl_core -lmkl_sequential -lmkl_intel_lp64)
set(BLAS_LIBRARY -L${MKL_HOME}/lib/em64t -lmkl_core -lmkl_sequential -lmkl_intel_lp64 -lguide)
SET(LINK_LAPACK_DEFAULT 2)
ENDIF(${MKL_VERSION} MATCHES "10\\.2\\.[0-2]")
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i386")
SET(MKLPATH $ENV{MKL_HOME}/lib/32)
endif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "i386")
IF(NOT LAPACK_LIBRARY_INIT)
IF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
IF(LINK_LAPACK_DEFAULT MATCHES 1)
FIND_LIBRARY(LAPACK_LIBRARY NAMES mkl_lapack PATHS ${MKL_PATHS})
FIND_LIBRARY(BLAS_LIBRARY NAMES mkl PATHS ${MKL_PATHS})
ELSEIF(LINK_LAPACK_DEFAULT MATCHES 0)
FIND_LIBRARY(LAPACK_LIBRARY NAMES mkl_lapack PATHS ${MKL_PATHS})
FIND_LIBRARY(BLAS_LIBRARY NAMES mkl_em64t PATHS ${MKL_PATHS})
MESSAGE("-- mkl 10.0.[0-2] warning for EM64T")
MESSAGE("-- Replace libmkl_lapack.so in CMakeCache.txt by libmkl_lapack.a")
ELSEIF(LINK_LAPACK_DEFAULT MATCHES 2)
FIND_LIBRARY(LAPACK_LIBRARY NAMES mkl_lapack PATHS ${MKL_PATHS})
FIND_LIBRARY(BLAS_LIBRARY NAMES mkl_core PATHS ${MKL_PATHS})
ENDIF(LINK_LAPACK_DEFAULT MATCHES 1)
ELSE(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
FIND_LIBRARY(LAPACK_LIBRARY
NAMES mkl_lapack
PATHS ${MKL_PATHS}
)
FIND_LIBRARY(BLAS_LIBRARY
NAMES mkl
PATHS ${MKL_PATHS}
)
ENDIF(${CMAKE_SYSTEM_PROCESSOR} MATCHES "x86_64")
if(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ia64")
SET(MKLPATH $ENV{MKL_HOME}/lib/64)
endif(${CMAKE_SYSTEM_PROCESSOR} MATCHES "ia64")
FIND_LIBRARY(INTEL_GUIDE_LIBRARY
NAMES guide
PATHS ${MKL_PATHS}
)
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -L${MKLPATH}")
IF(LAPACK_LIBRARY MATCHES "mkl")
MESSAGE(STATUS "Found intel/mkl library")
SET(LAPACK_LIBRARY_INIT 1 CACHE BOOL "lapack is initialized")
SET(BLAS_LIBRARY_INIT 1 CACHE BOOL "blas is initialized")
SET(HAVE_MKL 1) # CACHE BOOL "HAVE_MKL is set to 1")
SET(MKL_INC_PATHS $ENV{MKL_HOME}/include ${MKL_PATHS})
FIND_PATH(MKL_INCLUDE_DIR mkl.h ${MKL_INC_PATHS})
INCLUDE_DIRECTORIES(${MKL_INCLUDE_DIR})
ENDIF(LAPACK_LIBRARY MATCHES "mkl")
if(${MKL_VERSION} MATCHES "10\\.0\\.[0-2]")
link_libraries(${MKLPATH}/libmkl_lapack.a -lmkl -lguide)
else(${MKL_VERSION} MATCHES "10\\.0\\.[0-2]")
foreach(alib ${mkl_libs})
link_libraries(${alib})
endforeach()
endif(${MKL_VERSION} MATCHES "10\\.0\\.[0-2]")
ENDIF(NOT LAPACK_LIBRARY_INIT)
set(LAPACK_FOUND TRUE)
set(BLAS_FOUND TRUE)
set(MKL_FOUND TRUE)
IF(NOT HAVE_MKL)
IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
FIND_PATH(MKL_INCLUDE_DIR mkl.h $ENV{MKL_HOME}/include)
if(MKL_INCLUDE_DIR)
MESSAGE(STATUS "Header files of MKL libraries are found at " ${MKL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${MKL_INCLUDE_DIR})
set(HAVE_MKL TRUE)
find_file(mkl_vml_file mkl_vml.h $ENV{MKL_HOME}/include)
if(mkl_vml_file)
set(HAVE_MKL_VML TRUE)
endif(mkl_vml_file)
endif(MKL_INCLUDE_DIR)
endif(NOT MKL_FOUND)
endif($ENV{MKL_HOME} MATCHES "mkl")
if(MKL_FOUND)
MESSAGE(STATUS "MKL libraries are found")
set(LAPACK_FOUND TRUE)
set(BLAS_FOUND TRUE)
else(MKL_FOUND)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -framework vecLib")
SET(LAPACK_LIBRARY_INIT 1 CACHE BOOL "use Mac Framework")
SET(MAC_VECLIB 1 CACHE BOOL "use Mac Framework")
SET(LAPACK_LIBRARY "")
SET(BLAS_LIBRARY "")
MESSAGE(STATUS "Using Framework on Darwin.")
set(LAPACK_FOUND TRUE)
set(BLAS_FOUND TRUE)
endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
## check goto library: does not work so well
#FIND_LIBRARY(BLAS_LIBRARY NAMES goto
# PATHS
# $ENV{GOTOBLAS_HOME}
# /usr/lib
# /usr/local/lib
# /sw/lib
# )
SET(BLAS_LIBRARY "")
SET(BLAS_LIBRARY_INIT 1 CACHE BOOL "use Mac Framework")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
ENDIF(NOT HAVE_MKL)
if(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
link_libraries(-lessl -lmass -lmassv)
set(BLAS_FOUND TRUE)
endif(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
IF($ENV{ATLAS} MATCHES "atlas")
IF($ENV{ATLAS} MATCHES "lapack")
SET(LAPACK_LIBRARY_INIT 1 CACHE BOOL "lapack is initialized with ATLAS env")
ENDIF($ENV{ATLAS} MATCHES "lapack")
SET(BLAS_LIBRARY $ENV{ATLAS})
SET(BLAS_LIBRARY_INIT 1 CACHE BOOL "blas is initialized with ATLAS env")
ENDIF($ENV{ATLAS} MATCHES "atlas")
if($ENV{LAPACK} MATCHES "lapack")
link_libraries($ENV{LAPACK})
set(LAPACK_FOUND TRUE)
endif($ENV{LAPACK} MATCHES "lapack")
IF($ENV{LAPACK} MATCHES "lapack")
SET(LAPACK_LIBRARY $ENV{LAPACK})
SET(LAPACK_LIBRARY_INIT 1 CACHE BOOL "lapack is initialized")
ENDIF($ENV{LAPACK} MATCHES "lapack")
IF($ENV{ATLAS} MATCHES "atlas")
# COULD SEARCH THESE but.....
set(atlas_libs "lapack;f77blas;cblas;atlas")
set(LAPACK_FOUND TRUE)
set(BLAS_FOUND TRUE)
link_libraries($ENV{ATLAS})
endif($ENV{ATLAS} MATCHES "atlas")
#IF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
# SET(LAPACK_LIBRARY $ENV{LAPACK})
# SET(LAPACK_LIBRARY_INIT 1 CACHE BOOL "lapack is initialized")
#ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
endif(MKL_FOUND)
IF(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
SET(ELIB essl)
IF(ENABLE_OMP)
SET(ELIB esslsmp)
ENDIF(ENABLE_OMP)
IF(NOT LAPACK_LIBRARY_INIT)
SET(LLIB lapack-SP4_${QMC_BITS} lapack)
FIND_LIBRARY(LAPACK_LIBRARY
NAMES ${LLIB}
PATHS /usr/apps/math/lapack/LAPACK
lib
)
FIND_LIBRARY(BLAS_LIBRARY ${ELIB}
/usr/lib
)
ENDIF(NOT LAPACK_LIBRARY_INIT)
if(LAPACK_FOUND AND BLAS_FOUND)
MESSAGE(STATUS "LAPACK and BLAS libraries are linked to all the applications")
else(LAPACK_FOUND AND BLAS_FOUND)
MESSAGE("Failed to link LAPACK, BLAS, ATLAS libraries.")
find_library(LAPACK_LIBRARIES lapack)
find_library(BLAS_LIBRARIES blas)
if(LAPACK_LIBRARIES AND BLAS_LIBRARIES)
link_libraries(${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
set(LAPACK_FOUND TRUE)
set(BLAS_FOUND TRUE)
endif(LAPACK_LIBRARIES AND BLAS_LIBRARIES)
endif(LAPACK_FOUND AND BLAS_FOUND)
SET(LAPACK_LIBRARY_INIT 1 CACHE BOOL "lapack is initialized")
SET(BLAS_LIBRARY_INIT 1 CACHE BOOL "blas with essl is initialized")
MESSAGE(STATUS "Found lapack/blas on AIX system")
ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "AIX")
IF(NOT LAPACK_LIBRARY_INIT)
FIND_LIBRARY(LAPACK_LIBRARY NAMES lapack lapack_gnu
PATHS /usr/apps/math/lapack
/usr/lib
/opt/lib
/usr/local/lib
/sw/lib
)
IF(LAPACK_LIBRARY)
MESSAGE(STATUS "Found netlib lapack library")
SET(LAPACK_LIBRARY_INIT 1 CACHE BOOL "lapack is initialized")
ENDIF(LAPACK_LIBRARY)
ENDIF(NOT LAPACK_LIBRARY_INIT)
IF(NOT BLAS_LIBRARY_INIT)
FIND_LIBRARY(BLAS_LIBRARY NAMES goto blas blas_gnu
PATHS
$ENV{GOTOBLAS_HOME}
/usr/apps/math/lapack
/usr/lib
/opt/lib
/usr/local/lib
/sw/lib
)
IF(BLAS_LIBRARY)
MESSAGE(STATUS "Found netlib blas is found")
SET(BLAS_LIBRARY_INIT 1 CACHE BOOL "lapack is initialized")
ENDIF(BLAS_LIBRARY)
ENDIF(NOT BLAS_LIBRARY_INIT)
### BRANDT
### MOVED BECAUSE OF SCOPE PROBLEM
### PROBABLY SHOULD BE FIXED
MARK_AS_ADVANCED(
LAPACK_LIBRARY
BLAS_LIBRARY
)
IF(USE_SCALAPACK)
SET(PNPATHS
${MKL_PATHS}
${BLACS_HOME}/lib
${SCALAPACK_HOME}/lib
/usr/lib
/opt/lib
/usr/local/lib
/sw/lib
)
IF(INTEL_MKL)
FIND_LIBRARY(BLACSLIB mkl_blacs_${PLAT}_lp${QMC_BITS} PATHS ${PNPATHS})
FIND_LIBRARY(SCALAPACKLIB mkl_scalapack PATHS ${PNPATHS})
ENDIF(INTEL_MKL)
IF(NOT SCALAPACKLIB)
FIND_LIBRARY(BLACSLIB blacs_MPI-${PLAT}-{BLACSDBGLVL} PATHS ${PNPATHS})
FIND_LIBRARY(BLACSCINIT blacsCinit_MPI-${PLAT}-{BLACSDBGLVL} PATHS ${PNPATHS})
FIND_LIBRARY(SCALAPACKLIB scalapack PATHS ${PNPATHS})
ENDIF(NOT SCALAPACKLIB)
IF(BLACSLIB AND SCALAPACKLIB)
SET(FOUND_SCALAPACK 1 CACHE BOOL "Found scalapack library")
ELSE(BLACSLIB AND SCALAPACKLIB)
SET(FOUND_SCALAPACK 0 CACHE BOOL "Mising scalapack library")
ENDIF(BLACSLIB AND SCALAPACKLIB)
MARK_AS_ADVANCED(
BLACSCINIT
BLACSLIB
SCALAPACKLIB
FOUND_SCALAPACK
)
ENDIF(USE_SCALAPACK)
#MARK_AS_ADVANCED(
# LAPACK_LIBRARIES
# BLAS_LIBRARIES
# )
#IF(USE_SCALAPACK)
# SET(PNPATHS
# ${MKL_PATHS}
# ${BLACS_HOME}/lib
# ${SCALAPACK_HOME}/lib
# /usr/lib
# /opt/lib
# /usr/local/lib
# /sw/lib
# )
#
# IF(INTEL_MKL)
# FIND_LIBRARY(BLACSLIB mkl_blacs_${PLAT}_lp${QMC_BITS} PATHS ${PNPATHS})
# FIND_LIBRARY(SCALAPACKLIB mkl_scalapack PATHS ${PNPATHS})
# ENDIF(INTEL_MKL)
#
# IF(NOT SCALAPACKLIB)
# FIND_LIBRARY(BLACSLIB blacs_MPI-${PLAT}-{BLACSDBGLVL} PATHS ${PNPATHS})
# FIND_LIBRARY(BLACSCINIT blacsCinit_MPI-${PLAT}-{BLACSDBGLVL} PATHS ${PNPATHS})
# FIND_LIBRARY(SCALAPACKLIB scalapack PATHS ${PNPATHS})
# ENDIF(NOT SCALAPACKLIB)
#
# IF(BLACSLIB AND SCALAPACKLIB)
# SET(FOUND_SCALAPACK 1 CACHE BOOL "Found scalapack library")
# ELSE(BLACSLIB AND SCALAPACKLIB)
# SET(FOUND_SCALAPACK 0 CACHE BOOL "Mising scalapack library")
# ENDIF(BLACSLIB AND SCALAPACKLIB)
#
# MARK_AS_ADVANCED(
# BLACSCINIT
# BLACSLIB
# SCALAPACKLIB
# FOUND_SCALAPACK
# )
#ENDIF(USE_SCALAPACK)

View File

@ -2,9 +2,9 @@
# this module look for libxml (http://www.xmlsoft.org) support
# it will define the following values
#
# LIBXML2_INCLUDE_DIR = where libxml/xpath.h can be found
# LIBXML2_LIBRARY = the library to link against libxml2
# FOUND_LIBXML2 = set to 1 if libxml2 is found
# LibXml2_INCLUDE_DIR = where libxml/xpath.h can be found
# LibXml2_LIBRARIES = the library to link against libxml2
# LibXml2_FOUND = set to 1 if libxml2 is found
#
IF(EXISTS ${PROJECT_CMAKE}/Libxml2Config.cmake)
INCLUDE(${PROJECT_CMAKE}/Libxml2Config.cmake)
@ -17,33 +17,26 @@ IF(Libxml2_INCLUDE_DIRS)
ELSE(Libxml2_INCLUDE_DIRS)
SET(TRIAL_LIBRARY_PATHS
$ENV{LIBXML2_HOME}/lib
/usr/lib
/usr/local/lib
/sw/lib
)
SET(TRIAL_INCLUDE_PATHS
$ENV{LIBXML2_HOME}/include/libxml2
$ENV{LIBXML2_HOME}/include
/usr/include/libxml2
/usr/local/include/libxml2
/sw/include/libxml2
)
FIND_PATH(LIBXML_INCLUDE_DIR libxml2/libxml/xpath.h ${QMC_INCLUDE_PATHS})
if(LIBXML_INCLUDE_DIR)
set(LIBXML2_INCLUDE_DIR "${LIBXML_INCLUDE_DIR}/libxml2")
else(LIBXML_INCLUDE_DIR)
FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h ${QMC_INCLUDE_PATHS})
endif(LIBXML_INCLUDE_DIR)
FIND_LIBRARY(LIBXML2_LIBRARY xml2 ${TRIAL_LIBRARY_PATHS})
FIND_PATH(LIBXML2_INCLUDE_DIR libxml/xpath.h ${TRIAL_INCLUDE_PATHS})
FIND_LIBRARY(LIBXML2_LIBRARIES xml2 ${QMC_LIBRARY_PATHS})
ENDIF(Libxml2_INCLUDE_DIRS)
IF(LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARY)
SET(FOUND_LIBXML2 1 CACHE BOOL "Found libxml2 library")
ELSE(LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARY)
SET(FOUND_LIBXML2 0 CACHE BOOL "Not fount libxml2 library")
ENDIF(LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARY)
SET(LIBXML2_FOUND FALSE)
IF(LIBXML2_INCLUDE_DIR AND LIBXML2_LIBRARIES)
message(STATUS "LIBXML2_INCLUDE_DIR="${LIBXML2_INCLUDE_DIR})
message(STATUS "LIBXML2_LIBRARIES="${LIBXML2_LIBRARIES})
SET(LIBXML2_FOUND TRUE)
ENDIF()
MARK_AS_ADVANCED(
LIBXML2_INCLUDE_DIR
LIBXML2_LIBRARY
FOUND_LIBXML2
LIBXML2_LIBRARIES
LIBXML2_FOUND
)

View File

@ -11,14 +11,13 @@ FIND_PATH(SZLIB_INCLUDE_DIR szlib.h
/usr/include
)
FIND_LIBRARY(SZLIB_LIBRARY sz
FIND_LIBRARY(SZLIB_LIBRARIES sz
$ENV{SZLIB_HOME}/lib
/usr/lib
/usr/local/lib
)
IF(SZLIB_INCLUDE_DIR)
IF(SZLIB_LIBRARY)
SET( SZLIB_FOUND "YES" )
ENDIF(SZLIB_LIBRARY)
ENDIF(SZLIB_INCLUDE_DIR)
SET(SZLIB_FOUND FALSE)
IF(SZLIB_LIBRARIES)
SET(SZLIB_FOUND TRUE)
ENDIF(SZLIB_LIBRARIES)

View File

@ -2,6 +2,13 @@ PROJECT(qmcpack)
CMAKE_MINIMUM_REQUIRED(VERSION 2.4)
#####################################################
SET(CMAKE_FALLBACK FALSE)
if(${CMAKE_MINOR_VERSION} VERSION_LESS "8")
MESSAGE(WARNING ">>>> Recommend using cmake version 2.8.0 and higher. Using old cmake scripts. <<<< ")
SET(CMAKE_FALLBACK TRUE)
endif(${CMAKE_MINOR_VERSION} VERSION_LESS "8")
######################################################################
# Version
######################################################################
@ -22,6 +29,37 @@ SET(QMC_BUILD_LEVEL 1 CACHE INTEGER
SET (LIBRARY_OUTPUT_PATH ${qmcpack_BINARY_DIR}/lib CACHE PATH "Single output directory for building all libraries.")
SET (EXECUTABLE_OUTPUT_PATH ${qmcpack_BINARY_DIR}/bin CACHE PATH "Single output directory for building all executables.")
######################################################################
# build include and library paths required for the projects
# For XYZ library, set an environment as
# export XYZ_HOME='root-of-the-library'
# XYZ_HOME/include
# XYZ_HOME/lib
# IF XYZ library is found, XYZ_FOUND is set to true
#
# find_package is used with cmake 2.8 and higher
######################################################################
SET(QMC_INCLUDE_PATHS
$ENV{HDF5_HOME}/include
$ENV{HDF5_DIR}/include
$ENV{FFTW_HOME}/include
$ENV{LIBXML2_HOME}/include
$ENV{EINSPLINE_HOME}/include
$ENV{BOOST_HOME}
)
SET(QMC_LIBRARY_PATHS
$ENV{HDF5_HOME}/lib
$ENV{HDF5_DIR}/lib
$ENV{FFTW_HOME}/lib
$ENV{LIBXML2_HOME}/lib
$ENV{EINSPLINE_HOME}/lib
)
if(APPLE)
set(QMC_INCLUDE_PATHS ${QMC_INCLUDE_PATHS} /sw/include)
set(QMC_LIBRARY_PATHS ${QMC_LIBRARY_PATHS} /sw/lib)
endif(APPLE)
######################################################################
# Set the compiler-time parameters
# OHMMS_DIM = dimension of the problem
@ -56,10 +94,10 @@ IF($ENV{QMC_OMP})
SET(QMC_OMP $ENV{QMC_OMP})
MESSAGE("-- Found QMC_OMP=${QMC_OMP}")
ENDIF($ENV{QMC_OMP})
IF($ENV{QMC_BITS})
SET(QMC_BITS $ENV{QMC_BITS})
MESSAGE("-- Found QMC_BITS=${QMC_BITS}")
ENDIF($ENV{QMC_BITS})
#IF($ENV{QMC_BITS})
# SET(QMC_BITS $ENV{QMC_BITS})
# MESSAGE("-- Found QMC_BITS=${QMC_BITS}")
#ENDIF($ENV{QMC_BITS})
IF($ENV{QMC_COMPLEX})
SET(QMC_COMPLEX $ENV{QMC_COMPLEX})
MESSAGE("-- Found QMC_COMPLEX=${QMC_COMPLEX}")
@ -168,7 +206,6 @@ ENDIF(Subversion_FOUND)
INCLUDE(${CMAKE_ROOT}/Modules/TestCXXAcceptsFlag.cmake)
INCLUDE(${CMAKE_ROOT}/Modules/CheckCCompilerFlag.cmake)
######################################################
# DO NOT MODIFY BELOW
# If you like to customize your build, create a toolchain as instructed
@ -185,6 +222,7 @@ ELSE(CMAKE_TOOLCHAIN_FILE)
SET(HAVE_MPI 0)
SET(INTEL_COMPILER 0)
SET(HAVE_MKL 0)
SET(HAVE_MKL_VML 0)
SET(HAVE_ACML 0)
SET(HAVE_SSE 0)
SET(HAVE_SSE2 0)
@ -199,6 +237,7 @@ ELSE(CMAKE_TOOLCHAIN_FILE)
######################################################
SET(CPU_IDENTITY "generic")
INCLUDE(${PROJECT_CMAKE}/CheckProcessorID.cmake)
#------------------------------------
# On Jaguar use CrayXT.cmake
#------------------------------------
@ -207,6 +246,7 @@ ELSE(CMAKE_TOOLCHAIN_FILE)
SET(CPU_IDENTITY "barcelona")
INCLUDE(${PROJECT_CMAKE}/CrayXT.cmake)
SET(FOUND_CXXENV 1)
SET(CMAKE_SKIP_RPATH TRUE)
ENDIF($ENV{HOST} MATCHES "jaguar")
#------------------------------------
@ -244,19 +284,44 @@ ELSE(CMAKE_TOOLCHAIN_FILE)
ENDIF(NOT FOUND_CXXENV)
#-------------------------------------------------------------------
#COMPIELR MANUAL SELECTION
#If automatic detection does not work, comment out above and select one
#of these files
# check MPI installation
#-------------------------------------------------------------------
#INCLUDE(${PROJECT_CMAKE}/GNUCompilers.cmake)
#INCLUDE(${PROJECT_CMAKE}/IntelCompilers.cmake)
#INCLUDE(${PROJECT_CMAKE}/IBMCompilers.cmake)
#INCLUDE(${PROJECT_CMAKE}/KCCCompilers.cmake)
IF(QMC_MPI)
## mpi compilers
if($ENV{CXX} MATCHES "mp")
SET(HAVE_MPI 1)
SET(HAVE_OOMPI 1)
SET(MPI_FOUND TRUE)
else($ENV{CXX} MATCHES "mp")
include(FindMPI)
IF(MPI_FOUND)
MESSAGE(STATUS "Found mpi.h and libraries. Check for working mpi compiler ")
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testmpi.cxx
"#include <mpi.h>"
"int main(int argc, char** argv){MPI_Init(&argc,&argv); MPI_Finalize();return 0;}\n")
TRY_COMPILE(MPI_WORKS ${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testmpi.cxx
OUTPUT_VARIABLE OUTPUT)
IF(MPI_WORKS)
MESSAGE(STATUS "MPI is enabled")
SET(HAVE_MPI 1)
SET(HAVE_OOMPI 1)
LINK_LIBRARIES(${MPI_LIBRARY})
ELSE(MPI_WORKS)
MESSAGE(STATUS "MPI is disabled")
SET(HAVE_MPI 0)
SET(HAVE_OOMPI 0)
ENDIF(MPI_WORKS)
ENDIF(MPI_FOUND)
endif($ENV{CXX} MATCHES "mp")
ENDIF(QMC_MPI)
#-------------------------------------------------------------------
# check lapack/blas
#-------------------------------------------------------------------
INCLUDE(${PROJECT_CMAKE}/FindLapack.cmake)
ENDIF(CMAKE_TOOLCHAIN_FILE)
MESSAGE("-- CXX compiler flags: ${CMAKE_CXX_FLAGS}")
@ -264,147 +329,101 @@ MESSAGE("-- CC compiler flags: ${CMAKE_C_FLAGS}")
SET(HAVE_OOMPI ${HAVE_MPI})
INCLUDE(${CMAKE_ROOT}/Modules/FindThreads.cmake)
INCLUDE(${PROJECT_CMAKE}/FindLibxml2.cmake)
INCLUDE(${PROJECT_CMAKE}/FindHDF5.cmake)
INCLUDE(${PROJECT_CMAKE}/FindBoost.cmake)
#INCLUDE(${PROJECT_CMAKE}/FindPkgConfig.cmake)
INCLUDE(${PROJECT_CMAKE}/FindFFTW.cmake)
if(ENABLE_TAU_PROFILE)
INCLUDE(${PROJECT_CMAKE}/FindTau.cmake)
endif(ENABLE_TAU_PROFILE)
####################################################################
#First check the required libraries. Abort if these are not found.
#Changed the fall-back versions to use similar conventions to 2.8.0 and higher
####################################################################
if(CMAKE_FALLBACK)
INCLUDE(${PROJECT_CMAKE}/FindLibxml2.cmake)
INCLUDE(${PROJECT_CMAKE}/FindHDF5.cmake)
INCLUDE(${PROJECT_CMAKE}/FindBoost.cmake)
INCLUDE(${PROJECT_CMAKE}/FindZLIB.cmake)
INCLUDE(${PROJECT_CMAKE}/FindSZLIB.cmake)
else()
find_package(LibXml2)
find_package(HDF5)
find_package(Boost)
endif()
IF(LIBXML2_FOUND)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
LINK_LIBRARIES(${LIBXML2_LIBRARIES})
SET(HAVE_LIBXML2 1)
ENDIF(LIBXML2_FOUND)
IF(HDF5_FOUND)
SET(HAVE_LIBHDF5 1)
INCLUDE_DIRECTORIES(${HDF5_INCLUDE_DIR})
LINK_LIBRARIES(${HDF5_LIBRARIES})
IF(ZLIB_FOUND)
LINK_LIBRARIES(${ZLIB_LIBRARIES})
ENDIF(ZLIB_FOUND)
IF(SZLIB_FOUND)
LINK_LIBRARIES(${SZLIB_LIBRARIES})
ENDIF(SZLIB_FOUND)
ELSE(HDF5_FOUND)
MESSAGE(FATAL_ERROR "Require hdf5 1.6.4 or higher. Set HDF5_HOME")
ENDIF(HDF5_FOUND)
IF(Boost_FOUND)
SET(HAVE_LIBBOOST 1)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
ELSE()
MESSAGE(FATAL_ERROR "Require boost 1.33.x or higher. Set BOOST_HOME")
ENDIF()
#INCLUDE(${PROJECT_CMAKE}/FindPkgConfig.cmake)
##################################################################
# TODO:use profile tools
##################################################################
#IF(MPIP_PROFILE)
# LINK_LIBRARIES("/usr/apps/tools/mpip/lib/cmpi/libmpiP.a")
# LINK_LIBRARIES("/usr/lib/libbfd.a")
# LINK_LIBRARIES("/usr/lib/libiberty.a")
#ENDIF(MPIP_PROFILE)
#if(ENABLE_TAU_PROFILE)
# INCLUDE(${PROJECT_CMAKE}/FindTau.cmake)
#endif(ENABLE_TAU_PROFILE)
# #add tau stuff
# IF(FOUND_TAU)
# ADD_DEFINITIONS(
# -DTAU_MPI
# -DTAU_MPI_THREADED
# -DTAU_MPIGREQUEST
# -DTAU_MPIDATAREP
# -DTAU_MPIERRHANDLER
# -DTAU_MPIATTRFUNCTION
# -DTAU_MPITYPEEX
# -DTAU_MPIADDERROR
# )
# #build libtau
# subdirs(src/tau)
# LINK_LIBRARIES(tau)
# ENDIF(FOUND_TAU)
#IF(FOUND_TAU)
# INCLUDE_DIRECTORIES(${TAU_INCLUDE_DIR})
# ADD_DEFINITIONS (-DPROFILING_ON
# -DTAU_STDCXXLIB
# -DTAU_DOT_H_LESS_HEADERS
# -DTAU_CALLPATH
# -DTAU_LARGEFILE64_SOURCE
# -DTAU_BFD
# )
# if(ENABLE_OPENMP)
# ADD_DEFINITIONS(-DTAU_OPENMP)
# endif(ENABLE_OPENMP)
#ENDIF(FOUND_TAU)
######################################################
# Add optional macros
######################################################
IF(FOUND_TAU)
INCLUDE_DIRECTORIES(${TAU_INCLUDE_DIR})
ADD_DEFINITIONS (-DPROFILING_ON
-DTAU_STDCXXLIB
-DTAU_DOT_H_LESS_HEADERS
-DTAU_CALLPATH
-DTAU_LARGEFILE64_SOURCE
-DTAU_BFD
)
if(ENABLE_OPENMP)
ADD_DEFINITIONS(-DTAU_OPENMP)
endif(ENABLE_OPENMP)
ENDIF(FOUND_TAU)
IF(QMC_MPI)
#IF(MPIP_PROFILE)
# LINK_LIBRARIES("/usr/apps/tools/mpip/lib/cmpi/libmpiP.a")
# LINK_LIBRARIES("/usr/lib/libbfd.a")
# LINK_LIBRARIES("/usr/lib/libiberty.a")
#ENDIF(MPIP_PROFILE)
include(FindMPI)
IF(MPI_FOUND)
MESSAGE(STATUS "Found mpi.h and libraries. Check for working mpi compiler ")
FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testmpi.cxx
"#include <mpi.h>"
"int main(int argc, char** argv){MPI_Init(&argc,&argv); MPI_Finalize();return 0;}\n")
TRY_COMPILE(MPI_WORKS ${CMAKE_BINARY_DIR}
${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testmpi.cxx
OUTPUT_VARIABLE OUTPUT)
IF(MPI_WORKS)
MESSAGE(STATUS "MPI is enabled")
SET(HAVE_MPI 1)
SET(HAVE_OOMPI 1)
LINK_LIBRARIES(${MPI_LIBRARY})
ELSE(MPI_WORKS)
MESSAGE(STATUS "MPI is disabled")
SET(HAVE_MPI 0)
SET(HAVE_OOMPI 0)
ENDIF(MPI_WORKS)
ENDIF(MPI_FOUND)
ENDIF(QMC_MPI)
if(HAVE_MPI)
#do not use mpi c++ binding
ADD_DEFINITIONS(-DMPICH_SKIP_MPICXX)
#add tau stuff
IF(FOUND_TAU)
ADD_DEFINITIONS(
-DTAU_MPI
-DTAU_MPI_THREADED
-DTAU_MPIGREQUEST
-DTAU_MPIDATAREP
-DTAU_MPIERRHANDLER
-DTAU_MPIATTRFUNCTION
-DTAU_MPITYPEEX
-DTAU_MPIADDERROR
)
#build libtau
subdirs(src/tau)
LINK_LIBRARIES(tau)
ENDIF(FOUND_TAU)
endif(HAVE_MPI)
IF(FOUND_LIBXML2)
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
LINK_LIBRARIES(${LIBXML2_LIBRARY})
SET(HAVE_LIBXML2 1)
ENDIF(FOUND_LIBXML2)
IF(FOUND_BOOST)
SET(HAVE_LIBBOOST 1)
INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIR})
ELSE(FOUND_BOOST)
MESSAGE(FATAL_ERROR "Require boost 1.33.x or higher. Set BOOST_HOME")
ENDIF(FOUND_BOOST)
IF(FOUND_FFTW)
INCLUDE(${PROJECT_CMAKE}/FindFFTW.cmake)
IF(FFTW_FOUND)
SET(HAVE_LIBFFTW 1)
INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
LINK_LIBRARIES(${FFTW_LIBRARY})
ENDIF(FOUND_FFTW)
IF(FOUND_HDF5)
SET(HAVE_LIBHDF5 1)
INCLUDE_DIRECTORIES(${HDF5_INCLUDE_DIR})
LINK_LIBRARIES(${HDF5_LIBRARY})
#zlib
INCLUDE(${PROJECT_CMAKE}/FindZLIB.cmake)
IF(ZLIB_FOUND)
LINK_LIBRARIES(${ZLIB_LIBRARY})
ENDIF(ZLIB_FOUND)
#szlib
INCLUDE(${PROJECT_CMAKE}/FindSZLIB.cmake)
IF(SZLIB_FOUND)
LINK_LIBRARIES(${SZLIB_LIBRARY})
ENDIF(SZLIB_FOUND)
ELSE(FOUND_HDF5)
MESSAGE(FATAL_ERROR "Require hdf5 1.6.4 or higher. Set HDF5_HOME")
ENDIF(FOUND_HDF5)
######################################################################
# Manage GTK+ and GTKMM packages for GUI
# search headers and libraries
# 1) -lXYZ-${XYZ_VERSION}
# 2) -lXYZ
# example: -lgtk-${GTK_VERSION} | -lgtk
######################################################################
SET(GTK_VERSION 2.0)
SET(PANGO_VERSION 1.0)
SET(GTKMM_VERSION 2.4)
SET(PANGOMM_VERSION 1.4)
SET(SIGCPP_VERSION 2.0)
IF(ENABLE_GTK_GUI)
INCLUDE(${PROJECT_CMAKE}/FindGTK.cmake)
#THIS SHOULD GO TO the directory where GUI is built
IF(GTKMM_FOUND)
INCLUDE_DIRECTORIES(${GTKMM_INCLUDE_DIR})
LINK_LIBRARIES(${GTKMM_LIBRARIES})
ENDIF(GTKMM_FOUND)
ENDIF(ENABLE_GTK_GUI)
LINK_LIBRARIES(${FFTW_LIBRARIES})
ENDIF(FFTW_FOUND)
######################################################################
# Manage Einspline library
@ -414,44 +433,37 @@ ENDIF(ENABLE_GTK_GUI)
# - if everything fails, do not use it
######################################################################
INCLUDE(${PROJECT_CMAKE}/FindEinspline.cmake)
if(EINSPLINE_FOUND)
set(HAVE_EINSPLINE 1)
IF(HAVE_EINSPLINE_EXT)
INCLUDE_DIRECTORIES(${EINSPLINE_INCLUDE_DIR})
LINK_LIBRARIES(${EINSPLINE_LIBRARY})
INCLUDE_DIRECTORIES(${EINSPLINE_INCLUDE_DIR})
LINK_LIBRARIES(${EINSPLINE_LIBRARIES})
ELSE(HAVE_EINSPLINE_EXT)
IF(HAVE_EINSPLINE)
SUBDIRS(src/einspline)
ENDIF(HAVE_EINSPLINE)
ENDIF(HAVE_EINSPLINE_EXT)
SUBDIRS(src/einspline)
ENDIF(HAVE_EINSPLINE_EXT)
endif()
#IF ( CMAKE_PKGCONFIG_EXECUTABLE )
# # Find all the librtk stuff with pkg-config
# PKGCONFIG( "einspline >= 0.9" HAVE_EINSPLINE EINSPLINE_INCLUDE_DIRS EINSPLINE_DEFINES EINSPLINE_LINK_DIRS EINSPLINE_LIBS )
# CHECK_INCLUDE_FILE(${EINSPLINE_INCLUDE_DIRS}/config.h HAVE_EINSPLINE)
# IF(HAVE_EINSPLINE)
# FIND_LIBRARY(EINSPLINE_LIBRARY einspline ${EINSPLINE_LINK_DIRS})
# INCLUDE_DIRECTORIES(${EINSPLINE_INCLUDE_DIRS})
# ADD_DEFINITIONS (${EINSPLINE_DEFINES} -DHAVE_EINSPLINE)
# SET(HAVE_EINSPLINE 1)
# SET(HAVE_EINSPLINE_EXT 1)
# LINK_LIBRARIES(${EINSPLINE_LIBRARY})
# MESSAGE("-- Einspline library found at ${EINSPLINE_LIBRARY}")
# ELSE(HAVE_EINSPLINE)
# MESSAGE("-- Checked PKG_CONFIG_PATH=$ENV{PKG_CONFIG_PATH}")
# MESSAGE("-- Missing pre-built Einspline library.")
# ENDIF(HAVE_EINSPLINE)
#ENDIF ( CMAKE_PKGCONFIG_EXECUTABLE )
#######################################################################
## Manage GTK+ and GTKMM packages for GUI
## search headers and libraries
## 1) -lXYZ-${XYZ_VERSION}
## 2) -lXYZ
## example: -lgtk-${GTK_VERSION} | -lgtk
#######################################################################
#SET(GTK_VERSION 2.0)
#SET(PANGO_VERSION 1.0)
#
#IF(NOT HAVE_EINSPLINE)
# FIND_PATH(EINSPLINE_DIR src/bspline.h $ENV{EINSPLINE_HOME})
# IF(EINSPLINE_DIR)
# MESSAGE("-- Try to build Einspline library. Source is found at ${EINSPLINE_DIR}.")
# SET(HAVE_EINSPLINE 1)
# SUBDIRS(src/einspline)
# ELSE(EINSPLINE_DIR)
# MESSAGE("-- EINSPLINE_HOME is not found. Disable Einspline library.")
# MESSAGE("-- Download einspline library to utilize an optimized 3D-bspline library.")
# ENDIF(EINSPLINE_DIR)
#ENDIF(NOT HAVE_EINSPLINE)
#SET(GTKMM_VERSION 2.4)
#SET(PANGOMM_VERSION 1.4)
#SET(SIGCPP_VERSION 2.0)
#IF(ENABLE_GTK_GUI)
# INCLUDE(${PROJECT_CMAKE}/FindGTK.cmake)
# #THIS SHOULD GO TO the directory where GUI is built
# IF(GTKMM_FOUND)
# INCLUDE_DIRECTORIES(${GTKMM_INCLUDE_DIR})
# LINK_LIBRARIES(${GTKMM_LIBRARIES})
# ENDIF(GTKMM_FOUND)
#ENDIF(ENABLE_GTK_GUI)
###################################################
# Done searching libraries. Start building qmcpack
@ -463,11 +475,16 @@ INCLUDE_DIRECTORIES(
${qmcpack_SOURCE_DIR}/src
${qmcpack_BINARY_DIR}/src
)
####################################################################
# add definitions
# -DH5_USE_16_API for HDF5
# -DMPICH_SKIP_MPICXX : disable C++ binding of MPICH
####################################################################
ADD_DEFINITIONS(-DHAVE_CONFIG_H -DH5_USE_16_API -DAPPNAMESPACE=qmcplusplus)
if(HAVE_MPI)
ADD_DEFINITIONS(-DMPICH_SKIP_MPICXX)
endif()
#ADD_DEFINITIONS(-DDISABLE_WS_CELL)
# IF(BUILD_QMCTOOLS)
# SUBDIRS(boost)
# ENDIF(BUILD_QMCTOOLS)
SUBDIRS(src)

View File

@ -66,7 +66,7 @@ namespace qmcplusplus
{
for (int i=0; i<np; ++i) kdotp[i]=dot(kPoints[ik],temp[i].dr1_nobox);
eval_e2iphi(np,kdotp.data(),phases.data());
RealType nofk_here(std::real(BLAS::dot(np,phases.data(),psi_ratios.data())));
RealType nofk_here(std::real(BLAS::dot(np,phases.data(),&psi_ratios[0])));//psi_ratios.data())));
nofK[ik]+= nofk_here;
tmpn_k[ik]=nofk_here;
}

View File

@ -15,16 +15,16 @@
// -*- C++ -*-
#include "QMCWaveFunctions/BasisSetFactory.h"
#if OHMMS_DIM == 3
#if QMC_BUILD_LEVEL>1
#include "QMCWaveFunctions/MolecularOrbitals/NGOBuilder.h"
#include "QMCWaveFunctions/MolecularOrbitals/GTOBuilder.h"
#include "QMCWaveFunctions/MolecularOrbitals/STOBuilder.h"
#include "QMCWaveFunctions/MolecularOrbitals/MolecularBasisBuilder.h"
#include "QMCWaveFunctions/TricubicBsplineSetBuilder.h"
#endif
#if defined(HAVE_EINSPLINE)
#include "QMCWaveFunctions/EinsplineSetBuilder.h"
#endif
#if QMC_BUILD_LEVEL>1
#include "QMCWaveFunctions/TricubicBsplineSetBuilder.h"
#endif
#endif
#include "Utilities/ProgressReportEngine.h"
#include "Utilities/IteratorUtility.h"