|
| 1 | +# Copyright (c) Meta Platforms, Inc. and affiliates. |
| 2 | +# All rights reserved. |
| 3 | +# |
| 4 | +# This source code is licensed under the BSD-style license found in the |
| 5 | +# LICENSE file in the root directory of this source tree. |
| 6 | + |
| 7 | +# Config defining how CMake should find ExecuTorch package. CMake will search |
| 8 | +# for this file and find ExecuTorch package if it is installed. Typical usage |
| 9 | +# is: |
| 10 | +# |
| 11 | +# find_package(executorch REQUIRED) |
| 12 | +# ------- |
| 13 | +# |
| 14 | +# Finds the ExecuTorch library |
| 15 | +# |
| 16 | +# This will define the following variables: |
| 17 | +# |
| 18 | +# EXECUTORCH_FOUND -- True if the system has the ExecuTorch library |
| 19 | +# EXECUTORCH_INCLUDE_DIRS -- The include directories for ExecuTorch |
| 20 | +# EXECUTORCH_LIBRARIES -- Libraries to link against |
| 21 | +# |
| 22 | +cmake_minimum_required(VERSION 3.19) |
| 23 | + |
| 24 | +# Find prebuilt _portable_lib.so. This file should be installed under |
| 25 | +# <site-packages>/executorch/share/cmake |
| 26 | +find_library(_portable_lib_LIBRARY _portable_lib.so PATHS "${CMAKE_CURRENT_LIST_DIR}/../../extension/pybindings/") |
| 27 | +set(EXECUTORCH_LIBRARIES) |
| 28 | +set(EXECUTORCH_FOUND OFF) |
| 29 | +if(_portable_lib_LIBRARY) |
| 30 | + set(EXECUTORCH_FOUND ON) |
| 31 | + message(STATUS "ExecuTorch portable library is found at ${_portable_lib_LIBRARY}") |
| 32 | + list(APPEND EXECUTORCH_LIBRARIES _portable_lib) |
| 33 | + add_library(_portable_lib STATIC IMPORTED) |
| 34 | + set(EXECUTORCH_INCLUDE_DIRS ${CMAKE_CURRENT_LIST_DIR}/../../include) |
| 35 | + set_target_properties(_portable_lib PROPERTIES |
| 36 | + IMPORTED_LOCATION "${_portable_lib_LIBRARY}" |
| 37 | + INTERFACE_INCLUDE_DIRECTORIES "${EXECUTORCH_INCLUDE_DIRS}" |
| 38 | + CXX_STANDARD 17 |
| 39 | + ) |
| 40 | +endif() |
0 commit comments