Welcome to mirror list, hosted at ThFree Co, Russian Federation.

action.h « action « src - github.com/windirstat/premake-4.x-stable.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 0f0e190a17c99517b6f13d54cd9a743ee377b47b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/**
 * \file   action.h
 * \brief  Built-in engine actions.
 * \author Copyright (c) 2002-2008 Jason Perkins and the Premake project
 *
 * \defgroup action Actions
 *
 * The actions component contains the implementation of all of the built-in
 * Premake actions, along with a few common support functions.
 *
 * @{
 */
#if !defined(PREMAKE_ACTION_H)
#define PREMAKE_ACTION_H

#include "session/session.h"


/**
 * State values for the source tree enumeration functions.
 */
enum ActionSourceState
{
	GroupStart,
	GroupEnd,
	SourceFile
};


/**
 * Per-file callback signature for action_source_tree.
 * \param   sess      The current execution state context.
 * \param   prj       The current project; contains the file being enumerated.
 * \param   strm      The active output stream; for writing the file markup.
 * \param   filename  The name of the file to process.
 * \param   state     One of the ActionSourceStates, enabling file grouping.
 * \returns OKAY if successful.
 */
typedef int (*ActionSourceCallback)(Session sess, Project prj, Stream strm, const char* filename, int state);


/* the list of built-in Premake actions */
extern SessionAction Actions[];

int  gmake_action(Session sess);
int  vs2002_action(Session sess);
int  vs2003_action(Session sess);
int  vs2005_action(Session sess);
int  vs2008_action(Session sess);


/* support functions */
int  action_source_tree(Session sess, Project prj, Stream strm, ActionSourceCallback handler);


#endif
/** @} */