blob: cd5e68e7ade686f2d5dc4637d67b45a84be9e709 [file] [log] [blame]
#######################
#
# Licensed to the Apache Software Foundation (ASF) under one or more contributor license
# agreements. See the NOTICE file distributed with this work for additional information regarding
# copyright ownership. The ASF licenses this file to you 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.
#
#######################
set(TSUTIL_PUBLIC_HEADERS
${PROJECT_SOURCE_DIR}/include/tsutil/Assert.h
${PROJECT_SOURCE_DIR}/include/tsutil/Metrics.h
${PROJECT_SOURCE_DIR}/include/tsutil/SourceLocation.h
${PROJECT_SOURCE_DIR}/include/tsutil/DbgCtl.h
${PROJECT_SOURCE_DIR}/include/tsutil/ts_bw_format.h
${PROJECT_SOURCE_DIR}/include/tsutil/ts_diag_levels.h
${PROJECT_SOURCE_DIR}/include/tsutil/ts_errata.h
${PROJECT_SOURCE_DIR}/include/tsutil/Bravo.h
${PROJECT_SOURCE_DIR}/include/tsutil/Convert.h
${PROJECT_SOURCE_DIR}/include/tsutil/DenseThreadId.h
${PROJECT_SOURCE_DIR}/include/tsutil/Histogram.h
${PROJECT_SOURCE_DIR}/include/tsutil/LocalBuffer.h
${PROJECT_SOURCE_DIR}/include/tsutil/PostScript.h
${PROJECT_SOURCE_DIR}/include/tsutil/Strerror.h
${PROJECT_SOURCE_DIR}/include/tsutil/StringConvert.h
${PROJECT_SOURCE_DIR}/include/tsutil/Regex.h
${PROJECT_SOURCE_DIR}/include/tsutil/TsSharedMutex.h
${PROJECT_SOURCE_DIR}/include/tsutil/YamlCfg.h
${PROJECT_SOURCE_DIR}/include/tsutil/ts_ip.h
${PROJECT_SOURCE_DIR}/include/tsutil/ts_meta.h
${PROJECT_SOURCE_DIR}/include/tsutil/ts_time_parser.h
${PROJECT_SOURCE_DIR}/include/tsutil/ts_unit_parser.h
${PROJECT_SOURCE_DIR}/include/tsutil/ts_errata.h
)
add_library(
tsutil
Assert.cc
Metrics.cc
DbgCtl.cc
SourceLocation.cc
ts_diags.cc
ts_ip.cc
YamlCfg.cc
ts_unit_parser.cc
Regex.cc
ts_errata.cc
)
add_library(ts::tsutil ALIAS tsutil)
set_target_properties(tsutil PROPERTIES POSITION_INDEPENDENT_CODE TRUE PUBLIC_HEADER "${TSUTIL_PUBLIC_HEADERS}")
target_link_libraries(tsutil PUBLIC libswoc::libswoc yaml-cpp::yaml-cpp PkgConfig::PCRE2)
if(BUILD_SHARED_LIBS)
install(
TARGETS tsutil
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tsutil
)
else()
install(FILES ${TSUTIL_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/tsutil)
endif()
if(BUILD_TESTING)
add_executable(
test_tsutil
unit_tests/test_Metrics.cc
unit_tests/test_LocalBuffer.cc
unit_tests/test_PostScript.cc
unit_tests/test_Strerror.cc
unit_tests/test_StringConvert.cc
unit_tests/test_Regex.cc
unit_tests/test_ts_meta.cc
unit_tests/test_time_parser.cc
unit_tests/unit_test_main.cc
)
target_link_libraries(test_tsutil PRIVATE tsutil catch2::catch2)
add_test(NAME test_tsutil COMMAND $<TARGET_FILE:test_tsutil>)
endif()
clang_tidy_check(tsutil)