Skip to content

Commit

Permalink
build: Fixes missing SYSTEM targets and header search paths
Browse files Browse the repository at this point in the history
(cherry picked from commit 4bd1e2b)
  • Loading branch information
cvilas committed Nov 29, 2024
1 parent c202a01 commit 5e30bf3
Show file tree
Hide file tree
Showing 22 changed files with 42 additions and 76 deletions.
34 changes: 25 additions & 9 deletions gbs/05_modules.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -331,8 +331,8 @@ add_custom_target(examples COMMENT "Building examples")
macro(define_module_example)
set(flags "")
set(single_opts NAME)
set(multi_opts SOURCES PUBLIC_INCLUDE_PATHS PRIVATE_INCLUDE_PATHS PUBLIC_LINK_LIBS
PRIVATE_LINK_LIBS)
set(multi_opts SOURCES PUBLIC_INCLUDE_PATHS PRIVATE_INCLUDE_PATHS SYSTEM_PUBLIC_INCLUDE_PATHS
SYSTEM_PRIVATE_INCLUDE_PATHS PUBLIC_LINK_LIBS PRIVATE_LINK_LIBS)

include(CMakeParseArguments)
cmake_parse_arguments(TARGET_ARG "${flags}" "${single_opts}" "${multi_opts}" ${ARGN})
Expand All @@ -356,6 +356,11 @@ macro(define_module_example)
PUBLIC ${TARGET_ARG_PUBLIC_INCLUDE_PATHS}
PRIVATE ${TARGET_ARG_PRIVATE_INCLUDE_PATHS})

target_include_directories(
${TARGET_NAME} SYSTEM BEFORE
PUBLIC ${TARGET_ARG_SYSTEM_PUBLIC_INCLUDE_PATHS}
PRIVATE ${TARGET_ARG_SYSTEM_PRIVATE_INCLUDE_PATHS})

target_link_libraries(
${TARGET_NAME}
PUBLIC ${TARGET_ARG_PUBLIC_LINK_LIBS}
Expand Down Expand Up @@ -386,8 +391,8 @@ endmacro()
macro(define_module_app)
set(flags "")
set(single_opts NAME)
set(multi_opts SOURCES PUBLIC_INCLUDE_PATHS PRIVATE_INCLUDE_PATHS PUBLIC_LINK_LIBS
PRIVATE_LINK_LIBS)
set(multi_opts SOURCES PUBLIC_INCLUDE_PATHS PRIVATE_INCLUDE_PATHS SYSTEM_PUBLIC_INCLUDE_PATHS
SYSTEM_PRIVATE_INCLUDE_PATHS PUBLIC_LINK_LIBS PRIVATE_LINK_LIBS)

include(CMakeParseArguments)
cmake_parse_arguments(TARGET_ARG "${flags}" "${single_opts}" "${multi_opts}" ${ARGN})
Expand All @@ -414,6 +419,11 @@ macro(define_module_app)
PUBLIC ${TARGET_ARG_PUBLIC_INCLUDE_PATHS}
PRIVATE ${TARGET_ARG_PRIVATE_INCLUDE_PATHS})

target_include_directories(
${TARGET_NAME} SYSTEM BEFORE
PUBLIC ${TARGET_ARG_SYSTEM_PUBLIC_INCLUDE_PATHS}
PRIVATE ${TARGET_ARG_SYSTEM_PRIVATE_INCLUDE_PATHS})

target_link_libraries(
${TARGET_NAME}
PUBLIC ${TARGET_ARG_PUBLIC_LINK_LIBS}
Expand All @@ -430,12 +440,12 @@ FetchContent_Declare(
GIT_REPOSITORY https://github.com/catchorg/Catch2.git
GIT_TAG v${CATCH2_VERSION_REQUIRED}
GIT_SHALLOW TRUE
EXCLUDE_FROM_ALL)
EXCLUDE_FROM_ALL
SYSTEM)
FetchContent_MakeAvailable(Catch2)
set_target_properties(Catch2 PROPERTIES COMPILE_OPTIONS "${THIRD_PARTY_COMPILER_WARNINGS}")
set_target_properties(Catch2 PROPERTIES CXX_CLANG_TIDY "")
set_target_properties(Catch2WithMain PROPERTIES COMPILE_OPTIONS "${THIRD_PARTY_COMPILER_WARNINGS}")
set_target_properties(Catch2WithMain PROPERTIES CXX_CLANG_TIDY "")

# ==================================================================================================
# Adds a custom target to group all test programs built on call to `make tests`
Expand Down Expand Up @@ -472,8 +482,8 @@ add_dependencies(check tests) # `check` depends on `tests` target
macro(define_module_test)
set(flags "")
set(single_opts NAME COMMAND WORKING_DIRECTORY)
set(multi_opts SOURCES PUBLIC_INCLUDE_PATHS PRIVATE_INCLUDE_PATHS PUBLIC_LINK_LIBS
PRIVATE_LINK_LIBS)
set(multi_opts SOURCES PUBLIC_INCLUDE_PATHS PRIVATE_INCLUDE_PATHS SYSTEM_PUBLIC_INCLUDE_PATHS
SYSTEM_PRIVATE_INCLUDE_PATHS PUBLIC_LINK_LIBS PRIVATE_LINK_LIBS)

include(CMakeParseArguments)
cmake_parse_arguments(TARGET_ARG "${flags}" "${single_opts}" "${multi_opts}" ${ARGN})
Expand Down Expand Up @@ -503,6 +513,11 @@ macro(define_module_test)
PUBLIC ${TARGET_ARG_PUBLIC_INCLUDE_PATHS}
PRIVATE ${TARGET_ARG_PRIVATE_INCLUDE_PATHS})

target_include_directories(
${TARGET_NAME} SYSTEM BEFORE
PUBLIC ${TARGET_ARG_SYSTEM_PUBLIC_INCLUDE_PATHS}
PRIVATE ${TARGET_ARG_SYSTEM_PRIVATE_INCLUDE_PATHS})

target_link_libraries(
${TARGET_NAME}
PUBLIC ${TARGET_ARG_PUBLIC_LINK_LIBS}
Expand Down Expand Up @@ -763,7 +778,8 @@ FetchContent_Declare(
GIT_REPOSITORY https://github.com/google/benchmark.git
GIT_TAG v${BENCHMARK_VERSION_REQUIRED}
GIT_SHALLOW TRUE
EXCLUDE_FROM_ALL)
EXCLUDE_FROM_ALL
SYSTEM)
set(BENCHMARK_ENABLE_TESTING OFF CACHE INTERNAL "")
set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE INTERNAL "")
FetchContent_MakeAvailable(benchmark)
Expand Down
3 changes: 0 additions & 3 deletions gbs/module_template/tests/tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,9 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp)

TEST_CASE("[Test]", "[@module@]") {
WARN("No tests implemented");
}

// NOLINTEND(cert-err58-cpp)

} // namespace
3 changes: 0 additions & 3 deletions modules/common/conio/tests/program_options_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp)

using ProgramOptions = grape::conio::ProgramOptions;
using ProgramDescription = grape::conio::ProgramDescription;

Expand Down Expand Up @@ -125,5 +123,4 @@ TEST_CASE("Ensures 'help' is always available", "[program_options]") {
REQUIRE(args.value().hasOption("help"));
}

// NOLINTEND(cert-err58-cpp)
} // namespace
4 changes: 0 additions & 4 deletions modules/common/ipc/tests/tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,8 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp)

TEST_CASE("[example test]", "[ipc]") {
WARN("No IPC tests implemented");
}

// NOLINTEND(cert-err58-cpp)

} // namespace
10 changes: 3 additions & 7 deletions modules/common/log/examples/spdlog_bench.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
#include "spdlog/sinks/basic_file_sink.h"
#include "spdlog/spdlog.h"

namespace {

//-------------------------------------------------------------------------------------------------
auto bmSpdlog(benchmark::State& state) {
auto sink = std::make_shared<spdlog::sinks::basic_file_sink_mt>("benchmark_spdlog_out.txt", true);
Expand Down Expand Up @@ -42,15 +44,9 @@ auto bmGrapeLog(benchmark::State& state) {
}
}

//=================================================================================================
// Benchmark our logger against spdlog (https://github.com/gabime/spdlog)

constexpr auto MAX_ITERATIONS = 1000000U;

// NOLINTBEGIN(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)
BENCHMARK(bmSpdlog)->Iterations(MAX_ITERATIONS);
BENCHMARK(bmGrapeLog)->Iterations(MAX_ITERATIONS);
// NOLINTEND(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)

// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,cppcoreguidelines-pro-bounds-array-to-pointer-decay,modernize-use-trailing-return-type)
} // namespace
BENCHMARK_MAIN();
4 changes: 2 additions & 2 deletions modules/common/log/tests/tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers)

TEST_CASE("Basic logging api works", "[log]") {
std::string stream;
Expand Down Expand Up @@ -81,6 +81,6 @@ TEST_CASE("Queue capacity and flush period are respected", "[log]") {
REQUIRE(logger.missedLogs() == NUM_MESSAGES - QUEUE_CAPACITY); //!< check overflow
}

// NOLINTEND(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers)

} // namespace
3 changes: 0 additions & 3 deletions modules/common/realtime/examples/fifo_bench.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,19 +74,16 @@ constexpr auto DATA_SIZE_MULT = 2U;
constexpr auto DATA_SIZE_MIN = 8;
constexpr auto DATA_SIZE_MAX = 2048;

// NOLINTNEXTLINE(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)
BENCHMARK(bmFifoWrite)
->RangeMultiplier(DATA_SIZE_MULT)
->Range(DATA_SIZE_MIN, DATA_SIZE_MAX)
->Iterations(MAX_ITERATIONS);

// NOLINTNEXTLINE(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)
BENCHMARK(bmFifoRead)
->RangeMultiplier(DATA_SIZE_MULT)
->Range(DATA_SIZE_MIN, DATA_SIZE_MAX)
->Iterations(MAX_ITERATIONS);

} // namespace

// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,cppcoreguidelines-pro-bounds-array-to-pointer-decay,modernize-use-trailing-return-type)
BENCHMARK_MAIN();
4 changes: 0 additions & 4 deletions modules/common/realtime/examples/mpscq_bench.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -54,12 +54,8 @@ void bmMpscqPop(benchmark::State& state) {

constexpr auto MAX_ITERATIONS = 1000000U;

// NOLINTNEXTLINE(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)
BENCHMARK(bmMpscqPush)->Iterations(MAX_ITERATIONS);

// NOLINTNEXTLINE(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)
BENCHMARK(bmMpscqPop)->Iterations(MAX_ITERATIONS);
} // namespace

// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,cppcoreguidelines-pro-bounds-array-to-pointer-decay,modernize-use-trailing-return-type)
BENCHMARK_MAIN();
4 changes: 2 additions & 2 deletions modules/common/realtime/tests/fifo_buffer_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers)

//-------------------------------------------------------------------------------------------------
TEST_CASE("Count should be zero on initialization", "[FIFOBuffer]") {
Expand Down Expand Up @@ -66,6 +66,6 @@ TEST_CASE("Attempt to read from an empty buffer should fail", "[FIFOBuffer]") {
REQUIRE(buffer.count() == 0);
}

// NOLINTEND(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers)

} // namespace
4 changes: 0 additions & 4 deletions modules/common/realtime/tests/mpscq_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp)

//-------------------------------------------------------------------------------------------------
TEST_CASE("Basline single producer and single consumer case", "[mpsc_queue]") {
static constexpr std::size_t CAPACITY = 3;
Expand Down Expand Up @@ -85,6 +83,4 @@ TEST_CASE("Popping empty queue should return false", "[mpsc_queue]") {
REQUIRE_FALSE(queue.tryPop().has_value());
}

// NOLINTEND(cert-err58-cpp)

} // namespace
4 changes: 0 additions & 4 deletions modules/common/realtime/tests/mutex_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp)

TEST_CASE("Mutex functionality", "[Mutex]") {
grape::realtime::Mutex mutex;

Expand Down Expand Up @@ -38,6 +36,4 @@ TEST_CASE("Mutex functionality", "[Mutex]") {
}
}

// NOLINTEND(cert-err58-cpp)

} // namespace
4 changes: 2 additions & 2 deletions modules/common/realtime/tests/string_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers)

using FixedString8 = grape::realtime::FixedString<7>;
using namespace std::string_literals;
Expand Down Expand Up @@ -163,6 +163,6 @@ TEST_CASE("Construct with format string", "[FixedString]") {
}
}

// NOLINTEND(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers)

} // namespace
4 changes: 2 additions & 2 deletions modules/common/script/tests/tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers)

// test configuration script
constexpr std::string_view TEST_CONFIG = R"(
Expand Down Expand Up @@ -132,6 +132,6 @@ TEST_CASE("errroneous script throws exception", "[script]") {
CHECK_THROWS_AS(grape::script::ConfigScript(std::string(ERROR_SCRIPT)), grape::Exception);
}

// NOLINTEND(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers)

} // namespace
3 changes: 0 additions & 3 deletions modules/common/serdes/docs/benchmarking/bench.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,6 @@ void bmFlexBufferDeserialize(benchmark::State& state) {
}
}

// NOLINTBEGIN(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)
BENCHMARK(bmGrapeSerialize);
BENCHMARK(bmGrapeDeserialize);
BENCHMARK(bmFastCDRSerialize);
Expand All @@ -352,9 +351,7 @@ BENCHMARK(bmMsgpackSerialize);
BENCHMARK(bmMsgpackDeserialize);
BENCHMARK(bmFlexBufferSerialize);
BENCHMARK(bmFlexBufferDeserialize);
// NOLINTEND(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)

} // namespace

// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,cppcoreguidelines-pro-bounds-array-to-pointer-decay,modernize-use-trailing-return-type)
BENCHMARK_MAIN();
3 changes: 0 additions & 3 deletions modules/common/serdes/examples/bench.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -53,12 +53,9 @@ void bmDeserialize(benchmark::State& state) {
}
}

// NOLINTBEGIN(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)
BENCHMARK(bmSerialize);
BENCHMARK(bmDeserialize);
// NOLINTEND(cppcoreguidelines-owning-memory,cert-err58-cpp,cppcoreguidelines-avoid-non-const-global-variables)

} // namespace

// NOLINTNEXTLINE(cppcoreguidelines-avoid-c-arrays,cppcoreguidelines-pro-bounds-array-to-pointer-decay,modernize-use-trailing-return-type)
BENCHMARK_MAIN();
4 changes: 2 additions & 2 deletions modules/common/serdes/tests/serdes_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers)

constexpr auto BUF_SIZE = 1024u;

Expand Down Expand Up @@ -102,6 +102,6 @@ TEST_CASE("Serialize array", "[serdes]") {
REQUIRE(deserialized_arr == arr);
}

// NOLINTEND(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers)

} // namespace
4 changes: 2 additions & 2 deletions modules/common/serdes/tests/stream_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers)

//-------------------------------------------------------------------------------------------------
TEST_CASE("OutStream functionality", "[OutStream]") {
Expand Down Expand Up @@ -72,6 +72,6 @@ TEST_CASE("InStream functionality", "[InStream]") {
}
}

// NOLINTEND(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers)
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers)

} // namespace
3 changes: 0 additions & 3 deletions modules/common/utils/tests/enum_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
#include "catch2/catch_test_macros.hpp"
#include "grape/utils/enums.h"

// NOLINTBEGIN(cert-err58-cpp)

// Test-case enumeration with customised range
enum class Color { Red = -2, Green = 0, Blue = 1, Black = 2, White = 4 };

Expand Down Expand Up @@ -63,4 +61,3 @@ TEST_CASE("Invalid string name can be cast back to enum", "[enums]") {
}

} // namespace
// NOLINTEND(cert-err58-cpp)
4 changes: 2 additions & 2 deletions modules/common/utils/tests/ip_tests.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@

namespace {

// NOLINTBEGIN(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers,bugprone-unchecked-optional-access)
// NOLINTBEGIN(cppcoreguidelines-avoid-magic-numbers,bugprone-unchecked-optional-access)

//-------------------------------------------------------------------------------------------------
TEST_CASE("Parses standard address strings to IPAddress", "[IPAddress]") {
Expand Down Expand Up @@ -185,6 +185,6 @@ TEST_CASE("Converts compressed IPv6 address to string", "[IPAddress]") {
}
}

// NOLINTEND(cert-err58-cpp,cppcoreguidelines-avoid-magic-numbers,bugprone-unchecked-optional-access)
// NOLINTEND(cppcoreguidelines-avoid-magic-numbers,bugprone-unchecked-optional-access)

} // namespace
Loading

0 comments on commit 5e30bf3

Please sign in to comment.