summaryrefslogtreecommitdiffstats
path: root/src/boost/tools/boostdep/depinst
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 18:45:59 +0000
commit19fcec84d8d7d21e796c7624e521b60d28ee21ed (patch)
tree42d26aa27d1e3f7c0b8bd3fd14e7d7082f5008dc /src/boost/tools/boostdep/depinst
parentInitial commit. (diff)
downloadceph-6d07fdb6bb33b1af39833b850bb6cf8af79fe293.tar.xz
ceph-6d07fdb6bb33b1af39833b850bb6cf8af79fe293.zip
Adding upstream version 16.2.11+ds.upstream/16.2.11+dsupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/boost/tools/boostdep/depinst')
-rw-r--r--src/boost/tools/boostdep/depinst/depinst.py282
-rw-r--r--src/boost/tools/boostdep/depinst/exceptions.txt396
2 files changed, 678 insertions, 0 deletions
diff --git a/src/boost/tools/boostdep/depinst/depinst.py b/src/boost/tools/boostdep/depinst/depinst.py
new file mode 100644
index 000000000..6dfba36a7
--- /dev/null
+++ b/src/boost/tools/boostdep/depinst/depinst.py
@@ -0,0 +1,282 @@
+#!/usr/bin/env python
+
+# depinst.py - installs the dependencies needed to test
+# a Boost library
+#
+# Copyright 2016-2020 Peter Dimov
+#
+# Distributed under the Boost Software License, Version 1.0.
+# See accompanying file LICENSE_1_0.txt or copy at
+# http://www.boost.org/LICENSE_1_0.txt
+
+from __future__ import print_function
+
+import re
+import sys
+import os
+import argparse
+
+verbose = 0
+
+def vprint( level, *args ):
+
+ if verbose >= level:
+ print( *args )
+
+
+def is_module( m, gm ):
+
+ return ( 'libs/' + m ) in gm
+
+
+def module_for_header( h, x, gm ):
+
+ if h in x:
+
+ return x[ h ]
+
+ else:
+
+ # boost/function.hpp
+ m = re.match( 'boost/([^\\./]*)\\.h[a-z]*$', h )
+
+ if m and is_module( m.group( 1 ), gm ):
+
+ return m.group( 1 )
+
+ # boost/numeric/conversion.hpp
+ m = re.match( 'boost/([^/]*/[^\\./]*)\\.h[a-z]*$', h )
+
+ if m and is_module( m.group( 1 ), gm ):
+
+ return m.group( 1 )
+
+ # boost/numeric/conversion/header.hpp
+ m = re.match( 'boost/([^/]*/[^/]*)/', h )
+
+ if m and is_module( m.group( 1 ), gm ):
+
+ return m.group( 1 )
+
+ # boost/function/header.hpp
+ m = re.match( 'boost/([^/]*)/', h )
+
+ if m and is_module( m.group( 1 ), gm ):
+
+ return m.group( 1 )
+
+ vprint( 0, 'Cannot determine module for header', h )
+
+ return None
+
+
+def scan_header_dependencies( f, x, gm, deps ):
+
+ for line in f:
+
+ m = re.match( '[ \t]*#[ \t]*include[ \t]*["<](boost/[^">]*)[">]', line )
+
+ if m:
+
+ h = m.group( 1 )
+
+ mod = module_for_header( h, x, gm )
+
+ if mod:
+
+ if not mod in deps:
+
+ vprint( 1, 'Adding dependency', mod )
+ deps[ mod ] = 0
+
+
+def scan_directory( d, x, gm, deps ):
+
+ vprint( 1, 'Scanning directory', d )
+
+ if os.name == 'nt' and sys.version_info[0] < 3:
+ d = unicode( d )
+
+ for root, dirs, files in os.walk( d ):
+
+ for file in files:
+
+ fn = os.path.join( root, file )
+
+ vprint( 2, 'Scanning file', fn )
+
+ if sys.version_info[0] < 3:
+
+ with open( fn, 'r' ) as f:
+ scan_header_dependencies( f, x, gm, deps )
+
+ else:
+
+ with open( fn, 'r', encoding='latin-1' ) as f:
+ scan_header_dependencies( f, x, gm, deps )
+
+
+def scan_module_dependencies( m, x, gm, deps, dirs ):
+
+ vprint( 1, 'Scanning module', m )
+
+ for dir in dirs:
+ scan_directory( os.path.join( 'libs', m, dir ), x, gm, deps )
+
+
+def read_exceptions():
+
+ # exceptions.txt is the output of "boostdep --list-exceptions"
+
+ vprint( 1, 'Reading exceptions.txt' )
+
+ x = {}
+
+ module = None
+
+ with open( os.path.join( os.path.dirname( sys.argv[0] ), 'exceptions.txt' ), 'r' ) as f:
+
+ for line in f:
+
+ line = line.rstrip()
+
+ m = re.match( '(.*):$', line )
+
+ if m:
+
+ module = m.group( 1 ).replace( '~', '/' )
+
+ else:
+
+ header = line.lstrip()
+ x[ header ] = module
+
+ return x
+
+
+def read_gitmodules():
+
+ vprint( 1, 'Reading .gitmodules' )
+
+ gm = []
+
+ with open( '.gitmodules', 'r' ) as f:
+
+ for line in f:
+
+ line = line.strip()
+
+ m = re.match( 'path[ \t]*=[ \t]*(.*)$', line )
+
+ if m:
+
+ gm.append( m.group( 1 ) )
+
+ return gm
+
+def install_modules( modules, git_args ):
+
+ if len( modules ) == 0:
+ return
+
+ vprint( 0, 'Installing:', ', '.join(modules) )
+
+ modules = [ 'libs/' + m for m in modules ]
+
+ command = 'git submodule'
+
+ if verbose <= 0:
+ command += ' -q'
+
+ command += ' update --init ' + git_args + ' ' + ' '.join( modules )
+
+ vprint( 1, 'Executing:', command )
+ r = os.system( command );
+
+ if r != 0:
+ raise Exception( "The command '%s' failed with exit code %d" % (command, r) )
+
+
+def install_module_dependencies( deps, x, gm, git_args ):
+
+ modules = []
+
+ for m, i in deps.items():
+
+ if not i:
+
+ modules += [ m ]
+ deps[ m ] = 1 # mark as installed
+
+ if len( modules ) == 0:
+ return 0
+
+ install_modules( modules, git_args )
+
+ for m in modules:
+ scan_module_dependencies( m, x, gm, deps, [ 'include', 'src' ] )
+
+ return len( modules )
+
+
+if( __name__ == "__main__" ):
+
+ parser = argparse.ArgumentParser( description='Installs the dependencies needed to test a Boost library.' )
+
+ parser.add_argument( '-v', '--verbose', help='enable verbose output', action='count', default=0 )
+ parser.add_argument( '-q', '--quiet', help='quiet output (opposite of -v)', action='count', default=0 )
+ parser.add_argument( '-X', '--exclude', help="exclude a default subdirectory ('include', 'src', or 'test') from scan; can be repeated", metavar='DIR', action='append', default=[] )
+ parser.add_argument( '-N', '--ignore', help="exclude top-level dependency even when found in scan; can be repeated", metavar='LIB', action='append', default=[] )
+ parser.add_argument( '-I', '--include', help="additional subdirectory to scan; can be repeated", metavar='DIR', action='append', default=[] )
+ parser.add_argument( '-g', '--git_args', help="additional arguments to `git submodule update`", default='', action='store' )
+ parser.add_argument( '-u', '--update', help='update <library> before scanning', action='store_true' )
+ parser.add_argument( 'library', help="name of library to scan ('libs/' will be prepended)" )
+
+ args = parser.parse_args()
+
+ verbose = args.verbose - args.quiet
+
+ vprint( 2, '-X:', args.exclude )
+ vprint( 2, '-I:', args.include )
+ vprint( 2, '-N:', args.ignore )
+
+ x = read_exceptions()
+ vprint( 2, 'Exceptions:', x )
+
+ gm = read_gitmodules()
+ vprint( 2, '.gitmodules:', gm )
+
+ essentials = [ 'config', 'headers', '../tools/boost_install', '../tools/build', '../tools/cmake' ]
+
+ essentials = [ e for e in essentials if os.path.exists( 'libs/' + e ) ]
+
+ if args.update:
+ essentials.append( args.library )
+
+ install_modules( essentials, args.git_args )
+
+ m = args.library
+
+ deps = { m : 1 }
+
+ dirs = [ 'include', 'src', 'test' ]
+
+ for dir in args.exclude:
+ dirs.remove( dir )
+
+ for dir in args.include:
+ dirs.append( dir )
+
+ vprint( 1, 'Directories to scan:', *dirs )
+
+ scan_module_dependencies( m, x, gm, deps, dirs )
+
+ for dep in args.ignore:
+ if dep in deps:
+ vprint( 1, 'Ignoring dependency', dep )
+ del deps[dep]
+
+ vprint( 2, 'Dependencies:', deps )
+
+ while install_module_dependencies( deps, x, gm, args.git_args ):
+ pass
diff --git a/src/boost/tools/boostdep/depinst/exceptions.txt b/src/boost/tools/boostdep/depinst/exceptions.txt
new file mode 100644
index 000000000..d5b540260
--- /dev/null
+++ b/src/boost/tools/boostdep/depinst/exceptions.txt
@@ -0,0 +1,396 @@
+assert:
+ boost/current_function.hpp
+atomic:
+ boost/memory_order.hpp
+bind:
+ boost/is_placeholder.hpp
+ boost/mem_fn.hpp
+circular_buffer:
+ boost/circular_buffer_fwd.hpp
+concept_check:
+ boost/concept/assert.hpp
+ boost/concept/detail/backward_compatibility.hpp
+ boost/concept/detail/borland.hpp
+ boost/concept/detail/concept_def.hpp
+ boost/concept/detail/concept_undef.hpp
+ boost/concept/detail/general.hpp
+ boost/concept/detail/has_constraints.hpp
+ boost/concept/detail/msvc.hpp
+ boost/concept/requires.hpp
+ boost/concept/usage.hpp
+ boost/concept_archetype.hpp
+config:
+ boost/cstdint.hpp
+ boost/cxx11_char_types.hpp
+ boost/detail/workaround.hpp
+ boost/limits.hpp
+ boost/version.hpp
+container_hash:
+ boost/functional/hash.hpp
+ boost/functional/hash/extensions.hpp
+ boost/functional/hash/hash.hpp
+ boost/functional/hash/hash_fwd.hpp
+ boost/functional/hash_fwd.hpp
+contract:
+ boost/contract_macro.hpp
+conversion:
+ boost/implicit_cast.hpp
+ boost/polymorphic_cast.hpp
+ boost/polymorphic_pointer_cast.hpp
+convert:
+ boost/make_default.hpp
+core:
+ boost/checked_delete.hpp
+ boost/detail/iterator.hpp
+ boost/detail/lightweight_test.hpp
+ boost/detail/no_exceptions_support.hpp
+ boost/detail/scoped_enum_emulation.hpp
+ boost/detail/sp_typeinfo.hpp
+ boost/get_pointer.hpp
+ boost/iterator.hpp
+ boost/non_type.hpp
+ boost/noncopyable.hpp
+ boost/ref.hpp
+ boost/swap.hpp
+ boost/type.hpp
+ boost/utility/addressof.hpp
+ boost/utility/enable_if.hpp
+ boost/utility/explicit_operator_bool.hpp
+ boost/utility/swap.hpp
+ boost/visit_each.hpp
+detail:
+ boost/blank.hpp
+ boost/blank_fwd.hpp
+ boost/cstdlib.hpp
+dynamic_bitset:
+ boost/dynamic_bitset_fwd.hpp
+exception:
+ boost/exception_ptr.hpp
+foreach:
+ boost/foreach_fwd.hpp
+function:
+ boost/function_equal.hpp
+graph:
+ boost/detail/algorithm.hpp
+ boost/pending/bucket_sorter.hpp
+ boost/pending/container_traits.hpp
+ boost/pending/detail/disjoint_sets.hpp
+ boost/pending/detail/property.hpp
+ boost/pending/disjoint_sets.hpp
+ boost/pending/fenced_priority_queue.hpp
+ boost/pending/fibonacci_heap.hpp
+ boost/pending/indirect_cmp.hpp
+ boost/pending/is_heap.hpp
+ boost/pending/mutable_heap.hpp
+ boost/pending/mutable_queue.hpp
+ boost/pending/property.hpp
+ boost/pending/property_serialize.hpp
+ boost/pending/queue.hpp
+ boost/pending/relaxed_heap.hpp
+ boost/pending/stringtok.hpp
+graph_parallel:
+ boost/graph/accounting.hpp
+ boost/graph/distributed/adjacency_list.hpp
+ boost/graph/distributed/adjlist/handlers.hpp
+ boost/graph/distributed/adjlist/initialize.hpp
+ boost/graph/distributed/adjlist/redistribute.hpp
+ boost/graph/distributed/adjlist/serialization.hpp
+ boost/graph/distributed/betweenness_centrality.hpp
+ boost/graph/distributed/boman_et_al_graph_coloring.hpp
+ boost/graph/distributed/breadth_first_search.hpp
+ boost/graph/distributed/compressed_sparse_row_graph.hpp
+ boost/graph/distributed/concepts.hpp
+ boost/graph/distributed/connected_components.hpp
+ boost/graph/distributed/connected_components_parallel_search.hpp
+ boost/graph/distributed/crauser_et_al_shortest_paths.hpp
+ boost/graph/distributed/dehne_gotz_min_spanning_tree.hpp
+ boost/graph/distributed/delta_stepping_shortest_paths.hpp
+ boost/graph/distributed/depth_first_search.hpp
+ boost/graph/distributed/detail/dijkstra_shortest_paths.hpp
+ boost/graph/distributed/detail/filtered_queue.hpp
+ boost/graph/distributed/detail/mpi_process_group.ipp
+ boost/graph/distributed/detail/queue.ipp
+ boost/graph/distributed/detail/remote_update_set.hpp
+ boost/graph/distributed/detail/tag_allocator.hpp
+ boost/graph/distributed/dijkstra_shortest_paths.hpp
+ boost/graph/distributed/distributed_graph_utility.hpp
+ boost/graph/distributed/eager_dijkstra_shortest_paths.hpp
+ boost/graph/distributed/filtered_graph.hpp
+ boost/graph/distributed/fruchterman_reingold.hpp
+ boost/graph/distributed/graphviz.hpp
+ boost/graph/distributed/hohberg_biconnected_components.hpp
+ boost/graph/distributed/local_subgraph.hpp
+ boost/graph/distributed/mpi_process_group.hpp
+ boost/graph/distributed/named_graph.hpp
+ boost/graph/distributed/one_bit_color_map.hpp
+ boost/graph/distributed/page_rank.hpp
+ boost/graph/distributed/queue.hpp
+ boost/graph/distributed/reverse_graph.hpp
+ boost/graph/distributed/rmat_graph_generator.hpp
+ boost/graph/distributed/selector.hpp
+ boost/graph/distributed/shuffled_distribution.hpp
+ boost/graph/distributed/st_connected.hpp
+ boost/graph/distributed/strong_components.hpp
+ boost/graph/distributed/two_bit_color_map.hpp
+ boost/graph/distributed/unsafe_serialize.hpp
+ boost/graph/distributed/vertex_list_adaptor.hpp
+ boost/graph/parallel/algorithm.hpp
+ boost/graph/parallel/basic_reduce.hpp
+ boost/graph/parallel/container_traits.hpp
+ boost/graph/parallel/detail/inplace_all_to_all.hpp
+ boost/graph/parallel/detail/property_holders.hpp
+ boost/graph/parallel/detail/untracked_pair.hpp
+ boost/graph/parallel/distribution.hpp
+ boost/graph/parallel/process_group.hpp
+ boost/graph/parallel/properties.hpp
+ boost/graph/parallel/simple_trigger.hpp
+integer:
+ boost/integer_fwd.hpp
+ boost/integer_traits.hpp
+ boost/pending/integer_log2.hpp
+io:
+ boost/io_fwd.hpp
+iterator:
+ boost/function_output_iterator.hpp
+ boost/generator_iterator.hpp
+ boost/indirect_reference.hpp
+ boost/iterator_adaptors.hpp
+ boost/next_prior.hpp
+ boost/pending/detail/int_iterator.hpp
+ boost/pending/iterator_adaptors.hpp
+ boost/pending/iterator_tests.hpp
+ boost/pointee.hpp
+ boost/shared_container_iterator.hpp
+lexical_cast:
+ boost/detail/basic_pointerbuf.hpp
+ boost/detail/lcast_precision.hpp
+math:
+ boost/cstdfloat.hpp
+ boost/math_fwd.hpp
+multi_index:
+ boost/multi_index_container.hpp
+ boost/multi_index_container_fwd.hpp
+numeric/conversion:
+ boost/cast.hpp
+optional:
+ boost/none.hpp
+ boost/none_t.hpp
+parameter_python:
+ boost/parameter/aux_/python/invoker.hpp
+ boost/parameter/aux_/python/invoker_iterate.hpp
+ boost/parameter/python.hpp
+predef:
+ boost/predef.h
+random:
+ boost/nondet_random.hpp
+regex:
+ boost/cregex.hpp
+ boost/regex.h
+ boost/regex_fwd.hpp
+serialization:
+ boost/archive/archive_exception.hpp
+ boost/archive/basic_archive.hpp
+ boost/archive/basic_binary_iarchive.hpp
+ boost/archive/basic_binary_iprimitive.hpp
+ boost/archive/basic_binary_oarchive.hpp
+ boost/archive/basic_binary_oprimitive.hpp
+ boost/archive/basic_streambuf_locale_saver.hpp
+ boost/archive/basic_text_iarchive.hpp
+ boost/archive/basic_text_iprimitive.hpp
+ boost/archive/basic_text_oarchive.hpp
+ boost/archive/basic_text_oprimitive.hpp
+ boost/archive/basic_xml_archive.hpp
+ boost/archive/basic_xml_iarchive.hpp
+ boost/archive/basic_xml_oarchive.hpp
+ boost/archive/binary_iarchive.hpp
+ boost/archive/binary_iarchive_impl.hpp
+ boost/archive/binary_oarchive.hpp
+ boost/archive/binary_oarchive_impl.hpp
+ boost/archive/binary_wiarchive.hpp
+ boost/archive/binary_woarchive.hpp
+ boost/archive/codecvt_null.hpp
+ boost/archive/detail/abi_prefix.hpp
+ boost/archive/detail/abi_suffix.hpp
+ boost/archive/detail/archive_serializer_map.hpp
+ boost/archive/detail/auto_link_archive.hpp
+ boost/archive/detail/auto_link_warchive.hpp
+ boost/archive/detail/basic_iarchive.hpp
+ boost/archive/detail/basic_iserializer.hpp
+ boost/archive/detail/basic_oarchive.hpp
+ boost/archive/detail/basic_oserializer.hpp
+ boost/archive/detail/basic_pointer_iserializer.hpp
+ boost/archive/detail/basic_pointer_oserializer.hpp
+ boost/archive/detail/basic_serializer.hpp
+ boost/archive/detail/basic_serializer_map.hpp
+ boost/archive/detail/check.hpp
+ boost/archive/detail/common_iarchive.hpp
+ boost/archive/detail/common_oarchive.hpp
+ boost/archive/detail/decl.hpp
+ boost/archive/detail/helper_collection.hpp
+ boost/archive/detail/interface_iarchive.hpp
+ boost/archive/detail/interface_oarchive.hpp
+ boost/archive/detail/iserializer.hpp
+ boost/archive/detail/oserializer.hpp
+ boost/archive/detail/polymorphic_iarchive_route.hpp
+ boost/archive/detail/polymorphic_oarchive_route.hpp
+ boost/archive/detail/register_archive.hpp
+ boost/archive/detail/utf8_codecvt_facet.hpp
+ boost/archive/dinkumware.hpp
+ boost/archive/impl/archive_serializer_map.ipp
+ boost/archive/impl/basic_binary_iarchive.ipp
+ boost/archive/impl/basic_binary_iprimitive.ipp
+ boost/archive/impl/basic_binary_oarchive.ipp
+ boost/archive/impl/basic_binary_oprimitive.ipp
+ boost/archive/impl/basic_text_iarchive.ipp
+ boost/archive/impl/basic_text_iprimitive.ipp
+ boost/archive/impl/basic_text_oarchive.ipp
+ boost/archive/impl/basic_text_oprimitive.ipp
+ boost/archive/impl/basic_xml_grammar.hpp
+ boost/archive/impl/basic_xml_iarchive.ipp
+ boost/archive/impl/basic_xml_oarchive.ipp
+ boost/archive/impl/text_iarchive_impl.ipp
+ boost/archive/impl/text_oarchive_impl.ipp
+ boost/archive/impl/text_wiarchive_impl.ipp
+ boost/archive/impl/text_woarchive_impl.ipp
+ boost/archive/impl/xml_iarchive_impl.ipp
+ boost/archive/impl/xml_oarchive_impl.ipp
+ boost/archive/impl/xml_wiarchive_impl.ipp
+ boost/archive/impl/xml_woarchive_impl.ipp
+ boost/archive/iterators/base64_exception.hpp
+ boost/archive/iterators/base64_from_binary.hpp
+ boost/archive/iterators/binary_from_base64.hpp
+ boost/archive/iterators/dataflow.hpp
+ boost/archive/iterators/dataflow_exception.hpp
+ boost/archive/iterators/escape.hpp
+ boost/archive/iterators/insert_linebreaks.hpp
+ boost/archive/iterators/istream_iterator.hpp
+ boost/archive/iterators/mb_from_wchar.hpp
+ boost/archive/iterators/ostream_iterator.hpp
+ boost/archive/iterators/remove_whitespace.hpp
+ boost/archive/iterators/transform_width.hpp
+ boost/archive/iterators/unescape.hpp
+ boost/archive/iterators/wchar_from_mb.hpp
+ boost/archive/iterators/xml_escape.hpp
+ boost/archive/iterators/xml_unescape.hpp
+ boost/archive/iterators/xml_unescape_exception.hpp
+ boost/archive/polymorphic_binary_iarchive.hpp
+ boost/archive/polymorphic_binary_oarchive.hpp
+ boost/archive/polymorphic_iarchive.hpp
+ boost/archive/polymorphic_oarchive.hpp
+ boost/archive/polymorphic_text_iarchive.hpp
+ boost/archive/polymorphic_text_oarchive.hpp
+ boost/archive/polymorphic_text_wiarchive.hpp
+ boost/archive/polymorphic_text_woarchive.hpp
+ boost/archive/polymorphic_xml_iarchive.hpp
+ boost/archive/polymorphic_xml_oarchive.hpp
+ boost/archive/polymorphic_xml_wiarchive.hpp
+ boost/archive/polymorphic_xml_woarchive.hpp
+ boost/archive/text_iarchive.hpp
+ boost/archive/text_oarchive.hpp
+ boost/archive/text_wiarchive.hpp
+ boost/archive/text_woarchive.hpp
+ boost/archive/tmpdir.hpp
+ boost/archive/wcslen.hpp
+ boost/archive/xml_archive_exception.hpp
+ boost/archive/xml_iarchive.hpp
+ boost/archive/xml_oarchive.hpp
+ boost/archive/xml_wiarchive.hpp
+ boost/archive/xml_woarchive.hpp
+smart_ptr:
+ boost/detail/atomic_count.hpp
+ boost/detail/lightweight_mutex.hpp
+ boost/detail/lightweight_thread.hpp
+ boost/detail/quick_allocator.hpp
+ boost/enable_shared_from_this.hpp
+ boost/intrusive_ptr.hpp
+ boost/make_shared.hpp
+ boost/make_unique.hpp
+ boost/pointer_cast.hpp
+ boost/pointer_to_other.hpp
+ boost/scoped_array.hpp
+ boost/scoped_ptr.hpp
+ boost/shared_array.hpp
+ boost/shared_ptr.hpp
+ boost/weak_ptr.hpp
+system:
+ boost/cerrno.hpp
+throw_exception:
+ boost/exception/exception.hpp
+timer:
+ boost/progress.hpp
+tokenizer:
+ boost/token_functions.hpp
+ boost/token_iterator.hpp
+type_traits:
+ boost/aligned_storage.hpp
+ boost/utility/declval.hpp
+unordered:
+ boost/unordered_map.hpp
+ boost/unordered_set.hpp
+utility:
+ boost/call_traits.hpp
+ boost/compressed_pair.hpp
+ boost/detail/call_traits.hpp
+ boost/detail/compressed_pair.hpp
+ boost/detail/ob_compressed_pair.hpp
+ boost/operators.hpp
+ boost/operators_v1.hpp
+winapi:
+ boost/detail/interlocked.hpp
+ boost/detail/winapi/access_rights.hpp
+ boost/detail/winapi/apc.hpp
+ boost/detail/winapi/basic_types.hpp
+ boost/detail/winapi/bcrypt.hpp
+ boost/detail/winapi/character_code_conversion.hpp
+ boost/detail/winapi/condition_variable.hpp
+ boost/detail/winapi/config.hpp
+ boost/detail/winapi/critical_section.hpp
+ boost/detail/winapi/crypt.hpp
+ boost/detail/winapi/dbghelp.hpp
+ boost/detail/winapi/debugapi.hpp
+ boost/detail/winapi/detail/deprecated_namespace.hpp
+ boost/detail/winapi/directory_management.hpp
+ boost/detail/winapi/dll.hpp
+ boost/detail/winapi/environment.hpp
+ boost/detail/winapi/error_codes.hpp
+ boost/detail/winapi/error_handling.hpp
+ boost/detail/winapi/event.hpp
+ boost/detail/winapi/file_management.hpp
+ boost/detail/winapi/file_mapping.hpp
+ boost/detail/winapi/get_current_process.hpp
+ boost/detail/winapi/get_current_process_id.hpp
+ boost/detail/winapi/get_current_thread.hpp
+ boost/detail/winapi/get_current_thread_id.hpp
+ boost/detail/winapi/get_last_error.hpp
+ boost/detail/winapi/get_process_times.hpp
+ boost/detail/winapi/get_system_directory.hpp
+ boost/detail/winapi/get_thread_times.hpp
+ boost/detail/winapi/handle_info.hpp
+ boost/detail/winapi/handles.hpp
+ boost/detail/winapi/heap_memory.hpp
+ boost/detail/winapi/init_once.hpp
+ boost/detail/winapi/jobs.hpp
+ boost/detail/winapi/limits.hpp
+ boost/detail/winapi/local_memory.hpp
+ boost/detail/winapi/memory.hpp
+ boost/detail/winapi/mutex.hpp
+ boost/detail/winapi/overlapped.hpp
+ boost/detail/winapi/page_protection_flags.hpp
+ boost/detail/winapi/pipes.hpp
+ boost/detail/winapi/priority_class.hpp
+ boost/detail/winapi/process.hpp
+ boost/detail/winapi/security.hpp
+ boost/detail/winapi/semaphore.hpp
+ boost/detail/winapi/shell.hpp
+ boost/detail/winapi/show_window.hpp
+ boost/detail/winapi/srw_lock.hpp
+ boost/detail/winapi/stack_backtrace.hpp
+ boost/detail/winapi/synchronization.hpp
+ boost/detail/winapi/system.hpp
+ boost/detail/winapi/thread.hpp
+ boost/detail/winapi/thread_pool.hpp
+ boost/detail/winapi/time.hpp
+ boost/detail/winapi/timers.hpp
+ boost/detail/winapi/tls.hpp
+ boost/detail/winapi/wait.hpp
+ boost/detail/winapi/waitable_timer.hpp