xo-procedure2 xo-cmake: move OUTPUT_CPP_DIR to idl/*.json5

This commit is contained in:
Roland Conybeare 2026-02-16 17:15:02 -05:00
commit 8871b149e4
9 changed files with 17 additions and 2 deletions

View file

@ -458,7 +458,7 @@ def main():
# --output-impl-hpp: putting this in .json5, will be able to drop this. # --output-impl-hpp: putting this in .json5, will be able to drop this.
parser.add_argument('--output-impl-hpp', required=True, help='.hpp detail subdir') parser.add_argument('--output-impl-hpp', required=True, help='.hpp detail subdir')
parser.add_argument('--output-hpp', required=True, help='.hpp output directory') parser.add_argument('--output-hpp', required=True, help='.hpp output directory')
parser.add_argument('--output-cpp', required=True, help='.cpp output directory') parser.add_argument('--output-cpp', required=False, help='.cpp output directory')
args = parser.parse_args() args = parser.parse_args()
@ -473,7 +473,12 @@ def main():
output_impl_hpp_dir = Path(args.output_hpp) / output_impl_hpp_subdir output_impl_hpp_dir = Path(args.output_hpp) / output_impl_hpp_subdir
output_impl_hpp_dir.mkdir(parents=False, exist_ok=True) output_impl_hpp_dir.mkdir(parents=False, exist_ok=True)
output_cpp_dir = Path(args.output_cpp) if 'output_cpp_dir' in idl:
output_cpp_dir = Path(idl['output_cpp_dir'])
elif args.output_cpp:
output_cpp_dir = Path(args.output_cpp)
else:
parser.error("--output-cpp required when .json5 lacks output_cpp_dir")
output_cpp_dir.mkdir(parents=False, exist_ok=True) output_cpp_dir.mkdir(parents=False, exist_ok=True)
# setup jinja2 # setup jinja2

View file

@ -1,5 +1,6 @@
{ {
mode: "implementation", mode: "implementation",
output_cpp_dir: "src/procedure2",
includes: [ includes: [
//<xo/procedure2/GCObjectConversion_DPrimitive_gco_2_gco_gco.hpp> //<xo/procedure2/GCObjectConversion_DPrimitive_gco_2_gco_gco.hpp>
"<xo/gc/GCObject.hpp>", "<xo/gc/GCObject.hpp>",

View file

@ -1,5 +1,6 @@
{ {
mode: "implementation", mode: "implementation",
output_cpp_dir: "src/procedure2",
includes: [ includes: [
"<xo/printable2/Printable.hpp>", "<xo/printable2/Printable.hpp>",
"<xo/printable2/detail/IPrintable_Xfer.hpp>", "<xo/printable2/detail/IPrintable_Xfer.hpp>",

View file

@ -1,5 +1,6 @@
{ {
mode: "implementation", mode: "implementation",
output_cpp_dir: "src/procedure2",
includes: [ includes: [
"<xo/procedure2/RuntimeContext.hpp>", "<xo/procedure2/RuntimeContext.hpp>",
"<xo/procedure2/detail/IRuntimeContext_Xfer.hpp>", "<xo/procedure2/detail/IRuntimeContext_Xfer.hpp>",

View file

@ -1,5 +1,6 @@
{ {
mode: "implementation", mode: "implementation",
output_cpp_dir: "src/procedure2",
includes: [ includes: [
//"<xo/procedure2/RuntimeContext.hpp>", //"<xo/procedure2/RuntimeContext.hpp>",
//"<xo/procedure2/detail/IRuntimeContext_Xfer.hpp>", //"<xo/procedure2/detail/IRuntimeContext_Xfer.hpp>",

View file

@ -4,6 +4,7 @@
{ {
mode: "facet", mode: "facet",
output_cpp_dir: "src/procedure2",
// includes in ASyntaxStateMachine.hpp // includes in ASyntaxStateMachine.hpp
includes: [ includes: [
"\"RuntimeContext.hpp\"", "\"RuntimeContext.hpp\"",

View file

@ -1,5 +1,6 @@
{ {
mode: "facet", mode: "facet",
output_cpp_dir: "src/procedure2",
// includes in ARuntimeContext.hpp // includes in ARuntimeContext.hpp
includes: [ includes: [
"<xo/alloc2/Allocator.hpp>" "<xo/alloc2/Allocator.hpp>"

View file

@ -46,6 +46,8 @@ public:
/** @defgroup scm-procedure-router-methods **/ /** @defgroup scm-procedure-router-methods **/
///@{ ///@{
// explicit injected content
// builtin methods // builtin methods
typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); } typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); }
void _drop() const noexcept { O::iface()->_drop(O::data()); } void _drop() const noexcept { O::iface()->_drop(O::data()); }

View file

@ -46,6 +46,8 @@ public:
/** @defgroup scm-runtimecontext-router-methods **/ /** @defgroup scm-runtimecontext-router-methods **/
///@{ ///@{
// explicit injected content
// builtin methods // builtin methods
typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); } typeseq _typeseq() const noexcept { return O::iface()->_typeseq(); }
void _drop() const noexcept { O::iface()->_drop(O::data()); } void _drop() const noexcept { O::iface()->_drop(O::data()); }