| # Copyright 2019 AT&T Intellectual Property |
| # Copyright 2019 Nokia |
| # |
| # 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. |
| |
| # This source code is part of the near-RT RIC (RAN Intelligent Controller) |
| # platform project (RICP). |
| |
| cmake_minimum_required(VERSION 3.13) |
| project(e2) |
| |
| set(CMAKE_VERBOSE_MAKEFILE off) |
| |
| set(CMAKE_CXX_STANDARD 17) |
| |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDEV_PKG=1") |
| set(PROJECT_NAME "e2") |
| set(PROJECT_TEST_NAME "e2") |
| |
| |
| if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug") |
| #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -LRIC-E2-TERMINATION/tracelibcpp/build -ggdb3 -Wall -W -Wpedantic") |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -g -ggdb3 -O3 -L/usr/lib -L/usr/local/lib -Wall -Wpedantic") |
| #only c code with -O3 |
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -O3 -L/usr/lib -L/usr/local/lib -Wall -W -Wpedantic") |
| else () |
| set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -ggdb3 --coverage -L/usr/lib -L/usr/local/lib -Wall -Wpedantic") |
| #only c code with -O3 |
| set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DASN_DISABLE_OER_SUPPORT -DASN_PDU_COLLECTION -L. -ggdb3 -L/usr/lib -L/usr/local/lib -Wall -W -Wpedantic") |
| |
| endif () |
| |
| include_directories(RIC-E2-TERMINATION |
| RIC-E2-TERMINATION/3rdparty/oranE2 |
| RIC-E2-TERMINATION/3rdparty/oranE2SM |
| RIC-E2-TERMINATION/3rdparty/cxxopts/include |
| RIC-E2-TERMINATION/3rdparty/prometheus-cpp |
| RIC-E2-TERMINATION/3rdparty/prometheus-cpp/core/include |
| RIC-E2-TERMINATION/3rdparty |
| cmake-modules) |
| |
| #E2AP library |
| file(GLOB E2AP_ASN_MODULE_SRCS "RIC-E2-TERMINATION/3rdparty/oranE2/*.c") |
| file(GLOB E2AP_ASN_MODULE_HDRS "RIC-E2-TERMINATION/3rdparty/oranE2/*.h") |
| |
| add_library(asn1codec ${E2AP_ASN_MODULE_SRCS} ${E2AP_ASN_MODULE_HDRS}) |
| install(TARGETS asn1codec DESTINATION /usr/lib) |
| install(FILES ${E2AP_E2AP_ASN_MODULE_HDRS} DESTINATION /usr/include/asn1c) |
| |
| |
| #E2SM library |
| file(GLOB E2SM_ASN_MODULE_SRCS "RIC-E2-TERMINATION/3rdparty/oranE2SM/*.c") |
| file(GLOB E2SM_ASN_MODULE_HDRS "RIC-E2-TERMINATION/3rdparty/oranE2SM/*.h") |
| |
| add_library(asn1ce2smcodec ${E2SM_ASN_MODULE_SRCS} ${E2SM_ASN_MODULE_HDRS}) |
| #add_custom_command( |
| # TARGET asn1ce2smcodec |
| # POST_BUILD |
| # COMMAND objcopy |
| # ARGS --prefix-symbols=e2sm_ libasn1ce2smcodec.a |
| #) |
| |
| install(TARGETS asn1ce2smcodec DESTINATION /usr/lib) |
| install(FILES ${E2SM_ASN_MODULE_HDRS} DESTINATION /usr/include/asn1c) |
| |
| include_directories(RIC-E2-TERMINATION/TEST) |
| include_directories(RIC-E2-TERMINATION/TEST/e2smTest) |
| include_directories(RIC-E2-TERMINATION/TEST/T1) |
| include_directories(RIC-E2-TERMINATION/TEST/T2) |
| |
| |
| add_definitions(-DBOOST_LOG_DYN_LINK) |
| |
| link_libraries(nsl |
| sctp |
| gcov |
| c |
| m |
| dl |
| mdclog |
| rmr_si |
| asn1codec |
| asn1ce2smcodec |
| boost_system |
| boost_log_setup |
| boost_log |
| boost_date_time |
| boost_thread |
| boost_system |
| rt |
| tbb |
| boost_filesystem |
| cgreen |
| prometheus-cpp-core |
| prometheus-cpp-pull |
| prometheus-cpp-push |
| z |
| curl |
| pthread) |
| |
| add_executable(e2 RIC-E2-TERMINATION/sctpThread.cpp |
| RIC-E2-TERMINATION/sctpThread.h |
| RIC-E2-TERMINATION/openTracing.h |
| RIC-E2-TERMINATION/mapWrapper.h |
| RIC-E2-TERMINATION/base64.h |
| RIC-E2-TERMINATION/base64.cpp |
| RIC-E2-TERMINATION/ReadConfigFile.h |
| RIC-E2-TERMINATION/BuildRunName.h |
| # RIC-E2-TERMINATION/3rdparty/pugixml/src/pugiconfig.hpp |
| # RIC-E2-TERMINATION/3rdparty/pugixml/src/pugixml.cpp |
| # RIC-E2-TERMINATION/3rdparty/pugixml/src/pugixml.hpp |
| # RIC-E2-TERMINATION/BuildXml.h |
| ) |
| target_link_libraries(e2 libasn1ce2smcodec.a) |
| target_link_libraries(e2 librmr_si.a) |
| target_link_libraries(e2 libicui18n.a) |
| target_link_libraries(e2 libicuuc.a) |
| target_link_libraries(e2 libicudata.a) |
| target_link_libraries(e2 prometheus-cpp-core.a) |
| target_link_libraries(e2 prometheus-cpp-pull.a) |
| target_link_libraries(e2 prometheus-cpp-push.a) |
| |
| #target_link_libraries(e2 libnng.a) |
| |
| add_executable(testConfigFile |
| RIC-E2-TERMINATION/ReadConfigFile.h |
| RIC-E2-TERMINATION/TEST/ConfigurationFileTest/testConfigFile.cpp) |
| |
| add_executable(b64Test |
| RIC-E2-TERMINATION/base64.cpp |
| RIC-E2-TERMINATION/base64.h |
| RIC-E2-TERMINATION/TEST/base64/testBase64.cpp) |
| |
| |
| add_executable(sctpClient |
| RIC-E2-TERMINATION/TEST/testAsn/sctpClient/sctpClient.cpp |
| RIC-E2-TERMINATION/TEST/testAsn/sctpClient/sctpClient.h |
| RIC-E2-TERMINATION/TEST/testAsn/rmrClient/rmrClient.h |
| RIC-E2-TERMINATION/TEST/testAsn/httpServer/HttpServer.cpp |
| RIC-E2-TERMINATION/TEST/testAsn/httpServer/HttpServer.h |
| RIC-E2-TERMINATION/base64.h |
| RIC-E2-TERMINATION/base64.cpp |
| RIC-E2-TERMINATION/TEST/T1/E2Builder.h |
| |
| #RIC-E2-TERMINATION/TEST/T1/Test1.cpp |
| #RIC-E2-TERMINATION/TEST/T1/ |
| ) |
| target_link_libraries(sctpClient libpistache.so) |
| target_link_libraries(sctpClient librmr_si.a) |
| |
| add_executable(setUpMessages |
| RIC-E2-TERMINATION/TEST/testAsn/setUpMessages/SetUpMessages.cpp |
| RIC-E2-TERMINATION/BuildRunName.h |
| ) |
| |
| #find_package(RapidJSON) |
| |
| add_executable(teste2 |
| RIC-E2-TERMINATION/TEST/e2test.h |
| RIC-E2-TERMINATION/TEST/e2test.cpp |
| ) |
| |
| |
| # Locate GTest |
| string(REPLACE " " ";" REPLACED_FLAGS ${CMAKE_CXX_FLAGS}) |
| string(CONCAT FINAL_FLAG ${REPLACED_FLAGS} ";-DUNIT_TEST") |
| find_package(GTest REQUIRED) |
| include_directories(${GTEST_INCLUDE_DIRS}) |
| # Link runTests with what we want to test and the GTest and pthread library |
| add_executable(sctp_test /opt/e2/RIC-E2-TERMINATION/TEST/sctp_thread_test.cpp |
| RIC-E2-TERMINATION/sctpThread.h |
| RIC-E2-TERMINATION/sctpThread.cpp |
| RIC-E2-TERMINATION/base64.h |
| RIC-E2-TERMINATION/base64.cpp |
| |
| ) |
| target_link_libraries(sctp_test ${GTEST_LIBRARIES} pthread) |
| target_compile_options(sctp_test PRIVATE ${FINAL_FLAG}) |
| |
| |
| if (CMAKE_BUILD_TYPE STREQUAL "Debug") |
| LIST(APPEND CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/cmake_modules") |
| set(CMAKE_BUILD_TYPE "Debug") |
| include(cmake-modules/CodeCoverage.cmake) |
| target_link_libraries(${PROJECT_TEST_NAME} gcov) |
| |
| set(LDFLAGS "--coverage -fprofile-arcs") |
| message("PROJECT_SOURCE_DIR: ${PROJECT_SOURCE_DIR}") |
| |
| # setup_target_for_coverage_lcov(${PROJECT_NAME}_coverage ${PROJECT_TEST_NAME} coverage) |
| set(COVERAGE_LCOV_EXCLUDES "${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/3rdparty/*" |
| "${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/oranE2/*" |
| "${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/TEST/*" |
| "${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/config/*") |
| |
| set(COVERAGE_EXCLUDES '${PROJECT_SOURCE_DIR}/config' |
| ${PROJECT_SOURCE_DIR}/log' |
| '${PROJECT_SOURCE_DIR}/docs' |
| '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/3rdparty' |
| '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/oranE2' |
| '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/TEST' |
| '${PROJECT_SOURCE_DIR}/RIC-E2-TERMINATION/config') |
| append_coverage_compiler_flags() |
| SETUP_TARGET_FOR_COVERAGE_LCOV(NAME e2_coverage |
| EXECUTABLE e2 |
| DEPENDENCIES e2) |
| endif () |