File: madness-config.cmake.in

package info (click to toggle)
madness 0.10.1~gite4aa500e-10
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 33,452 kB
  • ctags: 30,300
  • sloc: cpp: 267,232; ansic: 12,308; python: 4,961; fortran: 4,245; xml: 1,053; makefile: 717; perl: 244; yacc: 227; lex: 188; asm: 141; sh: 139; csh: 55
file content (135 lines) | stat: -rw-r--r-- 5,908 bytes parent folder | download | duplicates (2)
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# - CMAKE Config file for the MADNESS package
#
# Valid COMPONENTS: world tensor misc tensor linalg tinyxml muparser mra chem
# If MADNESS_FIND_COMPONENTS only contains world, will load the subset of targets
# necessary for MADworld
#
# The following variables are defined:
#  MADNESS_FOUND                - System has the MADNESS package
#  MADNESS_INCLUDE_DIRS         - The MADNESS include directory
#  MADNESS_LIBRARIES            - The MADNESS libraries and their dependencies
#  MADNESS_<COMPONENT>_FOUND    - System has the specified MADNESS COMPONENT
#  MADNESS_<COMPONENT>_LIBRARY  - The MADNESS COMPONENT library
#  MADNESS_F77_INTEGER_SIZE     - The default F77 integer size used for BLAS calls 
#
# Additionally MADNESS exports the following variables from its dependent packages:
# = LAPACK =
#    LAPACK_LIBRARIES           Libraries providing LAPACK and its dependents
# = MPI =
#    MPIEXEC                    Executable for running MPI programs
#    MPIEXEC_NUMPROC_FLAG       Flag to pass to MPIEXEC before giving
#                               it the number of processors to run on
#    MPIEXEC_PREFLAGS           Flags to pass to MPIEXEC directly
#                               before the executable to run.
#    MPIEXEC_POSTFLAGS          Flags to pass to MPIEXEC after other flags

# Set package version
set(MADNESS_VERSION "@MADNESS_VERSION@")

@PACKAGE_INIT@

# ensure that CMAKE_SYSTEM_NAME matches what was used to compile MADNESS
if (NOT CMAKE_SYSTEM_NAME STREQUAL @CMAKE_SYSTEM_NAME@)
  set (ERROR_MESSAGE "CMAKE_SYSTEM_NAME=${CMAKE_SYSTEM_NAME}, does not match CMAKE_SYSTEM_NAME=@CMAKE_SYSTEM_NAME@ used to compile MADNESS")
  set(MADNESS_CMAKE_TOOLCHAIN_FILE "@CMAKE_TOOLCHAIN_FILE@")
  if (MADNESS_CMAKE_TOOLCHAIN_FILE)
    set (ERROR_MESSAGE "${ERROR_MESSAGE}; make sure to use toolchain @CMAKE_TOOLCHAIN_FILE@ to compile your code!")
    message (FATAL_ERROR "${ERROR_MESSAGE}")
  endif(MADNESS_CMAKE_TOOLCHAIN_FILE)
endif()

# determine if only looking for MADworld ... this is a common scenario that loads a subset of targets
set(MADNESS_FIND_WORLD_ONLY FALSE)
list(LENGTH MADNESS_FIND_COMPONENTS MADNESS_FIND_NUM_COMPONENTS)
list(FIND MADNESS_FIND_COMPONENTS world MADNESS_FIND_COMPONENTS_world_idx)
if (MADNESS_FIND_NUM_COMPONENTS EQUAL 1 AND MADNESS_FIND_COMPONENTS_world_idx GREATER -1)
  set(MADNESS_FIND_WORLD_ONLY TRUE)
endif()

# Include library IMPORT targets
if(NOT TARGET madness AND NOT MADNESS_FIND_WORLD_ONLY)
  include("${CMAKE_CURRENT_LIST_DIR}/madness-targets.cmake")
  set(MADNESS_TOP_TARGET_LIBRARY madness)
  set(MADNESS_TARGET_COMPONENT madness)
endif()
if(NOT TARGET MADworld AND MADNESS_FIND_WORLD_ONLY)
  include("${CMAKE_CURRENT_LIST_DIR}/madworld-targets.cmake")
  set(MADNESS_TOP_TARGET_LIBRARY MADworld)
  set(MADNESS_TARGET_COMPONENT world)
endif()

# Set the madness libraries target
set(MADNESS_LIBRARIES ${MADNESS_TOP_TARGET_LIBRARY})

set(MADNESS_SOURCE_DIR "@MADNESS_SOURCE_DIR@")
set(MADNESS_BINARY_DIR "@MADNESS_BINARY_DIR@")

# Set Elemental variables
set(MADNESS_HAS_ELEMENTAL @MADNESS_HAS_ELEMENTAL@)
set(MADNESS_HAS_ELEMENTAL_EMBEDDED @MADNESS_HAS_ELEMENTAL_EMBEDDED@)

set(MADNESS_BUILD_INCLUDE_DIRS "${MADNESS_SOURCE_DIR}/src" "${MADNESS_BINARY_DIR}/src")
set(MADNESS_INSTALL_INCLUDE_DIRS "@PACKAGE_MADNESS_INSTALL_INCLUDEDIR@"
      "@PACKAGE_MADNESS_INSTALL_INCLUDEDIR@/madness/external")

if (MADNESS_HAS_ELEMENTAL)
  if(MADNESS_HAS_ELEMENTAL_EMBEDDED)
    set_and_check(Elemental_SOURCE_DIR "@Elemental_SOURCE_DIR@")
    set_and_check(Elemental_BINARY_DIR "@Elemental_BINARY_DIR@")
    list(APPEND MADNESS_BUILD_INCLUDE_DIRS
        "${Elemental_SOURCE_DIR}/include" "${Elemental_BINARY_DIR}/include"
        "${Elemental_SOURCE_DIR}/external/pmrrr/include"
        "${Elemental_BINARY_DIR}/external/pmrrr/include")
  else(MADNESS_HAS_ELEMENTAL_EMBEDDED)
    set_and_check(Elemental_SOURCE_DIR "@ELEMENTAL_SOURCE_DIR@")
    set_and_check(Elemental_BINARY_DIR "@ELEMENTAL_BINARY_DIR@")
    # elemental package and component name depends on version
    set(ELEMENTAL_PACKAGE_NAME @ELEMENTAL_PACKAGE_NAME@)
    # where to look for elemental cmake config file
    set(${ELEMENTAL_PACKAGE_NAME}_DIR "${Elemental_BINARY_DIR}")
    find_package(${ELEMENTAL_PACKAGE_NAME} REQUIRED
                 COMPONENTS REQUIRED ${ELEMENTAL_PACKAGE_NAME})
    list(APPEND MADNESS_BUILD_INCLUDE_DIRS
        "${Elemental_SOURCE_DIR}/include" "${Elemental_BINARY_DIR}/include"
        "${Elemental_SOURCE_DIR}/external/pmrrr/include"
        "${Elemental_BINARY_DIR}/external/pmrrr/include"
        "${Elemental_SOURCE_DIR}/external/pmrrr/suite_sparse"
        "${Elemental_BINARY_DIR}/external/pmrrr/suite_sparse"
        )
  endif(MADNESS_HAS_ELEMENTAL_EMBEDDED)
endif(MADNESS_HAS_ELEMENTAL)

# define MADNESS_INCLUDE_DIRS according to where we are compiling: MADNESS build tree or outside
# external packages should use MADNESS_BUILD_INCLUDE_DIRS and MADNESS_INSTALL_INCLUDE_DIRS directly
if(CMAKE_CURRENT_LIST_DIR EQUAL MADNESS_BINARY_DIR)
  set(MADNESS_INCLUDE_DIRS "${MADNESS_BUILD_INCLUDE_DIRS}")
else()
  set(MADNESS_INCLUDE_DIRS "${MADNESS_INSTALL_INCLUDE_DIRS}")
endif()

# Set component variables
foreach(_comp ${MADNESS_FIND_COMPONENTS})
  if(TARGET MAD${_comp})
    set(MADNESS_${_comp}_FOUND TRUE)
    set(MADNESS_${_comp}_LIBRARY MAD${_comp})
  else()
    set(MADNESS_${_comp}_FOUND FALSE)
    set(MADNESS_${_comp}_LIBRARY "MADNESS_${_comp}_LIBRARY-NOTFOUND")
  endif()
endforeach()

# Set the Fortran 77 integer size (4 or 8)
set(MADNESS_F77_INTEGER_SIZE @FORTRAN_INTEGER_SIZE@)

check_required_components(${MADNESS_TARGET_COMPONENT})

set(MADNESS_FOUND TRUE)

########### LAPACK ############
set(LAPACK_LIBRARIES "@LAPACK_LIBRARIES@")

########### MPI ############
set(MPIEXEC "@MPIEXEC@")
set(MPIEXEC_NUMPROC_FLAG "@MPIEXEC_NUMPROC_FLAG@")
set(MPIEXEC_PREFLAGS "@MPIEXEC_PREFLAGS@")
set(MPIEXEC_POSTFLAGS "@MPIEXEC_POSTFLAGS@")