File: scalapack.cmake

package info (click to toggle)
tiledarray 1.0.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 9,568 kB
  • sloc: cpp: 53,449; javascript: 1,599; sh: 393; ansic: 226; python: 223; xml: 195; makefile: 36
file content (84 lines) | stat: -rw-r--r-- 2,909 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84

# -*- mode: cmake -*-

###################
# Find dependencies related to ScaLAPACK
###################

if( NOT TARGET scalapackpp::scalapackpp )
  find_package( scalapackpp CONFIG QUIET HINTS ${SCALAPACKPP_ROOT_DIR} )
endif()

if( TARGET scalapackpp::scalapackpp )

  message( STATUS "Found scalapackpp!" )

else()

  message(STATUS "Could not find scalapackpp! Building..." )

  include( DownloadProject )
  download_project(
    PROJ                blacspp
    GIT_REPOSITORY      https://github.com/wavefunction91/blacspp.git
    GIT_TAG             ${TA_TRACKED_BLACSPP_TAG}
    PREFIX              ${PROJECT_BINARY_DIR}/external
    UPDATE_DISCONNECTED 1
  )
  download_project(
    PROJ                scalapackpp
    GIT_REPOSITORY      https://github.com/wavefunction91/scalapackpp.git
    GIT_TAG             ${TA_TRACKED_SCALAPACKPP_TAG}
    PREFIX              ${PROJECT_BINARY_DIR}/external
    UPDATE_DISCONNECTED 1
  )

  if( DEFINED SCALAPACK_LIBRARIES )
    set( scalapack_LIBRARIES ${SCALAPACK_LIBRARIES} )
    set( blacs_LIBRARIES     ${SCALAPACK_LIBRARIES} )
  endif()

  set( BLACSPP_ENABLE_TESTS OFF )
  set( SCALAPACKPP_ENABLE_TESTS OFF )
  add_subdirectory( ${blacspp_SOURCE_DIR} ${blacspp_BINARY_DIR} )
  add_subdirectory( ${scalapackpp_SOURCE_DIR} ${scalapackpp_BINARY_DIR} )

  install( TARGETS blacspp scalapackpp EXPORT tiledarray COMPONENT tiledarray )
  # Add these dependencies to External
  add_dependencies(External-tiledarray scalapackpp blacspp)

  # set {blacspp,scalapackpp}_CONFIG to the install location so that we know where to find it
  set(blacspp_CONFIG ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/blacspp/blacspp-config.cmake)
  set(scalapackpp_CONFIG ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/cmake/scalapackpp/scalapackpp-config.cmake)

endif()

add_library( TiledArray_SCALAPACK INTERFACE )
target_link_libraries( TiledArray_SCALAPACK INTERFACE scalapackpp::scalapackpp blacspp::blacspp)
#target_compile_definitions( TiledArray_SCALAPACK INTERFACE "TA_ENABLE_SCALAPACK" )

#get_property( _SCALAPACK_INCLUDE_DIRS
#        TARGET   scalapackpp::scalapackpp
#        PROPERTY INTERFACE_INCLUDE_DIRECTORIES
#        )
#
#get_property( _SCALAPACK_LIBRARIES
#        TARGET   scalapackpp::scalapackpp
#        PROPERTY INTERFACE_LINK_LIBRARIES
#        )
#
#get_property( _SCALAPACK_COMPILE_FEATURES
#        TARGET   scalapackpp::scalapackpp
#        PROPERTY INTERFACE_COMPILE_FEATURES
#        )
#
#set_target_properties( TiledArray_SCALAPACK PROPERTIES
#        INTERFACE_INCLUDE_DIRECTORIES "${_SCALAPACK_INCLUDE_DIRS}"
#        INTERFACE_LINK_LIBRARIES      "${_SCALAPACK_LIBRARIES}"
#        INTERFACE_COMPILE_FEATURES    "${_SCALAPACK_COMPILE_FEATURES}"
#        INTERFACE_COMPILE_DEFINITIONS "TA_ENABLE_SCALAPACK"
#        )

install( TARGETS TiledArray_SCALAPACK EXPORT tiledarray COMPONENT tiledarray )

set( TILEDARRAY_HAS_SCALAPACK 1 )