Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

102 lines
4.5KB

  1. SHELL:=/bin/bash
  2. ubuntu1804:
  3. # git clone https://github.com/rayburgemeestre/v8pp
  4. #
  5. git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git || true
  6. # will be factored out at some point
  7. git clone https://github.com/pmed/v8pp || true
  8. pushd v8pp && git checkout d62a0d581fd4ab05beb8a675216a12c72a5077c8 # master at time of writing
  9. bash ../ubuntu1804.sh make build
  10. bash ../ubuntu1804.sh make archive # outside container not enough permissions
  11. bash ../ubuntu1804.sh make package # outside container not enough permissions
  12. # also packages v8pp for now
  13. make fpm_package
  14. ubuntu2004:
  15. # git clone https://github.com/rayburgemeestre/v8pp
  16. #
  17. git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git || true
  18. # will be factored out at some point
  19. git clone https://github.com/pmed/v8pp || true
  20. pushd v8pp && git checkout d62a0d581fd4ab05beb8a675216a12c72a5077c8 # master at time of writing
  21. bash ../ubuntu2004.sh make build
  22. bash ../ubuntu2004.sh make archive # outside container not enough permissions
  23. bash ../ubuntu2004.sh make package # outside container not enough permissions
  24. # also packages v8pp for now
  25. make fpm_package
  26. bash ../ubuntu2004.sh chown $$(id -u):$$(id -g) . -R # fix permissions
  27. ubuntu2204:
  28. # git clone https://github.com/rayburgemeestre/v8pp
  29. #
  30. git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git || true
  31. # will be factored out at some point
  32. git clone https://github.com/pmed/v8pp || true
  33. pushd v8pp && git checkout d62a0d581fd4ab05beb8a675216a12c72a5077c8 # master at time of writing
  34. bash ../ubuntu2204.sh make build
  35. bash ../ubuntu2204.sh make archive # outside container not enough permissions
  36. bash ../ubuntu2204.sh make package # outside container not enough permissions
  37. # also packages v8pp for now
  38. make fpm_package
  39. bash ../ubuntu2204.sh chown $$(id -u):$$(id -g) . -R # fix permissions
  40. build:
  41. # see issue https://exerror.com/fatal-detected-dubious-ownership-in-repository/
  42. git config --global --add safe.directory '*'
  43. switch-to-latest-clang
  44. apt-get update
  45. apt-get install pkg-config python2.7 -y
  46. cp -prv /usr/bin/python2.7 /usr/bin/python # stupid depot tool scripts
  47. cp -prv /usr/bin/python2.7 /usr/bin/python2 # stupid depot tool scripts
  48. ./build-v8.sh
  49. archive:
  50. rm -rf v8.a
  51. #ar rvs v8.a $$(cat v8-include.txt |xargs -n 1 -I{} find {} -name '*.o')
  52. # third_party/
  53. # excluding buildtools/third_party directory which contains libc++ etc., or you will get linker errors.
  54. # ./out/x64.release/obj/buildtools/third_party/libc++/libc++/
  55. # second exclude for external snapshot, we need only the non-external one, or we get some weeiiird results of course!
  56. # both implement DefaultSnapshotBlob() and we need to add the right one to the object file.
  57. # ERR, ar rvs v8.a $$(find ./v8/out/x64.release/ -type f -name '*.o' | grep -v "buildtools/third_party/libc++/libc++" | grep -v "v8_external_snapshot")
  58. # Let's go back to our white-list approach.. let's see...
  59. #ar rvs v8.a $$(cat v8-include.txt |xargs -n 1 -I{} find {} -name '*.o')
  60. # We no longer use our v8.a, still including it for now.
  61. # no longer works with newer, missing some files echo all included object files listed below
  62. # no longer works with newer, missing some files ar rvs v8.a $$(cat v8-include.txt |xargs -n 1 -I{} find {} -name '*.o')
  63. # We'll use this one below..
  64. find ./v8/out/x64.release/ -name 'libv8_monolith.a' -type f
  65. # We'll also include .so files..
  66. find ./v8/out/x64.release/ -name '*.so' -type f
  67. package:
  68. rm -rf out
  69. rm -rf v8pp_*_amd64.deb
  70. mkdir -p out/opt/cppse/build/v8pp/lib
  71. mkdir -p out/opt/cppse/build/v8pp/include
  72. # Legacy include our own v8.a
  73. # no longer works with newer, missing some files cp -prv v8.a out/opt/cppse/build/v8pp/lib
  74. cp -prv v8/out/x64.release/obj/libv8_monolith.a out/opt/cppse/build/v8pp/lib
  75. # We'll also include .so files..
  76. #echo TEMP find ./v8/out/x64.release/ -name '*.so' -type f | xargs -n 1 cp -prv -t out/opt/cppse/build/v8pp/lib
  77. cp -prv v8pp/v8pp out/opt/cppse/build/v8pp/include/
  78. cp -prv v8/include out/opt/cppse/build/v8pp/include/v8
  79. fpm_package:
  80. docker run -v "$$(pwd):/src/" rayburgemeestre/fpm-ubuntu:22.04 fpm -v 1.1.1 -s dir -t deb -n v8pp --license MPL2 --maintainer "Ray Burgemeestre <ray@cppse.nl>" --description "v8pp - build dependency" --url "https://github.com/rayburgemeestre/v8pp" --deb-generate-changes -C /src/out
  81. clean:
  82. rm -rf v8pp
  83. rm -rf v8
  84. rm -rf out
  85. rm -rf depot_tools
  86. rm -rf .gclient
  87. rm -rf .gclient_entries
  88. shell:
  89. FLAGS="-i --privileged" bash ../ubuntu1804.sh /bin/bash