1. 22 Oct, 2018 1 commit
  2. 17 Oct, 2018 1 commit
  3. 12 Oct, 2018 1 commit
    • Nirbheek Chauhan's avatar
      cerbero: Set allow_parallel_build = False by default on Windows · eed9196b
      Nirbheek Chauhan authored
      Setting it in config/win32.cbc and win64.cbc means that it doesn't get
      set when you run cerbero without any -c arguments, which is the most
      common mode.
      
      win32/win64.cbc are only used while generating the gstreamer binary
      releases.
      
      If we don't disable parallel build for make, we get errors like:
      
      C:\MinGW\msys\1.0\bin\make.exe: *** couldn't commit memory for cygwin heap, Win32 error 0
      eed9196b
  4. 11 Oct, 2018 2 commits
    • Nirbheek Chauhan's avatar
      cerbero: Don't export MinGW toolchain paths in MSVC shells · 4c6724e7
      Nirbheek Chauhan authored
      This file is sourced twice, so by deleting CERBERO_EXPORT_MSVC after
      exporting the MSVC environment, we were then exporting the MinGW
      toolchain env vars the second time around.
      4c6724e7
    • Nirbheek Chauhan's avatar
      cerbero: Properly fetch the value of PATH from MSVC · 57ee182e
      Nirbheek Chauhan authored
      We were accidentally using the full value of PATH set in the VS command
      prompt as the PATH value that contains Visual Studio paths. Only
      a subset of that value contains Visual Studio paths.
      
      As a part of this, now the rest of the code prepends PATH fetched from
      VS to the existing PATH value and uses the other env vars as-is by
      overwriting.
      57ee182e
  5. 02 Oct, 2018 2 commits
  6. 26 Sep, 2018 1 commit
  7. 21 Sep, 2018 2 commits
  8. 01 Sep, 2018 5 commits
  9. 30 Aug, 2018 1 commit
  10. 22 Jul, 2018 1 commit
  11. 21 Jul, 2018 1 commit
    • Nirbheek Chauhan's avatar
      cerbero: Rework environment modification in recipes · 7462b065
      Nirbheek Chauhan authored
      Environment variable modification in a recipe used to be done with:
      
        self.append_env, self.prepend_env, or self.new_env
      
      All of these were dictionaries of {string:string} mappings, which
      means that if a recipe wanted to, say, append to `CFLAGS` from
      multiple places within the recipe (f.ex., `glib.recipe`), you had to
      carefully juggle `=` and `+=` in recipes, which was error-prone
      (f.ex., `gstreamer-1.0.recipe` `variants.nodebug` was broken).
      
      Now that we also conditionally use `self.append_env['CFLAGS']` in
      `cerbero/build/build.py` for bitcode support with make-based build
      systems, it's impossible to get this right in recipes. This was
      causing the cross-ios-universal builds to fail on recipes that
      directly set `self.append_env['CFLAGS'] = 'foo'` such as pixman.
      
      The dictionaries have now been replaced with the following functions:
      
        self.append_env(varname, value1, value2, ..., sep=separator)
        self.prepend_env(varname, value1, value2, ..., sep=separator)
        self.set_env(varname, value1, value2, ..., sep=separator)
      
      The separator is used to join value1, value2, etc and also while
      appending/prepending to the value in the env. It is optional, and
      defaults to ` ` (space).
      
      Most often the usage is very simple to translate:
      
        self.append_env['CFLAGS'] = ' -funroll-loops '
        =>
        self.append_env('CFLAGS', '-funroll-loops')
      
      If values are omitted with `self.set_env()`, the variable is unset:
      
        self.new_env['MAKEFLAGS'] = None
        =>
        self.set_env('MAKEFLAGS')
      
      An important intended feature is that multiple calls to these
      functions all take effect sequentially at build time for each build
      step. So, you can call append and prepend multiple times on the same
      variable, and the values will be appended and prepended in that order
      to the value at build time.
      
      Note that if you call `self.set_env()` on a variable, the variable will,
      of course, be set to that value and previous append/prepend
      declarations will be overriden.
      Reviewed-by: default avatarJan Schmidt <jan@centricular.com>
      7462b065
  12. 19 Jul, 2018 1 commit
  13. 13 Jul, 2018 2 commits
  14. 29 Jun, 2018 1 commit
    • Nirbheek Chauhan's avatar
      cerbero: Build Meson projects with MSVC on Windows · 30066723
      Nirbheek Chauhan authored
      Unless the 'visualstudio' variant is disabled in the config by enabling
      the `novisualstudio` variant, recipes that use Meson will be built
      using Visual Studio.
      
      Cerbero will attempt to find either Visual Studio 2015 or Visual Studio
      2017 and set the correct environment to use the MSVC toolchain. This
      is done once at startup, and then used by each recipe at build time.
      
      To get this environment in shell form, use the `win32-msvc-shell.cbc`
      and `win64-msvc-shell.cbc` config files.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=796641
      30066723
  15. 19 Jun, 2018 1 commit
    • Nirbheek Chauhan's avatar
      openssl.recipe: Fix perl version checking · 7e241147
      Nirbheek Chauhan authored
      check_call doesn't always inherit the current environment, so it would
      run the wrong Perl because our PATH changes were ignored. However, this
      only happened in a `package` run where some other recipe was built
      beforehand.
      
      Instead, use `which()` now so that we read PATH directly. Also don't use
      environment variables to communicate the perl path, we already have that
      information in self.config.
      7e241147
  16. 05 Jun, 2018 1 commit
  17. 22 May, 2018 2 commits
    • Nirbheek Chauhan's avatar
      cerbero: Don't use -fembed-code for iOS · 8d9156b3
      Nirbheek Chauhan authored
      It's incompatible with -Wl,-dead_strip_dylibs (the macOS equivalent of
      --as-needed) and -Wl,-bundle. The former can be disabled but the latter
      is important for shared modules.
      
      Revert this once we know how to handle shared modules and as-needed for
      iOS. Perhaps we should *only* build statically for iOS?
      8d9156b3
    • Nirbheek Chauhan's avatar
      Port glib and glib-networking recipes to meson · 5ff24813
      Nirbheek Chauhan authored
      Also, always use gnutls system trust for glib-networking. This is
      backported from latest master, and we should fix our gnutls config to
      work with this. Porting it in early so we have some time to deal with
      this before the next glib-networking stable release.
      
      Tested on fedora linux, cross-win32/64, cross-android-universal, darwin,
      cross-ios-universal, and windows/mingw.
      5ff24813
  18. 21 May, 2018 1 commit
    • Edward Hervey's avatar
      config: Remove ios header hack · eb0561a0
      Edward Hervey authored
      There is a proper way to detect this. Normally most packages have
      already received a fix upstream. Disabling this hack. If it still
      happens in some packages we'll patch them.
      
      Avoid having to do sudo in automated builds also ...
      eb0561a0
  19. 05 May, 2018 1 commit
  20. 11 Apr, 2018 1 commit
    • Edward Hervey's avatar
      ios: Drop ARMv7 support · 783e04a0
      Edward Hervey authored
      Since we only support ios >= 8.0, we don't support any device
      which is ARMv7. All devices above that are ARMv7s or ARM64
      783e04a0
  21. 09 Apr, 2018 1 commit
  22. 27 Mar, 2018 1 commit
  23. 08 Mar, 2018 1 commit
    • Nirbheek Chauhan's avatar
      openssl.recipe: New recipe needed by the dtls plugin · 3e16c681
      Nirbheek Chauhan authored
      This commit also installs a new Perl in its own prefix in bootstrap.
      
      OpenSSL needs Perl 5.10.0, and removing that dependency is too much
      work. Unfortunately, we cannot use Strawberry Perl because that
      operates on back-slashes instead of unix-style forward-slashes so
      OpenSSL's Configure rejects it.
      
      We also can't use this MinGW-Perl as a replacement for MSYS's Perl
      because it can't find any MSYS tools (like m4), which causes perl
      scripts like autom4te which call `system m4` to fail.
      
      As a result, this Perl is *only* used by openssl.recipe and only when
      building natively on Windows.
      3e16c681
  24. 07 Mar, 2018 1 commit
  25. 05 Mar, 2018 1 commit
    • Matthew Waters's avatar
      config/android: fix include/lib paths for non-universal builds · f4a7b42e
      Matthew Waters authored
      The directory layout is slightly different for universal vs
      non-universal builds and the there's currently no way to be able to
      detect that when parsing the configuration.
      
      Add such a way by adding the 'universal' string to the variants when
      parsing the children of a universal configuration.
      
      While we're here also document some paths used in the android build and
      the sysroot/isysroot difference and why that's needed with NDK's Unified
      headers.
      
      This fixes the glib's failure to find the correct iconv.h header/library
      now that the NDK ships it's iconv.h with all functions #if-ed out and
      unusable.
      
      https://ci.gstreamer.net/job/cerbero-android/8220/console
      f4a7b42e
  26. 01 Mar, 2018 1 commit
  27. 11 Feb, 2018 1 commit
  28. 20 Dec, 2017 1 commit
  29. 08 Dec, 2017 1 commit
  30. 17 Nov, 2017 2 commits