File: LibxcConfig.cmake.in

package info (click to toggle)
libxc 5.2.3-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 196,988 kB
  • sloc: ansic: 31,506; f90: 3,369; perl: 1,392; python: 966; makefile: 425; sh: 318
file content (124 lines) | stat: -rw-r--r-- 3,799 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
# LibxcConfig.cmake
# ------------------
#
# Libxc cmake module.
# This module sets the following variables in your project:
#
# ::
#
#   Libxc_FOUND - true if Libxc and all required components found on the system
#   Libxc_VERSION - Libxc version in format Major.Minor.Release
#   Libxc_INCLUDE_DIRS - Directory where Libxc header is located.
#   Libxc_INCLUDE_DIR - same as DIRS
#   Libxc_DEFINITIONS: Definitions necessary to use Libxc, namely USING_Libxc.
#   Libxc_LIBRARIES - Libxc library to link against.
#   Libxc_LIBRARY - same as LIBRARIES
#
#
# Available components: shared static
#
# ::
#
#   shared - search for only shared library
#   static - search for only static library
#   C - search for C library only, even if Fortran available
#   Fortran - search for Fortran library (C library always present)
#
#
# Exported targets:
#
# ::
#
# If Libxc is found, this module defines the following :prop_tgt:`IMPORTED`
# targets. Target is shared _or_ static, so, for both, use separate, not
# overlapping, installations. ::
#
#   Libxc::xc - the main Libxc library with header & defs attached.
#   Libxc::xcf03 - the Fortran 2003 Libxc library that depends on Libxc::xc
#
#
# Suggested usage:
#
# ::
#
#   find_package(Libxc)
#   find_package(Libxc 5.1.0 EXACT CONFIG REQUIRED COMPONENTS shared C)
#
#
# The following variables can be set to guide the search for this package:
#
# ::
#
#   Libxc_DIR - CMake variable, set to directory containing this Config file
#   CMAKE_PREFIX_PATH - CMake variable, set to root directory of this package
#   PATH - environment variable, set to bin directory of this package
#   CMAKE_DISABLE_FIND_PACKAGE_Libxc - CMake variable, disables
#     find_package(Libxc) when not REQUIRED, perhaps to force internal build

@PACKAGE_INIT@

set(PN Libxc)
set (_valid_components
    static
    shared
    C
    Fortran
)

# check library style component
if(@BUILD_SHARED_LIBS@)
    set(${PN}_shared_FOUND 1)
else()
    set(${PN}_static_FOUND 1)
endif()
list(FIND ${PN}_FIND_COMPONENTS "shared" _seek_shared)
list(FIND ${PN}_FIND_COMPONENTS "static" _seek_static)

# check library language component
set(${PN}_C_FOUND 1)
list(FIND ${PN}_FIND_COMPONENTS "C" _seek_C)
if(@ENABLE_FORTRAN@)
    set(${PN}_Fortran_FOUND 1)
endif()
list(FIND ${PN}_FIND_COMPONENTS "Fortran" _seek_Fortran)

set(${PN}_DEFINITIONS USING_${PN})

check_required_components(${PN})

#-----------------------------------------------------------------------------
# Don't include targets if this file is being picked up by another
# project which has already built this as a subproject
#-----------------------------------------------------------------------------
if(NOT TARGET ${PN}::xc)

    if(_seek_Fortran GREATER -1)
        set(_target "xcf03")
        include("${CMAKE_CURRENT_LIST_DIR}/${PN}Targets-Fortran.cmake")
    elseif(_seek_C GREATER -1)
        set(_target "xc")
        include("${CMAKE_CURRENT_LIST_DIR}/${PN}Targets-C.cmake")
    elseif(@ENABLE_FORTRAN@)
        set(_target "xcf03")
        include("${CMAKE_CURRENT_LIST_DIR}/${PN}Targets-Fortran.cmake")
    else()
        set(_target "xc")
        include("${CMAKE_CURRENT_LIST_DIR}/${PN}Targets-C.cmake")
    endif()

    get_property(_loc TARGET ${PN}::${_target} PROPERTY LOCATION)
    set(${PN}_LIBRARY ${_loc})
    get_property(_ill TARGET ${PN}::${_target} PROPERTY INTERFACE_LINK_LIBRARIES)
    set(${PN}_LIBRARIES ${_ill})

    get_property(_id TARGET ${PN}::${_target} PROPERTY INCLUDE_DIRECTORIES)
    set(${PN}_INCLUDE_DIR ${_id})
    get_property(_iid TARGET ${PN}::${_target} PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
    set(${PN}_INCLUDE_DIRS ${_iid})

    #message("Libxc::${_target}")
    #message("loc ${_loc}")
    #message("ill ${_ill}")
    #message("id  ${_id}")
    #message("iid ${_iid}")
endif()