gwenhywfar  5.7.2
c_build.c
Go to the documentation of this file.
1 /***************************************************************************
2  begin : Mon Feb 08 2021
3  copyright : (C) 2021 by Martin Preuss
4  email : martin@libchipcard.de
5 
6  ***************************************************************************
7  * Please see toplevel file COPYING for license details *
8  ***************************************************************************/
9 
10 #ifdef HAVE_CONFIG_H
11 # include <config.h>
12 #endif
13 
14 
15 #include "c_build.h"
16 #include "c_setup.h"
17 #include "utils.h"
20 
21 #include <gwenhywfar/debug.h>
22 
23 
24 
25 int GWB_Build(GWEN_DB_NODE *dbArgs)
26 {
27  GWB_BUILD_CONTEXT *buildCtx;
28  int rv;
29  int numThreads;
30  const char *builderName;
31 
32  numThreads=GWEN_DB_GetIntValue(dbArgs, "jobs", 0, 1);
33  builderName=GWEN_DB_GetCharValue(dbArgs, "builder", 0, NULL);
34 
35  if (GWB_Utils_BuildFilesChanged(".gwbuild.buildfiles")) {
36  fprintf(stdout, "Build files changed, repeating last setup command.\n");
37  rv=GWB_RepeatLastSetup(".gwbuild.args");
38  if (rv<0) {
39  DBG_INFO(NULL, "here");
40  return rv;
41  }
42  }
43 
44  buildCtx=GWB_BuildCtx_ReadFromXmlFile(".gwbuild.ctx");
45  if (buildCtx==NULL) {
46  fprintf(stderr, "ERROR: Error reading build context from file.\n");
47  return 2;
48  }
49 
50  /* build */
51  rv=GWB_BuildCtx_Run(buildCtx, numThreads, 0, builderName);
52  if (rv<0) {
53  fprintf(stderr, "ERROR: Error building builds.\n");
54  return 3;
55  }
56 
57  return 0;
58 }
59 
60 
61 
struct GWEN_DB_NODE GWEN_DB_NODE
Definition: db.h:228
int GWB_RepeatLastSetup(const char *fileName)
Definition: c_setup.c:159
int GWB_Utils_BuildFilesChanged(const char *fileName)
Definition: utils.c:300
struct GWB_BUILD_CONTEXT GWB_BUILD_CONTEXT
Definition: buildctx.h:16
#define NULL
Definition: binreloc.c:300
GWB_BUILD_CONTEXT * GWB_BuildCtx_ReadFromXmlFile(const char *fileName)
Definition: buildctx_xml.c:273
int GWB_Build(GWEN_DB_NODE *dbArgs)
Definition: c_build.c:25
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
Definition: db.c:971
#define DBG_INFO(dbg_logger, format, args...)
Definition: debug.h:178
int GWEN_DB_GetIntValue(GWEN_DB_NODE *n, const char *path, int idx, int defVal)
Definition: db.c:1163
int GWB_BuildCtx_Run(GWB_BUILD_CONTEXT *bctx, int maxConcurrentJobs, int usePrepareCommands, const char *builderName)
Definition: buildctx_run.c:59