File: FindPTU46.cmake

package info (click to toggle)
visp 3.7.0-7
  • links: PTS, VCS
  • area: main
  • in suites:
  • size: 166,380 kB
  • sloc: cpp: 392,705; ansic: 224,448; xml: 23,444; python: 13,701; java: 4,792; sh: 206; objc: 145; makefile: 118
file content (122 lines) | stat: -rw-r--r-- 3,801 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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#############################################################################
#
# ViSP, open source Visual Servoing Platform software.
# Copyright (C) 2005 - 2025 by Inria. All rights reserved.
#
# This software is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# See the file LICENSE.txt at the root directory of this source
# distribution for additional information about the GNU GPL.
#
# For using ViSP with software that can not be combined with the GNU
# GPL, please contact Inria about acquiring a ViSP Professional
# Edition License.
#
# See https://visp.inria.fr for more information.
#
# This software was developed at:
# Inria Rennes - Bretagne Atlantique
# Campus Universitaire de Beaulieu
# 35042 Rennes Cedex
# France
#
# If you have questions regarding the use of this file, please contact
# Inria at visp@inria.fr
#
# This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
# WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
#
# Description:
# Try to find libraries for Irisa's Ptu-46 pan-tilt head.
# Once run this will define:
#
# PTU46_FOUND
# PTU46_INCLUDE_DIRS
# PTU46_LIBRARIES
#
#############################################################################

IF(NOT UNIX)
  # MESSAGE("FindPTU46.cmake: Ptu-46 only available for Unix.")
  SET(PTU46_FOUND FALSE)
ELSE(NOT UNIX)

  FIND_PATH(PTU46_INCLUDE_DIR ptu.h
    $ENV{PTU46_HOME}/include
    /udd/fspindle/robot/Ptu-Evi/current/include
    /local/soft/Ptu-Evi/current/include
    )
  #MESSAGE("DBG PTU46_INCLUDE_DIR=${PTU46_INCLUDE_DIR}")

  FIND_LIBRARY(PTUPTU46_LIBRARY
    NAMES ptu
    PATHS
    $ENV{PTU46_HOME}/lib
    /udd/fspindle/robot/Ptu-Evi/current/lib
    /local/soft/Ptu-Evi/current/lib
    )
  FIND_LIBRARY(EVIPTU46_LIBRARY
    NAMES evi
    PATHS
    $ENV{PTU46_HOME}/lib
    /udd/fspindle/robot/Ptu-Evi/current/lib
    /local/soft/Ptu-Evi/current/lib
    )
  FIND_LIBRARY(SERIALPTU46_LIBRARY
    NAMES serial
    PATHS
    $ENV{PTU46_HOME}/lib
    /udd/fspindle/robot/Ptu-Evi/current/lib
    /local/soft/Ptu-Evi/current/lib
    )
  #MESSAGE("DBG PTU46_LIBRARY=${PTU46_LIBRARY}")

  ## --------------------------------

  IF(PTUPTU46_LIBRARY AND EVIPTU46_LIBRARY AND SERIALPTU46_LIBRARY)
    # The material is found. Check if it works on the requested architecture
    include(CheckCXXSourceCompiles)

    SET(CMAKE_REQUIRED_LIBRARIES ${PTUPTU46_LIBRARY} ${SERIALPTU46_LIBRARY})
    SET(CMAKE_REQUIRED_INCLUDES ${PTU46_INCLUDE_DIR})
    CHECK_CXX_SOURCE_COMPILES("
      #include <ptu.h> // Contrib for Ptu-46 robot
      int main()
      {
        Ptu ptu;
	return 0;
      }
      " PTU46_BUILD_TEST)
    #MESSAGE("PTU46_BUILD_TEST: ${PTU46_BUILD_TEST}")
    IF(PTU46_BUILD_TEST)
      SET(PTU46_LIBRARIES ${PTUPTU46_LIBRARY} ${EVIPTU46_LIBRARY}
        ${SERIALPTU46_LIBRARY})
#    ELSE()
#      MESSAGE("Ptu-46 library found but not compatible with architecture.")
    ENDIF()

  ELSE(PTUPTU46_LIBRARY AND EVIPTU46_LIBRARY AND SERIALPTU46_LIBRARY)
#     MESSAGE(SEND_ERROR "Ptu-46 library not found.")
  ENDIF(PTUPTU46_LIBRARY AND EVIPTU46_LIBRARY AND SERIALPTU46_LIBRARY)

  IF(NOT PTU46_INCLUDE_DIR)
#     MESSAGE(SEND_ERROR "Ptu-46 include dir not found.")
  ENDIF(NOT PTU46_INCLUDE_DIR)

  IF(PTU46_LIBRARIES AND PTU46_INCLUDE_DIR)
    SET(PTU46_INCLUDE_DIRS ${PTU46_INCLUDE_DIR})
    SET(PTU46_FOUND TRUE)
  ELSE(PTU46_LIBRARIES AND PTU46_INCLUDE_DIR)
    SET(PTU46_FOUND FALSE)
  ENDIF(PTU46_LIBRARIES AND PTU46_INCLUDE_DIR)

  MARK_AS_ADVANCED(
    PTU46_INCLUDE_DIR
    PTU46_LIBRARIES
    PTUPTU46_LIBRARY
    EVIPTU46_LIBRARY
    SERIALPTU46_LIBRARY
    )
ENDIF(NOT UNIX)