From 1825c775dafd591e2a9e6bf12065e8c41727b96f Mon Sep 17 00:00:00 2001 From: Klaus Aehlig Date: Thu, 25 Jul 2024 16:22:46 +0200 Subject: Add a test for the use of the "components" field of a library --- tests/test_cases/deps/components/TARGETS | 47 +++++++++++++++++++++++++++++ tests/test_cases/deps/components/bar.cpp | 9 ++++++ tests/test_cases/deps/components/bar.hpp | 6 ++++ tests/test_cases/deps/components/foo.cpp | 10 ++++++ tests/test_cases/deps/components/foo.hpp | 6 ++++ tests/test_cases/deps/components/foodep.cpp | 9 ++++++ tests/test_cases/deps/components/foodep.hpp | 6 ++++ tests/test_cases/deps/components/main.cpp | 10 ++++++ 8 files changed, 103 insertions(+) create mode 100644 tests/test_cases/deps/components/TARGETS create mode 100644 tests/test_cases/deps/components/bar.cpp create mode 100644 tests/test_cases/deps/components/bar.hpp create mode 100644 tests/test_cases/deps/components/foo.cpp create mode 100644 tests/test_cases/deps/components/foo.hpp create mode 100644 tests/test_cases/deps/components/foodep.cpp create mode 100644 tests/test_cases/deps/components/foodep.hpp create mode 100644 tests/test_cases/deps/components/main.cpp (limited to 'tests/test_cases/deps/components') diff --git a/tests/test_cases/deps/components/TARGETS b/tests/test_cases/deps/components/TARGETS new file mode 100644 index 0000000..edd62db --- /dev/null +++ b/tests/test_cases/deps/components/TARGETS @@ -0,0 +1,47 @@ +{ "combined_static_lib": + { "type": ["@", "rules", "CC", "library"] + , "name": ["combstatic"] + , "components": ["foo", "bar"] + } +, "combined_shared_lib": + { "type": ["@", "rules", "CC", "library"] + , "name": ["combshared"] + , "shared": [""] + , "components": ["foo", "bar"] + } +, "foo": + { "type": ["@", "rules", "CC", "library"] + , "name": ["foo"] + , "hdrs": ["foo.hpp"] + , "srcs": ["foo.cpp"] + , "deps": ["foodep"] + } +, "foodep": + { "type": ["@", "rules", "CC", "library"] + , "name": ["foodep"] + , "hdrs": ["foodep.hpp"] + , "srcs": ["foodep.cpp"] + } +, "bar": + { "type": ["@", "rules", "CC", "library"] + , "name": ["bar"] + , "hdrs": ["bar.hpp"] + , "srcs": ["bar.cpp"] + } +, "main": + { "type": ["@", "rules", "CC", "binary"] + , "name": ["main"] + , "srcs": ["main.cpp"] + , "private-deps": ["combined_static_lib"] + } +, "main-shared": + { "type": ["@", "rules", "CC", "binary"] + , "name": ["main"] + , "srcs": ["main.cpp"] + , "private-deps": ["combined_shared_lib"] + } +, "main-dynamic": + { "type": ["@", "rules", "CC", "install-with-deps"] + , "targets": ["main-shared"] + } +} diff --git a/tests/test_cases/deps/components/bar.cpp b/tests/test_cases/deps/components/bar.cpp new file mode 100644 index 0000000..525a3a4 --- /dev/null +++ b/tests/test_cases/deps/components/bar.cpp @@ -0,0 +1,9 @@ +#include "bar.hpp" + +#include +#include + +int bar(int x) { + std::cout << "bar(" << x << ")" << std::endl; + return x * 5; +} diff --git a/tests/test_cases/deps/components/bar.hpp b/tests/test_cases/deps/components/bar.hpp new file mode 100644 index 0000000..63f851d --- /dev/null +++ b/tests/test_cases/deps/components/bar.hpp @@ -0,0 +1,6 @@ +#ifndef BAR_HPP +#define BAR_HPP + +int bar(int); + +#endif diff --git a/tests/test_cases/deps/components/foo.cpp b/tests/test_cases/deps/components/foo.cpp new file mode 100644 index 0000000..163c6e2 --- /dev/null +++ b/tests/test_cases/deps/components/foo.cpp @@ -0,0 +1,10 @@ +#include "foo.hpp" + +#include "foodep.hpp" +#include +#include + +int foo(int x) { + std::cout << "foo(" << x << ")" << std::endl; + return foodep(x) + 7; +} diff --git a/tests/test_cases/deps/components/foo.hpp b/tests/test_cases/deps/components/foo.hpp new file mode 100644 index 0000000..f919ea3 --- /dev/null +++ b/tests/test_cases/deps/components/foo.hpp @@ -0,0 +1,6 @@ +#ifndef FOO_HPP +#define FOO_HPP + +int foo(int); + +#endif diff --git a/tests/test_cases/deps/components/foodep.cpp b/tests/test_cases/deps/components/foodep.cpp new file mode 100644 index 0000000..70dc491 --- /dev/null +++ b/tests/test_cases/deps/components/foodep.cpp @@ -0,0 +1,9 @@ +#include "foodep.hpp" + +#include +#include + +int foodep(int x) { + std::cout << "foodep(" << x << ")" << std::endl; + return x + 2; +} diff --git a/tests/test_cases/deps/components/foodep.hpp b/tests/test_cases/deps/components/foodep.hpp new file mode 100644 index 0000000..792c63b --- /dev/null +++ b/tests/test_cases/deps/components/foodep.hpp @@ -0,0 +1,6 @@ +#ifndef FOODEP_HPP +#define FOODEP_HPP + +int foodep(int); + +#endif diff --git a/tests/test_cases/deps/components/main.cpp b/tests/test_cases/deps/components/main.cpp new file mode 100644 index 0000000..b6734a2 --- /dev/null +++ b/tests/test_cases/deps/components/main.cpp @@ -0,0 +1,10 @@ +#include "foo.hpp" +#include "bar.hpp" + +#include +#include + +int main(int argc, char **argv) { + std::cout << "Hello-from-main" << std::endl; + std::cout << foo(bar(3)) << std::endl; +} -- cgit v1.2.3