build: Add FreeBSD as a supported platform for cmake 48/40248/3
authorTom Jones <thj@freebsd.org>
Wed, 24 Jan 2024 10:50:14 +0000 (10:50 +0000)
committerDamjan Marion <dmarion@0xa5.net>
Sun, 18 Feb 2024 15:59:11 +0000 (15:59 +0000)
Allow FreeBSD as a platform in the main CMakeLists file. This requires a
correct target for the compiler and an explicit name in the system
check.

The included subdirs require further changes to build, but the compiler
needs to find them before it can complain.

Type: improvement
Change-Id: Ic56fe68290519ef5d3ed61082e7fb0ba0528a3fc
Signed-off-by: Tom Jones <thj@freebsd.org>
src/CMakeLists.txt

index 7c4f8db..9415c4d 100644 (file)
@@ -112,14 +112,20 @@ endif()
 ##############################################################################
 # cross compiling
 ##############################################################################
+
+if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
+  set(COMPILER_SUFFIX "linux-gnu")
+elseif (${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
+  set(COMPILER_SUFFIX "freebsd")
+endif()
+
 if(CMAKE_CROSSCOMPILING)
   set(CMAKE_IGNORE_PATH
-    /usr/lib/${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu/
-    /usr/lib/${CMAKE_HOST_SYSTEM_PROCESSOR}-linux-gnu/lib/
+    /usr/lib/${CMAKE_HOST_SYSTEM_PROCESSOR}-${COMPILER_SUFFIX}/
+    /usr/lib/${CMAKE_HOST_SYSTEM_PROCESSOR}-${COMPILER_SUFFIX}/lib/
   )
 endif()
-set(CMAKE_C_COMPILER_TARGET ${CMAKE_SYSTEM_PROCESSOR}-linux-gnu)
-
+  set(CMAKE_C_COMPILER_TARGET ${CMAKE_SYSTEM_PROCESSOR}-${COMPILER_SUFFIX})
 ##############################################################################
 # build config
 ##############################################################################
@@ -252,7 +258,7 @@ if(VPP_HOST_TOOLS_ONLY)
     DESTINATION ${VPP_RUNTIME_DIR}
     COMPONENT vpp-dev
   )
-elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
+elseif(${CMAKE_SYSTEM_NAME} MATCHES "Linux|FreeBSD")
   find_package(OpenSSL)
   set(SUBDIRS
     vppinfra svm vlib vlibmemory vlibapi vnet vpp vat vat2 vcl vpp-api