1. 19 Sep, 2018 1 commit
  2. 22 Jul, 2018 1 commit
  3. 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
  4. 12 Oct, 2016 1 commit
    • Nirbheek Chauhan's avatar
      Workaround broken XCode 8 SDK weak symbol detection · 45da4d69
      Nirbheek Chauhan authored
      macOS 10.12 added a bunch of new symbols: clock_gettime, getentropy,
      mkostemp, etc. These are available in the macOS 10.12 SDK. However,
      XCode 8 now only ships that version of the SDK, and because of the way
      the symbols are defined, they are always detected as being available
      regardless of what OS X version you are actually targetting.
      
      Long story short, the only way around this is to workaround it by
      forcibly disabling detection of these symbols when we're targetting OS
      X versions older than 10.12. For more details, see:
      https://bugzilla.gnome.org/show_bug.cgi?id=772451
      45da4d69
  5. 14 Feb, 2015 1 commit
  6. 23 Feb, 2013 1 commit
  7. 26 Oct, 2012 1 commit