1# - try to find the OpenGL Performer library
2#
3# Users may optionally supply:
4#  PERFORMER_ROOT_DIR - a prefix to start searching.
5#
6# Cache Variables: (probably not for direct use in your scripts)
7#  PERFORMER_INCLUDE_DIR
8#  PERFORMER_LIBRARY
9#  PERFORMER_PFUI_LIBRARY - doesn't get included in PERFORMER_LIBRARIES
10#  PERFORMER_PFDU_UTIL_LIBRARY - doesn't get included in PERFORMER_LIBRARIES
11#  PERFORMER_PFV_LIBRARY - doesn't get included in PERFORMER_LIBRARIES
12#
13# Non-cache variables you might use in your CMakeLists.txt:
14#  PERFORMER_FOUND
15#  PERFORMER_INCLUDE_DIRS
16#  PERFORMER_LIBRARIES
17#  PERFORMER_RUNTIME_LIBRARY_DIRS
18#
19# Requires these CMake modules:
20#  FindPackageHandleStandardArgs (known included with CMake >=2.6.2)
21#
22# Original Author:
23# 2012 Ryan Pavlik <rpavlik@iastate.edu> <abiryan@ryand.net>
24# http://academic.cleardefinition.com
25# Iowa State University HCI Graduate Program/VRAC
26#
27# Copyright Iowa State University 2012.
28# Distributed under the Boost Software License, Version 1.0.
29# (See accompanying file LICENSE_1_0.txt or copy at
30# http://www.boost.org/LICENSE_1_0.txt)
31
32set(PERFORMER_ROOT_DIR
33	"${PERFORMER_ROOT_DIR}"
34	CACHE
35	PATH
36	"Path to search for OpenGL Performer library")
37
38
39find_path(PERFORMER_INCLUDE_DIR
40	NAMES
41	pf.h
42	HINTS
43	"${PERFORMER_ROOT_DIR}"
44	PATH_SUFFIXES
45	include
46	include/Performer
47	Performer
48	PATHS
49	$ENV{PFROOT})
50mark_as_advanced(PERFORMER_INCLUDE_DIR)
51
52if(WIN32)
53	set(_pf_libnameprefix lib)
54	find_library(PERFORMER_PFDU_UTIL_LIBRARY
55		NAMES
56		libpfdu-util
57		HINTS
58		"${PERFORMER_ROOT_DIR}"
59		PATH_SUFFIXES
60		lib
61		PATHS
62		$ENV{PFROOT})
63else()
64	set(_pf_libnameprefix)
65	find_library(PERFORMER_PFDU_LIBRARY
66		NAMES
67		pfdu
68		HINTS
69		"${PERFORMER_ROOT_DIR}"
70		PATH_SUFFIXES
71		lib
72		PATHS
73		$ENV{PFROOT})
74	find_library(PERFORMER_PFUTIL_LIBRARY
75		NAMES
76		pfutil
77		HINTS
78		"${PERFORMER_ROOT_DIR}"
79		PATH_SUFFIXES
80		lib
81		PATHS
82		$ENV{PFROOT})
83	if(PERFORMER_PFDU_LIBRARY AND PERFORMER_PFUTIL_LIBRARY)
84		set(PERFORMER_PFDU_UTIL_LIBRARY
85			${PERFORMER_PFDU_LIBRARY}
86			${PERFORMER_PFUTIL_LIBRARY})
87	endif()
88endif()
89
90find_library(PERFORMER_LIBRARY
91	NAMES
92	${_pf_libnameprefix}pf
93	HINTS
94	"${PERFORMER_ROOT_DIR}"
95	PATH_SUFFIXES
96	lib
97	PATHS
98	$ENV{PFROOT})
99find_library(PERFORMER_PFUI_LIBRARY
100	NAMES
101	${_pf_libnameprefix}pfui
102	HINTS
103	"${PERFORMER_ROOT_DIR}"
104	PATH_SUFFIXES
105	lib
106	PATHS
107	$ENV{PFROOT})
108find_library(PERFORMER_PFV_LIBRARY
109	NAMES
110	${_pf_libnameprefix}pfv
111	HINTS
112	"${PERFORMER_ROOT_DIR}"
113	PATH_SUFFIXES
114	lib
115	PATHS
116	$ENV{PFROOT})
117
118###
119# Prereq: OpenGL
120###
121
122find_package(OpenGL QUIET)
123
124# handle the QUIETLY and REQUIRED arguments and set xxx_FOUND to TRUE if
125# all listed variables are TRUE
126include(FindPackageHandleStandardArgs)
127find_package_handle_standard_args(Performer
128	DEFAULT_MSG
129	PERFORMER_LIBRARY
130	PERFORMER_PFUI_LIBRARY
131	PERFORMER_PFV_LIBRARY
132	PERFORMER_PFDU_UTIL_LIBRARY
133	PERFORMER_INCLUDE_DIR
134	OPENGL_FOUND)
135
136if(PERFORMER_FOUND)
137	set(PERFORMER_INCLUDE_DIRS
138		"${OPENGL_INCLUDE_DIR}"
139		"${PERFORMER_INCLUDE_DIR}")
140	if(PERFORMER_INCLUDE_DIR MATCHES ".*Performer.*")
141		list(APPEND PERFORMER_INCLUDE_DIRS "${PERFORMER_INCLUDE_DIR}/..")
142	endif()
143	set(PERFORMER_LIBRARIES "${OPENGL_LIBRARY}" "${PERFORMER_LIBRARY}")
144	mark_as_advanced(PERFORMER_ROOT_DIR)
145endif()
146
147mark_as_advanced(PERFORMER_LIBRARY
148	PERFORMER_PFUI_LIBRARY
149	PERFORMER_PFV_LIBRARY
150	PERFORMER_PFDU_LIBRARY
151	PERFORMER_PFUTIL_LIBRARY
152	PERFORMER_PFDU_UTIL_LIBRARY
153	PERFORMER_INCLUDE_DIR)
154