meta-environment.bb 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. SUMMARY = "Package of environment files for SDK"
  2. LICENSE = "MIT"
  3. PR = "r8"
  4. EXCLUDE_FROM_WORLD = "1"
  5. MODIFYTOS = "0"
  6. REAL_MULTIMACH_TARGET_SYS = "${TUNE_PKGARCH}${TARGET_VENDOR}-${TARGET_OS}"
  7. inherit toolchain-scripts
  8. TOOLCHAIN_NEED_CONFIGSITE_CACHE_append = " zlib"
  9. # Need to expand here before cross-candian changes HOST_ARCH -> SDK_ARCH
  10. TOOLCHAIN_CONFIGSITE_NOCACHE := "${TOOLCHAIN_CONFIGSITE_NOCACHE}"
  11. SDK_DIR = "${WORKDIR}/sdk"
  12. SDK_OUTPUT = "${SDK_DIR}/image"
  13. SDKTARGETSYSROOT = "${SDKPATH}/sysroots/${REAL_MULTIMACH_TARGET_SYS}"
  14. inherit cross-canadian
  15. do_generate_content[cleandirs] = "${SDK_OUTPUT}"
  16. do_generate_content[dirs] = "${SDK_OUTPUT}/${SDKPATH}"
  17. # Need to ensure we have the virtual mappings and site files for all multtilib variants
  18. do_generate_content[depends] = "${@oe.utils.build_depends_string(all_multilib_tune_values(d, 'TOOLCHAIN_NEED_CONFIGSITE_CACHE'), 'do_populate_sysroot')}"
  19. python do_generate_content() {
  20. # Handle multilibs in the SDK environment, siteconfig, etc files...
  21. localdata = bb.data.createCopy(d)
  22. # make sure we only use the WORKDIR value from 'd', or it can change
  23. localdata.setVar('WORKDIR', d.getVar('WORKDIR'))
  24. # make sure we only use the SDKTARGETSYSROOT value from 'd'
  25. localdata.setVar('SDKTARGETSYSROOT', d.getVar('SDKTARGETSYSROOT'))
  26. localdata.setVar('libdir', d.getVar('target_libdir', False))
  27. # Process DEFAULTTUNE
  28. bb.build.exec_func("create_sdk_files", localdata)
  29. variants = d.getVar("MULTILIB_VARIANTS") or ""
  30. for item in variants.split():
  31. # Load overrides from 'd' to avoid having to reset the value...
  32. overrides = d.getVar("OVERRIDES", False) + ":virtclass-multilib-" + item
  33. localdata.setVar("OVERRIDES", overrides)
  34. localdata.setVar("MLPREFIX", item + "-")
  35. bb.build.exec_func("create_sdk_files", localdata)
  36. }
  37. addtask generate_content before do_install after do_compile
  38. create_sdk_files() {
  39. # Setup site file for external use
  40. toolchain_create_sdk_siteconfig ${SDK_OUTPUT}/${SDKPATH}/site-config-${REAL_MULTIMACH_TARGET_SYS}
  41. toolchain_create_sdk_env_script ${SDK_OUTPUT}/${SDKPATH}/environment-setup-${REAL_MULTIMACH_TARGET_SYS}
  42. # Add version information
  43. toolchain_create_sdk_version ${SDK_OUTPUT}/${SDKPATH}/version-${REAL_MULTIMACH_TARGET_SYS}
  44. toolchain_create_post_relocate_script ${SDK_OUTPUT}/${SDKPATH}/post-relocate-setup.sh ${SDKPATH}
  45. }
  46. do_install() {
  47. install -d ${D}/${SDKPATH}
  48. install -m 0644 -t ${D}/${SDKPATH} ${SDK_OUTPUT}/${SDKPATH}/*
  49. }
  50. PN = "meta-environment-${MACHINE}"
  51. PACKAGES = "${PN}"
  52. FILES_${PN}= " \
  53. ${SDKPATH}/* \
  54. "
  55. deltask do_fetch
  56. deltask do_unpack
  57. deltask do_patch
  58. deltask do_configure
  59. deltask do_compile
  60. deltask do_populate_sysroot