14#define DISABLE_DEBUGLOG
17#include "gwenbuild/buildctx/buildctx_p.h"
20#include <gwenhywfar/debug.h>
21#include <gwenhywfar/text.h>
22#include <gwenhywfar/directory.h>
78 GWB_BuildCmd_List2_PushBack(targetCmdList, bcmd);
82 const char *sBuilderName;
84 const char *sFileName;
89 DBG_ERROR(
NULL,
"Builder \"%s\" for selected file \"%s\" in folder \"%s\" has no build commands",
90 sBuilderName?sBuilderName:
"<no name>",
91 sFileName?sFileName:
"<no name>",
102 const char *builderName,
103 GWB_BUILD_CMD_LIST2 *targetCmdList)
106 GWB_BUILD_CMD_LIST2_ITERATOR *it;
108 it=GWB_BuildCmd_List2_First(sourceCmdList);
110 if (builderName && *builderName) {
113 bcmd=GWB_BuildCmd_List2Iterator_Data(it);
118 if (s && strcasecmp(s, builderName)==0) {
121 GWB_BuildCmd_List2_PushBack(targetCmdList, bcmd);
126 bcmd=GWB_BuildCmd_List2Iterator_Next(it);
128 GWB_BuildCmd_List2Iterator_free(it);
133 bcmd=GWB_BuildCmd_List2Iterator_Data(it);
138 GWB_BuildCmd_List2_PushBack(targetCmdList, bcmd);
143 bcmd=GWB_BuildCmd_List2Iterator_Next(it);
145 GWB_BuildCmd_List2Iterator_free(it);
164 if (bctx->commandList) {
165 GWB_BUILD_CMD_LIST2_ITERATOR *it;
167 it=GWB_BuildCmd_List2_First(bctx->commandList);
171 bcmd=GWB_BuildCmd_List2Iterator_Data(it);
174 bcmd=GWB_BuildCmd_List2Iterator_Next(it);
176 GWB_BuildCmd_List2Iterator_free(it);
185 if (bctx->fileList) {
186 GWB_FILE_LIST2_ITERATOR *it;
188 it=GWB_File_List2_First(bctx->fileList);
192 file=GWB_File_List2Iterator_Data(it);
195 file=GWB_File_List2Iterator_Next(it);
197 GWB_File_List2Iterator_free(it);
207 GWB_FILE_LIST2 *fileList;
211 GWB_FILE_LIST2_ITERATOR *it;
213 it=GWB_File_List2_First(fileList);
217 file=GWB_File_List2Iterator_Data(it);
227 GWB_BuildCmd_List2_PushBack(targetCmdList, fileBuildCmd);
233 file=GWB_File_List2Iterator_Next(it);
235 GWB_File_List2Iterator_free(it);
244 if (bctx->commandList) {
245 GWB_BUILD_CMD_LIST2_ITERATOR *it;
247 it=GWB_BuildCmd_List2_First(bctx->commandList);
251 bcmd=GWB_BuildCmd_List2Iterator_Data(it);
254 bcmd=GWB_BuildCmd_List2Iterator_Next(it);
256 GWB_BuildCmd_List2Iterator_free(it);
266 GWB_FILE_LIST2_ITERATOR *it;
268 it=GWB_File_List2_First(fileList);
272 file=GWB_File_List2Iterator_Data(it);
275 file=GWB_File_List2Iterator_Next(it);
277 GWB_File_List2Iterator_free(it);
286 GWB_BUILD_CMD_LIST2_ITERATOR *it;
288 it=GWB_BuildCmd_List2_First(sourceCmdList);
292 bcmd=GWB_BuildCmd_List2Iterator_Data(it);
295 GWB_BuildCmd_List2Iterator_free(it);
298 bcmd=GWB_BuildCmd_List2Iterator_Next(it);
300 GWB_BuildCmd_List2Iterator_free(it);
GWB_FILE_LIST2 * GWB_BuildCmd_GetOutFileList2(const GWB_BUILD_CMD *bcmd)
void GWB_BuildCmd_SetBlockingFiles(GWB_BUILD_CMD *bcmd, int i)
uint32_t GWB_BuildCmd_GetFlags(const GWB_BUILD_CMD *bcmd)
GWB_FILE_LIST2 * GWB_BuildCmd_GetInFileList2(const GWB_BUILD_CMD *bcmd)
GWB_BUILD_SUBCMD * GWB_BuildCmd_GetCurrentCommand(const GWB_BUILD_CMD *bcmd)
int GWB_BuildCmd_IncBlockingFiles(GWB_BUILD_CMD *bcmd)
const char * GWB_BuildCmd_GetBuilderName(const GWB_BUILD_CMD *bcmd)
struct GWB_BUILD_CMD GWB_BUILD_CMD
#define GWB_BUILD_CMD_FLAGS_AUTO
struct GWB_BUILD_CONTEXT GWB_BUILD_CONTEXT
int GWB_BuildCtx_AddBuildCmdsForFileToList(const GWB_FILE *file, GWB_BUILD_CMD_LIST2 *targetCmdList)
static void _fileListSetBuildCmd(GWB_FILE_LIST2 *fileList, GWB_BUILD_CMD *bcmd)
static int _cmdIsInList(const GWB_BUILD_CMD_LIST2 *sourceCmdList, const GWB_BUILD_CMD *cmd)
static void _clearDepsInFiles(GWB_BUILD_CONTEXT *bctx)
static void _clearDepsInCommands(GWB_BUILD_CONTEXT *bctx)
int GWB_BuildCtx_AddBuildCmdsByBuilderNameToList(const GWB_BUILD_CMD_LIST2 *sourceCmdList, const char *builderName, GWB_BUILD_CMD_LIST2 *targetCmdList)
static void _clearDeps(GWB_BUILD_CONTEXT *bctx)
int GWB_BuildCtx_FillWaitingQueue(GWB_BUILD_CONTEXT *bctx, const char *builderName)
static void _setBuildCmdInFiles(GWB_BUILD_CONTEXT *bctx)
static void _setupDepsForCmd(GWB_BUILD_CMD *bcmd, GWB_BUILD_CMD_LIST2 *targetCmdList)
int GWB_BuildCtx_SetupDependencies(GWB_BUILD_CONTEXT *bctx)
#define DBG_INFO(dbg_logger, format,...)
#define DBG_ERROR(dbg_logger, format,...)
void GWB_File_ClearWaitingBuildCmds(GWB_FILE *f)
const char * GWB_File_GetFolder(const GWB_FILE *f)
const char * GWB_File_GetName(const GWB_FILE *f)
void GWB_File_SetBuildCmd(GWB_FILE *f, GWB_BUILD_CMD *bcmd)
void GWB_File_AddWaitingBuildCmd(GWB_FILE *f, GWB_BUILD_CMD *bcmd)
GWB_BUILD_CMD * GWB_File_GetBuildCmd(const GWB_FILE *f)
void GWBUILD_Debug_PrintBuildCmdList2(const char *sName, const GWB_BUILD_CMD_LIST2 *buildCmdList2, int indent)