-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjfasch-TODO.txt
312 lines (263 loc) · 7.86 KB
/
jfasch-TODO.txt
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
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
* STACK
* modfile distribution
* flags parsing centrally
* plan
* port all of 'externals' package to cmake
* remove setups.explicit_setup
* propagate cmake confix modules
* CMAKE PROJECT
* relocated headers (at least, test it).
* script plugin
* archive vs. shared library?
* library dependencies. we do not generate any dependencies when
building shared libraries. how do we decide that? I suppose not
at all since this is a user decision.
* execute tests
* interfaces:
* TESTS_ENVIRONMENT is currently coupled to automake. probably
introduce some property mechanism in Builder where we can hook
any kind of information for the backends.
this will require some extra work, and some tests.
* Windows: how about CMAKE_INSTALL_PREFIX?
* CPack
* repo file in package
* find-modules in package
* remove kde-hack from automake.
* remove fast-install crap from automake altogether.
* confix-output
* options
--overlayroot
--readonly-prefixes
--trace
--debug
--verbose
--message-prefix
--print-timings
* find a way to pass options in to the setups; candidates are
--short-libnames
--use-libtool (?)
--use-bulk-install
--use-kde-hack
* TODO
* Objects to relieve from automake stuff
* TESTS_ENVIRONMENT? Move that to automake.
* move core.hierarchy.* to core.machinery. possibly collapse related
files into one, bigger file.
* Unify the various setup classes
* write a small utility that prints the setup object hierarchies
* move libconfix/frontends/confix2/confix_setup.py to
libconfix/setups/implicit_setup.py
* rename libconfix/plugins/c/setups/default_setup.py to
implicit_setup.py
* from both implicit and explicit, rip out duplicates
* ScriptSetup
* MakeSetup
* ... whatnot ...
* and, above all, AutomakeSetup
* Document the InterfaceProxy object that we have in the list below.
* InterfaceProxy objects
Make one dedicated object of each method/function. This gives us the
possibility to provide documentation/typing for each.
* Confix2.dir Interface
Make three setup objects for the backend-neutral part:
- Common
- Explicit
- Implicit
The rest (those that don't fit in one of the above) are probably
future automake plugin candidates.
* Confix2_dir_ExplicitInterface
* Files
* core/hierarchy/explicit_iface.py
* Used by
* Confix2_dir_ExplicitInterface(Confix2_dir_Contributor)
* Methods
* DIRECTORY
* CommonDirectoryInterface_Confix2_dir.DirectoryBuilderInterfaceProxy
* Files
* core/hierarchy/common_iface.py
* Used by
* CommonDirectoryInterface_Confix2_dir(Confix2_dir_Contributor)
* Methods
* CURRENT_BUILDER: return current directory-builder; tested
* CURRENT_DIRECTORY: tested
* ADD_DIRECTORY(name): adds an empty directory with name; tested
* IGNORE_ENTRIES: tested
* IGNORE_FILE: tested
* FIND_ENTRY: tested
* GET_ENTRIES: tested
* RESCAN_CURRENT_DIRECTORY: tested
* ADD_EXTRA_DIST: tested
* MAKEFILE_AM: tested
* ADD_BUILDER: tested
* SET_FILE_PROPERTIES: tested
* SET_FILE_PROPERTY: tested
* FileBuilderInterfaceProxy
* Files
* core/machinery/filebuilder.py
* Used by
* FileBuilder
* Methods
* SET_FILE_PROPERTIES
* SET_FILE_PROPERTY
* BuilderInterfaceProxy
* Files
* core/machinery/builder.py
* Used by
* Builder
* Methods
* PARENTBUILDER: function
* PACKAGE: function
* PROVIDE: add provide object (blah type must be imported)
* REQUIRE: add require object (blah type must be imported)
* PROVIDE_SYMBOL
* match: one of
* EXACT_MATCH: Provide_String.EXACT_MATCH
* PREFIX_MATCH: Provide_String.PREFIX_MATCH
* GLOB_MATCH: Provide_String.GLOB_MATCH
* AUTO_MATCH: Provide_String.AUTO_MATCH
* REQUIRE_SYMBOL
* urgency: one of
* URGENCY_IGNORE: Require.URGENCY_ERROR
* URGENCY_WARN: Require.URGENCY_WARN
* URGENCY_ERROR: Require.URGENCY_ERROR
* PROVIDE_CALLABLE
* REQUIRE_CALLABLE
* urgency: see REQUIRE_SYMBOL
* BUILDINFORMATION: add BuildInformation object of any type
* CONFIGURE_AC: blah
* order: one of
* AC_BOILERPLATE
* AC_OPTIONS
* AC_PROGRAMS
* AC_LIBRARIES
* AC_HEADERS
* AC_TYPEDEFS_AND_STRUCTURES
* AC_FUNCTIONS
* AC_OUTPUT
* flags: set of
* LOCAL
* PROPAGATE
(None means both)
* ACINCLUDE_M4: blah
* flags: see CONFIGURE_AC
* PackageInterfaceProxy
* Files
* core/machinery/local_package.py
* Used by:
* LocalPackage (not a Builder, to be viewed separately)
* Methods:
* PACKAGE_NAME
* PACKAGE_VERSION
* ADD_SETUP
* SETUPS
* HeaderBuilderInterfaceProxy
* Files
* plugins/c/h.py
* Used by:
* HeaderBuilder
* Methods:
* INSTALLPATH
* PKG_CONFIG_LIBRARY
* Files
* plugins/c/pkg_config/setup.py
* Used by:
* PkgConfigInterface_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* PKG_CONFIG_LIBRARY
* CompiledCBuilderInterfaceProxy
* Files
* plugins/c/compiled.py
* Used by:
* CompiledCBuilder
* Methods:
* EXENAME
* INSTALLDIR_H
* Files
* plugins/c/explicit_install.py
* Used by:
* ExplicitInstaller_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* INSTALLDIR_H: talks to ExplicitInstaller object (unique per
directory) which sets it into every HeaderBuilder of the
directory.
* RelocatorInterfaceProxy
* Files
* plugins/c/relocated_headers/iface.py
* Used by:
* Relocator_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* RELOCATE_HEADER
* CClustererInterfaceProxy
* Files
* plugins/c/clusterer.py
* Used by:
* CClusterer_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* LIBNAME
* LIBTOOL_LIBRARY_VERSION
* (C) ExplicitInterfaceProxy
* Files
* plugins/c/explicit_iface.py
* Used by:
* ExplicitInterface_Confix2_dir(Confix2_dir_Contributor) (which
is in turn used by ExplicitInterfaceSetup)
* Methods:
* H
* C
* CXX
* LIBRARY
* EXECUTABLE
* what: one of
* EXECUTABLE_BIN
* EXECUTABLE_CHECK
* EXECUTABLE_NOINST
* EXTERNAL_LIBRARY
* Files
* plugins/c/common_iface.py
* Used by:
* CommonInterface_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* EXTERNAL_LIBRARY
* REQUIRE_H
* Files
* plugins/c/common_iface.py
* Used by:
* CommonInterface_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* REQUIRE_H
* PROVIDE_H
* Files
* plugins/c/common_iface.py
* Used by:
* CommonInterface_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* PROVIDE_H
* TESTS_ENVIRONMENT
* Files
* plugins/c/common_iface.py
* Used by:
* CommonInterface_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* TESTS_ENVIRONMENT
* MakeCallerInterfaceProxy
* Files
* plugins/make/setup.py
* Used by:
* _MakeInterface_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* CALL_MAKE_AND_RESCAN
* CALL_MAKE_AND_RESCAN_SYNC
* ADD_PLAINFILE
* Files
* plugins/plainfile/iface.py
* Used by:
* ADD_PLAINFILE_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* ADD_PLAINFILE
* ADD_SCRIPT
* Files
* plugins/script/setup.py
* Used by:
* ScriptInterface_Confix2_dir(Confix2_dir_Contributor)
* Methods:
* ADD_SCRIPT