Commit Graph

35 Commits

Author SHA1 Message Date
Samuel Henrique 40cbe7ed97 Skip manpage and html doc installation if they weren't generated
Otherwise we get errors like this:

 CMake Error at doc/cmake_install.cmake:46 (file):
  file INSTALL cannot find
  "/<<PKGBUILDDIR>>/build/doc/html": No such file or
  directory.
 Call Stack (most recent call first):
  cmake_install.cmake:59 (include)
2022-03-02 23:46:46 +01:00
patrick96 f428b7bb2f Install manpage for polybar-msg 2022-01-24 13:47:49 +01:00
Patrick Ziegler 282b0f4e73
Create default config (#2511)
* Create default config and install to /etc/polybar

Closes #2405

* Search for config in /etc

We search in XDG_CONFIG_DIRS, /etc/xdg, and /etc but only for config.ini

Closes #2016

* Remove config installation from build.sh

* Remove userconfig cmake file

* Cleanup

* Cleanup default config

* Update CHANGELOG.md

Co-authored-by: dvermd <315743+dvermd@users.noreply.github.com>

* Update src/main.cpp

Co-authored-by: dvermd <315743+dvermd@users.noreply.github.com>

* Add tests for string functions

* Support loading bars from fallbacks in /etc

* Combine duplicate string_util::contains test

Co-authored-by: dvermd <315743+dvermd@users.noreply.github.com>
2021-10-05 13:07:19 +02:00
patrick96 3ac93845fc Install changelog file as part of the documentation 2021-01-07 20:48:04 +01:00
patrick96 50b567f070 sphinx: Turn on nit-picky mode 2021-01-07 20:48:04 +01:00
patrick96 ca8fbe5c86 doc: Exclude .buildinfo file from installation
The file contains information about the build itself (hashed) and is not
really useful.
2021-01-07 20:48:04 +01:00
patrick96 ddfec6fc8f build: Add option to enable/disable html/manpages 2020-12-24 02:20:38 +01:00
patrick96 923d9ae061 Add cmake files for configuring individual targets
This makes the code a bit less messy. We barely need if(BUILD_...)
guards inside the cmake files, just the root CMakeLists.txt.
2020-12-24 02:20:38 +01:00
patrick96 c24a6999a4 refactor(cmake): Allow targets to be enabled individually
Each major target of polybar can now be enabled/disabled while
configuring (even polybar itself).

The cmake code specific to each target will only run if the target is
enabled.

This allows us to for example just build the documentation without
having to run all the cmake code related to compilation or having the
polybar dependencies installed (other than sphinx).
2020-12-24 02:20:38 +01:00
patrick96 16b2970bd7 build: Bump cmake version to 3.5.0
This includes the changes from polybar/xpp#30 which also updates the
minimum cmake version in the xpp submodule
2020-12-24 02:20:38 +01:00
patrick96 91e31317a7 doc: Set SPHINX_BUILD in standalone doc builds
If we build only the documentation by invoking `cmake` on the `doc`
folder, the `SPHINX_BUILD` variable is not set and instead of

```
sphinx-build -b html ...
```

it will just execute

```
-b html ...
```

This produces an error but doesn't fail the build because apparently if
the command starts with a dash an error is non-fatal.

Fixes #2191
2020-10-03 15:37:17 +02:00
patrick96 fab8437ff1 doc: Write syntax definition in polybar.5 2020-02-21 16:17:12 +01:00
patrick96 0b713047aa doc: Allow custom SPHINX_BUILD 2020-02-21 16:17:12 +01:00
Rune Morling 43556b5d92 cmake: Use GNUInstallDirs (#1818)
* Use GNUInstallDirs instead of hardcoded paths

This change should be a no-op in the normal case and at the same time make it
easier to customise polybar builds on systems with special needs.

* Avoid creating /usr/share/doc/polybar/polybar/*

* Include GNUInstallDirs for the doc target itself

* cmake: Don't try to set CMAKE_INSTALL_* variables

Since we include GNUInstallDirs all these variables are already set

* cmake: Print install directories in summary

* fix(cmake): Make doc-only work like normal build

This is kind of a dirty hack to force CMAKE_INSTALL_DOCDIR to use
`polybar` as the project name when only polybar-doc is built.

Maybe it is wiser at some point to be able to do a doc only build (and
install) that can be done from the top level project. Then we would also
not need to include GNUInstallDirs here
2019-06-24 18:08:59 +02:00
patrick96 4c0117528e build: Allow doc to build as its own project
We can now build the docs without having to have installed all
dependencies for polybar.
2019-05-10 08:14:02 +02:00
patrick96 bfaeb71cb8 build: create config even when docs are disabled
Fixes #1733
2019-04-24 08:11:27 +02:00
patrick96 bbdcbee068 doc: Make conf.py work on readthedocs
rtd scans the project for a conf.py file so we cannot name it conf.py.in
unless we get rtd to run cmake before building.

The easier option is to have doc/conf.py be the file used by rtd and all
other builds use cmake to first configure it.
2019-04-05 23:43:37 +02:00
patrick96 5b7bb2514e refactor(doc): Enable only if sphinx is available 2019-04-05 23:43:37 +02:00
patrick96 754673bff8 refactor(cmake): Make documentation optional 2019-04-05 23:43:37 +02:00
patrick96 2c42bae09f refactor(doc): Use cmake APP_VERSION in conf.py
This also moves the doc generation completely into cmake (no more
Makefile).

To generate the docs the project needs to first be configured and then
`make doc` can be run.

The approach used is leaned on the cmake's project own use of Sphinx:
Utilities/Sphinx/CMakeLists.txt
2019-04-05 23:43:37 +02:00
patrick96 166f704e58 doc: Install rst based man pages 2019-04-05 23:43:37 +02:00
patrick96 c841bd512c doc: Build doc with cmake
Run `make doc` inside the cmake build folder.

The html output is installed to
${CMAKE_INSTALL_PREFIX}/share/doc/polybar
2019-04-05 23:43:37 +02:00
Patrick Ziegler 0849d05469 fix(docs): Use correct alsa module name (#1030) 2018-02-15 18:49:04 -08:00
patrick96 295297500d docs: Add pulseaudio sample config 2018-02-15 17:43:47 -08:00
NBonaparte 6e8b9dea29 fix(pulseaudio): Move pulseaudio to separate module 2018-01-20 12:37:41 -08:00
NBonaparte 4f15f42f2c fix(build): Only use one volume backend 2018-01-20 12:37:41 -08:00
Michael Carlberg 00d6fc9646 fix(cmake): Invalid path 2017-01-26 20:36:00 +01:00
Michael Carlberg 76c657db70 fix(cmake): Specify configure_file dest 2017-01-26 20:33:13 +01:00
Michael Carlberg 43a17c3b36 refactor(cmake): Cleanup 2017-01-26 17:39:50 +01:00
Michael Carlberg 37d0a0e57b refactor(cmake): Cleanup 2017-01-25 23:28:25 +01:00
Michael Carlberg e126a669d8 fix(docs): Update example config 2017-01-24 11:59:10 +01:00
Michael Carlberg e20150e6ca feat(cmake): Query fonts 2017-01-14 00:05:54 +01:00
Michael Carlberg 385572ec64 feat(xrandr): Support for monitors
Refs #280
2017-01-13 03:52:57 +01:00
Michael Carlberg b8545cbbd1 cmake: Install zsh compdef 2017-01-01 21:40:03 +01:00
Michael Carlberg 92424f0d49 refactor(cmake): Install components 2016-12-23 18:10:19 +01:00