diff --git a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb index 5208b67df8c89fffd4fc166930f13f4b0394a153..b83f745e13841ad50b977e8fd89c7c451b2303f9 100644 --- a/recipes-openharmony/openharmony/openharmony-standard_3.0.bb +++ b/recipes-openharmony/openharmony/openharmony-standard_3.0.bb @@ -121,14 +121,13 @@ do_copy_to_srcdir() { addtask do_copy_to_srcdir after do_prepare_recipe_sysroot do_unpack before do_configure -do_configure:prepend() { - bbnote "Generating OpenHarmony Standard System build config files..." - - generate_build_config_json_file - generate_platforms_build_file - generate_parts_json - copy_subsystem_config_json_file +do_configure[prefuncs] += "generate_build_config_json_file" +do_configure[prefuncs] += "generate_platforms_build_file" +do_configure[prefuncs] += "generate_parts_json" +do_configure[prefuncs] += "copy_subsystem_config_json_file" +do_configure[prefuncs] += "symlink_python3" +symlink_python3() { # OpenHarmony build system relies on python 3 being available as `python` ln -sf $(which python3) ${STAGING_BINDIR_NATIVE}/python } @@ -235,7 +234,61 @@ generate_platforms_build_file() { EOF } -generate_parts_json() { +OPENHARMONY_PARTS += "aafwk:aafwk_standard" +OPENHARMONY_PARTS += "account:os_account_standard" +OPENHARMONY_PARTS += "ace:ace_engine_standard" +OPENHARMONY_PARTS += "ace:napi" +OPENHARMONY_PARTS += "appexecfwk:appexecfwk_standard" +OPENHARMONY_PARTS += "ark:ark_js_runtime" +OPENHARMONY_PARTS += "ark:ark" +OPENHARMONY_PARTS += "ccruntime:jsapi_worker" +OPENHARMONY_PARTS += "common:common" +OPENHARMONY_PARTS += "communication:dsoftbus_standard" +OPENHARMONY_PARTS += "communication:ipc" +OPENHARMONY_PARTS += "communication:ipc_js" +OPENHARMONY_PARTS += "developtools:bytrace_standard" +OPENHARMONY_PARTS += "developtools:hdc_standard" +OPENHARMONY_PARTS += "distributeddatamgr:distributeddatamgr" +OPENHARMONY_PARTS += "distributeddatamgr:native_appdatamgr" +OPENHARMONY_PARTS += "distributedhardware:device_manager_base" +OPENHARMONY_PARTS += "distributedschedule:dmsfwk_standard" +OPENHARMONY_PARTS += "distributedschedule:safwk" +OPENHARMONY_PARTS += "distributedschedule:samgr_L2" +OPENHARMONY_PARTS += "global:i18n_standard" +OPENHARMONY_PARTS += "global:resmgr_standard" +OPENHARMONY_PARTS += "graphic:graphic_standard" +OPENHARMONY_PARTS += "hdf:hdf" +OPENHARMONY_PARTS += "hdf:display_device_driver" +OPENHARMONY_PARTS += "hiviewdfx:faultloggerd" +OPENHARMONY_PARTS += "hiviewdfx:hilog" +OPENHARMONY_PARTS += "hiviewdfx:hilog_native" +OPENHARMONY_PARTS += "hiviewdfx:hilog_service" +OPENHARMONY_PARTS += "hiviewdfx:hisysevent_native" +OPENHARMONY_PARTS += "hiviewdfx:hiviewdfx_hilog_native" +OPENHARMONY_PARTS += "miscservices:inputmethod_native" +OPENHARMONY_PARTS += "miscservices:time_native" +OPENHARMONY_PARTS += "multimedia:multimedia_audio_standard" +OPENHARMONY_PARTS += "multimedia:multimedia_camera_standard" +OPENHARMONY_PARTS += "multimedia:multimedia_histreamer" +OPENHARMONY_PARTS += "multimedia:multimedia_image_standard" +OPENHARMONY_PARTS += "multimedia:multimedia_media_standard" +OPENHARMONY_PARTS += "multimodalinput:multimodalinput_base" +OPENHARMONY_PARTS += "notification:ans_standard" +OPENHARMONY_PARTS += "notification:ces_standard" +OPENHARMONY_PARTS += "powermgr:battery_manager_native" +OPENHARMONY_PARTS += "powermgr:display_manager_native" +OPENHARMONY_PARTS += "powermgr:power_manager_native" +OPENHARMONY_PARTS += "security:appverify" +OPENHARMONY_PARTS += "security:dataclassification" +OPENHARMONY_PARTS += "security:deviceauth_standard" +OPENHARMONY_PARTS += "security:huks_standard" +OPENHARMONY_PARTS += "security:permission_standard" +OPENHARMONY_PARTS += "startup:startup_l2" +OPENHARMONY_PARTS += "telephony:core_service" +OPENHARMONY_PARTS += "telephony:ril_adapter" +OPENHARMONY_PARTS += "utils:utils_base" + +python generate_parts_json() { # parts.json file is used by the loader.py tool to generate BUILD.gn files # for all required "parts" basing on ohos.build files that accompany # OpenHarmony components @@ -243,66 +296,21 @@ generate_parts_json() { # NOTE: In normal OpenHarmony build process, this file is generated by the # preloader.py tool - mkdir -p "${OHOS_PRELOADER_BUILD_CONFIG_DIR}" - cat > "${OHOS_PRELOADER_BUILD_CONFIG_DIR}/parts.json" << EOF - { - "parts": [ - "aafwk:aafwk_standard", - "account:os_account_standard", - "ace:ace_engine_standard", - "ace:napi", - "appexecfwk:appexecfwk_standard", - "ark:ark_js_runtime", - "ark:ark", - "ccruntime:jsapi_worker", - "common:common", - "communication:dsoftbus_standard", - "communication:ipc", - "communication:ipc_js", - "developtools:bytrace_standard", - "developtools:hdc_standard", - "distributeddatamgr:distributeddatamgr", - "distributeddatamgr:native_appdatamgr", - "distributedhardware:device_manager_base", - "distributedschedule:dmsfwk_standard", - "distributedschedule:safwk", - "distributedschedule:samgr_L2", - "global:i18n_standard", - "global:resmgr_standard", - "graphic:graphic_standard", - "hdf:hdf", - "hdf:display_device_driver", - "hiviewdfx:faultloggerd", - "hiviewdfx:hilog", - "hiviewdfx:hilog_native", - "hiviewdfx:hilog_service", - "hiviewdfx:hisysevent_native", - "hiviewdfx:hiviewdfx_hilog_native", - "miscservices:inputmethod_native", - "miscservices:time_native", - "multimedia:multimedia_audio_standard", - "multimedia:multimedia_camera_standard", - "multimedia:multimedia_histreamer", - "multimedia:multimedia_image_standard", - "multimedia:multimedia_media_standard", - "multimodalinput:multimodalinput_base", - "notification:ans_standard", - "notification:ces_standard", - "powermgr:battery_manager_native", - "powermgr:display_manager_native", - "powermgr:power_manager_native", - "security:appverify", - "security:dataclassification", - "security:deviceauth_standard", - "security:huks_standard", - "security:permission_standard", - "startup:startup_l2", - "telephony:core_service", - "telephony:ril_adapter", - "utils:utils_base" - ] - } -EOF + import json + import os + + json_parts = {} + json_parts['parts'] = [] + + for part in d.getVar("OPENHARMONY_PARTS").split(): + json_parts['parts'].append(part) + + config_dir = d.getVar("OHOS_PRELOADER_BUILD_CONFIG_DIR") + + os.makedirs(config_dir, exist_ok=True) + + with open(os.path.join(config_dir, 'parts.json'), 'w') as outfile: + outfile.write(json.dumps(json_parts, indent=2, sort_keys=True)) } copy_subsystem_config_json_file() {