build: expose VPP_PLATFORM to out-of-tree plugins 17/42117/7
authorGuillaume Solignac <gsoligna@cisco.com>
Thu, 9 Jan 2025 11:19:31 +0000 (03:19 -0800)
committerGuillaume Solignac <gsoligna@cisco.com>
Thu, 9 Jan 2025 15:37:11 +0000 (16:37 +0100)
We move the VPP_PLATFORM logic from src/CMakeLists.txt to
cmake/cpu.cmake so that out-of-tree plugins can leverage it as well.

Type: improvement
Signed-off-by: Guillaume Solignac <gsoligna@cisco.com>
Change-Id: I767a75f45c07aed7db4034b18ab4b5c67fda06ee

src/CMakeLists.txt
src/cmake/CMakeLists.txt
src/cmake/cpu.cmake

index f6d07be..967c777 100644 (file)
 
 cmake_minimum_required(VERSION 3.13)
 
-if(DEFINED VPP_PLATFORM AND VPP_PLATFORM STREQUAL "default")
-  unset(VPP_PLATFORM)
-  unset(VPP_PLATFORM CACHE)
-  set(VPP_PLATFORM_NAME "default")
-elseif(DEFINED VPP_PLATFORM)
-  set(platform_file ${CMAKE_SOURCE_DIR}/cmake/platform/${VPP_PLATFORM}.cmake)
-  if(NOT EXISTS ${platform_file})
-     message(FATAL_ERROR "unknown platform ${VPP_PLATFORM}")
-  endif()
-  include(${platform_file})
-  set(VPP_PLATFORM_NAME ${VPP_PLATFORM})
-else()
-  set(VPP_PLATFORM_NAME "default")
-endif()
-
-if (DEFINED VPP_PLATFORM_C_COMPILER_NAMES)
-  set(CMAKE_C_COMPILER_NAMES ${VPP_PLATFORM_C_COMPILER_NAME})
-else()
-  set(CMAKE_C_COMPILER_NAMES clang gcc cc)
-endif()
-
 project(vpp C)
 
 if(NOT DEFINED CMAKE_INSTALL_LIBDIR AND EXISTS "/etc/debian_version")
index 74cd385..8f7ad0e 100644 (file)
@@ -25,3 +25,13 @@ install(
 
   COMPONENT vpp-dev
 )
+
+install(
+  DIRECTORY
+  platform/
+
+  DESTINATION
+  ${VPP_LIBRARY_DIR}/cmake/vpp/platform
+
+  COMPONENT vpp-dev
+)
index 25e966d..b1b802a 100644 (file)
@@ -21,6 +21,31 @@ macro(set_log2_cacheline_size var n)
   endif()
 endmacro()
 
+##############################################################################
+# Platform selection
+##############################################################################
+
+if(DEFINED VPP_PLATFORM AND VPP_PLATFORM STREQUAL "default")
+  unset(VPP_PLATFORM)
+  unset(VPP_PLATFORM CACHE)
+  set(VPP_PLATFORM_NAME "default")
+elseif(DEFINED VPP_PLATFORM)
+       set(platform_file ${CMAKE_CURRENT_LIST_DIR}/platform/${VPP_PLATFORM}.cmake)
+  if(NOT EXISTS ${platform_file})
+     message(FATAL_ERROR "unknown platform ${VPP_PLATFORM}")
+  endif()
+  include(${platform_file})
+  set(VPP_PLATFORM_NAME ${VPP_PLATFORM})
+else()
+  set(VPP_PLATFORM_NAME "default")
+endif()
+
+if (DEFINED VPP_PLATFORM_C_COMPILER_NAMES)
+  set(CMAKE_C_COMPILER_NAMES ${VPP_PLATFORM_C_COMPILER_NAME})
+else()
+  set(CMAKE_C_COMPILER_NAMES clang gcc cc)
+endif()
+
 ##############################################################################
 # Cache line size
 ##############################################################################