mirror of https://github.com/QMCPACK/qmcpack.git
Unified check for sincos. First try at checking for power9
This commit is contained in:
parent
a0585156d8
commit
12a7658f55
|
@ -0,0 +1,29 @@
|
|||
INCLUDE(${CMAKE_ROOT}/Modules/CheckCXXSourceCompiles.cmake)
|
||||
|
||||
SET(SINCOS_INCLUDE math.h)
|
||||
|
||||
SET(ENABLE_MASS FALSE CACHE BOOL "ENABLE MASS math libraries for Power architecture")
|
||||
# This needs to go before HAVE_SINCOS
|
||||
IF(ENABLE_MASS)
|
||||
INCLUDE(CMake/FindIBMMass.cmake)
|
||||
IF(HAVE_MASS)
|
||||
SET(CMAKE_REQUIRED_INCLUDES ${MASS_INCLUDE_DIRECTORIES} ${CMAKE_REQUIRED_INCLUDES})
|
||||
SET(CMAKE_REQUIRED_LINK_OPTIONS ${MASS_LINKER_FLAGS})
|
||||
SET(CMAKE_REQUIRED_LIBRARIES ${MASS_LIBRARIES})
|
||||
ENDIF(HAVE_MASS)
|
||||
ENDIF(ENABLE_MASS)
|
||||
|
||||
MESSAGE("CMAKE_REQUIRED_INCLUDES: ${CMAKE_REQUIRED_INCLUDES}")
|
||||
MESSAGE("CMAKE_REQUIRED_LINK_OPTIONS: ${CMAKE_REQUIRED_LINK_OPTIONS}")
|
||||
MESSAGE("CMAKE_REQUIRED_LIBRARIES: ${CMAKE_REQUIRED_LIBRARIES}")
|
||||
|
||||
SET( SINCOS_TEST_SRC
|
||||
"#include \"${SINCOS_INCLUDE}\"
|
||||
int main(void) {
|
||||
double input = 1.1;
|
||||
double outsin, outcos;;
|
||||
sincos(input,&outsin, &outcos);
|
||||
}
|
||||
")
|
||||
|
||||
CHECK_CXX_SOURCE_COMPILES("${SINCOS_TEST_SRC}" HAVE_SINCOS)
|
|
@ -23,10 +23,12 @@ if (MASS_LINK_DIRECTORIES-NOTFOUND)
|
|||
"not found in MASS_ROOT/(${SUFFIXES})")
|
||||
endif (MASS_LINK_DIRECTORIES-NOTFOUND)
|
||||
message("MASS_LINK_DIRECTORIES: ${MASS_LINK_DIRECTORIES}")
|
||||
set(MASS_LINKER_FLAGS "-L${MASS_LINK_DIRECTORIES} -Wl,-rpath,${MASS_LINK_DIRECTORIES}")
|
||||
set(MASS_LIBRARIES "-lmassp9 -lmass_simdp9 -lmassvp9")
|
||||
|
||||
# Check for mkl.h
|
||||
set(MASS_LINKER_FLAGS -L${MASS_LINK_DIRECTORIES} -Wl,-rpath,${MASS_LINK_DIRECTORIES})
|
||||
if (CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL ppc64le)
|
||||
set(MASS_LIBRARIES "-lmassp9 -lmass_simdp9 -lmassvp9")
|
||||
else (CMAKE_HOST_SYSTEM_PROCESSOR ppc64le)
|
||||
set(MASS_LIBRARIES "-lmass -lmass_simd -lmassv")
|
||||
endif ()
|
||||
FILE( WRITE "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/src_mass.cxx"
|
||||
"#include <math.h>
|
||||
#include <mass.h>
|
||||
|
@ -63,6 +65,7 @@ IF ( HAVE_MASS )
|
|||
include_directories( ${MASS_INCLUDE_DIRECTORIES} )
|
||||
set( HAVE_VECTOR_MATH 1 )
|
||||
set( HAVE_MASSV 1 )
|
||||
set( SINCOS_INCLUDE mass.h )
|
||||
MESSAGE(STATUS "MASS found: HAVE_MASS=${HAVE_MASS}, HAVE_MASS_VML=${HAVE_MASS}")
|
||||
ELSE( HAVE_MASS )
|
||||
SET( MASS_FOUND 0 )
|
||||
|
|
|
@ -33,6 +33,14 @@ SET(QMCPACK_VERSION_MINOR 8)
|
|||
SET(QMCPACK_VERSION_PATCH 9)
|
||||
SET(QMCPACK_VERSION "${QMCPACK_VERSION_MAJOR}.${QMCPACK_VERSION_MINOR}.${QMCPACK_VERSION_PATCH}")
|
||||
|
||||
######################################################
|
||||
# Directory where customize cmake files reside
|
||||
######################################################
|
||||
SET (PROJECT_CMAKE ${qmcpack_SOURCE_DIR}/CMake)
|
||||
|
||||
SET(QMCPACK_UNIT_TEST_DIR ${qmcpack_BINARY_DIR}/tests/bin)
|
||||
|
||||
|
||||
IF (COMPILING_ON_BGQ)
|
||||
# YL: Put this after PROJECT(qmcpack) because COMPILING_ON_BGQ is defined
|
||||
# in BGQ toolchain file which is loaded by PROJECT().
|
||||
|
@ -201,27 +209,9 @@ INCLUDE(${CMAKE_ROOT}/Modules/CheckFunctionExists.cmake)
|
|||
INCLUDE(${CMAKE_ROOT}/Modules/CheckCXXSymbolExists.cmake)
|
||||
INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFile.cmake)
|
||||
INCLUDE(${CMAKE_ROOT}/Modules/CheckTypeSize.cmake)
|
||||
INCLUDE(${CMAKE_ROOT}/Modules/CheckCXXSourceCompiles.cmake)
|
||||
|
||||
SET(ENABLE_MASS FALSE CACHE BOOL "ENABLE MASS math libraries for Power architecture")
|
||||
# This needs to go before HAVE_SINCOS
|
||||
IF(ENABLE_MASS)
|
||||
INCLUDE(CMake/FindIBMMass.cmake)
|
||||
IF(HAVE_MASS)
|
||||
SET(CMAKE_REQUIRED_INCLUDES "${MASS_INCLUDE_DIRECTORIES} ${CMAKE_REQUIRED_INCLUDES}")
|
||||
SET(CMAKE_REQUIRED_LINK_OPTIONS "${MASS_LINKER_FLAGS}")
|
||||
SET(CMAKE_REQUIRED_LIBRARIES "${MASS_LIBRARIES}")
|
||||
ENDIF(HAVE_MASS)
|
||||
ENDIF(ENABLE_MASS)
|
||||
INCLUDE(${PROJECT_CMAKE}/CheckSincos.cmake)
|
||||
|
||||
MESSAGE("CMAKE_REQUIRED_INCLUDES: ${CMAKE_REQUIRED_INCLUDES}")
|
||||
|
||||
IF(HAVE_MASS)
|
||||
# CMake/FindMASS checks for sincos as well
|
||||
SET(HAVE_SINCOS 1)
|
||||
ELSE(HAVE_MASS)
|
||||
CHECK_FUNCTION_EXISTS(sincos HAVE_SINCOS)
|
||||
ENDIF()
|
||||
CHECK_FUNCTION_EXISTS(posix_memalign HAVE_POSIX_MEMALIGN)
|
||||
|
||||
CHECK_INCLUDE_FILE(dlfcn.h HAVE_DLFCN_H)
|
||||
|
@ -284,13 +274,6 @@ SET(HAVE_LIBBLITZ 0)
|
|||
SET(HAVE_LIBGSL 0)
|
||||
SET(MAC_VECLIB 0)
|
||||
|
||||
######################################################
|
||||
# Directory where customize cmake files reside
|
||||
######################################################
|
||||
SET (PROJECT_CMAKE ${qmcpack_SOURCE_DIR}/CMake)
|
||||
|
||||
SET(QMCPACK_UNIT_TEST_DIR ${qmcpack_BINARY_DIR}/tests/bin)
|
||||
|
||||
######################################################
|
||||
# Git information (see src/CMakeLists.txt for the
|
||||
# command to get repository information)
|
||||
|
@ -575,6 +558,7 @@ INCLUDE(${CMAKE_ROOT}/Modules/FindThreads.cmake)
|
|||
|
||||
SET(QMC_UTIL_LIBS ${LAPACK_LIBRARY} ${BLAS_LIBRARY})
|
||||
|
||||
# This needs a better place to live. as does all the IF( HAVE_MKL ) stuff
|
||||
IF(HAVE_MASS)
|
||||
SET(CMAKE_CXX_FLAGS ${MASS_FLAGS} ${CMAKE_CXX_FLAGS})
|
||||
SET(CMAKE_C_FLAGS ${MASS_FLAGS} ${CMAKE_C_FLAGS})
|
||||
|
|
Loading…
Reference in New Issue