diff options
Diffstat (limited to 'cicn-plugin/CMakeLists.txt')
-rwxr-xr-x | cicn-plugin/CMakeLists.txt | 113 |
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}) |