summaryrefslogtreecommitdiff
path: root/bin/MakeProjectCreator/README
blob: b80261161cf98f9f49f4851770b79fce79a5ebc9 (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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
Project Delcarations
--------------------

project(project_name) : baseproject, anotherbaseproject {
  exename   = foo
  includes += "."
  libpaths  = directory
  idlflags -= -Sc

  Source_Files {
    file1.cpp
    file2.cpp
    .
    .
    fileN.cpp
  }

  Header_Files {
    file1.h
    file2.h
    .
    .
    fileN.h
  }
}


The (project_name) part of the project declaration is optional.  If it is
left off, the project name will default to the directory name.  Inheritance
is optional.


Project Keywords
----------------
exename		Specifies the name of the executable that will be created
sharedname	Specifies the name of the shared library that will be created
staticname	Specifies the name of the static library that will be created
dllout		(Windows Only) Specifies where the dll will be placed
libout		(Windows Only) Specifies where the lib will be placed
install		Specifies where the executable (or library non-Windows) will go
idlflags	Specifies the idl flags to be used when processing idl files
idlpreprocessor	Simple assignment used in the gnu template only
pch_header	Specifies the precompiled header file name
pch_source	Specifies the precompiled source file name
tao		Specifies that the project will use TAO

libpaths	Specifies 1 or more locations to find libraries
includes	Specifies 1 or more locations to find include files
libs		Specifies 1 or more libraries to link into the exe or library
defaultlibs	Specifies 1 or more default libraries to link in
depends         Specifies 1 or more projects upon which this project depends
dllflags	(Windows Only) Specifies preprocessor flags needed for dll's
libflags	(Windows Only) Specifies preprocessor flags needed for lib's


Special Keywords Available to Templates
---------------------------------------
project_name	This contains the name of the project.
project_file	This contains the name of the output file.
guid		This is used by the VC7 project and workspace creator.
configurations	When used within a foreach context, this info (each
		configuration) is gathered for use with the VC7 workspace
		creator.


Defaulting Behavior
-------------------
1) If a project name is not specified

   it will be defaulted to the name of the current directory

2) If a particular list is not specified (Source_Files, Header_Files, etc.)

   all of the files in the directory will be added to the corresponding list
   by extension

3) If idl files exist in the directory and
   the IDL_Files components are left defaulted (i.e. not listed) and
   none of the idl generated files are listed in the corresponding lists

   the project is assumed to be a TAO project, the idl files are added to
   the IDL_Files list  and all of the (would be) generated files will be
   added to the front of the corresponding lists (source, inline and
   header lists)

4) If files are listed in the Source_Files list and
   a corresponding header or inline file exists

   the corresponding file will be added to the corresponding list (if it
   isn't already there)

5) If a sharedname is specified and staticname is not

   staticname is assigned the sharedname value (the same applies if
   staticname is specified and sharedname is not)

6) If a target name is not listed (exename, sharedname or staticname)

   it is assumed that the target is a library and the name chosen matches
   the name of the current directory

7) If pch_header is not specified and a header file matches *_pch.h

   it is assumed to be the precompiled header file (the same applies to
   pch_source)


Processing Order
----------------
1) Project file is read
2) Template input file is read
3) Template file is read
4) Output project is written