1# ##################################################################################################
2# ALibSources.cmake - CMake file for projects using ALib
4# Copyright 2013-2026 A-Worx GmbH, Germany
5# Published under 'Boost Software License' (a free software license, see LICENSE.txt)
8# Selects source files in lists depending on the selected modules listed in variable
9# ALibBuild. The lists are:
10# - ALIB_H : C++ header file for external use with (both versions, C++20-Modules and legacy)
11# - ALIB_MACROS: Header file with mostly preprocessor macros.
12# - ALIB_MODIF: C++20-Module Interface Unit.
13# - ALIB_HPP: Header-file included by .H and .IXX files.
14# - ALIB_UNI: C++ source file compiled in legacy mode. Includes one or more CPP files.
15# - ALIB_MOD: C++ source file compiled in C++20-Module mode. Includes one or more CPP files.
16# - ALIB_CPP: C++ source files included by UNI and MOD files.
17# - ALIB_MOD: C++20-Module implementation unit.
18# - ALIB_RC: ALib resource files.
19# If variable ALIB_SOURCE_COPY_TARGET_DIR is defined, then the sources are copied to the
22# This CMake file is included by "ALib.cmake" automatically and is not intended for manual
23# inclusion. Its contents was separated into a separated cmake file solely for clarity.
24# ##################################################################################################
25if( NOT DEFINED ALIB_SOURCE_DIR )
26 set ( ALIB_SOURCE_DIR ${ALIB_BASE_DIR}/src )
39# ---------- general files, always included -------
42list( APPEND ALIB_H ALib.Lang.CIFunctions.H )
43list( APPEND ALIB_H ALib.Lang.CIMethods.H )
45list( APPEND ALIB_MACROS alib.prepro.hpp )
46list( APPEND ALIB_MACROS platform.prepro.hpp )
48list( APPEND ALIB_HPP lang/assert.hpp )
49list( APPEND ALIB_UNI lang/assert.uni.cpp )
50list( APPEND ALIB_MOD lang/assert.mod.cpp )
51list( APPEND ALIB_CPP lang/assert.cpp )
52list( APPEND ALIB_HPP lang/mainargs.hpp )
53list( APPEND ALIB_CPP lang/mainargs.cpp )
54list( APPEND ALIB_HPP lang/chk_nc.hpp )
57list( APPEND ALIB_H ALib.Bootstrap.H )
58list( APPEND ALIB_MODIF bootstrap/bootstrap.ixx )
59list( APPEND ALIB_HPP bootstrap/bootstrap.hpp )
60list( APPEND ALIB_MACROS bootstrap/bootstrap.prepro.hpp )
61list( APPEND ALIB_UNI bootstrap/bootstrap.uni.cpp )
62list( APPEND ALIB_MOD bootstrap/bootstrap.mod.cpp )
63list( APPEND ALIB_CPP bootstrap/bootstrap.cpp )
67list( APPEND ALIB_H ALib.Lang.H )
68list( APPEND ALIB_MODIF lang/lang.ixx )
69list( APPEND ALIB_HPP lang/allocation.hpp )
70list( APPEND ALIB_HPP lang/bidilist.hpp )
71list( APPEND ALIB_HPP lang/bits.hpp )
72list( APPEND ALIB_HPP lang/bitset.hpp )
73list( APPEND ALIB_HPP lang/callerinfo.hpp )
74list( APPEND ALIB_HPP lang/commonenumdefs.hpp )
75list( APPEND ALIB_HPP lang/dbgcriticalsections.hpp )
76list( APPEND ALIB_HPP lang/dbgtypedemangler.hpp )
77list( APPEND ALIB_CPP lang/dbgcriticalsections.cpp )
78list( APPEND ALIB_CPP lang/dbgtypedemangler.cpp )
79list( APPEND ALIB_UNI lang/lang.uni.cpp )
80list( APPEND ALIB_MOD lang/lang.mod.cpp )
81list( APPEND ALIB_HPP lang/integers.hpp )
82list( APPEND ALIB_HPP lang/owner.hpp )
83list( APPEND ALIB_HPP lang/placeholder.hpp )
84list( APPEND ALIB_HPP lang/plugins.hpp )
85list( APPEND ALIB_HPP lang/sidilist.hpp )
86list( APPEND ALIB_HPP lang/stdtypeinfofunctors.hpp )
87list( APPEND ALIB_HPP lang/tmp.hpp )
90list( APPEND ALIB_H ALib.Time.H )
91list( APPEND ALIB_MOD time/time.mod.cpp )
92list( APPEND ALIB_MODIF time/time.ixx )
93list( APPEND ALIB_HPP time/datetime.hpp )
94list( APPEND ALIB_HPP time/stopwatch.hpp )
95list( APPEND ALIB_HPP time/tickconverter.hpp )
96list( APPEND ALIB_CPP time/datetime.cpp )
97list( APPEND ALIB_CPP time/tickconverter.cpp )
98list( APPEND ALIB_HPP time/ticks.hpp )
99list( APPEND ALIB_HPP time/timepointbase.hpp )
100list( APPEND ALIB_CPP time/time.cpp )
103list( APPEND ALIB_H ALib.Threads.H )
104list( APPEND ALIB_MODIF threads/threads.ixx )
105list( APPEND ALIB_HPP threads/thread.hpp )
106list( APPEND ALIB_HPP threads/lock.hpp )
107list( APPEND ALIB_HPP threads/recursivelock.hpp )
108list( APPEND ALIB_HPP threads/recursivetimedlock.hpp )
109list( APPEND ALIB_HPP threads/sharedlock.hpp )
110list( APPEND ALIB_HPP threads/sharedtimedlock.hpp )
111list( APPEND ALIB_HPP threads/timedlock.hpp )
113if( NOT ALIB_SINGLE_THREADED )
114 list( APPEND ALIB_MOD threads/threads.mod.cpp )
115 list( APPEND ALIB_HPP threads/dbgasserters.hpp )
116 list( APPEND ALIB_CPP threads/dbgasserters.cpp )
117 list( APPEND ALIB_HPP threads/condition.hpp )
118 list( APPEND ALIB_HPP threads/promise.hpp )
119 list( APPEND ALIB_CPP threads/promise.cpp )
121 list( APPEND ALIB_CPP threads/thread.cpp )
122 list( APPEND ALIB_CPP threads/locks.cpp )
125list( APPEND ALIB_HPP characters/chartypes.hpp )
126list( APPEND ALIB_HPP characters/chartraits.hpp )
127list( APPEND ALIB_HPP characters/chartraits_stdtypes.hpp )
128list( APPEND ALIB_HPP characters/chartraits_qt.hpp )
130list( APPEND ALIB_H ALib.Characters.Functions.H )
131list( APPEND ALIB_MOD characters/functions.mod.cpp )
132list( APPEND ALIB_MODIF characters/functions.ixx )
133list( APPEND ALIB_HPP characters/functions.hpp )
134list( APPEND ALIB_CPP characters/functions.cpp )
135list( APPEND ALIB_H ALib.Compatibility.QTCharacters.H )
137list( APPEND ALIB_H ALib.EnumOps.H )
138list( APPEND ALIB_MODIF enumops/enumops.ixx )
139list( APPEND ALIB_MACROS enumops/enumops.prepro.hpp )
140list( APPEND ALIB_HPP enumops/underlyingintegral.hpp )
141list( APPEND ALIB_HPP enumops/arithmetical.hpp )
142list( APPEND ALIB_HPP enumops/bitwise.hpp )
143list( APPEND ALIB_HPP enumops/iterable.hpp )
144list( APPEND ALIB_HPP enumops/iterablebitset.hpp )
145list( APPEND ALIB_HPP enumops/bitwise_iterable_conversion.hpp )
148################################# Normal Modules #############################
150if( "ALOX" IN_LIST ALibBuild )
151 list( APPEND ALIB_H ALib.ALox.H )
152 list( APPEND ALIB_H ALib.ALox.Impl.H )
153 list( APPEND ALIB_MODIF alox/alox_init.ixx )
154 list( APPEND ALIB_HPP alox/alox_init.hpp )
155 list( APPEND ALIB_MODIF alox/alox_impl.ixx )
156 list( APPEND ALIB_MODIF alox/alox.ixx )
157 list( APPEND ALIB_MACROS alox/alox.prepro.hpp )
158 list( APPEND ALIB_HPP alox/aloxcamp.hpp )
159 list( APPEND ALIB_HPP alox/log.hpp )
160 list( APPEND ALIB_HPP alox/logtools.hpp )
161 list( APPEND ALIB_HPP alox/lox.hpp )
163 list( APPEND ALIB_MOD alox/aloxcamp.mod.cpp )
164 list( APPEND ALIB_CPP alox/aloxcamp.cpp )
165 list( APPEND ALIB_RC alox/aloxcamp.alibrc )
166 list( APPEND ALIB_MOD alox/aloxinit.mod.cpp )
167 list( APPEND ALIB_CPP alox/aloxinit.cpp )
168 list( APPEND ALIB_UNI alox/alox.uni.cpp )
169 list( APPEND ALIB_MOD alox/alox.mod.cpp )
170 list( APPEND ALIB_CPP alox/alox.cpp )
171 list( APPEND ALIB_MOD alox/logtools.mod.cpp )
172 list( APPEND ALIB_CPP alox/logtools.cpp )
173 list( APPEND ALIB_HPP alox/detail/domain.hpp )
174 list( APPEND ALIB_HPP alox/detail/logger.hpp )
175 list( APPEND ALIB_HPP alox/detail/loxpimpl.hpp )
176 list( APPEND ALIB_HPP alox/detail/scopedump.hpp )
177 list( APPEND ALIB_HPP alox/detail/scopeinfo.hpp )
178 list( APPEND ALIB_HPP alox/detail/scopestore.hpp )
180 list( APPEND ALIB_MOD alox/detail/domain.mod.cpp )
181 list( APPEND ALIB_CPP alox/detail/domain.cpp )
182 list( APPEND ALIB_UNI alox/detail/loxpimpl.uni.cpp )
183 list( APPEND ALIB_MOD alox/detail/loxpimpl.mod.cpp )
184 list( APPEND ALIB_CPP alox/detail/loxpimpl.cpp )
185 list( APPEND ALIB_MOD alox/detail/scopedump.mod.cpp )
186 list( APPEND ALIB_CPP alox/detail/scopedump.cpp )
187 list( APPEND ALIB_UNI alox/detail/scope_and_domain.uni.cpp )
188 list( APPEND ALIB_MOD alox/detail/scopeinfo.mod.cpp )
189 list( APPEND ALIB_CPP alox/detail/scopeinfo.cpp )
190 list( APPEND ALIB_UNI alox/detail/scopestore.uni.cpp )
191 list( APPEND ALIB_MOD alox/detail/scopestore.mod.cpp )
192 list( APPEND ALIB_CPP alox/detail/scopestore.cpp )
194 list( APPEND ALIB_HPP alox/textlogger/plaintextlogger.hpp )
195 list( APPEND ALIB_HPP alox/textlogger/textlogger.hpp )
196 list( APPEND ALIB_HPP alox/textlogger/variables.hpp )
197 list( APPEND ALIB_MOD alox/textlogger/plaintextlogger.mod.cpp )
198 list( APPEND ALIB_CPP alox/textlogger/plaintextlogger.cpp )
199 list( APPEND ALIB_MOD alox/textlogger/textlogger.mod.cpp )
200 list( APPEND ALIB_CPP alox/textlogger/textlogger.cpp )
201 list( APPEND ALIB_MOD alox/textlogger/variables.mod.cpp )
202 list( APPEND ALIB_CPP alox/textlogger/variables.cpp )
204 list( APPEND ALIB_HPP alox/loggers/ansilogger.hpp )
205 list( APPEND ALIB_HPP alox/loggers/consolelogger.hpp )
206 list( APPEND ALIB_HPP alox/loggers/memorylogger.hpp )
207 list( APPEND ALIB_HPP alox/loggers/textfilelogger.hpp )
208 list( APPEND ALIB_HPP alox/loggers/vstudiologger.hpp )
209 list( APPEND ALIB_HPP alox/loggers/windowsconsolelogger.hpp )
210 list( APPEND ALIB_CPP alox/loggers/ansilogger.cpp )
211 list( APPEND ALIB_CPP alox/loggers/consolelogger.cpp )
212 list( APPEND ALIB_CPP alox/loggers/textfilelogger.cpp )
213 list( APPEND ALIB_CPP alox/loggers/vstudiologger.cpp )
214 list( APPEND ALIB_CPP alox/loggers/windowsconsolelogger.cpp )
216 list( APPEND ALIB_MOD alox/loggers/loggers.mod.cpp )
220if( "APP" IN_LIST ALibBuild )
221 list( APPEND ALIB_H ALib.App.H )
222 list( APPEND ALIB_UNI app/app.uni.cpp )
223 list( APPEND ALIB_UNI app/cli.uni.cpp )
224 list( APPEND ALIB_MOD app/app.mod.cpp )
225 list( APPEND ALIB_MOD app/cli.mod.cpp )
226 list( APPEND ALIB_MOD app/appcamp.mod.cpp )
227 list( APPEND ALIB_MACROS app/app.prepro.hpp )
228 list( APPEND ALIB_MODIF app/app.ixx )
229 list( APPEND ALIB_HPP app/app.hpp )
230 list( APPEND ALIB_HPP app/appcamp.hpp )
231 list( APPEND ALIB_HPP app/cli.hpp )
232 list( APPEND ALIB_HPP app/cliargtypes.hpp )
233 list( APPEND ALIB_HPP app/cliutil.hpp )
234 list( APPEND ALIB_CPP app/app.cpp )
235 list( APPEND ALIB_CPP app/appcamp.cpp )
236 list( APPEND ALIB_RC app/appcamp.alibrc )
237 list( APPEND ALIB_CPP app/cli.cpp )
238 list( APPEND ALIB_CPP app/cliargtypes.cpp )
239 list( APPEND ALIB_CPP app/cliutil.cpp )
242if( "BITBUFFER" IN_LIST ALibBuild )
243 list( APPEND ALIB_H ALib.BitBuffer.H )
244 list( APPEND ALIB_MODIF bitbuffer/bitbuffer.ixx )
245 list( APPEND ALIB_MACROS bitbuffer/bitbuffer.prepro.hpp )
246 list( APPEND ALIB_HPP bitbuffer/arraycompressor.hpp )
247 list( APPEND ALIB_HPP bitbuffer/bitbuffer.hpp )
248 list( APPEND ALIB_HPP bitbuffer/ac_v1/acalgos.hpp.inl )
249 list( APPEND ALIB_HPP bitbuffer/ac_v1/ac.hpp )
250 list( APPEND ALIB_HPP bitbuffer/ac_v1/huffman.hpp )
252 list( APPEND ALIB_UNI bitbuffer/bitbuffer.uni.cpp )
253 list( APPEND ALIB_MOD bitbuffer/bitbuffer.mod.cpp )
254 list( APPEND ALIB_CPP bitbuffer/bitbuffer.cpp )
255 list( APPEND ALIB_MOD bitbuffer/ac_v1/ac.mod.cpp )
256 list( APPEND ALIB_CPP bitbuffer/ac_v1/ac.cpp )
257 list( APPEND ALIB_CPP bitbuffer/ac_v1/huffman.cpp )
260if( "BOXING" IN_LIST ALibBuild )
261 list( APPEND ALIB_H ALib.Boxing.H )
262 list( APPEND ALIB_MODIF boxing/boxing.ixx )
263 list( APPEND ALIB_MACROS boxing/boxing.prepro.hpp )
264 list( APPEND ALIB_HPP boxing/box.hpp )
265 list( APPEND ALIB_HPP boxing/boxes.hpp )
266 list( APPEND ALIB_HPP boxing/boxstrap.hpp )
267 list( APPEND ALIB_HPP boxing/enum.hpp )
268 list( APPEND ALIB_HPP boxing/placeholder.hpp )
269 list( APPEND ALIB_HPP boxing/boxingtraits.hpp )
270 list( APPEND ALIB_HPP boxing/boxing_debug.hpp )
271 list( APPEND ALIB_HPP boxing/stdboxtraits.hpp )
272 list( APPEND ALIB_MODIF boxing/stdfunctors.ixx )
273 list( APPEND ALIB_HPP boxing/stdfunctors.hpp )
274 list( APPEND ALIB_HPP boxing/qtboxing.hpp )
276 list( APPEND ALIB_HPP boxing/boxingcustoms.hpp.inl )
277 list( APPEND ALIB_HPP boxing/functiondecls.hpp )
278 list( APPEND ALIB_HPP boxing/functiondefs.hpp.inl )
279 list( APPEND ALIB_HPP boxing/detail/vtable.hpp )
281 list( APPEND ALIB_UNI boxing/boxstrap.uni.cpp )
282 list( APPEND ALIB_MOD boxing/boxstrap.mod.cpp )
283 list( APPEND ALIB_CPP boxing/boxstrap.cpp )
284 list( APPEND ALIB_MOD boxing/boxes.mod.cpp )
285 list( APPEND ALIB_CPP boxing/boxes.cpp )
286 list( APPEND ALIB_UNI boxing/boxing.uni.cpp )
287 list( APPEND ALIB_MOD boxing/box.mod.cpp )
288 list( APPEND ALIB_CPP boxing/box.cpp )
289 list( APPEND ALIB_MOD boxing/detail/vtable.mod.cpp )
290 list( APPEND ALIB_CPP boxing/detail/vtable.cpp )
291 list( APPEND ALIB_CPP boxing/detail/boxingcustoms.cpp )
292 list( APPEND ALIB_CPP boxing/detail/dbgdoublelengthcheck.cpp )
293 list( APPEND ALIB_CPP boxing/boxing_debug.cpp )
295 list( APPEND ALIB_H ALib.Boxing.StdFunctors.H )
296 list( APPEND ALIB_H ALib.Compatibility.StdBoxtraits.H )
297 list( APPEND ALIB_H ALib.Compatibility.QTBoxing.H )
299 if( "STRINGS" IN_LIST ALibBuild )
300 list( APPEND ALIB_HPP boxing/strings_appendables.hpp )
301 list( APPEND ALIB_HPP boxing/extensions/strings_tfield.hpp )
302 list( APPEND ALIB_MOD boxing/extensions/strings_tfield.mod.cpp )
303 list( APPEND ALIB_CPP boxing/extensions/strings_tfield.cpp )
308if( "CAMP" IN_LIST ALibBuild )
309 list( APPEND ALIB_H ALib.Camp.H )
310 list( APPEND ALIB_H ALib.Camp.ResourceCompiler.H )
311 list( APPEND ALIB_MODIF camp/camp.ixx )
312 list( APPEND ALIB_MODIF camp/resourcecompiler.ixx )
313 list( APPEND ALIB_MACROS camp/camp.prepro.hpp )
314 list( APPEND ALIB_HPP camp/basecamp.hpp )
315 list( APPEND ALIB_HPP camp/camp.hpp )
317 # additions from lower-level modules
318 list( APPEND ALIB_HPP camp/loadtokens.hpp )
319 list( APPEND ALIB_HPP camp/resourcecompiler.hpp )
322 list( APPEND ALIB_H ALib.Camp.Base.H )
323 list( APPEND ALIB_MODIF camp/basecamp.ixx )
324 list( APPEND ALIB_UNI camp/basecamp.uni.cpp )
325 list( APPEND ALIB_MOD camp/basecamp.mod.cpp )
326 list( APPEND ALIB_CPP camp/basecamp.cpp )
327 list( APPEND ALIB_RC camp/basecamp.alibrc )
328 list( APPEND ALIB_UNI camp/resourcecompiler.uni.cpp )
329 list( APPEND ALIB_MOD camp/resourcecompiler.mod.cpp )
330 list( APPEND ALIB_CPP camp/resourcecompiler.cpp )
334if( "VARIABLES" IN_LIST ALibBuild )
335 list( APPEND ALIB_H ALib.Variables.H )
336 list( APPEND ALIB_UNI variables/configuration.uni.cpp )
337 list( APPEND ALIB_UNI variables/variable.uni.cpp )
338 list( APPEND ALIB_UNI variables/inifile.uni.cpp )
340 list( APPEND ALIB_MODIF variables/variables.ixx )
341 list( APPEND ALIB_MACROS variables/variables.prepro.hpp )
342 list( APPEND ALIB_HPP variables/erpriority.hpp )
343 list( APPEND ALIB_HPP variables/vmeta.hpp )
344 list( APPEND ALIB_HPP variables/declaration.hpp )
345 list( APPEND ALIB_HPP variables/configuration.hpp )
346 list( APPEND ALIB_MOD variables/configuration.mod.cpp )
347 list( APPEND ALIB_CPP variables/configuration.cpp )
348 list( APPEND ALIB_MOD variables/vmeta.mod.cpp )
349 list( APPEND ALIB_CPP variables/vmeta.cpp )
350 list( APPEND ALIB_MOD variables/variable.mod.cpp )
351 list( APPEND ALIB_CPP variables/variable.cpp )
353 list( APPEND ALIB_H ALib.Variables.Plugins.H )
354 list( APPEND ALIB_MODIF variables/plugins.ixx )
355 list( APPEND ALIB_MOD variables/plugins.mod.cpp )
356 list( APPEND ALIB_CPP variables/plugins.cpp )
357 list( APPEND ALIB_HPP variables/plugins.hpp )
359 list( APPEND ALIB_H ALib.Variables.IniFile.H )
360 list( APPEND ALIB_MODIF variables/inifile.ixx )
361 list( APPEND ALIB_HPP variables/inifile.hpp )
362 list( APPEND ALIB_HPP variables/inifilefeeder.hpp )
363 list( APPEND ALIB_MOD variables/inifile.mod.cpp )
364 list( APPEND ALIB_CPP variables/inifile.cpp )
365 list( APPEND ALIB_MOD variables/inifilefeeder.mod.cpp )
366 list( APPEND ALIB_CPP variables/inifilefeeder.cpp )
368 if( "RESOURCES" IN_LIST ALibBuild )
369 list( APPEND ALIB_H ALib.Variables.ResourcePool.H )
370 list( APPEND ALIB_MODIF variables/configresourcepool.ixx )
371 list( APPEND ALIB_UNI variables/configresourcepool.uni.cpp)
372 list( APPEND ALIB_MOD variables/configresourcepool.mod.cpp)
373 list( APPEND ALIB_CPP variables/configresourcepool.cpp )
374 list( APPEND ALIB_HPP variables/configresourcepool.hpp )
378if( "CONTAINERS" IN_LIST ALibBuild )
379 list( APPEND ALIB_MODIF containers/containers_init.ixx )
380 list( APPEND ALIB_HPP containers/recycling.hpp )
381 list( APPEND ALIB_HPP containers/valuedescriptor.hpp )
383 list( APPEND ALIB_H ALib.Containers.FixedCapacityVector.H )
384 list( APPEND ALIB_MODIF containers/fixedcapacityvector.ixx )
385 list( APPEND ALIB_HPP containers/fixedcapacityvector.hpp )
387 list( APPEND ALIB_H ALib.Containers.HashTable.H )
388 list( APPEND ALIB_MODIF containers/hashtable.ixx )
389 list( APPEND ALIB_HPP containers/detail/hashtablebase.hpp )
390 list( APPEND ALIB_MOD containers/detail/hashtablebase.mod.cpp )
391 list( APPEND ALIB_CPP containers/detail/hashtablebase.cpp )
392 list( APPEND ALIB_HPP containers/hashtable.hpp )
393 list( APPEND ALIB_UNI containers/detail/detail.uni.cpp )
395 list( APPEND ALIB_H ALib.Containers.List.H )
396 list( APPEND ALIB_MODIF containers/list.ixx )
397 list( APPEND ALIB_HPP containers/list.hpp )
399 list( APPEND ALIB_H ALib.Containers.LRUCacheTable.H )
400 list( APPEND ALIB_MODIF containers/lrucachetable.ixx )
401 list( APPEND ALIB_HPP containers/lrucachetable.hpp )
403 list( APPEND ALIB_H ALib.Containers.SharedPtr.H )
404 list( APPEND ALIB_MODIF containers/sharedptr.ixx )
405 list( APPEND ALIB_HPP containers/sharedptr.hpp )
407 list( APPEND ALIB_H ALib.Containers.SharedVal.H )
408 list( APPEND ALIB_MODIF containers/sharedval.ixx )
409 list( APPEND ALIB_HPP containers/sharedval.hpp )
411 if( "STRINGS" IN_LIST ALibBuild )
412 list( APPEND ALIB_H ALib.Containers.StringTree.H )
413 list( APPEND ALIB_H ALib.Containers.StringTreeIterator.H )
414 list( APPEND ALIB_MODIF containers/stringtree.ixx )
415 list( APPEND ALIB_MODIF containers/stringtreeiterator.ixx )
416 list( APPEND ALIB_HPP containers/stringtree.hpp )
417 list( APPEND ALIB_HPP containers/detail/stringtreebase.hpp )
418 list( APPEND ALIB_MOD containers/detail/stringtreebase.mod.cpp)
419 list( APPEND ALIB_CPP containers/detail/stringtreebase.cpp )
420 list( APPEND ALIB_HPP containers/stringtreeiterator.hpp )
425if( "ENUMRECORDS" IN_LIST ALibBuild )
426 list( APPEND ALIB_H ALib.EnumRecords.H )
427 list( APPEND ALIB_MODIF enumrecords/enumrecords.ixx )
428 list( APPEND ALIB_MACROS enumrecords/enumrecords.prepro.hpp )
429 list( APPEND ALIB_HPP enumrecords/detail/enumrecordmap.hpp )
430 list( APPEND ALIB_HPP enumrecords/records.hpp )
431 list( APPEND ALIB_HPP enumrecords/serialization.hpp )
432 list( APPEND ALIB_HPP enumrecords/builtin.hpp )
434 list( APPEND ALIB_H ALib.EnumRecords.Bootstrap.H )
435 list( APPEND ALIB_MODIF enumrecords/bootstrap/recordbootstrap.ixx )
436 list( APPEND ALIB_HPP enumrecords/bootstrap/recordparser.hpp )
437 list( APPEND ALIB_HPP enumrecords/bootstrap/recordbootstrap.hpp )
438 list( APPEND ALIB_MOD enumrecords/bootstrap/recordparser.mod.cpp )
439 list( APPEND ALIB_CPP enumrecords/bootstrap/recordparser.cpp )
440 if( "BOXING" IN_LIST ALibBuild )
441 list( APPEND ALIB_HPP enumrecords/boxing_enums.hpp )
443 list( APPEND ALIB_UNI enumrecords/enumrecords.uni.cpp )
444 list( APPEND ALIB_MOD enumrecords/records.mod.cpp )
445 list( APPEND ALIB_CPP enumrecords/records.cpp )
449if( "EXCEPTIONS" IN_LIST ALibBuild )
450 list( APPEND ALIB_H ALib.Exceptions.H )
451 list( APPEND ALIB_MODIF exceptions/exceptions.ixx )
452 list( APPEND ALIB_HPP exceptions/message.hpp )
453 list( APPEND ALIB_HPP exceptions/exception.hpp )
454 list( APPEND ALIB_UNI exceptions/exception.uni.cpp )
455 list( APPEND ALIB_MOD exceptions/exception.mod.cpp )
456 list( APPEND ALIB_CPP exceptions/exception.cpp )
459if( "EXPRESSIONS" IN_LIST ALibBuild )
460 list( APPEND ALIB_H ALib.Expressions.H )
461 list( APPEND ALIB_H ALib.Expressions.Impl.H )
462 list( APPEND ALIB_UNI expressions/expressions.uni.cpp )
463 list( APPEND ALIB_MOD expressions/expression.mod.cpp )
464 list( APPEND ALIB_MODIF expressions/expressions.ixx )
465 list( APPEND ALIB_MODIF expressions/expressions_impl.ixx )
466 list( APPEND ALIB_HPP expressions/detail/ast.hpp )
467 list( APPEND ALIB_HPP expressions/parser.hpp )
468 list( APPEND ALIB_MACROS expressions/expressions.prepro.hpp )
469 list( APPEND ALIB_HPP expressions/expressionscamp.hpp )
470 list( APPEND ALIB_HPP expressions/compiler.hpp )
471 list( APPEND ALIB_HPP expressions/compilerplugin.hpp )
472 list( APPEND ALIB_HPP expressions/expression.hpp )
473 list( APPEND ALIB_HPP expressions/scope.hpp )
474 list( APPEND ALIB_HPP expressions/standardrepository.hpp )
476 list( APPEND ALIB_HPP expressions/detail/ast_impl.hpp )
477 list( APPEND ALIB_HPP expressions/detail/parser_impl.hpp )
478 list( APPEND ALIB_HPP expressions/detail/program.hpp )
479 list( APPEND ALIB_HPP expressions/detail/virtualmachine.hpp )
481 list( APPEND ALIB_HPP expressions/plugins/arithmetics.hpp )
482 list( APPEND ALIB_HPP expressions/plugins/autocast.hpp )
483 list( APPEND ALIB_HPP expressions/plugins/calculus.hpp )
484 list( APPEND ALIB_HPP expressions/plugins/dateandtime.hpp )
485 list( APPEND ALIB_HPP expressions/plugins/elvisoperator.hpp )
486 list( APPEND ALIB_HPP expressions/plugins/math.hpp )
487 list( APPEND ALIB_HPP expressions/plugins/strings.hpp )
489 list( APPEND ALIB_MOD expressions/expressionscamp.mod.cpp )
490 list( APPEND ALIB_CPP expressions/expressionscamp.cpp )
491 list( APPEND ALIB_RC expressions/expressionscamp.alibrc )
492 list( APPEND ALIB_MOD expressions/compiler.mod.cpp )
493 list( APPEND ALIB_CPP expressions/compiler.cpp )
494 list( APPEND ALIB_CPP expressions/expression.cpp )
495 list( APPEND ALIB_MOD expressions/standardrepository.mod.cpp )
496 list( APPEND ALIB_CPP expressions/standardrepository.cpp )
498 list( APPEND ALIB_MOD expressions/parser.mod.cpp )
499 list( APPEND ALIB_CPP expressions/parser.cpp )
501 list( APPEND ALIB_UNI expressions/detail/expr_detail.uni.cpp )
502 list( APPEND ALIB_MOD expressions/detail/ast.mod.cpp )
503 list( APPEND ALIB_CPP expressions/detail/ast.cpp )
504 list( APPEND ALIB_MOD expressions/detail/parser_impl.mod.cpp )
505 list( APPEND ALIB_CPP expressions/detail/parser_impl.cpp )
506 list( APPEND ALIB_MOD expressions/detail/program.mod.cpp )
507 list( APPEND ALIB_CPP expressions/detail/program.cpp )
508 list( APPEND ALIB_MOD expressions/detail/virtualmachine.mod.cpp)
509 list( APPEND ALIB_CPP expressions/detail/virtualmachine.cpp )
511 list( APPEND ALIB_UNI expressions/plugins/plugins.uni.cpp )
512 list( APPEND ALIB_MOD expressions/plugins/arithmetics.mod.cpp )
513 list( APPEND ALIB_CPP expressions/plugins/arithmetics.cpp )
514 list( APPEND ALIB_MOD expressions/plugins/autocast.mod.cpp )
515 list( APPEND ALIB_CPP expressions/plugins/autocast.cpp )
516 list( APPEND ALIB_MOD expressions/plugins/calculus.mod.cpp )
517 list( APPEND ALIB_CPP expressions/plugins/calculus.cpp )
518 list( APPEND ALIB_MOD expressions/plugins/elvisoperator.mod.cpp)
519 list( APPEND ALIB_CPP expressions/plugins/elvisoperator.cpp )
520 list( APPEND ALIB_MOD expressions/plugins/math.mod.cpp )
521 list( APPEND ALIB_CPP expressions/plugins/math.cpp )
522 list( APPEND ALIB_MOD expressions/plugins/strings.mod.cpp )
523 list( APPEND ALIB_CPP expressions/plugins/strings.cpp )
524 list( APPEND ALIB_MOD expressions/plugins/dateandtime.mod.cpp )
525 list( APPEND ALIB_CPP expressions/plugins/dateandtime.cpp )
527 list( APPEND ALIB_HPP expressions/util/expressionformatter.hpp )
528 list( APPEND ALIB_MOD expressions/util/expressionformatter.mod.cpp)
529 list( APPEND ALIB_CPP expressions/util/expressionformatter.cpp )
533if( "FILETREE" IN_LIST ALibBuild )
534 list( APPEND ALIB_H ALib.FileTree.H )
535 list( APPEND ALIB_UNI filetree/filetree.uni.cpp )
536 list( APPEND ALIB_MODIF filetree/filetree.ixx )
537 list( APPEND ALIB_MACROS filetree/filetree.prepro.hpp )
538 list( APPEND ALIB_HPP filetree/filetreecamp.hpp )
539 list( APPEND ALIB_HPP filetree/ffilter.hpp )
540 list( APPEND ALIB_HPP filetree/ftvalue.hpp )
541 list( APPEND ALIB_HPP filetree/fscanner.hpp )
542 list( APPEND ALIB_HPP filetree/ftree.hpp )
544 list( APPEND ALIB_MOD filetree/filetreecamp.mod.cpp )
545 list( APPEND ALIB_CPP filetree/filetreecamp.cpp )
546 list( APPEND ALIB_RC filetree/filetreecamp.alibrc )
547 list( APPEND ALIB_MOD filetree/ftfile.mod.cpp )
548 list( APPEND ALIB_CPP filetree/ftfile.cpp )
549 list( APPEND ALIB_MOD filetree/ftvalue.mod.cpp )
550 list( APPEND ALIB_CPP filetree/ftvalue.cpp )
551 list( APPEND ALIB_UNI filetree/fscanner.uni.cpp )
552 list( APPEND ALIB_MOD filetree/fscanner.mod.cpp )
553 list( APPEND ALIB_CPP filetree/fscanner.cpp )
554 list( APPEND ALIB_MOD filetree/ftree.mod.cpp )
555 list( APPEND ALIB_CPP filetree/ftree.cpp )
557 if( "EXPRESSIONS" IN_LIST ALibBuild )
558 list( APPEND ALIB_H ALib.FileTree.Expressions.H )
559 list( APPEND ALIB_MODIF filetree/expressions/fileexpressions.ixx )
560 list( APPEND ALIB_HPP filetree/expressions/fileexpressions.hpp )
561 list( APPEND ALIB_UNI filetree/expressions/fileexpressions.uni.cpp)
562 list( APPEND ALIB_MOD filetree/expressions/fileexpressions.mod.cpp)
563 list( APPEND ALIB_CPP filetree/expressions/fileexpressions.cpp )
569if( "FORMAT" IN_LIST ALibBuild )
570 list( APPEND ALIB_H ALib.Format.H )
571 list( APPEND ALIB_UNI format/format.uni.cpp )
572 list( APPEND ALIB_MOD format/format.mod.cpp )
573 list( APPEND ALIB_MODIF format/format.ixx )
574 list( APPEND ALIB_HPP format/formatter.hpp )
575 list( APPEND ALIB_HPP format/fmtexceptions.hpp )
576 list( APPEND ALIB_HPP format/bytesize.hpp )
577 list( APPEND ALIB_HPP format/fmtcallerinfo.hpp )
578 list( APPEND ALIB_HPP format/fmtdatetime.hpp )
579 list( APPEND ALIB_HPP format/extensions/containers_hashtable.hpp )
580 list( APPEND ALIB_HPP format/extensions/boxing_format_debug.hpp )
581 list( APPEND ALIB_HPP format/extensions/resources_debug.hpp )
582 list( APPEND ALIB_CPP format/formatter.cpp )
583 list( APPEND ALIB_CPP format/fmtvarious.cpp )
584 list( APPEND ALIB_CPP format/extensions/boxing_format_debug.cpp )
585 list( APPEND ALIB_CPP format/extensions/resources_debug.cpp )
589 list( APPEND ALIB_H ALib.Format.StdImplementation.H )
590 list( APPEND ALIB_MODIF format/formatterstdimpl.ixx )
591 list( APPEND ALIB_HPP format/formatterstdimpl.hpp )
592 list( APPEND ALIB_MOD format/formatterstdimpl.mod.cpp )
593 list( APPEND ALIB_CPP format/formatterstdimpl.cpp )
595 list( APPEND ALIB_H ALib.Format.FormatterPythonStyle.H)
596 list( APPEND ALIB_MODIF format/formatterpythonstyle.ixx )
597 list( APPEND ALIB_HPP format/formatterpythonstyle.hpp )
598 list( APPEND ALIB_MOD format/formatterpythonstyle.mod.cpp)
599 list( APPEND ALIB_CPP format/formatterpythonstyle.cpp )
601 list( APPEND ALIB_H ALib.Format.FormatterJavaStyle.H )
602 list( APPEND ALIB_MODIF format/formatterjavastyle.ixx )
603 list( APPEND ALIB_HPP format/formatterjavastyle.hpp )
604 list( APPEND ALIB_MOD format/formatterjavastyle.mod.cpp )
605 list( APPEND ALIB_CPP format/formatterjavastyle.cpp )
607 list( APPEND ALIB_H ALib.Format.Paragraphs.H )
608 list( APPEND ALIB_MODIF format/paragraphs.ixx )
609 list( APPEND ALIB_HPP format/paragraphs.hpp )
610 list( APPEND ALIB_MOD format/paragraphs.mod.cpp )
611 list( APPEND ALIB_CPP format/paragraphs.cpp )
613 list( APPEND ALIB_H ALib.Format.PropertyFormatter.H )
614 list( APPEND ALIB_MODIF format/propertyformatter.ixx )
615 list( APPEND ALIB_HPP format/propertyformatter.hpp )
616 list( APPEND ALIB_MOD format/propertyformatter.mod.cpp )
617 list( APPEND ALIB_CPP format/propertyformatter.cpp )
619 if( "VARIABLES" IN_LIST ALibBuild )
620 list( APPEND ALIB_H ALib.Format.PropertyFormatters.H )
621 list( APPEND ALIB_MODIF format/propertyformatters.ixx )
622 list( APPEND ALIB_HPP format/propertyformatters.hpp )
627if( "MONOMEM" IN_LIST ALibBuild )
628 list( APPEND ALIB_H ALib.Monomem.H )
629 list( APPEND ALIB_MODIF monomem/monomem.ixx )
630 list( APPEND ALIB_MACROS monomem/monomem.prepro.hpp )
631 list( APPEND ALIB_HPP monomem/monoallocator.hpp )
632 list( APPEND ALIB_HPP monomem/monoallocator.t.hpp )
633 list( APPEND ALIB_HPP monomem/localallocator.hpp )
634 list( APPEND ALIB_HPP monomem/poolallocator.hpp )
635 list( APPEND ALIB_HPP monomem/poolallocator.t.hpp )
636 list( APPEND ALIB_MODIF monomem/stdcontainers.ixx )
637 list( APPEND ALIB_HPP monomem/stdcontainers.hpp )
638 list( APPEND ALIB_UNI monomem/monomem.uni.cpp )
639 list( APPEND ALIB_MOD monomem/monomem.mod.cpp )
640 list( APPEND ALIB_CPP monomem/monomem.cpp )
642 list( APPEND ALIB_H ALib.Monomem.SharedMonoVal.H )
643 list( APPEND ALIB_MODIF monomem/sharedmonoval.ixx )
644 list( APPEND ALIB_HPP monomem/sharedmonoval.hpp )
646 list( APPEND ALIB_H ALib.Monomem.StdContainers.H )
649if( "RESOURCES" IN_LIST ALibBuild )
650 list( APPEND ALIB_H ALib.Resources.H )
651 list( APPEND ALIB_UNI resources/resources.uni.cpp )
652 list( APPEND ALIB_MODIF resources/resources.ixx )
653 list( APPEND ALIB_MACROS resources/resources.prepro.hpp )
654 list( APPEND ALIB_HPP resources/resources.hpp )
655 list( APPEND ALIB_HPP resources/detail/resourcemap.hpp )
656 list( APPEND ALIB_HPP resources/localresourcepool.hpp )
658 list( APPEND ALIB_MOD resources/localresourcepool.mod.cpp )
659 list( APPEND ALIB_CPP resources/localresourcepool.cpp )
661 # additions from lower-level modules
662 list( APPEND ALIB_HPP resources/extensions/enums_serialization.hpp )
663 list( APPEND ALIB_HPP resources/extensions/strings_loadtokens.hpp )
664 list( APPEND ALIB_MOD resources/extensions/strings_loadtokens.mod.cpp)
665 list( APPEND ALIB_CPP resources/extensions/strings_loadtokens.cpp )
668if( "SINGLETONS" IN_LIST ALibBuild )
669 list( APPEND ALIB_H ALib.Singletons.H )
670 list( APPEND ALIB_MODIF singletons/singletons.ixx )
671 list( APPEND ALIB_MACROS singletons/singletons.prepro.hpp )
672 list( APPEND ALIB_UNI singletons/singletons.uni.cpp )
673 list( APPEND ALIB_MOD singletons/singletons.mod.cpp )
674 list( APPEND ALIB_CPP singletons/singletons.cpp )
675 list( APPEND ALIB_HPP singletons/singletons.hpp )
678if( "STRINGS" IN_LIST ALibBuild )
679 list( APPEND ALIB_H ALib.Strings.H )
680 list( APPEND ALIB_H ALib.Strings.StdFormatter.H )
681 list( APPEND ALIB_UNI strings/strings.uni.cpp )
682 list( APPEND ALIB_MOD strings/string.mod.cpp )
683 list( APPEND ALIB_MOD strings/astring.mod.cpp )
685 list( APPEND ALIB_MODIF strings/strings.ixx )
686 list( APPEND ALIB_MACROS strings/strings.prepro.hpp )
687 list( APPEND ALIB_HPP strings/appendables.hpp )
688 list( APPEND ALIB_HPP strings/astring.hpp )
689 list( APPEND ALIB_HPP strings/cstring.hpp )
690 list( APPEND ALIB_HPP strings/format.hpp )
691 list( APPEND ALIB_HPP strings/numberformat.hpp )
692 list( APPEND ALIB_HPP strings/localstring.hpp )
693 list( APPEND ALIB_HPP strings/string.hpp )
694 list( APPEND ALIB_HPP strings/stringnzt.hpp )
695 list( APPEND ALIB_HPP strings/substring.hpp )
696 list( APPEND ALIB_MODIF strings/stdfunctors.ixx )
697 list( APPEND ALIB_HPP strings/stdfunctors.hpp )
698 list( APPEND ALIB_HPP strings/stdformatter.hpp )
699 list( APPEND ALIB_HPP strings/stdiostream.hpp )
700 list( APPEND ALIB_HPP strings/qtstrings.hpp )
702 list( APPEND ALIB_HPP strings/detail/tastring.hpp )
703 list( APPEND ALIB_HPP strings/detail/tastringimpl.hpp )
704 list( APPEND ALIB_HPP strings/detail/tastring_ca_decl.hpp.inl )
705 list( APPEND ALIB_HPP strings/detail/tastring_ca_impl.hpp.inl )
706 list( APPEND ALIB_HPP strings/detail/numberconversion.hpp )
708 list( APPEND ALIB_CPP strings/astring.cpp )
709 list( APPEND ALIB_CPP strings/numberformat.cpp )
710 list( APPEND ALIB_CPP strings/string.cpp )
711 list( APPEND ALIB_CPP strings/substring.cpp )
712 list( APPEND ALIB_CPP strings/detail/numberconversion.cpp )
714 list( APPEND ALIB_H ALib.Compatibility.QTStrings.H )
715 list( APPEND ALIB_H ALib.Strings.StdFunctors.H )
716 list( APPEND ALIB_H ALib.Strings.StdIOStream.H )
717 list( APPEND ALIB_MODIF strings/stdiostream.ixx )
718 list( APPEND ALIB_MOD strings/stdiostream.mod.cpp )
719 list( APPEND ALIB_CPP strings/stdiostream.cpp )
722 list( APPEND ALIB_H ALib.Strings.Tokenizer.H )
723 list( APPEND ALIB_MODIF strings/util/tokenizer.ixx )
724 list( APPEND ALIB_HPP strings/util/tokenizer.hpp )
725 list( APPEND ALIB_MOD strings/util/tokenizer.mod.cpp )
726 list( APPEND ALIB_CPP strings/util/tokenizer.cpp )
727 list( APPEND ALIB_MODIF strings/util/vector.ixx )
728 list( APPEND ALIB_HPP strings/util/vector.hpp )
729 list( APPEND ALIB_UNI strings/util/util.uni.cpp )
730 list( APPEND ALIB_CPP strings/util/autosizes.cpp )
731 list( APPEND ALIB_CPP strings/util/escaper.cpp )
732 list( APPEND ALIB_CPP strings/util/regexmatcher.cpp )
733 list( APPEND ALIB_CPP strings/util/wildcardmatcher.cpp )
735 list( APPEND ALIB_H ALib.Strings.Escaper.H )
736 list( APPEND ALIB_MODIF strings/util/escaper.ixx )
737 list( APPEND ALIB_MOD strings/util/escaper.mod.cpp )
738 list( APPEND ALIB_HPP strings/util/escaper.hpp )
740 list( APPEND ALIB_H ALib.Strings.Search.H )
741 list( APPEND ALIB_MODIF strings/util/search.ixx )
742 list( APPEND ALIB_MOD strings/util/search.mod.cpp )
743 list( APPEND ALIB_HPP strings/util/search.hpp )
744 list( APPEND ALIB_HPP strings/util/regexmatcher.hpp )
745 list( APPEND ALIB_HPP strings/util/wildcardmatcher.hpp )
746 list( APPEND ALIB_CPP strings/util/search.cpp )
748 list( APPEND ALIB_H ALib.Strings.Calendar.H )
749 list( APPEND ALIB_MODIF strings/util/calendar.ixx )
750 list( APPEND ALIB_HPP strings/util/calendar.hpp )
751 list( APPEND ALIB_MOD strings/util/calendar.mod.cpp )
752 list( APPEND ALIB_CPP strings/util/calendar.cpp )
754 list( APPEND ALIB_H ALib.Strings.Token.H )
755 list( APPEND ALIB_MODIF strings/util/token.ixx )
756 list( APPEND ALIB_HPP strings/util/token.hpp )
757 list( APPEND ALIB_MOD strings/util/token.mod.cpp )
758 list( APPEND ALIB_CPP strings/util/token.cpp )
760 list( APPEND ALIB_H ALib.Strings.AutoSizes.H )
761 list( APPEND ALIB_MODIF strings/util/autosizes.ixx )
762 list( APPEND ALIB_MOD strings/util/autosizes.mod.cpp )
763 list( APPEND ALIB_HPP strings/util/autosizes.hpp )
765 list( APPEND ALIB_H ALib.Strings.Vector.H )
768 if( "MONOMEM" IN_LIST ALibBuild )
769 list( APPEND ALIB_HPP strings/monomem/strings_monomem.t.hpp )
770 list( APPEND ALIB_HPP strings/monomem/strings_monomem.hpp )
771 list( APPEND ALIB_UNI strings/monomem/strings_monomem.uni.cpp )
772 list( APPEND ALIB_MOD strings/monomem/strings_monomem.mod.cpp )
773 list( APPEND ALIB_CPP strings/monomem/strings_monomem.cpp )
777if( "SYSTEM" IN_LIST ALibBuild )
779 list( APPEND ALIB_H ALib.System.H )
780 list( APPEND ALIB_H ALib.System.TextFile.H )
781 list( APPEND ALIB_H ALib.System.MappedFile.H )
783 list( APPEND ALIB_MODIF system/system.ixx )
784 list( APPEND ALIB_MODIF system/mappedfile.ixx )
785 list( APPEND ALIB_MODIF system/textfile.ixx )
786 list( APPEND ALIB_MACROS system/system.prepro.hpp )
787 list( APPEND ALIB_HPP system/console.hpp )
788 list( APPEND ALIB_HPP system/environment.hpp )
789 list( APPEND ALIB_HPP system/filestatus.hpp )
790 list( APPEND ALIB_HPP system/mappedfile.hpp )
791 list( APPEND ALIB_HPP system/path.hpp )
792 list( APPEND ALIB_HPP system/processinfo.hpp )
793 list( APPEND ALIB_HPP system/shellcommand.hpp )
794 list( APPEND ALIB_HPP system/textfile.hpp )
795 list( APPEND ALIB_CPP system/console.cpp )
796 list( APPEND ALIB_CPP system/environment.cpp )
797 list( APPEND ALIB_CPP system/processinfo.cpp )
798 list( APPEND ALIB_CPP system/shellcommand.cpp )
800 list( APPEND ALIB_UNI system/system.uni.cpp )
801 list( APPEND ALIB_MOD system/system.mod.cpp )
802 list( APPEND ALIB_MOD system/filestatus.mod.cpp )
803 list( APPEND ALIB_CPP system/filestatus.cpp )
804 list( APPEND ALIB_MOD system/mappedfile.mod.cpp )
805 list( APPEND ALIB_CPP system/mappedfile.cpp )
806 list( APPEND ALIB_MOD system/path.mod.cpp )
807 list( APPEND ALIB_CPP system/path.cpp )
809 list( APPEND ALIB_UNI system/path.mm )
813if( "THREADMODEL" IN_LIST ALibBuild )
814 list( APPEND ALIB_H ALib.ThreadModel.H )
815 list( APPEND ALIB_UNI threadmodel/threadmodel.uni.cpp )
816 list( APPEND ALIB_MODIF threadmodel/threadmodel.ixx )
817 list( APPEND ALIB_HPP threadmodel/dedicatedworker.hpp )
818 list( APPEND ALIB_HPP threadmodel/jobs.hpp )
819 list( APPEND ALIB_HPP threadmodel/threadpool.hpp )
820 list( APPEND ALIB_HPP threadmodel/trigger.hpp )
822 list( APPEND ALIB_MOD threadmodel/dedicatedworker.mod.cpp )
823 list( APPEND ALIB_CPP threadmodel/dedicatedworker.cpp )
824 list( APPEND ALIB_MOD threadmodel/threadpool.mod.cpp )
825 list( APPEND ALIB_CPP threadmodel/threadpool.cpp )
826 list( APPEND ALIB_MOD threadmodel/trigger.mod.cpp )
827 list( APPEND ALIB_CPP threadmodel/trigger.cpp )
830# ##################################################################################################
831# Check for duplicates. This is a double-check to detect that this script needs a fix.
832# ##################################################################################################
834CollectAndRemoveDuplicates( "ALIB_MACROS" "duplicates" )
835LIST( LENGTH duplicates cntDuplicates )
836IF( ${cntDuplicates} GREATER 0 )
837 message( ERROR "Internal script error ALIBSources.cmake: "
838 "DUPLICATE .prepro.hpp FILES FOUND.\nSee list below! "
839 "(Processing continues with de-duplicated list)" )
840 message( STATUS "LIST OF DUPLICATE HPP FILES:" )
841 LIST(SORT duplicates)
842 FOREACH( entry IN LISTS duplicates )
843 message( STATUS " ${entry}" )
845 message( STATUS "(end of list)" )
848CollectAndRemoveDuplicates( "ALIB_HPP" "duplicates" )
849LIST( LENGTH duplicates cntDuplicates )
850IF( ${cntDuplicates} GREATER 0 )
851 message( ERROR "Internal script error ALIBSources.cmake: "
852 "DUPLICATE .inl FILES FOUND.\nSee list below! "
853 "(Processing continues with de-duplicated list)" )
854 message( STATUS "LIST OF DUPLICATE INC FILES:" )
855 LIST(SORT duplicates)
856 FOREACH( entry IN LISTS duplicates )
857 message( STATUS " ${entry}" )
859 message( STATUS "(end of list)" )
862CollectAndRemoveDuplicates( "ALIB_UNI" "duplicates" )
863LIST( LENGTH duplicates cntDuplicates )
864IF( ${cntDuplicates} GREATER 0 )
865 message( ERROR "Internal script error ALIBSources.cmake: "
866 "DUPLICATE .uni.cpp FILES FOUND.\nSee list below! "
867 "(Processing continues with de-duplicated list)" )
868 message( STATUS "LIST OF DUPLICATE CPP FILES:" )
869 LIST(SORT duplicates)
870 FOREACH( entry IN LISTS duplicates )
871 message( STATUS " ${entry}" )
873 message( STATUS "(end of list)" )
875CollectAndRemoveDuplicates( "ALIB_MODIF" "duplicates" )
876LIST( LENGTH duplicates cntDuplicates )
877IF( ${cntDuplicates} GREATER 0 )
878 message( ERROR "Internal script error ALIBSources.cmake: "
879 "DUPLICATE .ixx FILES FOUND.\nSee list below! "
880 "(Processing continues with de-duplicated list)" )
881 message( STATUS "LIST OF DUPLICATE IXX FILES:" )
882 LIST(SORT duplicates)
883 FOREACH( entry IN LISTS duplicates )
884 message( STATUS " ${entry}" )
886 message( STATUS "(end of list)" )
889CollectAndRemoveDuplicates( "ALIB_MOD" "duplicates" )
890LIST( LENGTH duplicates cntDuplicates )
891IF( ${cntDuplicates} GREATER 0 )
892 message( ERROR "Internal script error ALIBSources.cmake: "
893 "DUPLICATE .mod.cpp FILES FOUND.\nSee list below! "
894 "(Processing continues with de-duplicated list)" )
895 message( STATUS "LIST OF DUPLICATE MXX FILES:" )
896 LIST(SORT duplicates)
897 FOREACH( entry IN LISTS duplicates )
898 message( STATUS " ${entry}" )
900 message( STATUS "(end of list)" )
903CollectAndRemoveDuplicates( "ALIB_CPP" "duplicates" )
904LIST( LENGTH duplicates cntDuplicates )
905IF( ${cntDuplicates} GREATER 0 )
906 message( ERROR "Internal script error ALIBSources.cmake: "
907 "DUPLICATE .cpp FILES FOUND.\nSee list below! "
908 "(Processing continues with de-duplicated list)" )
909 message( STATUS "LIST OF DUPLICATE IMP FILES:" )
910 LIST(SORT duplicates)
911 FOREACH( entry IN LISTS duplicates )
912 message( STATUS " ${entry}" )
914 message( STATUS "(end of list)" )
917CollectAndRemoveDuplicates( "ALIB_RC" "duplicates" )
918LIST( LENGTH duplicates cntDuplicates )
919IF( ${cntDuplicates} GREATER 0 )
920 message( ERROR "Internal script error ALIBSources.cmake: "
921 "DUPLICATE .alibrc FILES FOUND.\nSee list below! "
922 "(Processing continues with de-duplicated list)" )
923 message( STATUS "LIST OF DUPLICATE IMP FILES:" )
924 LIST(SORT duplicates)
925 FOREACH( entry IN LISTS duplicates )
926 message( STATUS " ${entry}" )
928 message( STATUS "(end of list)" )
931# ##################################################################################################
932# Check for lists containing the right file types
933# ##################################################################################################
934FOREACH( entry IN LISTS ALIB_H )
935 IF( NOT ${entry} MATCHES "([.]H$)" )
936 message( FATAL_ERROR "File with wrong extension found in list ALIB_H: ${entry}" )
940FOREACH( entry IN LISTS ALIB_HPP )
941 IF( NOT ${entry} MATCHES "([.]hpp$)|([.]inl$)" )
942 message( FATAL_ERROR "File with wrong extension found in list ALIB_HPP: ${entry}" )
946FOREACH( entry IN LISTS ALIB_MODIF )
947 IF( NOT ${entry} MATCHES "([.]ixx$)" )
948 message( FATAL_ERROR "File with wrong extension found in list ALIB_MODIF: ${entry}" )
952FOREACH( entry IN LISTS ALIB_UNI )
953 IF( NOT ${entry} MATCHES "([.]uni[.]cpp$)|([.]mm$)" )
954 message( FATAL_ERROR "File with wrong extension found in list ALIB_UNI: ${entry}" )
958FOREACH( entry IN LISTS ALIB_MOD )
959 IF( NOT ${entry} MATCHES "([.]mod[.]cpp$)" )
960 message( FATAL_ERROR "File with wrong extension found in list ALIB_MOD: ${entry}" )
964FOREACH( entry IN LISTS ALIB_CPP )
965 IF( NOT ${entry} MATCHES "([.]cpp$)" )
966 message( FATAL_ERROR "File with wrong extension found in list ALIB_CPP: ${entry}" )
970FOREACH( entry IN LISTS ALIB_MACROS )
971 IF( NOT ${entry} MATCHES "([.]prepro[.]hpp$)" )
972 message( FATAL_ERROR "File with wrong extension found in list ALIB_MACROS: ${entry}" )
976FOREACH( entry IN LISTS ALIB_RC )
977 IF( NOT ${entry} MATCHES "([.]alibrc$)" )
978 message( FATAL_ERROR "File with wrong extension found in list ALIB_RC: ${entry}" )
982# ##################################################################################################
983# Copy sources if requested
984# ##################################################################################################
985if( ALIB_SOURCE_COPY_TARGET_DIR )
987 # Control what to copy: by default copy only headers relevant to the current module selection.
988 # Users can turn this OFF to copy all sources (including .uni.cppfiles) as before.
989 option(ALIB_COPY_HEADERS_ONLY "When copying to temporary build folder, copy only headers (.H, .hpp, .hpp, .ixx) needed for the selected modules" ON)
991 # check: must be single folder name (not a path)
992 string(FIND "${ALIB_SOURCE_COPY_TARGET_DIR}" "/" separatorPosUnix)
993 string(FIND "${ALIB_SOURCE_COPY_TARGET_DIR}" "\\" separatorPosWindows)
995 if(separatorPosUnix GREATER -1 OR separatorPosWindows GREATER -1)
996 MESSAGE(FATAL_ERROR "The given variable ALIB_SOURCE_COPY_TARGET_DIR=\"${ALIB_SOURCE_COPY_TARGET_DIR}\" "
997 "must be a folder name and not contain folder separators!")
1000 # Prepend build directory
1001 set(ALIB_SOURCE_COPY_TARGET_DIR "${CMAKE_BINARY_DIR}/${ALIB_SOURCE_COPY_TARGET_DIR}")
1003 MESSAGE( STATUS "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
1004 MESSAGE( STATUS "!!! ATTENTION: Copying sources. !!!")
1005 MESSAGE( STATUS "!!! The destination directory will be deleted, hence !!!")
1006 MESSAGE( STATUS "!!! CHANGES WILL BE LOST with next CMake run! !!!")
1007 MESSAGE( STATUS "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
1008 MESSAGE( STATUS "Copying source files of selected ALib modules to: ’${ALIB_SOURCE_COPY_TARGET_DIR}’")
1010 # delete destination directory
1011 MESSAGE( "Cleaning source-copy target directory ${ALIB_SOURCE_COPY_TARGET_DIR}" )
1012 file( REMOVE_RECURSE ${ALIB_SOURCE_COPY_TARGET_DIR} )
1014 #### Create directories and copy public headers (ALib.*.H live at src root) ####
1015 foreach( fileName IN LISTS ALIB_H )
1016 SET( destPath "${ALIB_SOURCE_COPY_TARGET_DIR}/ALib/${fileName}" )
1017 get_filename_component(destPath ${destPath} DIRECTORY )
1018 #MESSAGE("Copying file: ${ALIB_SOURCE_DIR}/ALib/${fileName}" )
1019 #MESSAGE(" to: ${destPath}" )
1020 file( MAKE_DIRECTORY "${destPath}")
1021 file( COPY "${ALIB_SOURCE_DIR}/${fileName}" DESTINATION "${destPath}" )
1024 # Build list of non-root headers to copy from src/alib tree
1025 set(_alib_copy_lists ${ALIB_MODIF} ${ALIB_HPP} ${ALIB_MACROS})
1027 # Optionally include .uni.cpp compilation units if headers-only copying is disabled
1028 if(NOT ALIB_COPY_HEADERS_ONLY)
1029 list(APPEND _alib_copy_lists ${ALIB_UNI} ${ALIB_MOD} ${ALIB_CPP} ${ALIB_RC})
1032 foreach( fileName IN LISTS _alib_copy_lists )
1033 SET( destPath "${ALIB_SOURCE_COPY_TARGET_DIR}/alib/${fileName}" )
1034 get_filename_component(destPath ${destPath} DIRECTORY )
1035 file( MAKE_DIRECTORY "${destPath}")
1036 file( COPY "${ALIB_SOURCE_DIR}/alib/${fileName}" DESTINATION "${destPath}" )
1043# ##################################################################################################
1044# Check if all given files exist and check all files are given
1045# ##################################################################################################
1046function(CheckFileInclusionForCompleteness fileList baseDir extension )
1047 # Ensure the baseDir is an absolute path
1048 if(NOT IS_ABSOLUTE "${baseDir}")
1049 message(FATAL_ERROR "The provided baseDir '${baseDir}' must be an absolute path.")
1052 # Step 1: Loop over the given list and check for file existence
1053 foreach(file_path IN LISTS fileList)
1055 # Form the absolute path of the file relative to baseDir
1056 set(absolute_file_path "${baseDir}/${file_path}")
1058 # Check if the file exists
1059 if(NOT EXISTS "${absolute_file_path}")
1060 message(WARNING "File does not exist: ${absolute_file_path}")
1065 # Step 2: Glob the baseDir for all files with the given extension
1066 file(GLOB_RECURSE found_files "${baseDir}/*.${extension}")
1068 # Normalize the found files to be relative to baseDir, for easier comparison
1069 # Filter to only include files where the basename (before extension) has no dots
1070 set(relative_found_files "")
1071 foreach(file_path IN LISTS found_files)
1072 file(RELATIVE_PATH relative_file "${baseDir}" "${file_path}")
1074 # Get the filename without directory
1075 get_filename_component(filename "${relative_file}" NAME)
1077 # Extract everything before the final .extension
1078 # For "alox.mod.cpp" with extension "cpp", we want to check "alox.mod"
1079 # For "alox.cpp" with extension "cpp", we want to check "alox"
1080 string(REGEX REPLACE "\\.${extension}$" "" basename "${filename}")
1082 # Check if the basename contains a dot - if so, skip this file
1083 string(FIND "${basename}" "." dot_pos)
1084 if(${dot_pos} EQUAL -1)
1085 # No dot in basename, include this file
1086 list(APPEND relative_found_files "${relative_file}")
1090 # Step 3: Compare the globbed files with the provided file list
1091 foreach(found_file IN LISTS relative_found_files)
1092 # Check if the found file is in the list
1093 list(FIND fileList "${found_file}" index)
1094 if(${index} EQUAL -1)
1095 message(WARNING "Found an untracked file: ${found_file}")
1101# ##################################################################################################
1102# Check if all given files have one of the given extensions
1103# ##################################################################################################
1104function(ValidateFileExtensions filenames_var extensions_var)
1105 # Parse optional arguments
1106 set(options ALLOW_DOTS_IN_BASENAME)
1107 cmake_parse_arguments(ARG "${options}" "" "" ${ARGN})
1109 # Dereference the input variable names to get their values
1110 set(filenames ${${filenames_var}})
1111 set(extensions ${${extensions_var}})
1113 # Sort extensions by length (longest first) to match compound extensions first
1114 set(sorted_extensions ${extensions})
1115 list(SORT sorted_extensions COMPARE STRING ORDER DESCENDING)
1118 #string(JOIN " " actual_filenames ${filenames})
1119 #string(JOIN " " allowed_extensions ${extensions})
1120 #message(STATUS "Validating files: ${actual_filenames}")
1121 #message(STATUS "Allowed extensions: ${allowed_extensions}")
1123 # Iterate over each filename
1124 foreach(filename IN LISTS filenames)
1125 # Get just the filename without directory
1126 get_filename_component(file_name_only "${filename}" NAME)
1128 # Try to match against each allowed extension (longest first)
1129 set(found_valid_extension FALSE)
1130 set(matched_extension "")
1132 foreach(ext IN LISTS sorted_extensions)
1133 # Check if filename ends with this extension
1134 string(REGEX MATCH "\\.${ext}$" match_result "${file_name_only}")
1136 set(found_valid_extension TRUE)
1137 set(matched_extension "${ext}")
1142 if(NOT found_valid_extension)
1143 # Extract what we think is the extension for error message
1144 string(REGEX MATCH "\\.[^.]*$" file_extension "${file_name_only}")
1145 string(REGEX REPLACE "\\." "" clean_extension "${file_extension}")
1146 message(FATAL_ERROR "File '${filename}' has an invalid extension: '${clean_extension}'. Allowed extensions are: ${extensions}")
1149 # Additional check: ensure no dots in basename (before the extension) unless allowed
1150 if(NOT ARG_ALLOW_DOTS_IN_BASENAME)
1151 # Remove the matched extension to get the basename
1152 string(REGEX REPLACE "\\.${matched_extension}$" "" basename "${file_name_only}")
1154 # Check if basename contains a dot
1155 string(FIND "${basename}" "." dot_pos)
1156 if(NOT ${dot_pos} EQUAL -1)
1157 message(FATAL_ERROR "File '${filename}' has a dot in the basename before the extension. Only the extension dot is allowed.")
1162 # Success message if all extensions are valid
1163 #message(STATUS "All files have valid extensions.")
1166# ##################################################################################################
1167# Add base directory to files
1168# ##################################################################################################
1169function(AddBaseDir baseDir sourceListVar )
1170 SET(temp "") # Temporary list to store valid files
1172 # Iterate over the files in the provided list
1173 foreach(fileName IN LISTS "${sourceListVar}")
1174 if(EXISTS "${baseDir}/${fileName}")
1175 LIST(APPEND temp "${baseDir}/${fileName}")
1177 message(FATAL_ERROR "Source file not found: ${baseDir}/${fileName}")
1181 # Set output variable with processed list
1182 SET("${sourceListVar}" "${temp}" PARENT_SCOPE)
1186 CheckFileInclusionForCompleteness( "${ALIB_H}" "${ALIB_SOURCE_DIR}" "H" )
1187 CheckFileInclusionForCompleteness( "${ALIB_MODIF}" "${ALIB_SOURCE_DIR}/alib" "ixx" )
1188 CheckFileInclusionForCompleteness( "${ALIB_HPP}" "${ALIB_SOURCE_DIR}/alib" "hpp" )
1189 CheckFileInclusionForCompleteness( "${ALIB_UNI}" "${ALIB_SOURCE_DIR}/alib" "uni.cpp" )
1191 CheckFileInclusionForCompleteness( "${ALIB_UNI}" "${ALIB_SOURCE_DIR}/alib" "mm" )
1193 CheckFileInclusionForCompleteness( "${ALIB_MOD}" "${ALIB_SOURCE_DIR}/alib" "mod.cpp" )
1194 CheckFileInclusionForCompleteness( "${ALIB_CPP}" "${ALIB_SOURCE_DIR}/alib" "cpp" )
1195 CheckFileInclusionForCompleteness( "${ALIB_MACROS}" "${ALIB_SOURCE_DIR}/alib" "prepro.hpp" )
1196 CheckFileInclusionForCompleteness( "${ALIB_RC}" "${ALIB_SOURCE_DIR}/alib" "alibrc" )
1198set(allowedExtensions "H" "hpp" )
1199 ValidateFileExtensions(ALIB_H allowedExtensions ALLOW_DOTS_IN_BASENAME)
1200set(allowedExtensions "ixx" )
1201 ValidateFileExtensions(ALIB_MODIF allowedExtensions)
1202set(allowedExtensions "hpp" "hpp.inl" "t.hpp" )
1203 ValidateFileExtensions(ALIB_HPP allowedExtensions)
1204set(allowedExtensions "hpp" "prepro.hpp")
1205 ValidateFileExtensions(ALIB_MACROS allowedExtensions)
1206set(allowedExtensions "uni.cpp" "mm" )
1207 ValidateFileExtensions(ALIB_UNI allowedExtensions)
1208set(allowedExtensions "mod.cpp" )
1209 ValidateFileExtensions(ALIB_MOD allowedExtensions)
1210set(allowedExtensions "cpp" )
1211 ValidateFileExtensions(ALIB_CPP allowedExtensions)
1212set(allowedExtensions "alibrc" )
1213 ValidateFileExtensions(ALIB_RC allowedExtensions)
1214AddBaseDir("${ALIB_SOURCE_DIR}" ALIB_H )
1215AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_MODIF )
1216AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_HPP )
1217AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_MACROS )
1218AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_UNI )
1219AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_MOD )
1220AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_CPP )
1221AddBaseDir("${ALIB_SOURCE_DIR}/alib" ALIB_RC )