gwenhywfar  5.10.1
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 #include "gwenbuild/filenames.h"
21 
22 #include <gwenhywfar/debug.h>
23 
24 
25 
26 int GWB_Build(GWEN_DB_NODE *dbArgs)
27 {
28  GWB_BUILD_CONTEXT *buildCtx;
29  int rv;
30  int numThreads;
31  const char *builderName;
32 
33  numThreads=GWEN_DB_GetIntValue(dbArgs, "jobs", 0, 1);
34  builderName=GWEN_DB_GetCharValue(dbArgs, "builder", 0, NULL);
35 
37  fprintf(stdout, "Build files changed, repeating last setup command.\n");
39  if (rv<0) {
40  DBG_INFO(NULL, "here");
41  return rv;
42  }
43  }
44 
46  if (buildCtx==NULL) {
47  fprintf(stderr, "ERROR: Error reading build context from file.\n");
48  return 2;
49  }
50 
51  /* first build typemaker2 files */
52  if (!(builderName && *builderName)) {
53  rv=GWB_BuildCtx_Run(buildCtx, numThreads, 0, "tm2builder");
54  if (rv<0) {
55  fprintf(stderr, "ERROR: Error building typermaker2 files.\n");
56  return 3;
57  }
58  }
59 
60  /* build the rest */
61  rv=GWB_BuildCtx_Run(buildCtx, numThreads, 0, builderName);
62  if (rv<0) {
63  fprintf(stderr, "ERROR: Error building builds.\n");
64  return 3;
65  }
66 
67  return 0;
68 }
69 
70 
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:308
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:26
#define GWBUILD_FILE_CTX
Definition: filenames.h:15
#define GWBUILD_FILE_ARGS
Definition: filenames.h:20
const char * GWEN_DB_GetCharValue(GWEN_DB_NODE *n, const char *path, int idx, const char *defVal)
Definition: db.c:971
#define GWBUILD_FILE_BUILDFILES
Definition: filenames.h:14
#define DBG_INFO(dbg_logger, format, args...)
Definition: debug.h:181
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