Skip to content
Draft
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ This project supports **dual build systems** - both must be maintained:
## Coding Conventions

### Header Guards and Includes
- Use traditional `#ifndef`/`#define` header guards following existing patterns (e.g., `#ifndef XYZ_INDIRECT_H`)
- Use traditional `#ifndef`/`#define` header guards following existing patterns (e.g., `#ifndef XYZ_VALUE_TYPES_INDIRECT_H`)
- Include system headers first, then project headers
- Use forward declarations when possible

Expand Down
44 changes: 19 additions & 25 deletions BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -3,39 +3,37 @@ load("@rules_cc//cc:cc_test.bzl", "cc_test")

cc_library(
name = "feature_check",
hdrs = ["feature_check.h"],
copts = ["-Iexternal/value_types/"],
hdrs = ["xyz/value_types/feature_check.h"],
visibility = ["//visibility:public"],
)

cc_library(
name = "indirect",
srcs = ["indirect.cc"],
hdrs = ["indirect.h"],
copts = ["-Iexternal/value_types/"],
srcs = ["xyz/value_types/indirect.cc"],
hdrs = ["xyz/value_types/indirect.h"],
visibility = ["//visibility:public"],
deps = ["feature_check"],
)

cc_library(
name = "tagged_allocator",
hdrs = ["tagged_allocator.h"],
hdrs = ["xyz/value_types/tagged_allocator.h"],
)

cc_library(
name = "tracking_allocator",
hdrs = ["tracking_allocator.h"],
hdrs = ["xyz/value_types/tracking_allocator.h"],
)

cc_library(
name = "test_helpers",
hdrs = ["test_helpers.h"],
hdrs = ["xyz/value_types/test_helpers.h"],
)

cc_test(
name = "indirect_test",
size = "small",
srcs = ["indirect_test.cc"],
srcs = ["xyz/value_types/indirect_test.cc"],
deps = [
"feature_check",
"indirect",
Expand All @@ -48,9 +46,8 @@ cc_test(

cc_library(
name = "indirect_cxx14",
srcs = ["indirect_cxx14.cc"],
hdrs = ["indirect_cxx14.h"],
copts = ["-Iexternal/value_types/"],
srcs = ["xyz/value_types/indirect_cxx14.cc"],
hdrs = ["xyz/value_types/indirect_cxx14.h"],
defines = ["XYZ_INDIRECT_CXX_14"],
visibility = ["//visibility:public"],
deps = ["feature_check"],
Expand All @@ -59,7 +56,7 @@ cc_library(
cc_test(
name = "indirect_cxx17_test",
size = "small",
srcs = ["indirect_test.cc"],
srcs = ["xyz/value_types/indirect_test.cc"],
copts = ["-std=c++17"],
deps = [
"feature_check",
Expand All @@ -73,16 +70,15 @@ cc_test(

cc_library(
name = "polymorphic",
srcs = ["polymorphic.cc"],
hdrs = ["polymorphic.h"],
copts = ["-Iexternal/value_types/"],
srcs = ["xyz/value_types/polymorphic.cc"],
hdrs = ["xyz/value_types/polymorphic.h"],
visibility = ["//visibility:public"],
)

cc_test(
name = "polymorphic_test",
size = "small",
srcs = ["polymorphic_test.cc"],
srcs = ["xyz/value_types/polymorphic_test.cc"],
deps = [
"feature_check",
"polymorphic",
Expand All @@ -95,17 +91,16 @@ cc_test(

cc_library(
name = "polymorphic_cxx14",
srcs = ["polymorphic_cxx14.cc"],
hdrs = ["polymorphic_cxx14.h"],
copts = ["-Iexternal/value_types/"],
srcs = ["xyz/value_types/polymorphic_cxx14.cc"],
hdrs = ["xyz/value_types/polymorphic_cxx14.h"],
defines = ["XYZ_POLYMORPHIC_CXX_14"],
visibility = ["//visibility:public"],
)

cc_test(
name = "polymorphic_cxx17_test",
size = "small",
srcs = ["polymorphic_test.cc"],
srcs = ["xyz/value_types/polymorphic_test.cc"],
copts = ["-std=c++17"],
deps = [
"feature_check",
Expand All @@ -119,17 +114,16 @@ cc_test(

cc_library(
name = "polymorphic_no_vtable",
srcs = ["polymorphic_no_vtable.cc"],
hdrs = ["polymorphic_no_vtable.h"],
copts = ["-Iexternal/value_types/"],
srcs = ["xyz/value_types/polymorphic_no_vtable.cc"],
hdrs = ["xyz/value_types/polymorphic_no_vtable.h"],
defines = ["XYZ_POLYMORPHIC_NO_VTABLE"],
visibility = ["//visibility:public"],
)

cc_test(
name = "polymorphic_no_vtable_test",
size = "small",
srcs = ["polymorphic_test.cc"],
srcs = ["xyz/value_types/polymorphic_test.cc"],
deps = [
"feature_check",
"polymorphic_no_vtable",
Expand Down
54 changes: 27 additions & 27 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ xyz_add_library(
)
target_sources(xyz_value_types
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/indirect.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/polymorphic.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/indirect.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic.h>
)

xyz_add_library(
Expand All @@ -43,12 +43,12 @@ xyz_add_library(
)
target_sources(indirect
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/indirect.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/indirect.h>
)

xyz_add_object_library(
NAME indirect_cc
FILES indirect.cc
FILES xyz/value_types/indirect.cc
LINK_LIBRARIES indirect
)

Expand All @@ -60,11 +60,11 @@ xyz_add_library(
)
target_sources(indirect_cxx14
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/indirect_cxx14.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/indirect_cxx14.h>
)
xyz_add_object_library(
NAME indirect_cxx14_cc
FILES indirect_cxx14.cc
FILES xyz/value_types/indirect_cxx14.cc
LINK_LIBRARIES indirect_cxx14
)

Expand All @@ -76,7 +76,7 @@ xyz_add_library(
)
target_sources(indirect_cxx17
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/indirect_cxx14.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/indirect_cxx14.h>
)

xyz_add_library(
Expand All @@ -85,12 +85,12 @@ xyz_add_library(
)
target_sources(polymorphic
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/polymorphic.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic.h>
)

xyz_add_object_library(
NAME polymorphic_cc
FILES polymorphic.cc
FILES xyz/value_types/polymorphic.cc
LINK_LIBRARIES polymorphic
)

Expand All @@ -102,13 +102,13 @@ xyz_add_library(
)
target_sources(polymorphic_cxx14
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/polymorphic_cxx14.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/polymorphic_cxx14.cc>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic_cxx14.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic_cxx14.cc>
)

xyz_add_object_library(
NAME polymorphic_cxx14_cc
FILES polymorphic_cxx14.cc
FILES xyz/value_types/polymorphic_cxx14.cc
LINK_LIBRARIES polymorphic_cxx14
)

Expand All @@ -120,8 +120,8 @@ xyz_add_library(
)
target_sources(polymorphic_cxx17
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/polymorphic_cxx14.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/polymorphic_cxx14.cc>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic_cxx14.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic_cxx14.cc>
)

xyz_add_library(
Expand All @@ -132,13 +132,13 @@ xyz_add_library(
)
target_sources(polymorphic_no_vtable
INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/polymorphic_no_vtable.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/polymorphic_no_vtable.cc>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic_no_vtable.h>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic_no_vtable.cc>
)

xyz_add_object_library(
NAME polymorphic_no_vtable_cc
FILES polymorphic_no_vtable.cc
FILES xyz/value_types/polymorphic_no_vtable.cc
LINK_LIBRARIES polymorphic_no_vtable
)

Expand Down Expand Up @@ -171,47 +171,47 @@ if (${XYZ_VALUE_TYPES_IS_NOT_SUBPROJECT})
xyz_add_test(
NAME indirect_test
LINK_LIBRARIES indirect
FILES indirect_test.cc
FILES xyz/value_types/indirect_test.cc
)

xyz_add_test(
NAME indirect_cxx14_test
LINK_LIBRARIES indirect_cxx14
FILES indirect_test.cc
FILES xyz/value_types/indirect_test.cc
VERSION 14
)

xyz_add_test(
NAME indirect_cxx17_test
LINK_LIBRARIES indirect_cxx17
FILES indirect_test.cc
FILES xyz/value_types/indirect_test.cc
VERSION 17
)

xyz_add_test(
NAME polymorphic_test
LINK_LIBRARIES polymorphic
FILES polymorphic_test.cc
FILES xyz/value_types/polymorphic_test.cc
)

xyz_add_test(
NAME polymorphic_cxx14_test
LINK_LIBRARIES polymorphic_cxx14
FILES polymorphic_test.cc
FILES xyz/value_types/polymorphic_test.cc
VERSION 14
)

xyz_add_test(
NAME polymorphic_cxx17_test
LINK_LIBRARIES polymorphic_cxx17
FILES polymorphic_test.cc
FILES xyz/value_types/polymorphic_test.cc
VERSION 17
)

xyz_add_test(
NAME polymorphic_no_vtable_test
LINK_LIBRARIES polymorphic_no_vtable
FILES polymorphic_test.cc
FILES xyz/value_types/polymorphic_test.cc
)

if (ENABLE_CODE_COVERAGE)
Expand All @@ -222,10 +222,10 @@ if (${XYZ_VALUE_TYPES_IS_NOT_SUBPROJECT})

install(
FILES
"${CMAKE_CURRENT_SOURCE_DIR}/indirect.h"
"${CMAKE_CURRENT_SOURCE_DIR}/polymorphic.h"
"${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/indirect.h"
"${CMAKE_CURRENT_SOURCE_DIR}/xyz/value_types/polymorphic.h"
DESTINATION
${CMAKE_INSTALL_INCLUDEDIR}
${CMAKE_INSTALL_INCLUDEDIR}/xyz/value_types
)

install(
Expand Down
10 changes: 6 additions & 4 deletions MODULE.bazel.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading