File: FindESDCANAPI.cmake

package info (click to toggle)
ycm-cmake-modules 0.13.0-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 3,640 kB
  • sloc: python: 319; sh: 181; makefile: 22
file content (85 lines) | stat: -rw-r--r-- 2,852 bytes parent folder | download
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
# SPDX-FileCopyrightText: 2012-2021 Istituto Italiano di Tecnologia (IIT)
# SPDX-FileCopyrightText: 2009 RobotCub Consortium
# SPDX-License-Identifier: BSD-3-Clause

#[=======================================================================[.rst:
FindESDCANAPI
-------------

Created::

 ESDCANAPI_INC_DIRS   - Directories to include to use esdcan api
 ESDCANAPI_LIB        - Default library to link against to use the esdcan API
 ESDCANAPI_FOUND      - If false, don't try to use esdcan API
#]=======================================================================]

if(NOT ESDCANAPI_FOUND)
  #we look for the lib, give priority to ESDCANAPI_DIR which should point to
  #the correct place, but also look in other locations. CAnSdkDir should be set
  #by the installer.
  set(ESDCANAPI_DIR $ENV{ESDCANAPI_DIR} CACHE PATH "Path to ESDCANAPI")

  if(WIN32)

    # Add possible search paths
    list(APPEND ESDCAN_LIB_DIRS ${ESDCANAPI_DIR}/develop/vc)
    list(APPEND ESDCAN_LIB_DIRS ${CanSdkDir}/develop/vc)
    list(APPEND ESDCAN_LIB_DIRS ${ESDCANAPI_DIR}/winnt)

    list(APPEND ESDCAN_INC_DIRS ${ESDCANAPI_DIR})
    list(APPEND ESDCAN_INC_DIRS ${CanSdkDir})
    
   if(CMAKE_SIZEOF_VOID_P EQUAL 8)
      # 64-bit    
      set(ESDCANAPI_ARCH "amd64")
    else()
      # 32-bit 
      set(ESDCANAPI_ARCH "i368")
    endif()

    # Build directory names depending on system architecture
    if(DEFINED ENV{PROGRAMFILES})
      list(APPEND ESDCAN_LIB_DIRS "$ENV{PROGRAMFILES}/CAN/develop/vc")
      list(APPEND ESDCAN_LIB_DIRS "$ENV{PROGRAMFILES}/ESD/CAN/SDK/lib/VC/${ESDCANAPI_ARCH}")

      list(APPEND ESDCAN_INC_DIRS "$ENV{PROGRAMFILES}/CAN")
      list(APPEND ESDCAN_INC_DIRS "$ENV{PROGRAMFILES}/ESD/CAN/SDK")
    endif()
    if(DEFINED ENV{ProgramW6432})
      list(APPEND ESDCAN_LIB_DIRS "$ENV{ProgramW6432}/CAN/develop/vc")
      list(APPEND ESDCAN_LIB_DIRS "$ENV{ProgramW6432}/ESD/CAN/SDK/lib/VC/${ESDCANAPI_ARCH}")

      list(APPEND ESDCAN_INC_DIRS "$ENV{ProgramW6432}/CAN")
      list(APPEND ESDCAN_INC_DIRS "$ENV{ProgramW6432}/ESD/CAN/SDK")
    endif()

    # Find library
    find_library(ESDCANAPI_LIB
                 NAMES "ntcan"
                 PATHS ${ESDCAN_LIB_DIRS})

    # Find include file
    find_path(ESDCANAPI_INC_DIRS
              NAMES "ntcan.h "
              PATHS ${ESDCAN_INC_DIRS}
              PATH_SUFFIXES "include")

  else()

    find_library(ESDCANAPI_LIB ntcan
                 ${ESDCANAPI_DIR}/lib32
                 ${ESDCANAPI_DIR}/lib64)
    set(ESDCANAPI_INC_DIRS ${ESDCANAPI_DIR}/lib32)

  endif()

  include(FindPackageHandleStandardArgs)
  find_package_handle_standard_args(ESDCANAPI
                                    DEFAULT_MSG
                                    ESDCANAPI_LIB
                                    ESDCANAPI_INC_DIRS)


  mark_as_advanced(ESDCANAPI_LIB ESDCANAPI_INC_DIRS)

endif()