import os

Import('env')

module_env = env.Clone()

sources = [

    "register_types.cpp",

    "file_cache.cpp",

    "http/csrf_token.cpp",
    "http/http_server_enums.cpp",
    "http/http_session.cpp",
    "http/http_session_manager.cpp",
    "http/web_node.cpp",
    "http/web_permission.cpp",
    "http/web_root.cpp",
    "http/web_server.cpp",
    "http/web_server_cookie.cpp",
    "http/web_server_middleware.cpp",
    "http/web_server_request.cpp",

    "http/http_parser.cpp",
    "http/http_writer.cpp",

    "html/html_builder_bind.cpp",

    "http_server_simple/http_server_simple.cpp",
    "http_server_simple/web_server_simple.cpp",
    "http_server_simple/simple_web_server_request.cpp",
]

if ARGUMENTS.get('custom_modules_shared', 'no') == 'yes':
    # Shared lib compilation
    module_env.Append(CCFLAGS=['-fPIC'])
    module_env['LIBS'] = []
    shared_lib = module_env.SharedLibrary(target='#bin/web', source=sources)
    shared_lib_shim = shared_lib[0].name.rsplit('.', 1)[0]
    env.Append(LIBS=[shared_lib_shim])
    env.Append(LIBPATH=['#bin'])
else:
    # Static compilation
    module_env.add_source_files(env.modules_sources, sources)