config 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. # vim: filetype=yaml sw=2
  2. filename: '[% project %]-[% c("version") %]-[% c("var/build_id") %].tar.gz'
  3. version: '[% c("input_file_var/rust_version") %]'
  4. # Those values can be changed from the input_files section of other
  5. # projects. See bug 32436.
  6. input_file_var:
  7. rust_version: 1.41.1
  8. prev_version: 1.40.0
  9. var:
  10. prev_version: '[% c("input_file_var/prev_version") %]'
  11. container:
  12. use_container: 1
  13. targets:
  14. android:
  15. var:
  16. arch_deps:
  17. - libssl-dev
  18. - pkg-config
  19. - zlib1g-dev
  20. android-armv7:
  21. var:
  22. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=thumbv7neon-linux-androideabi --set=target.thumbv7neon-linux-androideabi.cc=$ANDROID_NDK_HOME/arm/bin/arm-linux-androideabi-gcc
  23. android-x86:
  24. var:
  25. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=i686-linux-android --set=target.i686-linux-android.cc=$ANDROID_NDK_HOME/x86/bin/i686-linux-android-gcc
  26. android-x86_64:
  27. var:
  28. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-linux-android --set=target.x86_64-linux-android.cc=$ANDROID_NDK_HOME/x86_64/bin/x86_64-linux-android-gcc
  29. android-aarch64:
  30. var:
  31. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=aarch64-linux-android --set=target.aarch64-linux-android.cc=$ANDROID_NDK_HOME/arm64/bin/aarch64-linux-android-gcc
  32. linux:
  33. var:
  34. deps:
  35. - libc6-dev-i386
  36. - lib32stdc++6
  37. - build-essential
  38. - python
  39. - automake
  40. - libssl-dev
  41. - pkg-config
  42. - hardening-wrapper
  43. # We use
  44. # `--enable-local-rust` to avoid downloading the required compiler during
  45. # build time
  46. #
  47. # `--enable-vendor` to avoid downloading crates during build time and just
  48. # use the ones which are shipped with the source
  49. #
  50. # `--enable-extended` to build not only rustc but cargo as well
  51. #
  52. # `--enable-llvm-static-stdccp` to take a libstdc++ on Wheezy into account
  53. # which is too old and if used gives undefined reference errors
  54. #
  55. # `--release-channel=stable` to just include stable features in the
  56. # compiler
  57. #
  58. # `--sysconfdir=etc` to avoid install failures as |make install| wants to
  59. # write to /etc otherwise
  60. #
  61. # the `target` triple to explicitly specify the architecture and platform
  62. # for the compiler/std lib. Ideally, it should not be needed unless one is
  63. # cross-compiling, but compiling `alloc_jemalloc` fails without that in a
  64. # 32bit container. "--host=x86_64-unknown-linux-gnu" is used in its
  65. # configure script in this case.
  66. # `--set=` to explicitly specify the C compiler. We need to compile the
  67. # bundled LLVM and it wants to use `cc`. However, we don't have that in
  68. # our compiled GCC resulting in weird errors due to C and C++ compiler
  69. # version mismatch. We avoid that with this configure option. We need to
  70. # build our own GCC in the first place as 4.7.2 is too old to get all the
  71. # Rust pieces compiled.
  72. configure_opt: --enable-local-rust --enable-vendor --enable-extended --enable-llvm-static-stdcpp --release-channel=stable --sysconfdir=etc --target=x86_64-unknown-linux-gnu,i686-unknown-linux-gnu --set=target.x86_64-unknown-linux-gnu.cc=gcc --set=target.i686-unknown-linux-gnu.cc=gcc
  73. linux-armhf:
  74. var:
  75. # container:
  76. # suite: jessie
  77. deps:
  78. - build-essential
  79. - python
  80. - automake
  81. - libssl-dev
  82. - pkg-config
  83. - hardening-wrapper
  84. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --build=[% c("var/gnu-build-triplet") %] --host=[% c("var/gnu-host-triplet") %] --target=[% c("var/gnu-host-triplet") %] --set=target.[% c("var/gnu-host-triplet") %].cc=gcc --set=target.[% c("var/gnu-host-triplet") %].linker=gcc
  85. linux-arm64:
  86. var:
  87. deps:
  88. - build-essential
  89. - python
  90. - automake
  91. - zlib1g-dev
  92. - libssl-dev
  93. - pkg-config
  94. # - hardening-wrapper
  95. configure_opt: --enable-local-rust --enable-vendor --enable-extended --enable-llvm-static-stdcpp --release-channel=stable --sysconfdir=etc --build=[% c("var/gnu-build-triplet") %] --host=[% c("var/gnu-host-triplet") %] --target=[% c("var/gnu-host-triplet") %] --set=target.[% c("var/gnu-host-triplet") %].cc=gcc --set=target.[% c("var/gnu-host-triplet") %].linker=gcc
  96. osx-x86_64:
  97. var:
  98. arch_deps:
  99. - libssl-dev
  100. - pkg-config
  101. - zlib1g-dev
  102. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=x86_64-apple-darwin --set=target.x86_64-apple-darwin.cc=x86_64-apple-darwin-clang
  103. windows:
  104. var:
  105. arch_deps:
  106. - libssl-dev
  107. - pkg-config
  108. - zlib1g-dev
  109. configure_opt: --enable-local-rust --enable-vendor --enable-extended --release-channel=stable --sysconfdir=etc --target=[% c("arch") %]-pc-windows-gnu
  110. input_files:
  111. - project: container-image
  112. - project: cmake
  113. name: cmake
  114. - project: '[% c("var/compiler") %]'
  115. name: '[% c("var/compiler") %]'
  116. - URL: 'https://static.rust-lang.org/dist/rustc-[% c("version") %]-src.tar.gz'
  117. name: rust
  118. sig_ext: asc
  119. file_gpg_id: 1
  120. gpg_keyring: rust.gpg
  121. - URL: 'https://static.rust-lang.org/dist/rust-[% c("var/prev_version") %]-[% c("var/gnu-build-triplet") %].tar.xz'
  122. name: prev_rust
  123. sig_ext: asc
  124. file_gpg_id: 1
  125. gpg_keyring: rust.gpg
  126. - filename: unwind.patch
  127. enable: '[% c("var/windows-i686") %]'
  128. - filename: 43909.patch