Skip to content

Commit

Permalink
Build improvements (external libs, enable more options).
Browse files Browse the repository at this point in the history
 - Enable build options by default if they don't require external libraries.
 - Add as many external libraries to Docker and Travis builds as possible.
  • Loading branch information
brndnmtthws committed May 13, 2018
1 parent 8dbb623 commit 069b5d4
Show file tree
Hide file tree
Showing 9 changed files with 210 additions and 69 deletions.
69 changes: 67 additions & 2 deletions .travis.yml
Expand Up @@ -22,6 +22,22 @@ matrix:
- libcairo2-dev
- libimlib2-dev
- libxinerama-dev
- libmysqlclient-dev
- libical-dev
- libircclient-dev
- libcairo2-dev
- libmicrohttpd-dev
- ncurses-dev
- liblua5.1-dev
- librsvg2-dev
- libaudclient-dev
- libxmmsclient-dev
- libpulse-dev
- libcurl4-gnutls-dev
- audacious-dev
- libsystemd-journal-dev
- libxml2-dev
- tolua++
- gawk
env:
- MATRIX_EVAL="CC=gcc-8 && CXX=g++-8"
Expand All @@ -46,6 +62,22 @@ matrix:
- libcairo2-dev
- libimlib2-dev
- libxinerama-dev
- libmysqlclient-dev
- libical-dev
- libircclient-dev
- libcairo2-dev
- libmicrohttpd-dev
- ncurses-dev
- liblua5.1-dev
- librsvg2-dev
- libaudclient-dev
- libxmmsclient-dev
- libpulse-dev
- libcurl4-gnutls-dev
- audacious-dev
- libsystemd-journal-dev
- libxml2-dev
- tolua++
- gawk
sonarcloud:
organization: "brndnmtthws-github"
Expand All @@ -57,11 +89,44 @@ before_install:
- eval "${MATRIX_EVAL}"
before_script:
- mkdir build && cd build
- cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ..
- >
cmake
-DBUILD_MYSQL=ON
-DBUILD_LUA_CAIRO=ON
-DBUILD_LUA_IMLIB2=ON
-DBUILD_LUA_RSVG=ON
-DBUILD_LUA_CAIRO=ON
-DBUILD_AUDACIOUS=ON
-DBUILD_XMMS2=ON
-DBUILD_ICAL=ON
-DBUILD_IRC=ON
-DBUILD_HTTP=ON
-DBUILD_ICONV=ON
-DBUILD_PULSEAUDIO=ON
-DBUILD_JOURNAL=ON
-DBUILD_RSS=ON
..
- cd ..
- mkdir build-no-x11
- cd build-no-x11
- cmake -DBUILD_X11=OFF ..
- >
cmake
-DBUILD_X11=OFF
-DBUILD_MYSQL=ON
-DBUILD_LUA_CAIRO=ON
-DBUILD_LUA_IMLIB2=ON
-DBUILD_LUA_RSVG=ON
-DBUILD_LUA_CAIRO=ON
-DBUILD_AUDACIOUS=ON
-DBUILD_XMMS2=ON
-DBUILD_ICAL=ON
-DBUILD_IRC=ON
-DBUILD_HTTP=ON
-DBUILD_ICONV=ON
-DBUILD_PULSEAUDIO=ON
-DBUILD_JOURNAL=ON
-DBUILD_RSS=ON
..
- cd ..
script:
- cd build
Expand Down
73 changes: 68 additions & 5 deletions Dockerfile
@@ -1,35 +1,98 @@
FROM ubuntu:latest
RUN apt-get update \
&& apt-get install -y \
&& DEBIAN_FRONTEND=noninteractive apt-get install -qy \
cmake \
git \
g++ \
libimlib2-dev \
liblua5.3-dev \
libxext-dev \
libxft-dev \
libxdamage-dev \
libxinerama-dev \
ncurses-dev
libmysqlclient-dev \
libical-dev \
libircclient-dev \
libcairo2-dev \
libmicrohttpd-dev \
ncurses-dev \
liblua5.1-dev \
librsvg2-dev \
libaudclient-dev \
libxmmsclient-dev \
libpulse-dev \
libcurl4-gnutls-dev \
audacious-dev \
libsystemd-dev \
libxml2-dev \
tolua++

COPY . /conky
WORKDIR /conky/build
ARG X11=yes

RUN sh -c 'if [ "$X11" = "yes" ] ; then cmake ../ ; else cmake -DBUILD_X11=OFF ../ ; fi' \
RUN sh -c 'if [ "$X11" = "yes" ] ; then \
cmake \
-DBUILD_MYSQL=ON \
-DBUILD_LUA_CAIRO=ON \
-DBUILD_LUA_IMLIB2=ON \
-DBUILD_LUA_RSVG=ON \
-DBUILD_LUA_CAIRO=ON \
-DBUILD_AUDACIOUS=ON \
-DBUILD_XMMS2=ON \
-DBUILD_ICAL=ON \
-DBUILD_IRC=ON \
-DBUILD_HTTP=ON \
-DBUILD_ICONV=ON \
-DBUILD_PULSEAUDIO=ON \
-DBUILD_JOURNAL=ON \
-DBUILD_RSS=ON \
../ \
; else \
cmake \
-DBUILD_X11=OFF \
-DBUILD_MYSQL=ON \
-DBUILD_LUA_CAIRO=ON \
-DBUILD_LUA_IMLIB2=ON \
-DBUILD_LUA_RSVG=ON \
-DBUILD_LUA_CAIRO=ON \
-DBUILD_AUDACIOUS=ON \
-DBUILD_XMMS2=ON \
-DBUILD_ICAL=ON \
-DBUILD_IRC=ON \
-DBUILD_HTTP=ON \
-DBUILD_ICONV=ON \
-DBUILD_PULSEAUDIO=ON \
-DBUILD_JOURNAL=ON \
-DBUILD_RSS=ON \
../ \
; fi' \
&& make -j5 all \
&& make -j5 install \
&& apt-get remove -y \
cmake \
git \
g++ \
libimlib2-dev \
liblua5.3-dev \
libxext-dev \
libxft-dev \
libxdamage-dev \
libxinerama-dev \
libmysqlclient-dev \
libical-dev \
libircclient-dev \
libcairo2-dev \
libmicrohttpd-dev \
ncurses-dev \
liblua5.1-dev \
librsvg2-dev \
audacious-dev \
libaudclient-dev \
libxmmsclient-dev \
libpulse-dev \
libcurl4-gnutls-dev \
libsystemd-dev \
libxml2-dev \
tolua++ \
&& rm -rf /var/lib/apt/lists/* \
&& rm -rf /conky \

Expand Down
12 changes: 6 additions & 6 deletions cmake/ConkyBuildOptions.cmake
Expand Up @@ -43,6 +43,8 @@ if(MAINTAINER_MODE)
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb -Wall -W -Wextra -Wunused -pedantic -Werror -Wno-format ${CMAKE_CXX_FLAGS_DEBUG}" CACHE STRING "Flags used by the compiler during debug builds." FORCE)
endif(MAINTAINER_MODE)

option(CHECK_CODE_QUALITY "Check code formatting/quality with clang" false)

option(RELEASE "Build release package" false)
mark_as_advanced(RELEASE)

Expand Down Expand Up @@ -146,14 +148,14 @@ option(BUILD_MOC "Enable if you want MOC (music player) support" true)

option(BUILD_XMMS2 "Enable if you want XMMS2 (music player) support" false)

option(BUILD_EVE "Enable if you want Eve-Online skill monitoring support" false)
option(BUILD_EVE "Enable if you want Eve-Online skill monitoring support" true)

option(BUILD_CURL "Enable if you want Curl support" false)

option(BUILD_RSS "Enable if you want RSS support" false)

option(BUILD_WEATHER_METAR "Enable METAR weather support" false)
option(BUILD_WEATHER_XOAP "Enable XOAP weather support" false)
option(BUILD_WEATHER_METAR "Enable METAR weather support" true)
option(BUILD_WEATHER_XOAP "Enable XOAP weather support" true)
if(BUILD_WEATHER_METAR OR BUILD_WEATHER_XOAP OR BUILD_RSS)
set(BUILD_CURL true)
endif(BUILD_WEATHER_METAR OR BUILD_WEATHER_XOAP OR BUILD_RSS)
Expand All @@ -174,10 +176,8 @@ endif(BUILD_HTTP)

option(BUILD_ICONV "Enable iconv support" false)

option(BUILD_CMUS "Enable support for cmus music player" false)
option(BUILD_CMUS "Enable support for cmus music player" true)

option(BUILD_JOURNAL "Enable support for reading from the systemd journal" false)

option(BUILD_PULSEAUDIO "Enable support for Pulseaudio's default sink and source" false)

option(CHECK_CODE_QUALITY "Check code formatting/quality with clang" false)
2 changes: 1 addition & 1 deletion cmake/ConkyPlatformChecks.cmake
Expand Up @@ -422,7 +422,7 @@ if(BUILD_IMLIB2)
endif(BUILD_IMLIB2)

if(BUILD_JOURNAL)
pkg_search_module(SYSTEMD REQUIRED libsystemd)
pkg_search_module(SYSTEMD REQUIRED libsystemd libsystemd-journal)
set(conky_libs ${conky_libs} ${SYSTEMD_LIB} ${SYSTEMD_LDFLAGS})
set(conky_includes ${conky_includes} ${SYSTEMD_INCLUDE_PATH})
endif(BUILD_JOURNAL)
Expand Down
8 changes: 5 additions & 3 deletions src/ccurl_thread.h
Expand Up @@ -27,11 +27,13 @@

#include <curl/curl.h>

#include "logging.h"
#include "update-cb.hh"

namespace priv {
// factored out stuff that does not depend on the template parameters
struct curl_internal {
class curl_internal {
public:
std::string last_modified;
std::string etag;
std::string data;
Expand All @@ -47,7 +49,7 @@ struct curl_internal {
// it should populate the result variable
virtual void process_data() = 0;

curl_internal(const std::string &url);
explicit curl_internal(const std::string &url);
virtual ~curl_internal() {
if (curl) curl_easy_cleanup(curl);
}
Expand All @@ -60,7 +62,7 @@ struct curl_internal {
*/
template <typename Result, typename... Keys>
class curl_callback : public conky::callback<Result, std::string, Keys...>,
protected priv::curl_internal {
public priv::curl_internal {
typedef conky::callback<Result, std::string, Keys...> Base1;
typedef priv::curl_internal Base2;

Expand Down

0 comments on commit 069b5d4

Please sign in to comment.