build_package_image.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. #!/usr/bin/env python3
  2. #
  3. # Copyright (c) Contributors to the Open 3D Engine Project.
  4. # For complete copyright and license terms please see the LICENSE at the root of this distribution.
  5. #
  6. # SPDX-License-Identifier: Apache-2.0 OR MIT
  7. #
  8. #
  9. from pathlib import Path
  10. from tempfile import TemporaryDirectory
  11. import argparse
  12. import os
  13. import shutil
  14. import sys
  15. sys.path.append(str(Path(__file__).parent.parent.parent / 'Scripts'))
  16. from builders.vcpkgbuilder import VcpkgBuilder
  17. import builders.monkeypatch_tempdir_cleanup
  18. def main():
  19. parser = argparse.ArgumentParser()
  20. parser.add_argument(
  21. '--platform-name',
  22. dest='platformName',
  23. choices=['windows', 'mac', 'linux', 'linux-aarch64'],
  24. default=VcpkgBuilder.defaultPackagePlatformName(),
  25. )
  26. args = parser.parse_args()
  27. vcpkg_platform_map = {
  28. 'windows': 'windows',
  29. 'android': 'android',
  30. 'mac': 'mac',
  31. 'ios': 'ios',
  32. 'linux': 'linux',
  33. 'linux-aarch64': 'linux'
  34. }
  35. vcpkg_platform = vcpkg_platform_map[args.platformName]
  36. if args.platformName == 'linux-aarch64':
  37. os.environ['VCPKG_FORCE_SYSTEM_BINARIES'] = '1'
  38. packageSystemDir = Path(__file__).resolve().parents[1]
  39. packageSourceDir = packageSystemDir / 'v-hacd'
  40. outputDir = packageSystemDir / f'v-hacd-{args.platformName}'
  41. cmakeFindFile = packageSourceDir / f'Findv-hacd_{args.platformName}.cmake'
  42. if not cmakeFindFile.exists():
  43. cmakeFindFile = packageSourceDir / 'Findv-hacd.cmake'
  44. with TemporaryDirectory() as tempdir:
  45. tempdir = Path(tempdir)
  46. builder = VcpkgBuilder(
  47. packageName='v-hacd',
  48. portName='v-hacd',
  49. vcpkgDir=tempdir,
  50. targetPlatform=vcpkg_platform,
  51. static=True
  52. )
  53. builder.cloneVcpkg('751fc199af8d33eb300af5edbd9e3b77c48f0bca')
  54. builder.bootstrap()
  55. builder.build()
  56. builder.copyBuildOutputTo(
  57. outputDir,
  58. extraFiles={
  59. next(builder.vcpkgDir.glob(f'buildtrees/v-hacd/src/*/LICENSE')): outputDir / builder.packageName / 'LICENSE',
  60. next(builder.vcpkgDir.glob(f'buildtrees/v-hacd/src/*/README.md')): outputDir / builder.packageName / 'README.md',
  61. },
  62. subdir='v-hacd'
  63. )
  64. # vcpkg's commit 751fc19 uses v-hacd version 2.3 at commit 1a49edf
  65. builder.writePackageInfoFile(
  66. outputDir,
  67. settings={
  68. 'PackageName': f'v-hacd-2.3-1a49edf-rev1-{args.platformName}',
  69. 'URL': 'https://github.com/kmammou/v-hacd',
  70. 'License': 'BSD-3-Clause',
  71. 'LicenseFile': 'v-hacd/LICENSE'
  72. },
  73. )
  74. shutil.copy2(
  75. src=cmakeFindFile,
  76. dst=outputDir / 'Findv-hacd.cmake'
  77. )
  78. if __name__ == '__main__':
  79. main()