CMake as an alternative to autotools (experimental)
[vpp.git] / src / vcl / CMakeLists.txt
1 # Copyright (c) 2018 Cisco and/or its affiliates.
2 # Licensed under the Apache License, Version 2.0 (the "License");
3 # you may not use this file except in compliance with the License.
4 # You may obtain a copy of the License at:
5 #
6 #     http://www.apache.org/licenses/LICENSE-2.0
7 #
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS,
10 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11 # See the License for the specific language governing permissions and
12 # limitations under the License.
13
14 ##############################################################################
15 # vppcom shared library
16 ##############################################################################
17 add_library(vppcom SHARED
18   vppcom.c
19   vcl_bapi.c
20   vcl_cfg.c
21   vcl_event.c
22   vcl_private.c
23 )
24 target_link_libraries(vppcom vppinfra svm vlibmemoryclient rt pthread)
25 install(TARGETS vppcom DESTINATION lib)
26
27 ##############################################################################
28 # vcl headers
29 ##############################################################################
30 vpp_add_header_files(vcl
31   vcl_event.h
32   vppcom.h
33 )
34
35 ##############################################################################
36 # vcl tests
37 ##############################################################################
38 option(VPP_BUILD_VCL_TESTS "Build vcl tests." ON)
39 if(VPP_BUILD_VCL_TESTS)
40   set(VCL_TESTS
41     vcl_test_server
42     vcl_test_client
43     sock_test_server
44     sock_test_client
45     test_vcl_listener_server
46     test_vcl_listener_client
47   )
48   foreach(test ${VCL_TESTS})
49     add_executable(${test} ${test}.c)
50     target_link_libraries(${test} vppcom)
51   endforeach()
52 endif(VPP_BUILD_VCL_TESTS)
53