File: FindOpenMM.cmake

package info (click to toggle)
macromoleculebuilder 4.0.0%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 122,552 kB
  • sloc: cpp: 23,631; python: 5,047; ansic: 2,101; awk: 145; perl: 144; makefile: 40; sh: 21
file content (107 lines) | stat: -rw-r--r-- 3,396 bytes parent folder | download | duplicates (3)
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
# FindOpenMM.cmake
# Try to find OpenMM molecular dynamics API
#
# Created August 26, 2009 by Christopher Bruns
# Simbios National Center for Biomedical Computation
# Stanford University
#
# Once done this will define:
#
#   OpenMM_FOUND - Whether search for OpenMM libraries and headers succeeded.
#   OpenMM_INCLUDE_DIR - location of OpenMM.h
#   OpenMM_LIBRARY - location of shared libOpenMM.so or OpenMM.dll
#   OpenMM_DEBUG_LIBRARY - location of shared libOpenMM_d.so or OpenMM_d.dll
#   OpenMM_LIBRARIES - cmake variable with one or both of OpenMM_LIBRARY and OpenMM_DEBUG_LIBRARY
#   OpenMM_STATIC_LIBRARY - location of libOpenMM_static.a or OpenMM_static.lib
#
#
# == Using OpenMM libraries ==
#
#     find_package(OpenMM)
#     if(OpenMM_FOUND)
#         include_directories(${OpenMM_INCLUDE_DIR})
#         target_link_libraries(Foo ${OpenMM_LIBRARIES})
#     endif()
#

# Generic locations to search for OpenMM files
set(OpenMM_SEARCH_PATHS
    ${SimTK_SDK} # SimTK.org nightly builds location
    ${OpenMM_SDK}
    "/usr/local"
    $ENV{ProgramFiles}
    "C:/Program Files"
)

# Include files
find_path(OpenMM_INCLUDE_DIR "OpenMM.h"
    PATHS ${OpenMM_SEARCH_PATHS}
    PATH_SUFFIXES "include" "OpenMM/include" "openmm/include"
    DOC "Location of OpenMM include files"
)

# Shared Release library

# Look first for libraries next door to include files
find_library(OpenMM_LIBRARY NAMES OpenMM
    PATHS "${OpenMM_INCLUDE_DIR}/.."
    NO_DEFAULT_PATH
    DOC "Location of OpenMM shared library"
)
# If above search fails, search for OpenMM library in all locations
find_library(OpenMM_LIBRARY NAMES OpenMM
    PATHS ${OpenMM_SEARCH_PATHS}
    PATH_SUFFIXES "lib" "OpenMM/lib" "openmm/lib"
)

find_library(OpenMM_DEBUG_LIBRARY NAMES OpenMM_d
    PATHS "${OpenMM_INCLUDE_DIR}/.."
    DOC "Location of OpenMM debug library"
    NO_DEFAULT_PATH
)
find_library(OpenMM_DEBUG_LIBRARY NAMES OpenMM_d
    PATHS ${OpenMM_SEARCH_PATHS}
    PATH_SUFFIXES "lib" "OpenMM/lib" "openmm/lib"
)

# Static library

find_library(OpenMM_STATIC_LIBRARY NAMES OpenMM_static
    PATHS "${OpenMM_INCLUDE_DIR}/.."
    DOC "Location of OpenMM static library"
    NO_DEFAULT_PATH
)
find_library(OpenMM_STATIC_LIBRARY NAMES OpenMM_static
    PATHS ${OpenMM_SEARCH_PATHS}
    PATH_SUFFIXES "lib" "OpenMM/lib" "openmm/lib"
)

# Set composite OpenMM_LIBRARIES variable
set(LIBS "")
if(OpenMM_LIBRARY AND OpenMM_DEBUG_LIBRARY)
    set(LIBS optimized ${OpenMM_LIBRARY} debug ${OpenMM_DEBUG_LIBRARY})
elseif(OpenMM_LIBRARY)
    set(LIBS ${OpenMM_LIBRARY})
elseif(OpenMM_DEBUG_LIBRARY)
    set(LIBS ${OpenMM_DEBUG_LIBRARY})
elseif(OpenMM_STATIC_LIBRARY)
    set(LIBS ${OpenMM_STATIC_LIBRARY})
endif(OpenMM_LIBRARY AND OpenMM_DEBUG_LIBRARY)
set(OpenMM_LIBRARIES "${LIBS}" CACHE STRING "OpenMM Link Libraries" FORCE)

# CMAKE 2.4 does not have FindPackageHandleStandardArgs
# So to heck with CMAKE 2.4...
set(cmv "${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}")
if(cmv MATCHES "2.4")
else(cmv MATCHES "2.4")
    include(FindPackageHandleStandardArgs OPTIONAL)
    find_package_handle_standard_args(OpenMM DEFAULT_MSG OpenMM_INCLUDE_DIR OpenMM_LIBRARIES)
endif(cmv MATCHES "2.4")

mark_as_advanced(
    OpenMM_INCLUDE_DIR
    OpenMM_LIBRARY
    OpenMM_DEBUG_LIBRARY
    OpenMM_STATIC_LIBRARY
    OpenMM_LIBRARIES
)