api: Add API support for marvell PP2 plugin
[vpp.git] / src / plugins / marvell / CMakeLists.txt
index 283a1aa..336d4d6 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-message("-- Looking for Marvell musdk")
-find_path(MUSDK_INCLUDE_DIR NAMES marvell/pp2/pp2.h)
-find_library(MUSDK_LIB NAMES musdk)
+if(NOT CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)")
+  return()
+endif()
+
+find_path(MUSDK_INCLUDE_DIR NAMES mv_std.h)
+find_library(MUSDK_LIB NAMES libmusdk.a)
 
 if(MUSDK_INCLUDE_DIR AND MUSDK_LIB)
-  add_vpp_plugin(marvell_plugin
-    marvell.api
+  get_filename_component(MUSDK_LIB_DIR ${MUSDK_LIB} DIRECTORY)
+  set(MUSDK_LINK_FLAGS "-Wl,--whole-archive,${MUSDK_LIB_DIR}/libmusdk.a,--no-whole-archive")
+  add_vpp_plugin(marvell
+    SOURCES
     plugin.c
     pp2/cli.c
     pp2/format.c
     pp2/input.c
     pp2/output.c
     pp2/pp2.c
+    pp2/pp2_api.c
+
+    API_FILES
+    pp2/pp2.api
+
+    API_TEST_SOURCES
+    pp2/pp2_test.c
+
+    LINK_FLAGS
+    ${MUSDK_LINK_FLAGS}
   )
   include_directories(${MUSDK_INCLUDE_DIR})
-  message("-- Looking for Marvell musdk - found")
+  message(STATUS "Found Marvel MUSDK in ${MUSDK_INCLUDE_DIR}")
 else()
-  message("-- Looking for Marvell musdk - not found - marvell_plugin disabled")
+  message(WARNING "Marvell MUSDK not found - marvell_plugin disabled")
 endif()