diff options
-rw-r--r-- | README.md | 10 | ||||
-rw-r--r-- | cmake/cmake.d/02-macros.cmake | 23 | ||||
-rw-r--r-- | docs/dev_guide/3_advanced_usage.md | 10 |
3 files changed, 31 insertions, 12 deletions
@@ -75,9 +75,13 @@ Choose between: - **BINDING**: Shared library that be loaded by the AGL Application Framework - **BINDINGV2**: Shared library that be loaded by the AGL Application Framework. - This has to be accompagnied with a JSON file named like the *OUTPUT_NAME* of - the target that describe the API with OpenAPI syntax. JSON file will be used - to generate header file using `afb-genskel` tool. + This has to be accompagnied with a JSON file named like the *${OUTPUT_NAME}-apidef* of + the target that describe the API with OpenAPI syntax (e.g: *mybinding-apidef*). + Or you can choose the name by setting the *CACHE* cmake variable *OPENAPI_DEF* + (***CAUTION***: setting a CACHE variable is needed, or set a normal variable + with the *PARENT_SCOPE* option to make it visible for the parent scope + where the target is defined) JSON file will be used to generate header file + using `afb-genskel` tool. - **HTDOCS**: Root directory of a web app - **DATA**: Resources used by your application - **EXECUTABLE**: Entry point of your application executed by the AGL diff --git a/cmake/cmake.d/02-macros.cmake b/cmake/cmake.d/02-macros.cmake index 6ebff21..e116d2e 100644 --- a/cmake/cmake.d/02-macros.cmake +++ b/cmake/cmake.d/02-macros.cmake @@ -98,12 +98,23 @@ macro(project_targets_populate) ) add_custom_target(${POPULE_PACKAGE_TARGET} DEPENDS ${PACKAGE_LIBDIR}/${P}${OUT}.so) - add_custom_command(OUTPUT ${SD}/${P}${OUT}.h - DEPENDS ${SD}/${P}${OUT}.json - COMMAND afb-genskel ${SD}/${P}${OUT}.json > ${SD}/${P}${OUT}.h - ) - add_custom_target("${TARGET}_GENSKEL" DEPENDS ${SD}/${P}${OUT}.h) - add_dependencies(${TARGET} "${TARGET}_GENSKEL") + if (OPENAPI_DEF) + add_custom_command(OUTPUT ${SD}/${OPENAPI_DEF}.h + DEPENDS ${SD}/${OPENAPI_DEF}.json + COMMAND afb-genskel ${SD}/${OPENAPI_DEF}.json > ${SD}/${OPENAPI_DEF}.h + ) + add_custom_target("${TARGET}_GENSKEL" DEPENDS ${SD}/${OPENAPI_DEF}.h + COMMENT "Generating OpenAPI header file ${OPENAPI_DEF}.h") + add_dependencies(${TARGET} "${TARGET}_GENSKEL") + else() + add_custom_command(OUTPUT ${SD}/${OUT}-apidef.h + DEPENDS ${SD}/${OUT}-apidef.json + COMMAND afb-genskel ${SD}/${OUT}-apidef.json > ${SD}/${OUT}-apidef.h + ) + add_custom_target("${TARGET}_GENSKEL" DEPENDS ${SD}/${OUT}-apidef.h + COMMENT "Generating OpenAPI header file ${OUT}-apidef.h") + add_dependencies(${TARGET} "${TARGET}_GENSKEL") + endif() elseif(${T} STREQUAL "EXECUTABLE") add_custom_command(OUTPUT ${PACKAGE_BINDIR}/${P}${OUT} DEPENDS ${BD}/${P}${OUT} diff --git a/docs/dev_guide/3_advanced_usage.md b/docs/dev_guide/3_advanced_usage.md index 87310b3..cc58bb0 100644 --- a/docs/dev_guide/3_advanced_usage.md +++ b/docs/dev_guide/3_advanced_usage.md @@ -31,9 +31,13 @@ Choose between: - **BINDING**: Shared library that be loaded by the AGL Application Framework - **BINDINGV2**: Shared library that be loaded by the AGL Application Framework. - This has to be accompagnied with a JSON file named like the *OUTPUT_NAME* of - the target that describe the API with OpenAPI syntax. JSON file will be used - to generate header file using `afb-genskel` tool. + This has to be accompagnied with a JSON file named like the *${OUTPUT_NAME}-apidef* of + the target that describe the API with OpenAPI syntax (e.g: *mybinding-apidef*). + Or you can choose the name by setting the *CACHE* cmake variable *OPENAPI_DEF* + (***CAUTION***: setting a CACHE variable is needed, or set a normal variable + with the *PARENT_SCOPE* option to make it visible for the parent scope + where the target is defined) JSON file will be used to generate header file + using `afb-genskel` tool. - **HTDOCS**: Root directory of a web app - **DATA**: Resources used by your application - **EXECUTABLE**: Entry point of your application executed by the AGL |