diff options
author | Romain Forlot <romain.forlot@iot.bzh> | 2017-08-11 10:16:05 +0200 |
---|---|---|
committer | Romain Forlot <romain.forlot@iot.bzh> | 2018-10-15 18:22:47 +0200 |
commit | 1f82b41bcef462c057aabf4d918189e15ce319c1 (patch) | |
tree | 75ce5176a78be36d8b4a23a9c8b486574ac71e4c | |
parent | f0fcb00c0d7d1276d272c0fb1ee02e505e8ba0b1 (diff) |
Be able to choose openAPI definition file name.
Use a variable OPENAPI_DEF to define the file name else use the default
convention ${OUTPUT_NAME}-apidef.
Update the docs in consequence.
Change-Id: Ibc29d6079d185e47a80dbfe4df5dedd28f7f63c4
Signed-off-by: Romain Forlot <romain.forlot@iot.bzh>
-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 |