mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
64 lines
2.7 KiB
CMake
64 lines
2.7 KiB
CMake
# SPDX-License-Identifier: LicenseRef-CSSL-1.0
|
|
|
|
if (CROSS_COMPILE)
|
|
find_package(genids)
|
|
else()
|
|
add_executable(genids genids.c)
|
|
set_target_properties(genids PROPERTIES RUNTIME_OUTPUT_DIRECTORY .)
|
|
export(TARGETS genids FILE
|
|
"${CMAKE_BINARY_DIR}/genidsConfig.cmake")
|
|
endif()
|
|
add_custom_command(OUTPUT T_IDs.h
|
|
COMMAND genids ${CMAKE_CURRENT_SOURCE_DIR}/T_messages.txt T_IDs.h
|
|
DEPENDS genids T_messages.txt
|
|
COMMENT "Generating T_IDs.h from T_messages.txt"
|
|
)
|
|
add_custom_command(OUTPUT T_messages.txt.h
|
|
COMMAND xxd -i T_messages.txt ${CMAKE_CURRENT_BINARY_DIR}/T_messages.txt.h
|
|
DEPENDS T_messages.txt
|
|
COMMENT "Generating T_messages.txt.h from T_messages.txt"
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
|
)
|
|
|
|
if (CROSS_COMPILE)
|
|
find_package(_check_vcd)
|
|
else ()
|
|
add_executable(_check_vcd check_vcd.c tracer/database.c tracer/utils.c T_IDs.h T_messages.txt.h)
|
|
target_include_directories(_check_vcd PRIVATE
|
|
.. ../itti ../../../openair2/COMMON tracer
|
|
${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
|
target_compile_options(_check_vcd PRIVATE -Wall)
|
|
target_link_libraries(_check_vcd PRIVATE m pthread)
|
|
set_target_properties(_check_vcd PROPERTIES RUNTIME_OUTPUT_DIRECTORY .)
|
|
export(TARGETS _check_vcd FILE
|
|
"${CMAKE_BINARY_DIR}/_check_vcdConfig.cmake")
|
|
endif()
|
|
add_custom_target(check_vcd
|
|
COMMAND _check_vcd ${CMAKE_CURRENT_SOURCE_DIR}/T_messages.txt ${CMAKE_CURRENT_SOURCE_DIR}/../LOG/vcd_signal_dumper.h
|
|
DEPENDS _check_vcd
|
|
COMMENT "Checking validity of VCD files"
|
|
)
|
|
|
|
# This rule is specifically needed to generate T files before anything else in
|
|
# a project that uses the T.
|
|
# See root CMakeLists.txt, there are some 'add_dependencies' showing that.
|
|
# Basically we create a custom target and we make other targets depend on it.
|
|
# That forces cmake to generate T files before anything else.
|
|
add_custom_target(generate_T DEPENDS T_IDs.h check_vcd)
|
|
|
|
# even if T is off, we need the headers as many targets depend on it
|
|
# for this, create an INTERFACE (header-only) library T_headers. To ensure the
|
|
# headers have really been created, we make this headers library explicitly
|
|
# depend on the generate_T target.
|
|
add_library(T_headers INTERFACE)
|
|
add_dependencies(T_headers T_IDs.h generate_T)
|
|
target_include_directories(T_headers INTERFACE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
if(T_TRACER)
|
|
add_library(T STATIC T.c local_tracer.c T_messages_creator.c T_IDs.h T_messages.txt.h)
|
|
target_link_libraries(T PUBLIC rt)
|
|
target_link_libraries(T PRIVATE CONFIG_LIB T_headers)
|
|
|
|
add_subdirectory(tracer)
|
|
endif()
|