2006-10-19 04:57:15 +08:00
|
|
|
PROJECT(qmcpack)
|
2005-11-18 01:29:59 +08:00
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# Version
|
|
|
|
######################################################################
|
2005-11-03 06:23:38 +08:00
|
|
|
SET(QMCPLUSPLUS_VERSION_MAJOR 0)
|
|
|
|
SET(QMCPLUSPLUS_VERSION_MINOR 2)
|
|
|
|
SET(QMCPLUSPLUS_VERSION_PATCH 0)
|
2005-11-18 01:29:59 +08:00
|
|
|
SET(QMCPLUSPLUS_RELEASE 0)
|
2005-11-03 06:23:38 +08:00
|
|
|
SET(QMCPLUSPLUS_VERSION "${QMCPLUSPLUS_VERSION_MAJOR}.${QMCPLUSPLUS_VERSION_MINOR}.$(QMCPLUSPLUS_VERSION_PATH}")
|
|
|
|
|
2006-04-15 05:54:50 +08:00
|
|
|
######################################################################
|
2004-08-25 03:21:10 +08:00
|
|
|
#define the paths for library and executable for out-of-soruce compilation
|
2006-04-15 05:54:50 +08:00
|
|
|
######################################################################
|
2006-10-19 04:57:15 +08:00
|
|
|
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.")
|
|
|
|
|
|
|
|
######################################################################
|
2006-11-24 07:00:56 +08:00
|
|
|
# Set the compiler-time parameters
|
|
|
|
# OHMMS_DIM = dimension of the problem
|
|
|
|
# OHMMS_INDEXTYPE = type of index
|
|
|
|
# OHMMS_PRECISION = base precision, float, double etc
|
|
|
|
# QMC_COMPLEX = true if using complex wavefunctions
|
|
|
|
# QMC_MPI = enable MPI
|
|
|
|
# QMC_OMP = enable OMP
|
|
|
|
# QMC_BITS = 32/64 bit
|
2006-10-19 04:57:15 +08:00
|
|
|
######################################################################
|
2006-11-24 07:00:56 +08:00
|
|
|
SET(OHMMS_DIM 3)
|
|
|
|
SET(OHMMS_INDEXTYPE int)
|
|
|
|
SET(OHMMS_PRECISION double)
|
|
|
|
SET(QMC_COMPLEX 0)
|
2006-10-19 04:57:15 +08:00
|
|
|
SET(QMC_MPI 1)
|
|
|
|
SET(QMC_OMP 0)
|
2006-11-24 07:00:56 +08:00
|
|
|
SET(QMC_BITS 32)
|
2005-11-17 11:38:21 +08:00
|
|
|
|
2007-05-23 00:35:35 +08:00
|
|
|
######################################################################
|
|
|
|
# Standard test
|
|
|
|
######################################################################
|
|
|
|
INCLUDE(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
|
|
|
|
CHECK_FUNCTION_EXISTS(sincos HAVE_SINCOS)
|
|
|
|
|
2006-04-15 05:54:50 +08:00
|
|
|
######################################################################
|
2006-11-24 07:00:56 +08:00
|
|
|
# Build options
|
|
|
|
# QMC_BUILD_STATIC build static/dynamic libraries
|
|
|
|
# BUILD_QMCTOOLS build utility programs
|
|
|
|
# BUILD_SANDBOX build test programs
|
|
|
|
# MPIP_PROFILE profile mpi performance
|
2006-04-15 05:54:50 +08:00
|
|
|
######################################################################
|
2006-11-24 07:00:56 +08:00
|
|
|
SET(QMC_BUILD_STATIC 0)
|
|
|
|
SET(BUILD_QMCTOOLS 0)
|
|
|
|
SET(BUILD_SANDBOX 0)
|
|
|
|
SET(MPIP_PROFILE 0)
|
2005-11-17 11:38:21 +08:00
|
|
|
|
2007-05-09 22:31:02 +08:00
|
|
|
######################################################################
|
|
|
|
# Performance-related macros
|
|
|
|
# QMC_SK_USE_RECURSIVE enable/disable recursive evalaution of SK
|
|
|
|
######################################################################
|
|
|
|
SET(QMC_SK_USE_RECURSIVE 0)
|
|
|
|
|
2004-08-25 03:21:10 +08:00
|
|
|
######################################################################
|
2006-11-24 07:00:56 +08:00
|
|
|
# Overwrite with environments if they differ from the set values
|
2004-08-25 03:21:10 +08:00
|
|
|
######################################################################
|
2006-11-24 07:00:56 +08:00
|
|
|
IF(NOT $ENV{QMC_MPI} MATCHES QMC_MPI)
|
|
|
|
SET(QMC_MPI $ENV{QMC_MPI})
|
|
|
|
ENDIF(NOT $ENV{QMC_MPI} MATCHES QMC_MPI)
|
|
|
|
IF(NOT $ENV{QMC_OMP} MATCHES QMC_OMP)
|
|
|
|
SET(QMC_OMP $ENV{QMC_OMP})
|
|
|
|
ENDIF(NOT $ENV{QMC_OMP} MATCHES QMC_OMP)
|
|
|
|
IF(NOT $ENV{QMC_BITS} MATCHES QMC_BITS)
|
|
|
|
SET(QMC_BITS $ENV{QMC_BITS})
|
|
|
|
ENDIF(NOT $ENV{QMC_BITS} MATCHES QMC_BITS)
|
|
|
|
IF(NOT $ENV{QMC_COMPLEX} MATCHES QMC_COMPLEX)
|
2006-06-20 06:00:41 +08:00
|
|
|
SET(QMC_COMPLEX $ENV{QMC_COMPLEX})
|
2006-11-24 07:00:56 +08:00
|
|
|
ENDIF(NOT $ENV{QMC_COMPLEX} MATCHES QMC_COMPLEX)
|
2006-04-15 05:54:50 +08:00
|
|
|
|
|
|
|
######################################################################
|
|
|
|
# FIXED PARAMETERS for test and legacy reasons
|
2006-11-24 07:00:56 +08:00
|
|
|
# DO NOT TOUCH THESE
|
|
|
|
# QMC_ORTHO = 0 for general unit cell, 1 for orthogonal cells
|
|
|
|
# QMC_FASTWALKER = true, when operation is faster for each walker
|
2006-04-15 05:54:50 +08:00
|
|
|
######################################################################
|
2004-08-25 03:21:10 +08:00
|
|
|
SET(QMC_FASTWALKER 1)
|
2006-04-15 05:54:50 +08:00
|
|
|
SET(OHMMS_ORTHO 0)
|
2004-08-25 03:21:10 +08:00
|
|
|
|
2006-04-15 05:54:50 +08:00
|
|
|
######################################################################
|
|
|
|
#list of options to determine libraries. First, try to use libraries available
|
2004-08-25 03:21:10 +08:00
|
|
|
######################################################################
|
|
|
|
SET(INTEL_COMPILER 0)
|
2006-04-15 05:54:50 +08:00
|
|
|
SET(ENABLE_OPENMP 0)
|
|
|
|
SET(HAVE_MPI 0)
|
|
|
|
SET(HAVE_OOMPI 0)
|
2006-09-05 00:01:08 +08:00
|
|
|
SET(HAVE_LIBXML2 1)
|
2006-06-06 04:02:37 +08:00
|
|
|
SET(HAVE_LIBFFTW 0)
|
2006-04-15 05:54:50 +08:00
|
|
|
SET(HAVE_LIBXMLPP 0)
|
|
|
|
SET(HAVE_LIBHDF5 0)
|
|
|
|
SET(HAVE_LIBSPRNG 0)
|
|
|
|
SET(HAVE_LIBBLITZ 0)
|
|
|
|
SET(HAVE_LIBGSL 0)
|
|
|
|
SET(INTEL_COMPILER 0)
|
2007-03-14 02:16:14 +08:00
|
|
|
SET(MAC_VECLIB 0)
|
2006-04-15 05:54:50 +08:00
|
|
|
|
|
|
|
######################################################
|
|
|
|
# Directory where customize cmake files reside
|
|
|
|
######################################################
|
2006-10-19 05:13:15 +08:00
|
|
|
SET (PROJECT_CMAKE ${qmcpack_SOURCE_DIR}/CMake)
|
2006-04-15 05:54:50 +08:00
|
|
|
|
2004-08-25 03:21:10 +08:00
|
|
|
######################################################
|
|
|
|
#COMPILER choose one of the cmake files to customize the compiler options
|
|
|
|
#If nothing is chosen, default settings by cmake will be used.
|
2007-01-05 03:41:39 +08:00
|
|
|
#If the automatic detection does not work, comment out everything
|
|
|
|
#upto COMPILER MANUAL SELECTION and use one of the customized cmake file.
|
2004-08-25 03:21:10 +08:00
|
|
|
######################################################
|
2006-06-20 06:00:41 +08:00
|
|
|
SET(FOUND_CXXENV 0)
|
|
|
|
IF($ENV{CXX} MATCHES "icpc")
|
|
|
|
INCLUDE(${PROJECT_CMAKE}/Intel8.cmake)
|
|
|
|
SET(FOUND_CXXENV 1)
|
|
|
|
ENDIF($ENV{CXX} MATCHES "icpc")
|
2006-10-19 05:16:26 +08:00
|
|
|
IF($ENV{CXX} MATCHES "cmpic")
|
2006-10-19 05:13:15 +08:00
|
|
|
INCLUDE(${PROJECT_CMAKE}/Intel8.cmake)
|
|
|
|
SET(FOUND_CXXENV 1)
|
2006-10-19 05:16:26 +08:00
|
|
|
ENDIF($ENV{CXX} MATCHES "cmpic")
|
2006-06-20 06:00:41 +08:00
|
|
|
IF($ENV{CXX} MATCHES "xlC")
|
|
|
|
INCLUDE(${PROJECT_CMAKE}/IBMCompilers.cmake)
|
|
|
|
SET(FOUND_CXXENV 1)
|
|
|
|
ENDIF($ENV{CXX} MATCHES "xlC")
|
2006-11-24 07:00:56 +08:00
|
|
|
|
2006-06-20 06:00:41 +08:00
|
|
|
IF(NOT FOUND_CXXENV)
|
|
|
|
INCLUDE(${PROJECT_CMAKE}/GNUCompilers.cmake)
|
|
|
|
ENDIF(NOT FOUND_CXXENV)
|
2007-01-05 03:41:39 +08:00
|
|
|
|
|
|
|
#COMPIELR MANUAL SELECTION
|
2006-06-20 06:00:41 +08:00
|
|
|
#INCLUDE(${PROJECT_CMAKE}/GNUCompilers.cmake)
|
2005-11-17 11:38:21 +08:00
|
|
|
#INCLUDE(${PROJECT_CMAKE}/Intel8.cmake)
|
2004-08-25 03:21:10 +08:00
|
|
|
#INCLUDE(${PROJECT_CMAKE}/IBMCompilers.cmake)
|
|
|
|
#INCLUDE(${PROJECT_CMAKE}/KCCCompilers.cmake)
|
2005-07-08 02:52:14 +08:00
|
|
|
#INCLUDE(${PROJECT_CMAKE}/Intel7.cmake)
|
2004-08-25 03:21:10 +08:00
|
|
|
|
2006-04-15 05:54:50 +08:00
|
|
|
######################################################
|
|
|
|
# DO NOT MODIFY BELOW
|
|
|
|
######################################################
|
|
|
|
INCLUDE(${CMAKE_ROOT}/Modules/FindThreads.cmake)
|
2004-08-25 03:21:10 +08:00
|
|
|
INCLUDE(${PROJECT_CMAKE}/FindLibxml2.cmake)
|
|
|
|
INCLUDE(${PROJECT_CMAKE}/FindLapack.cmake)
|
|
|
|
INCLUDE(${PROJECT_CMAKE}/FindHDF5.cmake)
|
2005-02-19 08:04:38 +08:00
|
|
|
INCLUDE(${PROJECT_CMAKE}/FindBoost.cmake)
|
2006-08-20 03:25:41 +08:00
|
|
|
#INCLUDE(${PROJECT_CMAKE}/FindFFTW.cmake)
|
2005-11-03 06:23:38 +08:00
|
|
|
|
2004-09-30 23:42:16 +08:00
|
|
|
IF(QMC_MPI)
|
2006-10-24 05:08:08 +08:00
|
|
|
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)
|
|
|
|
|
2004-09-30 23:42:16 +08:00
|
|
|
INCLUDE(${PROJECT_SOURCE_DIR}/CMake/addMPI.cmake)
|
2005-11-19 02:10:18 +08:00
|
|
|
IF(FOUND_MPI)
|
|
|
|
LINK_LIBRARIES(${MPI_LIBRARY})
|
|
|
|
ENDIF(FOUND_MPI)
|
2004-09-30 23:42:16 +08:00
|
|
|
ENDIF(QMC_MPI)
|
|
|
|
|
2004-08-25 03:21:10 +08:00
|
|
|
IF(FOUND_LIBXML2)
|
|
|
|
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
|
|
|
|
LINK_LIBRARIES(${LIBXML2_LIBRARY})
|
|
|
|
SET(HAVE_LIBXML2 1)
|
|
|
|
ENDIF(FOUND_LIBXML2)
|
|
|
|
|
2005-02-19 08:04:38 +08:00
|
|
|
IF(FOUND_BOOST)
|
|
|
|
SET(HAVE_LIBBOOST 1)
|
|
|
|
INCLUDE_DIRECTORIES(${BOOST_INCLUDE_DIR})
|
|
|
|
ENDIF(FOUND_BOOST)
|
|
|
|
|
2006-08-20 03:25:41 +08:00
|
|
|
#IF(FOUND_FFTW)
|
|
|
|
# SET(HAVE_LIBFFTW 1)
|
|
|
|
# INCLUDE_DIRECTORIES(${FFTW_INCLUDE_DIR})
|
|
|
|
# LINK_LIBRARIES(${FFTW_LIBRARY})
|
|
|
|
#ENDIF(FOUND_FFTW)
|
2006-06-06 04:02:37 +08:00
|
|
|
|
2004-08-25 03:21:10 +08:00
|
|
|
IF(FOUND_HDF5)
|
|
|
|
SET(HAVE_LIBHDF5 1)
|
|
|
|
INCLUDE_DIRECTORIES(${HDF5_INCLUDE_DIR})
|
|
|
|
LINK_LIBRARIES(${HDF5_LIBRARY})
|
2005-10-31 08:36:31 +08:00
|
|
|
#zlib
|
2007-05-23 00:35:35 +08:00
|
|
|
NCLUDE(${PROJECT_CMAKE}/FindZLIB.cmake)
|
2005-09-05 01:48:03 +08:00
|
|
|
IF(ZLIB_FOUND)
|
|
|
|
LINK_LIBRARIES(${ZLIB_LIBRARY})
|
|
|
|
ENDIF(ZLIB_FOUND)
|
2005-10-31 08:36:31 +08:00
|
|
|
#szlib
|
2006-10-19 04:57:15 +08:00
|
|
|
# INCLUDE(${PROJECT_CMAKE}/FindSZLIB.cmake)
|
|
|
|
# IF(SZLIB_FOUND)
|
|
|
|
# LINK_LIBRARIES(${SZLIB_LIBRARY})
|
|
|
|
# ENDIF(SZLIB_FOUND)
|
2004-08-25 03:21:10 +08:00
|
|
|
ENDIF(FOUND_HDF5)
|
|
|
|
|
|
|
|
INCLUDE_DIRECTORIES(
|
2006-10-19 05:13:15 +08:00
|
|
|
${qmcpack_SOURCE_DIR}/src
|
|
|
|
${qmcpack_BINARY_DIR}/src
|
2004-08-25 03:21:10 +08:00
|
|
|
)
|
2006-04-10 06:20:46 +08:00
|
|
|
ADD_DEFINITIONS(-DHAVE_CONFIG_H -DAPPNAMESPACE=qmcplusplus)
|
2004-08-25 03:21:10 +08:00
|
|
|
|
|
|
|
SUBDIRS(src)
|