diff --git a/mechanisms/CMakeLists.txt b/mechanisms/CMakeLists.txt index d4539de33fd642fbfe8ab5b55e902c23c083df0f..032adf1244614217b5cad45498b20dbf9813903f 100644 --- a/mechanisms/CMakeLists.txt +++ b/mechanisms/CMakeLists.txt @@ -20,12 +20,12 @@ build_modules( SOURCE_DIR "${bbp_mod_srcdir}" DEST_DIR "${mech_dir}" ${external_modcc} - MODCC_FLAGS -t cpu -t gpu ${ARB_MODCC_FLAGS} + MODCC_FLAGS -t cpu -t gpu ${ARB_MODCC_FLAGS} -N arb::bbp_catalogue GENERATES .hpp _cpu.cpp _gpu.cpp _gpu.cu TARGET build_catalogue_bbp_mods) set(bbp_catalogue_source ${CMAKE_CURRENT_BINARY_DIR}/bbp_catalogue.cpp) -set(bbp_catalogue_options -A arbor -I ${mech_dir} -o ${bbp_catalogue_source} -B multicore -C bbp) +set(bbp_catalogue_options -A arbor -I ${mech_dir} -o ${bbp_catalogue_source} -B multicore -C bbp -N arb::bbp_catalogue) if(ARB_WITH_GPU) list(APPEND bbp_catalogue_options -B gpu) endif() @@ -60,12 +60,12 @@ build_modules( SOURCE_DIR "${allen_mod_srcdir}" DEST_DIR "${mech_dir}" ${external_modcc} - MODCC_FLAGS -t cpu -t gpu ${ARB_MODCC_FLAGS} + MODCC_FLAGS -t cpu -t gpu ${ARB_MODCC_FLAGS} -N arb::allen_catalogue GENERATES .hpp _cpu.cpp _gpu.cpp _gpu.cu TARGET build_catalogue_allen_mods) set(allen_catalogue_source ${CMAKE_CURRENT_BINARY_DIR}/allen_catalogue.cpp) -set(allen_catalogue_options -A arbor -I ${mech_dir} -o ${allen_catalogue_source} -B multicore -C allen) +set(allen_catalogue_options -A arbor -I ${mech_dir} -o ${allen_catalogue_source} -B multicore -C allen -N arb::allen_catalogue) if(ARB_WITH_GPU) list(APPEND allen_catalogue_options -B gpu) endif() @@ -100,12 +100,12 @@ build_modules( SOURCE_DIR "${default_mod_srcdir}" DEST_DIR "${mech_dir}" ${external_modcc} - MODCC_FLAGS -t cpu -t gpu ${ARB_MODCC_FLAGS} + MODCC_FLAGS -t cpu -t gpu ${ARB_MODCC_FLAGS} -N arb::default_catalogue GENERATES .hpp _cpu.cpp _gpu.cpp _gpu.cu TARGET build_catalogue_default_mods) set(default_catalogue_source ${CMAKE_CURRENT_BINARY_DIR}/default_catalogue.cpp) -set(default_catalogue_options -A arbor -I ${mech_dir} -o ${default_catalogue_source} -B multicore -C default) +set(default_catalogue_options -A arbor -I ${mech_dir} -o ${default_catalogue_source} -B multicore -C default -N arb::default_catalogue) if(ARB_WITH_GPU) list(APPEND default_catalogue_options -B gpu) endif() diff --git a/mechanisms/generate_catalogue b/mechanisms/generate_catalogue index 072b1d1c7fe8885913cd51a4e2b50bbafc6a4d46..a4ad3cfd05f6a0f073169c67c54d9e21db12faf7 100755 --- a/mechanisms/generate_catalogue +++ b/mechanisms/generate_catalogue @@ -62,6 +62,14 @@ def parse_arguments(): metavar = 'BACKEND', help = 'register implementations for back-end %(metavar)s') + group.add_argument( + '-N', '--namespace', + default = [], + action = 'append', + dest = 'namespaces', + metavar = 'NAMESPACE', + help = 'add %(metavar)s to list of implicitly included namespaces') + group.add_argument( '-C', '--catalogue', default = 'default', @@ -83,7 +91,7 @@ def parse_arguments(): return vars(parser.parse_args()) -def generate(catalogue, modpfx='', arbpfx='', modules=[], backends=[], **rest): +def generate(catalogue, modpfx='', arbpfx='', modules=[], backends=[], namespaces=[], **rest): src = string.Template(\ r'''// Automatically generated by: // $cmdline @@ -91,6 +99,7 @@ r'''// Automatically generated by: #include <${arbpfx}mechcat.hpp> $backend_includes $module_includes +$using_namespace namespace arb { @@ -119,6 +128,8 @@ const mechanism_catalogue& global_${catalogue}_catalogue() { cmdline=" ".join(sys.argv), arbpfx=arbpfx, catalogue=catalogue, + using_namespace = indent(0, + ['using namespace {};'.format(n) for n in namespaces]), backend_includes = indent(0, # ['#include <{}backends/{}/fvm.hpp>'.format(arbpfx, b) for b in backends]), ['#include "backends/{}/fvm.hpp"'.format(b) for b in backends]),