1. 02 Oct, 2020 1 commit
  2. 22 Sep, 2020 1 commit
    • Nirbheek Chauhan's avatar
      Split bootstrap commands into system/toolchains/build-tools · 49ab8974
      Nirbheek Chauhan authored
      This allows us to run the --system command in the docker file when
      building the image, and --toolchains and --build-tools when running
      a CI job.
      This will simplify the job scripts, and will also allow us to test
      changes to the toolchain code in cerbero without rebuilding the image.
      Part-of: <!611>
  3. 10 Jul, 2020 1 commit
  4. 12 Jun, 2020 1 commit
  5. 04 Jun, 2020 1 commit
  6. 26 May, 2020 2 commits
    • Nirbheek Chauhan's avatar
      Rewrite MSVC/MinGW toolchain config for UWP cross compilation · 576ddac5
      Nirbheek Chauhan authored
      Unlike any other platform, on Windows we build recipes with both
      MSVC and MinGW. All Meson recipes can be built with MSVC, but the
      Autotools recipes always use MinGW.
      This broke the fundamental assumption that `self.config.config_env`
      contains all the information needed by the build system to find the
      toolchain that we want to use.
      At the time, we hacked around it by unsetting MinGW toolchain env vars
      inside `build.py`, and storing msvc toolchain env vars in
      `self.config.msvc_toolchain_env`. We would then set those only when
      building recipes that can use MSVC.
      This completely breaks down when you want to cross-compile on Windows,
      because we need some env vars to stay in the env, and others to only
      be in the cross file.
      To fix this, a bunch of things had to change:
      1. Use actual objects for environment variable values: `EnvValue` and
         other classes that inherit from it. These allow easier
         merging/overriding of env var values.
      2. Separate out env vars according to their stated purpose:
         a) Configuration for build tools (WINEPREFIX, WINDEBUG, etc)
         b) Configuration for toolchain (LIBRARY_PATH, INCLUDE, LIB, etc)
         c) Configuration for build system (CC, CFLAGS, ac_cv_*, etc)
      3. Always use a native-file or a cross-file for selecting the
         toolchain when using Meson.
      4. Rename meson_cross_properties to meson_properties, since we use
         those even when not cross-compiling.
      Future TODO: port all env var usage in config.py and config/*.config
      to the new EnvValue* objects
      Part-of: <!480>
    • Nirbheek Chauhan's avatar
      cerbero: Move env var type checks into utils · 0b991206
      Nirbheek Chauhan authored
      We will use this for the windows.config rewrite later.
      Part-of: <!480>
  7. 15 May, 2020 1 commit
  8. 07 Apr, 2020 1 commit
  9. 27 Mar, 2020 1 commit
  10. 03 Mar, 2020 1 commit
  11. 02 Mar, 2020 3 commits
    • Nirbheek Chauhan's avatar
      cerbero: Only add system libs on linux, when not cross-compiling · dbde43be
      Nirbheek Chauhan authored
      This feature is specifically only for libraries with pkg-config files
      that are shipped on all Linux distros and are:
      1. Linux-specific libraries or features
      2. Also available on other platforms (for which we ship a recipe), but
         we don't want to use that recipe on Linux for various reasons
      For example, it can cause issues with `LD_LIBRARY_PATH` and build
      tools provided by the system on Linux.
      So, just make it a no-op on other platforms instead of setting it
      conditionally in recipes. We never want it to be set on other
    • Matthew Waters's avatar
      utils: fix spammy BlockingIOError on older python versions · 0293c9ca
      Matthew Waters authored
      Python < 3.8 used SIGCHLD to reap child proceses and would poll every
      process on every SIGCHLD (asyncio.SafeChildWatcher).  This may become
      overwhelming with lots of short-lived processes.  We don't actually
      need this functionality of polling individual processes so we can use
      the asyncio.FastChildWatcher instead.
      We keep the default asyncio.ThreadedChildWatcher for python 3.8 as it
      does not produce BlockingIOError
    • Matthew Waters's avatar
      utils: handle nested run_tasks() · 68fda336
      Matthew Waters authored
      As used when building universal variants (ios, android)
      We need to propagate the CancelledError from the sub-run_tasks() to the
      parent run_tasks() so that the parent knows to stop rather than
      We attempt to avoid raising the CancelledError if another exception
      is thrown somewhere else as a task being cancelled is not an
      interesting result from a failure.
  12. 01 Feb, 2020 1 commit
  13. 19 Dec, 2019 1 commit
  14. 11 Dec, 2019 1 commit
  15. 05 Nov, 2019 2 commits
    • Pablo Marcos Oltra's avatar
      Replace 3.7 create_task with 3.5.1 ensure_future · 0c6944b5
      Pablo Marcos Oltra authored and Nirbheek Chauhan's avatar Nirbheek Chauhan committed
      create_task is only available in 3.7, and in 3.8 the API
      changes. So, we'd rather use the ensure_future since it
      does exactly the same even though the docs say it may be
      less readable.
    • Jochen Henneberg's avatar
      cerbero: Preserve PKG_CONFIG_PATH from host · e0eb54a9
      Jochen Henneberg authored
      E. g. for compiling with '-v msdk' we may want to set the MediaSDK
      library compiler settings using PKG_CONFIG_PATH which is probably more
      popular than PKG_CONFIG_LIBDIR which already worked.
      So this patch adds the PKG_CONFIG_PATH settings from the host to the
      cerbero build environment.
  16. 31 Oct, 2019 2 commits
  17. 29 Oct, 2019 2 commits
  18. 27 Oct, 2019 1 commit
  19. 25 Oct, 2019 1 commit
  20. 15 Oct, 2019 1 commit
  21. 30 Sep, 2019 1 commit
    • Pablo Marcos Oltra's avatar
      Fix async tasks on Windows · 5fea1acc
      Pablo Marcos Oltra authored and Nirbheek Chauhan's avatar Nirbheek Chauhan committed
      asyncio.Semaphore classes set their working event loop internally on
      creation, so we need to ensure the proper loop has already been set by then.
      This is especially important if we create global semaphores that are
      initialized at the very beginning, since on Windows, the default
      SelectorEventLoop is not available.
  22. 24 Sep, 2019 1 commit
    • Pablo Marcos Oltra's avatar
      Convert fetch commands to async · 96180b64
      Pablo Marcos Oltra authored and Nirbheek Chauhan's avatar Nirbheek Chauhan committed
      The improvement depends on the number of recipes, network capabilities
      and CPU power. This change is especially useful when there is nothing
      to be actually downloaded because sources are up to date.
      The --jobs/-j parameter allows to specify the number of parallel jobs to
        - 2 jobs will be used if no -j parameter is specified
        - Twice the number of logical cores will be used if no number is
          provided after the -j parameter
  23. 23 Sep, 2019 1 commit
  24. 20 Sep, 2019 1 commit
  25. 13 Sep, 2019 1 commit
  26. 13 Aug, 2019 1 commit
  27. 22 Jun, 2019 1 commit
  28. 02 May, 2019 1 commit
  29. 04 Apr, 2019 1 commit
  30. 07 Feb, 2019 1 commit
    • Nirbheek Chauhan's avatar
      Add a variant for Qt5 for building the qmlgl plugin · 931b2a75
      Nirbheek Chauhan authored
      And add it to a new package set called 'qt5'. Later, we may add other
      packages for GUI toolkits such as gtk3 and gtk4.
      Users must set either QT5_PREFIX to point to their Qt installation, or
      QMAKE to point to the qmake binary. When building android-universal,
      users must set QT5_PREFIX since the qmake is different for each arch.
      Tested on Linux, Android-Universal, iOS-Universal, macOS, Windows
  31. 17 Dec, 2018 1 commit
    • Andoni Morales Alastruey's avatar
      Add __file__ when parsing a file · 003a6c93
      Andoni Morales Alastruey authored and Nirbheek Chauhan's avatar Nirbheek Chauhan committed
      The cookbook is setting the __file__ attribute too
      but it's done to the new instance, it can't be used
      in the recipe's loading.
      This help implementing inheritance patterns in the recipes like:
      file = os.path.join(os.path.split(__file__)[0], "../cerbero/recipes/gmp.recipe")
      gmp_recipe = Recipe
      class Recipe(gmp_recipe):
  32. 12 Nov, 2018 1 commit
  33. 06 Nov, 2018 1 commit
  34. 27 Oct, 2018 1 commit