Copy latest code to master
[ric-plt/e2.git] / RIC-E2-TERMINATION / CMakeLists.txt
1 # Copyright 2019 AT&T Intellectual Property
2 # Copyright 2019 Nokia
3 #
4 # Licensed under the Apache License, Version 2.0 (the "License");
5 # you may not use this file except in compliance with the License.
6 # You may obtain a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 # Unless required by applicable law or agreed to in writing, software
11 # distributed under the License is distributed on an "AS IS" BASIS,
12 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 # See the License for the specific language governing permissions and
14 # limitations under the License.
15
16 # This source code is part of the near-RT RIC (RAN Intelligent Controller)
17 # platform project (RICP).
18
19 cmake_minimum_required(VERSION 3.13)
20 project(e2)
21
22 set(CMAKE_VERBOSE_MAKEFILE off)
23
24 set(CMAKE_CXX_STANDARD 17)
25
26 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEV_PKG=1")
27 set(PROJECT_NAME "e2")
28 set(PROJECT_TEST_NAME "e2")
29
30
31 if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug")
32     #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -LRIC-E2-TERMINATION/tracelibcpp/build -ggdb3 -Wall -W -Wpedantic")
33     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -O3 -L/usr/lib -Wall -Wpedantic")
34     #only c code with -O3
35     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -O3 -L/usr/lib -Wall -W -Wpedantic")
36 else ()
37     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -ggdb3 --coverage -L/usr/lib -Wall -Wpedantic")
38     #only c code with -O3
39     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -ggdb3 -L/usr/lib -Wall -W -Wpedantic")
40
41 endif ()
42 include_directories(RIC-E2-TERMINATION
43         RIC-E2-TERMINATION/3rdparty/asn1cFiles
44         RIC-E2-TERMINATION/3rdparty
45         cmake-modules)
46
47 file(GLOB ASN_MODULE_SRCS "RIC-E2-TERMINATION/3rdparty/asn1cFiles/*.c")
48 file(GLOB ASN_MODULE_HDRS "RIC-E2-TERMINATION/3rdparty/asn1cFiles/*.h")
49
50 add_library(asn1codec ${ASN_MODULE_SRCS} ${ASN_MODULE_HDRS})
51
52 install(TARGETS asn1codec DESTINATION /usr/lib)
53 install(FILES ${ASN_MODULE_HDRS} DESTINATION /usr/include/asn1c)
54
55
56 #include_directories(RIC-E2-TERMINATION/TEST/asn1c)
57 #
58 #file(GLOB ASNE2SMC "RIC-E2-TERMINATION/TEST/asn1c/*.c")
59 #file(GLOB ASNE2SMH "RIC-E2-TERMINATION/TEST/asn1c/*.h")
60 #RIC-E2-TERMINATION/
61 #add_library(asne2smcodec ${ASNE2SMC})
62
63
64 include_directories(RIC-E2-TERMINATION/TEST)
65 include_directories(RIC-E2-TERMINATION/TEST/e2smTest)
66 include_directories(RIC-E2-TERMINATION/TEST/T1)
67 include_directories(RIC-E2-TERMINATION/TEST/T2)
68
69
70 add_library(e2sm
71         RIC-E2-TERMINATION/TEST/e2sm.c
72         RIC-E2-TERMINATION/TEST/e2sm.h
73         ${ASN_MODULE_HDRS})
74
75 add_definitions(-DBOOST_LOG_DYN_LINK)
76
77 link_libraries(nsl
78         sctp
79         gcov
80         c
81         m
82         dl
83         mdclog
84         rmr_nng
85         nng
86         e2sm
87         asn1codec
88         boost_system
89         boost_log_setup
90         boost_log
91         boost_date_time
92         boost_thread
93         boost_system
94         rt
95         boost_filesystem
96         cgreen
97         pthread)
98
99 add_executable(e2 RIC-E2-TERMINATION/sctpThread.cpp
100         RIC-E2-TERMINATION/sctpThread.h
101         RIC-E2-TERMINATION/openTracing.h
102         RIC-E2-TERMINATION/mapWrapper.h
103         RIC-E2-TERMINATION/base64.h
104         RIC-E2-TERMINATION/base64.cpp
105         RIC-E2-TERMINATION/ReadConfigFile.h
106         )
107
108 add_executable(e2smtest
109         RIC-E2-TERMINATION/TEST/e2smTest/e2smtest.cpp)
110
111 add_executable(testConfigFile
112         RIC-E2-TERMINATION/ReadConfigFile.h
113         RIC-E2-TERMINATION/TEST/ConfigurationFileTest/testConfigFile.cpp)
114
115 add_executable(b64Test
116         RIC-E2-TERMINATION/base64.cpp
117         RIC-E2-TERMINATION/base64.h
118         RIC-E2-TERMINATION/TEST/base64/testBase64.cpp)
119
120 add_executable(T1
121         RIC-E2-TERMINATION/TEST/T1/E2Builder.h
122         RIC-E2-TERMINATION/TEST/T1/E2Setup.cpp
123         #RIC-E2-TERMINATION/TEST/T1/Test1.cpp
124         #RIC-E2-TERMINATION/TEST/T1/
125         )
126
127
128 find_package(RapidJSON)
129
130 add_executable(logTest
131         RIC-E2-TERMINATION/TEST/ASN_LOG/LogTest.h
132         RIC-E2-TERMINATION/TEST/ASN_LOG/LogTest.cpp)
133
134 add_executable(teste2
135         RIC-E2-TERMINATION/TEST/e2test.h
136         RIC-E2-TERMINATION/TEST/e2test.cpp
137         )
138
139 if (CMAKE_BUILD_TYPE STREQUAL "Debug")
140     LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules")
141     set(CMAKE_BUILD_TYPE "Debug")
142     include(cmake-modules/CodeCoverage.cmake)
143     target_link_libraries(${PROJECT_TEST_NAME} gcov)
144
145     set(LDFLAGS "--coverage -fprofile-arcs")
146
147     #    setup_target_for_coverage_lcov(${PROJECT_NAME}_coverage ${PROJECT_TEST_NAME} coverage)
148     set(COVERAGE_LCOV_EXCLUDES ${PROJECT_SOURCE_DIR}/config'
149             ${PROJECT_SOURCE_DIR}/log'
150             '${PROJECT_SOURCE_DIR}/docs'
151             '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/3rdparty'
152             '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/asn1cFiles'
153             '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/TEST'
154             '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/config')
155
156     set(COVERAGE_EXCLUDES '${PROJECT_SOURCE_DIR}/config'
157             ${PROJECT_SOURCE_DIR}/log'
158             '${PROJECT_SOURCE_DIR}/docs'
159             '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/3rdparty'
160             '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/asn1cFiles'
161             '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/TEST'
162             '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/config')
163     append_coverage_compiler_flags()
164     SETUP_TARGET_FOR_COVERAGE_LCOV(NAME e2_coverage
165             EXECUTABLE e2
166             DEPENDENCIES e2)
167 endif ()