This also helps to easier spot failures because of this when looking
at the build matrix.
- Add new check-qa target, to be run only once.
- Add explicit check-unit-coverage target, used with DO_COVERAGE.
Instead of hardcoding the list of generated doc files as dependencies to
ldoc, we jump through some hoops to compute this dynamically.
Signed-off-by: Uli Schlachter <psychon@znc.in>
A while ago, we made errors from ldoc fatal by default. Then a new ldoc
release appeared and caused problems for all of our users, because
awesome failed to work.
This patch reverts the previous fix so that we ignore ldoc warnings by
default again. However, to catch ldoc warnings on Travis, another
ldoc-building-target is added that fails on warnings. This new target is
included in our "check" target.
This fixes the intend of issue #1098 ("Users with ldoc version X cannot
build awesome"), but it does not actually employ the solution proposed
there ("Blacklist those ldoc versions"). Still, since this fixes the
intend of the issue, I count it as fixed.
Fixes: https://github.com/awesomeWM/awesome/issues/1098
Signed-off-by: Uli Schlachter <psychon@znc.in>
This meta-lua script takes the "raw" awesomerc.lua and turn it
into the final file and generate a documentation page from its
parsed content. It support
* Turn {{{ into markdown categories
* Turn top level comments into documentation
* Add custom documentation sections
* Parse the code to add links for each API calls
This helps generate a good entry point for new users wanting to
understand the content of rc.lua without searching the API by
hand.
Over time, this will also become the basis of the documentation.
If `rc.lua` is separated into several files, this will be easy to fix
this script. It could even do the separation itself from a monolitic
file using the already implemented {{{ parser.
Currently, tests/run.sh expects the directory layout that our wrapper Makefile
sets up before running CMake. This commit adds support for any other directory
configuration as well.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit adds a new "luacheck" target to the Makefiles. This target is
automatically included in "make check" when luacheck is found in $PATH.
Additionally, this includes luacheck in Travis so that the build fails when
luacheck complains about something.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Instead of copying images to ${BUILD_DIR}/docs/images, which is the directory
with the input to ldoc, this now copies the images to ${BUILD_DIR}/doc/images,
which is where ldoc generates its output. That way, the images are together with
the html files and are automatically picked up by a lot of stuff.
Fixes: https://github.com/awesomeWM/awesome/issues/681
Signed-off-by: Uli Schlachter <psychon@znc.in>
Via this commit, any warnings from LDoc are fatal and make "make" fail. The
intention is to cause failures on Travis for PRs that introduce broken
documentation.
Closes: https://github.com/awesomeWM/awesome/issues/643
Signed-off-by: Uli Schlachter <psychon@znc.in>
- Remove `-rdynamic` from "CFLAGS" and count on CMake to pass it to
the compiler at the link phase (Issue #450).
- Move the definition of "CFLAGS" from `awesomeConfig.cmake` to
`CMakeLists.txt` and give it a name, `AWESOME_C_FLAGS`, so that the
relation between the target and the flags is made clearer and
manageable.
- Make `AWESOME_C_FLAGS` a cached variable so that the developers can
tweak the flags promptly in accordance with their necessities without
changing the prescribed value.
- Add a logic to cope with the case where CMake fails to set
`-rdynamic`.
Closes https://github.com/awesomeWM/awesome/pull/453.
With version 2.0rc5, Busted started cleaning up between tests more thoroughly.
The result was that it managed to unload and reload lgi. However, the C part of
lgi is not safe to be reloaded. This caused sporadic errors in the test suite
runs.
Work around this via a helper script that is run before Busted starts running
tests. When we load lgi in this helper script, it is loaded before Busted starts
saving and restoring everything and thus lgi won't ever be unloaded.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This gets rid of the following CMake warning:
CMake Warning (dev) at CMakeLists.txt:341 (add_custom_target):
Policy CMP0037 is not set: Target names should not be reserved and should
match a validity pattern. Run "cmake --help-policy CMP0037" for policy
details. Use the cmake_policy command to set the policy and suppress this
warning.
The target name "test" is reserved or not valid for certain CMake features,
such as generator expressions, and may result in undefined behavior.
This warning is for project developers. Use -Wno-dev to suppress it.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This patch provides functions to get/set current keyboard layout.
Current implementation doesn't support any configuration of layout,
it's a merely a layout indicator and switcher, however layout
configuration can be set by tools like setxkbmap or by any third-party
tools.
This moves all of the documentation into a separate folder, which keeps
everything in one place and avoids unnecessary clutter.
This will pay off when proper guides are written for various aspects of
using awesome or contributing to it.
This also updates the building system, so that the docs are properly
generated with new directories.
Signed-off-by: Ignas Anikevicius (gns_ank) <anikevicius@gmail.com>
This uses busted (http://olivinelabs.com/busted/) to implement unit testing.
This is wired up to "make check" and/or "make test".
This commit also adds tests for the more complicated parts of the gears and
wibox.layout libraries.
Signed-off-by: Uli Schlachter <psychon@znc.in>
We only need lgi for running, not for building. This means that our lgi
dependency is easily missed. This commit makes this dependency more explicit.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Since we are no longer using module(), luadoc no longer understands our modules.
With this commit we use LDoc instead which seems more modern.
Signed-off-by: Uli Schlachter <psychon@znc.in>
The old PNGs that were generated caused a warning from libpng when they were
read:
incorrect gamma=(0/100000)
Ignoring incorrect gAMA value when sRGB is also present
This changes the look of the resulting icons by making them darker. However,
right now I just want to get rid of that stupid warning. Feel free to suggest
better options.
Signed-off-by: Uli Schlachter <psychon@znc.in>
A drawable is something that you can draw to, just like a drawin. However, a
drawable isn't necessarily its own windows. This will later on be used to
implement titlebars where the titlebars are drawables.
Signed-off-by: Uli Schlachter <psychon@znc.in>
This option is no longer valid in modelines, so it has been removed from
all modelines using the following shellscript:
#!/bin/ksh
git ls-tree -r HEAD | cut -f2 | while read f; do
egrep -e '^(//|--) vim: .*encoding=' $f >/dev/null || continue
sed -E -e '/^(\/\/|--) vim:/s/:encoding=utf-8//' $f > /tmp/foo
mv /tmp/foo $f
done
Signed-off-by: Gregor Best <gbe@ring0.de>
Signed-off-by: Uli Schlachter <psychon@znc.in>
The elements in ${icon_sources}, as returned by file(GLOB ...) contain
double slashes, could be a bug in cmake. This causes building with
cmake 2.8.4 to fail, due to dependency problems lateron.
This patch works around the issue by normalizing all path names in
${icon_sources} while appending them to ${ALL_ICONS}, thereby removing
the double slashes.
Signed-off-by: Uli Schlachter <psychon@znc.in>
Turns out there are files in themes/ which are still needed (e.g. the default
wallpaper and the layout icons).
Signed-off-by: Uli Schlachter <psychon@znc.in>
The current code used "if(MATCHES)" to decide if a path was inside the source
directory or the build directory. MATCHES uses regular expressions and so this
check failed miserably if the path contained any characters that have a special
meaning in regular expressions (e.g. "+").
Fix this by only using paths inside the build dir for the icons. All icons are
copied from the source dir to the build dir so that we can freely assume that
everything is inside the build directory.
Instead of trying to "transform" the existing paths from the source dir to the
build dir, we use "file(GLOB)"'s RELATIVE option that gives us relative path.
Together with the way "file(COPY)" interprets its arguments, that's all we need.
Signed-off-by: Uli Schlachter <psychon@znc.in>
If a library is in a non-standard path, the linker needs an extra argument so
that it knows how to find this library: -L/path/to/lib
pkg_check_modules() sets _LIBRARIES only to the library's name, but _LDFLAGS
also contains a -L flag if one was found.
Signed-off-by: Uli Schlachter <psychon@znc.in>
On 09/04/2010, Julien Danjou <julien@danjou.info> wrote:
>
> Well, I cannot find anything to say against this patch, so I've merged
> it.
>
Thanks for the kind comments and for your quick reply, I'm glad you
find this contribution useful.
I also noticed that in the previous patch there is a line that was not
supposed to be there, since its purpose was to help debugging the
cmake file. My apologies for that: I have removed it and attached the
corresponding patch (against the already patched version).
Signed-off-by: Diego Moreda <diego.plan9@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
The patch changes the path where the manual pages are compiled, resulting in
a tree structure that follows the man-db convention: the man pages of each
language are stored in a subdirectory of the main man path. For example, the
input file "$AWESOME_SRC/manpages/awesome.1.fr.txt" would be compiled as
"$BUILD_DIR/manpages/fr/man1/awesome.1". The installation step just copies
the resulting directory (in the example, "$BUILD_DIR/manpages/") into the
global man path of the system, excluding the temporary files.
The input .txt files for the translations are not added directly to
AWE_MAN_FILES: instead, the new variable AWE_MAN_LANGS stores the language
names and their input file names are generated automatically. The main
reason of this modification is that it was more convenient for my testing
purposes: this behaviour can be changed back with minor modifications to the
code. This patch is supposed to be a first draft, after all, and it is far
from being perfect, but I hope it is of help.
Signed-off-by: Diego Moreda <diego.plan9@gmail.com>
Signed-off-by: Julien Danjou <julien@danjou.info>
Verified to build with ImageMagick 6.2.4.
Signed-off-by: Johan Kiviniemi <devel@johan.kiviniemi.name>
Signed-off-by: Julien Danjou <julien@danjou.info>
Additionally, use the alpha channel so that the unfocused icons look
good on any background, not just black.
This adds ImageMagick as a build dependency.
Signed-off-by: Johan Kiviniemi <devel@johan.kiviniemi.name>
Signed-off-by: Julien Danjou <julien@danjou.info>
We now use a client_array_t which is more efficient and we reverse the
array order compared to before.
Signed-off-by: Julien Danjou <julien@danjou.info>