struct config {
const char* id;
const char* target;
- int flags;
+ enum {
+ BUILD_INTERACTIVE = (1 << 0),
+ BUILD_ENABLE_CCACHE = (1 << 1),
+ BUILD_ENABLE_SNAPSHOT = (1 << 2),
+ BUILD_ENABLE_TESTS = (1 << 3),
+ } flags;
// Makefiles
char* makefiles[MAX_MAKEFILES];
switch (key) {
case OPT_DISABLE_CCACHE:
- config->flags |= PAKFIRE_BUILD_DISABLE_CCACHE;
+ config->flags &= ~BUILD_ENABLE_CCACHE;
break;
case OPT_DISABLE_SNAPSHOT:
- config->flags |= PAKFIRE_BUILD_DISABLE_SNAPSHOT;
+ config->flags &= ~BUILD_ENABLE_SNAPSHOT;
break;
case OPT_DISABLE_TESTS:
- config->flags |= PAKFIRE_BUILD_DISABLE_TESTS;
+ config->flags &= ~BUILD_ENABLE_TESTS;
break;
case OPT_ID:
break;
case OPT_NON_INTERACTIVE:
- config->flags &= ~PAKFIRE_BUILD_INTERACTIVE;
+ config->flags &= ~BUILD_INTERACTIVE;
break;
case OPT_TARGET:
struct config config = {
.id = NULL,
.target = NULL,
- .flags = PAKFIRE_USE_SNAPSHOT,
+ .flags =
+ BUILD_INTERACTIVE |
+ BUILD_ENABLE_CCACHE |
+ BUILD_ENABLE_SNAPSHOT |
+ BUILD_ENABLE_TESTS,
};
+ int build_flags = 0;
int r;
struct cli_config* cli_config = data;
// Replace the logger
pakfire_ctx_set_log_callback(cli_config->ctx, log_callback, NULL);
+ // Set Pakfire flags
+ if (config.flags & BUILD_ENABLE_SNAPSHOT)
+ cli_config->flags |= PAKFIRE_USE_SNAPSHOT;
+
// Setup pakfire
r = cli_setup_pakfire(&pakfire, cli_config);
if (r)
goto ERROR;
+ // Is the build interactive?
+ if (config.flags & BUILD_INTERACTIVE)
+ build_flags |= PAKFIRE_BUILD_INTERACTIVE;
+
+ // Enable ccache?
+ if (!(config.flags & BUILD_ENABLE_CCACHE))
+ build_flags |= PAKFIRE_BUILD_DISABLE_CCACHE;
+
+ // Enable tests?
+ if (!(config.flags & BUILD_ENABLE_TESTS))
+ build_flags |= PAKFIRE_BUILD_DISABLE_TESTS;
+
// Setup the build environment
- r = pakfire_build_create(&build, pakfire, config.id, config.flags);
+ r = pakfire_build_create(&build, pakfire, config.id, build_flags);
if (r) {
fprintf(stderr, "Could not setup the build environment: %m\n");
goto ERROR;
#define MAX_PACKAGES 128
struct config {
- int flags;
+ enum {
+ SHELL_ENABLE_SNAPSHOT = (1 << 0),
+ } flags;
// Arguments
const char* argv[MAX_ARGS + 1];
switch (key) {
case OPT_DISABLE_SNAPSHOT:
- config->flags |= PAKFIRE_BUILD_DISABLE_SNAPSHOT;
+ config->flags &= ~SHELL_ENABLE_SNAPSHOT;
break;
case OPT_INSTALL:
struct cli_config* cli_config = data;
- // XXX DEBUG
- cli_config->flags |= PAKFIRE_USE_SNAPSHOT;
-
struct config config = {
- .flags = PAKFIRE_BUILD_INTERACTIVE,
+ .flags = SHELL_ENABLE_SNAPSHOT,
.argv = {},
.argc = 0,
.packages = {},
if (r)
goto ERROR;
+ // Enable snapshots?
+ if (config.flags & SHELL_ENABLE_SNAPSHOT)
+ cli_config->flags |= PAKFIRE_USE_SNAPSHOT;
+
// Setup pakfire
r = cli_setup_pakfire(&pakfire, cli_config);
if (r)
goto ERROR;
// Setup the build environment
- r = pakfire_build_create(&build, pakfire, NULL, config.flags);
+ r = pakfire_build_create(&build, pakfire, NULL, PAKFIRE_BUILD_INTERACTIVE);
if (r) {
fprintf(stderr, "Could not setup the build environment: %m\n");
goto ERROR;