blob: 6f1b530625afdecc3e492bf40b0fa15d34d6d4c3 [file] [log] [blame]
Damjan Marion0fa900e2018-09-12 12:12:36 +02001# Copyright (c) 2018 Cisco and/or its affiliates.
2# Licensed under the Apache License, Version 2.0 (the "License");
3# you may not use this file except in compliance with the License.
4# You may obtain a copy of the License at:
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS,
10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11# See the License for the specific language governing permissions and
12# limitations under the License.
13
14get_filename_component(CMAKE_CURRENT_LIST_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
15
16find_path(VPP_INCLUDE_DIR PATH_SUFFIXES NAMES vppinfra/clib.h)
17find_program(VPP_APIGEN vppapigen)
Oliver Gilesdc203712019-12-05 23:37:36 +020018find_program(VPP_VAPI_C_GEN vapi_c_gen.py)
19find_program(VPP_VAPI_CPP_GEN vapi_cpp_gen.py)
Damjan Marion0fa900e2018-09-12 12:12:36 +020020
21if(VPP_INCLUDE_DIR AND VPP_APIGEN)
22 include_directories (${VPP_INCLUDE_DIR})
Benoît Gannee462e542023-08-21 09:24:38 +020023 include_directories (${VPP_INCLUDE_DIR}/vpp_plugins)
Damjan Marion0fa900e2018-09-12 12:12:36 +020024else()
25 message(FATAL_ERROR "VPP headers, libraries and/or tools not found")
26endif()
27
28set(VPP_EXTERNAL_PROJECT 1)
29
30include(CheckCCompilerFlag)
31
32check_c_compiler_flag("-Wno-address-of-packed-member" compiler_flag_no_address_of_packed_member)
33if (compiler_flag_no_address_of_packed_member)
34 add_definitions(-Wno-address-of-packed-member)
35endif()
36
Damjan Marion599efc62020-05-07 16:49:45 +020037set(VPP_RUNTIME_DIR "bin" CACHE STRING "Relative runtime directory path")
38set(VPP_LIBRARY_DIR "lib" CACHE STRING "Relative library directory path")
Benoît Gannefccced82021-08-19 15:17:03 +020039set(VPP_BINARY_DIR ${CMAKE_BINARY_DIR}/CMakeFiles)
Damjan Marion599efc62020-05-07 16:49:45 +020040
Damjan Marion0fa900e2018-09-12 12:12:36 +020041include(${CMAKE_CURRENT_LIST_DIR}/cpu.cmake)
42include(${CMAKE_CURRENT_LIST_DIR}/api.cmake)
43include(${CMAKE_CURRENT_LIST_DIR}/library.cmake)
44include(${CMAKE_CURRENT_LIST_DIR}/plugin.cmake)
Damjan Marioneeadc142018-09-13 20:02:12 +020045include(${CMAKE_CURRENT_LIST_DIR}/pack.cmake)