summaryrefslogtreecommitdiffstats
path: root/cicn-plugin/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'cicn-plugin/CMakeLists.txt')
-rwxr-xr-xcicn-plugin/CMakeLists.txt113
1 files changed, 113 insertions, 0 deletions
diff --git a/cicn-plugin/CMakeLists.txt b/cicn-plugin/CMakeLists.txt
new file mode 100755
index 00000000..c68a8021
--- /dev/null
+++ b/cicn-plugin/CMakeLists.txt
@@ -0,0 +1,113 @@
+# Copyright (c) 2017 Cisco and/or its affiliates.
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at:
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+cmake_minimum_required(VERSION 3.2)
+project(cicn_plugin)
+
+set(CICN_PLUGIN_SOURCE_FILES
+ cicn/cicn.c
+ cicn/cicn_face.c
+ cicn/cicn_fib.c
+ cicn/cicn_hashtb.c
+ cicn/cicn_hello.c
+ cicn/cicn_mgmt.c
+ cicn/cicn_parser.c
+ cicn/cicn_pcs.c
+ cicn/cicn_pg.c
+ cicn/node.c)
+
+set(CICN_PLUGIN_HEADER_FILES
+ cicn/cicn_all_api_h.h
+ cicn/cicn_api_handler.h
+ cicn/cicn_fib.h
+ cicn/cicn_hashtb.h
+ cicn/cicn_hello_inlines.h
+ cicn/cicn_mgmt.h
+ cicn/cicn_params.h
+ cicn/cicn_pcs.h
+ cicn/cicn_rte_mbuf_inlines.h
+ cicn/cicn_std.h
+ cicn/cicn_api.h
+ cicn/cicn_face.h
+ cicn/cicn.h
+ cicn/cicn_hello.h
+ cicn/cicn_infra.h
+ cicn/cicn_msg_enum.h
+ cicn/cicn_parser.h
+ cicn/cicn_rte_mbuf.h
+ cicn/cicn_siphash.h
+ cicn/cicn_types.h)
+
+if(NOT NO_UNIT_TEST)
+ list(APPEND CICN_PLUGIN_SOURCE_FILES
+ cicn/test/test_cicn.c
+ cicn/test/test_cicn_hash.c
+ cicn/test/test_cicn_hash_cdata.c)
+ list(APPEND CICN_PLUGIN_HEADER_FILES
+ cicn/test/test_cicn.h
+ cicn/test/test_cicn_hash.h)
+endif(NOT NO_UNIT_TEST)
+
+set(CICN_API_TEST_SOURCE_FILES
+ cicn/cicn_api_test.c)
+
+set(CICN_API_TEST_HEADER_FILES
+ cicn/cicn_api.h)
+
+execute_process(COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/cicn)
+add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/cicn/cicn.api.h
+ COMMAND
+ $ENV{CC} $ENV{CPPFLAGS} -E -P -x c-header ${CMAKE_CURRENT_SOURCE_DIR}/cicn/cicn.api |
+ vppapigen --input - --output ${CMAKE_CURRENT_BINARY_DIR}/cicn/cicn.api.h
+ --show-name ${CMAKE_CURRENT_BINARY_DIR}/cicn/cicn.api.h
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/cicn/cicn.api)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+include_directories(./)
+include_directories(cicn/test)
+include_directories(/usr/include/vpp-dpdk)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -march=native -O3")
+add_library(cicn_api_test_plugin SHARED
+ ${CICN_API_TEST_SOURCE_FILES}
+ ${CICN_API_TEST_HEADER_FILES}
+ ${CMAKE_CURRENT_BINARY_DIR}/cicn/cicn.api.h)
+
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDPDK=1 -DCICN_VPP_PLUGIN=1")
+add_library(cicn_plugin SHARED
+ ${CICN_PLUGIN_SOURCE_FILES}
+ ${CICN_PLUGIN_HEADER_FILES}
+ ${CMAKE_CURRENT_BINARY_DIR}/cicn/cicn.api.h)
+
+set_target_properties(cicn_plugin
+ PROPERTIES
+ LINKER_LANGUAGE C)
+set_target_properties(cicn_api_test_plugin
+ PROPERTIES
+ LINKER_LANGUAGE C)
+
+target_link_libraries(cicn_plugin)
+target_link_libraries(cicn_api_test_plugin)
+
+set(VPP_INSTALL_PLUGIN /usr/lib/vpp_plugins)
+set(VPP_INSTALL_API_TEST_PLUGIN /usr/lib/vpp_api_test_plugins)
+
+install(DIRECTORY DESTINATION ${VPP_INSTALL_PLUGIN})
+install(TARGETS cicn_plugin
+ DESTINATION
+ ${VPP_INSTALL_PLUGIN})
+
+install(DIRECTORY DESTINATION ${VPP_INSTALL_API_TEST_PLUGIN})
+install(TARGETS cicn_api_test_plugin
+ DESTINATION
+ ${VPP_INSTALL_API_TEST_PLUGIN})