1. 18 Jun, 2018 2 commits
  2. 17 Jun, 2018 3 commits
  3. 12 Dec, 2013 1 commit
    • Emmanuele Bassi's avatar
      Fully rework the conformance test suite · 2a660fa2
      Emmanuele Bassi authored
      The current conformance test suite is suboptimal in many ways.
      
      All tests are built into the same binary, which makes adding new tests,
      builting tests, and running groups of tests much more awkward than it
      needs to be. The first issue, especially, raises the bar of contribution
      in a significant way, while the other two take their toll on the
      maintainer. All of these changes were introduced back when we had both
      Clutter and Cogl tests in tree, and because we were building the test
      suite for every single change; since then, Cogl moved out of tree with
      all its tests, and we build the conformance test suite only when running
      the `check` make target.
      
      This admittedly large-ish commit changes the way the conformance test
      suite works, taking advantage of the changes in the GTest API and test
      harness.
      
      First of all, all tests are now built separately, using their own test
      suite as defined by each separate file. All tests run under the TAP
      harness provided by GTest and Automake, to gather a proper report using
      the Test Anything Protocol without using the `gtester` harness and the
      `gtester-report` script. We also use the Makefile rules provided by GLib
      to vastly simplify the build environment for the conformance test suite.
      
      On top of the changes for the build and harness, we also provide new API
      for creating and running test suites for Clutter. The API is public,
      because the test suite has to use it, but it's minimal and mostly
      provides convenience wrappers around GTest that make writing test units
      for Clutter easier.
      
      This commit disables all tests in the conformance test suite, as well as
      moving the data files outside of the tests/data directory; the next few
      commits will re-establish the conformance test suite separately so we
      can check that everything works in a reliable way.
      2a660fa2
  4. 30 Jul, 2012 1 commit
  5. 19 Jun, 2012 2 commits
  6. 01 May, 2012 2 commits
    • Emmanuele Bassi's avatar
      build: Allow disabling all tests and examples · 704928a8
      Emmanuele Bassi authored
      This should allow nicer build automation and cross-compilation support.
      
      The former --disable-conformance configure switch has been deprecated by
      the --disable-tests one, which is more encompassing as it disables the
      whole test suite.
      704928a8
    • Emmanuele Bassi's avatar
      Move examples from tests/interactive to a new top-level · 07c95ebf
      Emmanuele Bassi authored
      The example code that is meant to be XIncluded into the API reference
      should not be part of the interactive test suite: it's code that it is
      meant to be used as a reference implementation - whereas the interactive
      test suite should be allowed to be lean and test behaviour even in nasty
      ways. In short: the test suite should not be the place where we show off
      idiomatic code for educational purposes.
      07c95ebf
  7. 16 Sep, 2011 1 commit
  8. 04 Jul, 2011 1 commit
    • Øyvind Kolås's avatar
      tests: Add performance tracking framework · aa05b66a
      Øyvind Kolås authored
      This adds a performance tracking framework that can run a set of tests over
      specified git revisions. The ruby script for generating the reports comes from
      similar performance tracking in GEGL. The framework permits evaluating new
      tests against older version of clutter.
      
      The tests themselves go through a few hoops for disabling framerate limiting in
      both mesa and clutter.
      
      When running make check the tests will be run and lines of the form:
      
      @ test-state: 40.51 fps
      
      will be left in the output, a script can scrape these lines out of a build log
      on a buildbot to in other ways track performance.
      aa05b66a
  9. 22 Feb, 2011 1 commit
    • Emmanuele Bassi's avatar
      build: Remove maintainer-clean rule · 8bb81f00
      Emmanuele Bassi authored
      The maintainer-clean files list is horribly out of date, nobody is
      maintaining it, and it's honestly easier to use `git clean -xdf`
      instead to clean untracked files.
      8bb81f00
  10. 14 Feb, 2011 1 commit
  11. 01 Feb, 2011 1 commit
  12. 11 Nov, 2010 1 commit
  13. 03 Oct, 2010 1 commit
  14. 29 Sep, 2010 1 commit
    • Emmanuele Bassi's avatar
      build: Start moving to a non-recursive layout · 8dd8fbdb
      Emmanuele Bassi authored
              *** WARNING: THIS COMMIT CHANGES THE BUILD ***
      
      Do not recurse into the backend directories to build private, internal
      libraries.
      
      We only recurse from clutter/ into the cogl sub-directory; from there,
      we don't recurse any further. All the backend-specific code in Cogl and
      Clutter is compiled conditionally depending on the macros defined by the
      configure script.
      
      We still recurse from the top-level directory into doc, clutter and
      tests, because gtk-doc and tests do not deal nicely with non-recursive
      layouts.
      
      This change makes Clutter compile slightly faster, and cleans up the
      build system, especially when dealing with introspection data.
      
      Ideally, we also want to make Cogl part of the top-level build, so that
      we can finally drop the sed trick to change the shared library from the
      GIR before compiling it.
      
      Currently disabled:
      
        ‣ OSX backend
        ‣ Fruity backend
      
      Currently enabled but untested:
      
        ‣ EGL backend
        ‣ Windows backend
      8dd8fbdb
  15. 17 Aug, 2010 1 commit
  16. 30 Jun, 2010 1 commit
  17. 29 Jun, 2010 1 commit
  18. 18 Jun, 2010 1 commit
    • Robert Bragg's avatar
      build: distinguish CLUTTER_WINSYS and CLUTTER_SONAME_INFIX · bf9d5f39
      Robert Bragg authored
      This adds a separate variable name "CLUTTER_SONAME_INFIX" to define the
      infix for the clutter library that gets linked. Currently the WINSYS
      corresponds to the directory we enter when building to compile the
      window system and input support, but it is desirable to be able to
      define multiple flavours that use the same WINSYS but should result in
      different library names.
      
      For example we are planning to combine the eglx and eglnative window
      systems into one "egl" winsys but we will need to preserve the current
      library names for the eglx and eglnative flavours.
      bf9d5f39
  19. 13 Jan, 2010 1 commit
    • Emmanuele Bassi's avatar
      Add gcov support to the build · 948db40c
      Emmanuele Bassi authored
      Using gcov it's possible to get a coverage report, that is a break down
      of how much the exposed API is exercised by the conformance test suite.
      948db40c
  20. 01 Dec, 2009 2 commits
  21. 30 Nov, 2009 1 commit
  22. 18 Nov, 2009 3 commits
  23. 16 Oct, 2009 1 commit
    • Robert Bragg's avatar
      Intial Re-layout of the Cogl source code and introduction of a Cogl Winsys · 43efab46
      Robert Bragg authored
      As part of an incremental process to have Cogl be a standalone project we
      want to re-consider how we organise the Cogl source code.
      
      Currently this is the structure I'm aiming for:
      cogl/
          cogl/
      	<put common source here>
      	winsys/
      	   cogl-glx.c
      	   cogl-wgl.c
      	driver/
      	    gl/
      	    gles/
      	os/ ?
          utils/
      	cogl-fixed
      	cogl-matrix-stack?
              cogl-journal?
              cogl-primitives?
          pango/
      
      The new winsys component is a starting point for migrating window system
      code (i.e.  x11,glx,wgl,osx,egl etc) from Clutter to Cogl.
      
      The utils/ and pango/ directories aren't added by this commit, but they are
      noted because I plan to add them soon.
      
      Overview of the planned structure:
      
      * The winsys/ API is the API that binds OpenGL to a specific window system,
        be that X11 or win32 etc.  Example are glx, wgl and egl. Much of the logic
        under clutter/{glx,osx,win32 etc} should migrate here.
      
      * Note there is also the idea of a winsys-base that may represent a window
        system for which there are multiple winsys APIs.  An example of this is
        x11, since glx and egl may both be used with x11.  (currently only Clutter
        has the idea of a winsys-base)
      
      * The driver/ represents a specific varient of OpenGL. Currently we have "gl"
        representing OpenGL 1.4-2.1 (mostly fixed function) and "gles" representing
        GLES 1.1 (fixed funciton) and 2.0 (fully shader based)
      
      * Everything under cogl/ should fundamentally be supporting access to the
        GPU.  Essentially Cogl's most basic requirement is to provide a nice GPU
        Graphics API and drawing a line between this and the utility functionality
        we add to support Clutter should help keep this lean and maintainable.
      
      * Code under utils/ as suggested builds on cogl/ adding more convenient
        APIs or mechanism to optimize special cases. Broadly speaking you can
        compare cogl/ to OpenGL and utils/ to GLU.
      
      * clutter/pango will be moved to clutter/cogl/pango
      
      How some of the internal configure.ac/pkg-config terminology has changed:
      backendextra -> CLUTTER_WINSYS_BASE # e.g. "x11"
      backendextralib -> CLUTTER_WINSYS_BASE_LIB # e.g. "x11/libclutter-x11.la"
      clutterbackend -> {CLUTTER,COGL}_WINSYS # e.g. "glx"
      CLUTTER_FLAVOUR -> {CLUTTER,COGL}_WINSYS
      clutterbackendlib -> CLUTTER_WINSYS_LIB
      CLUTTER_COGL -> COGL_DRIVER # e.g. "gl"
      
      Note: The CLUTTER_FLAVOUR and CLUTTER_COGL defines are kept for apps
      
      As the first thing to take advantage of the new winsys component in Cogl;
      cogl_get_proc_address() has been moved from cogl/{gl,gles}/cogl.c into
      cogl/common/cogl.c and this common implementation first trys
      _cogl_winsys_get_proc_address() but if that fails then it falls back to
      gmodule.
      43efab46
  24. 16 Sep, 2009 1 commit
  25. 28 Jul, 2009 1 commit
  26. 19 Feb, 2009 3 commits
  27. 18 Feb, 2009 1 commit
  28. 29 Jan, 2009 3 commits
    • Emmanuele Bassi's avatar
      [build] Fix distcheck of ChangeLog · bec9b32e
      Emmanuele Bassi authored
      Relax the copy failure condition.
      bec9b32e
    • Emmanuele Bassi's avatar
      [build] Add automatic ChangeLog generation on dist · cf80105a
      Emmanuele Bassi authored
      Since we moved to Git from Subversion we've abandoned the ChangeLog
      file in favour of a more detailed commit log.
      
      In order to maintain a ChangeLog for users of the tarballs, we need
      to generate a ChangeLog file out of the commit log when distchecking
      a Clutter release.
      
      For this reason, we use a simple Perl script that is invoked by the
      dist-hook and generates a ChangeLog file starting from the previous
      stable release.
      cf80105a
    • Emmanuele Bassi's avatar
      Move the old ChangeLog into its own file · 945d2616
      Emmanuele Bassi authored
      The old ChangeLog is there to track the project history when it
      was in SVN -- also because the commit messages we imported from
      Subversion were not that great.
      
      Unfortunately, we need a ChangeLog for autotools to work in
      GNU mode; for this reason, we can use a dummy ChangeLog redirecting
      to git log.
      
      The ChangeLog will be generated on release from the commit
      messages, for users of the tarballs.
      945d2616