mirror of
https://github.com/latentPrion/cppbessot.git
synced 2026-06-23 15:18:37 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 21cdeedc84 | |||
| 0872cb8078 |
@@ -24,8 +24,13 @@ function(cppbessot_add_db_gen_cpp_target schema_dir)
|
|||||||
set(_template_config "${_template_dir}/config.yaml")
|
set(_template_config "${_template_dir}/config.yaml")
|
||||||
set(_output_dir "${_version_dir}/generated-cpp-source")
|
set(_output_dir "${_version_dir}/generated-cpp-source")
|
||||||
file(GLOB_RECURSE _template_inputs CONFIGURE_DEPENDS "${_template_dir}/*")
|
file(GLOB_RECURSE _template_inputs CONFIGURE_DEPENDS "${_template_dir}/*")
|
||||||
|
cppbessot_get_expected_cpp_model_outputs(
|
||||||
|
_expected_model_headers
|
||||||
|
_expected_model_sources
|
||||||
|
"${schema_dir}")
|
||||||
|
|
||||||
add_custom_target(db_gen_cpp_headers
|
add_custom_command(
|
||||||
|
OUTPUT ${_expected_model_headers} ${_expected_model_sources}
|
||||||
COMMAND ${CMAKE_COMMAND} -E make_directory "${_output_dir}"
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${_output_dir}"
|
||||||
COMMAND "${CPPBESSOT_NPX_EXECUTABLE}" @openapitools/openapi-generator-cli generate
|
COMMAND "${CPPBESSOT_NPX_EXECUTABLE}" @openapitools/openapi-generator-cli generate
|
||||||
-i "${_openapi_file}"
|
-i "${_openapi_file}"
|
||||||
@@ -39,5 +44,8 @@ function(cppbessot_add_db_gen_cpp_target schema_dir)
|
|||||||
VERBATIM
|
VERBATIM
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_custom_target(db_gen_cpp_headers
|
||||||
|
DEPENDS ${_expected_model_headers} ${_expected_model_sources})
|
||||||
|
|
||||||
set_target_properties(db_gen_cpp_headers PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
set_target_properties(db_gen_cpp_headers PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|||||||
+16
-2
@@ -13,16 +13,30 @@ function(cppbessot_add_db_gen_sql_ddl_target schema_dir)
|
|||||||
# - Files under `<schema_dir>/generated-sql-ddl/{sqlite,postgre}`.
|
# - Files under `<schema_dir>/generated-sql-ddl/{sqlite,postgre}`.
|
||||||
cppbessot_validate_schema_dir_name("${schema_dir}")
|
cppbessot_validate_schema_dir_name("${schema_dir}")
|
||||||
cppbessot_get_schema_dir_path(_version_dir "${schema_dir}")
|
cppbessot_get_schema_dir_path(_version_dir "${schema_dir}")
|
||||||
|
cppbessot_get_expected_odb_generation_artifacts(
|
||||||
|
_expected_model_headers
|
||||||
|
_expected_odb_sources
|
||||||
|
"${schema_dir}")
|
||||||
|
|
||||||
add_custom_target(db_gen_sql_ddl
|
set(_stamp_dir "${CMAKE_CURRENT_BINARY_DIR}/cppbessot/${schema_dir}")
|
||||||
|
set(_stamp_file "${_stamp_dir}/db_gen_sql_ddl.stamp")
|
||||||
|
|
||||||
|
add_custom_command(
|
||||||
|
OUTPUT "${_stamp_file}"
|
||||||
|
COMMAND "${CMAKE_COMMAND}" -E make_directory "${_stamp_dir}"
|
||||||
COMMAND "${CMAKE_COMMAND}"
|
COMMAND "${CMAKE_COMMAND}"
|
||||||
-DCPPBESSOT_ODB_EXECUTABLE=${CPPBESSOT_ODB_EXECUTABLE}
|
-DCPPBESSOT_ODB_EXECUTABLE=${CPPBESSOT_ODB_EXECUTABLE}
|
||||||
-DCPPBESSOT_VERSION_DIR=${_version_dir}
|
-DCPPBESSOT_VERSION_DIR=${_version_dir}
|
||||||
-P "${_CPPBESSOT_DB_GEN_SQL_DDL_DIR}/scripts/run_odb_sql_ddl.cmake"
|
-P "${_CPPBESSOT_DB_GEN_SQL_DDL_DIR}/scripts/run_odb_sql_ddl.cmake"
|
||||||
DEPENDS db_gen_cpp_headers
|
COMMAND "${CMAKE_COMMAND}" -E touch "${_stamp_file}"
|
||||||
|
DEPENDS db_gen_cpp_headers ${_expected_model_headers}
|
||||||
COMMENT "Generating SQL DDL snapshots for ${schema_dir} (sqlite + postgre)"
|
COMMENT "Generating SQL DDL snapshots for ${schema_dir} (sqlite + postgre)"
|
||||||
VERBATIM
|
VERBATIM
|
||||||
)
|
)
|
||||||
|
|
||||||
|
add_custom_target(db_gen_sql_ddl
|
||||||
|
DEPENDS "${_stamp_file}")
|
||||||
|
add_dependencies(db_gen_sql_ddl db_gen_cpp_headers)
|
||||||
|
|
||||||
set_target_properties(db_gen_sql_ddl PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
set_target_properties(db_gen_sql_ddl PROPERTIES EXCLUDE_FROM_ALL TRUE)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|||||||
@@ -49,6 +49,9 @@ public:
|
|||||||
{{/vendorExtensions.x-odbAddedIn}}
|
{{/vendorExtensions.x-odbAddedIn}}
|
||||||
{{#vendorExtensions.x-cppType}}{{vendorExtensions.x-cppType}}{{/vendorExtensions.x-cppType}}{{^vendorExtensions.x-cppType}}{{#isString}}std::string{{/isString}}{{^isString}}{{#isDateTime}}std::string{{/isDateTime}}{{^isDateTime}}{{#isBoolean}}bool{{/isBoolean}}{{^isBoolean}}{{#isInteger}}int32_t{{/isInteger}}{{^isInteger}}{{#isLong}}int64_t{{/isLong}}{{^isLong}}{{dataType}}{{/isLong}}{{/isInteger}}{{/isBoolean}}{{/isDateTime}}{{/isString}}{{/vendorExtensions.x-cppType}} {{nameInCamelCase}}{};
|
{{#vendorExtensions.x-cppType}}{{vendorExtensions.x-cppType}}{{/vendorExtensions.x-cppType}}{{^vendorExtensions.x-cppType}}{{#isString}}std::string{{/isString}}{{^isString}}{{#isDateTime}}std::string{{/isDateTime}}{{^isDateTime}}{{#isBoolean}}bool{{/isBoolean}}{{^isBoolean}}{{#isInteger}}int32_t{{/isInteger}}{{^isInteger}}{{#isLong}}int64_t{{/isLong}}{{^isLong}}{{dataType}}{{/isLong}}{{/isInteger}}{{/isBoolean}}{{/isDateTime}}{{/isString}}{{/vendorExtensions.x-cppType}} {{nameInCamelCase}}{};
|
||||||
{{/vars}}
|
{{/vars}}
|
||||||
|
{{#vendorExtensions.x-dataModelUniqueConstraints}}
|
||||||
|
#pragma db index("{{name}}") unique {{odbMemberSpec}}
|
||||||
|
{{/vendorExtensions.x-dataModelUniqueConstraints}}
|
||||||
|
|
||||||
NLOHMANN_DEFINE_TYPE_INTRUSIVE({{classname}}{{#vars}}, {{nameInCamelCase}}{{/vars}})
|
NLOHMANN_DEFINE_TYPE_INTRUSIVE({{classname}}{{#vars}}, {{nameInCamelCase}}{{/vars}})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user