dark-hammer / src / core / wscript

#! /usr/bin/env python

import os

def build(bld):
    env = bld.env.derive()
    
    files = [
        "array.c",
        "zip.c",
        "vec-math.c",
        "variant.c",
        "timer.c",
        "str.c",
        "std-math.c",
        "stack-alloc.c",
        "prims.c",
        "pool-alloc.c",
        "pak-file.c",
        "numeric.c",
        "net-socket.c",
        "memory.c",
        "log.c",
        "json.c",
        "hash-table.c",
        "hash.c",
        "freelist-alloc.c",
        "file-mgr.c",
        "errors.c",
        "core.c",
        "util.c"]
        
    # platform dependent files
    if env.PLATFORM == "WIN":
        files.extend(bld.path.ant_glob("platform/win/*.c"))
    elif env.PLATFORM == "LINUX":
        files.extend(bld.path.ant_glob("platform/unix/*.c"))
    elif env.PLATFORM == "OSX":
        files.extend(bld.path.ant_glob("platform/osx/*.c"))
        files.extend(bld.path.ant_glob("platform/unix/*.c"))
    
    env.append_unique("DEFINES", "_CORE_EXPORT_")
    env.prepend_value("INCLUDES", [os.path.normpath(env.ROOTDIR + "/include/core")])
    
    # general libs
    if env.PLATFORM == "LINUX":
        env.append_unique("LIB", "rt")
        env.append_unique("LIB", "stdc++")
    elif env.PLATFORM == "OSX":
        env.append_unique("FRAMEWORK", ["Cocoa","CoreFoundation","OpenGL"])
        env.append_unique("LIB", "stdc++")
    elif env.PLATFORM == "WIN":
        env.append_unique("LINKFLAGS", [
            '/NODEFAULTLIB:"LIBCMTD.LIB"', 
            '/NODEFAULTLIB:"LIBCMT.LIB"'])
        env.append_unique("LIB", ["ws2_32", "Shell32"])
    
    if bld.variant == 'pymodule':
        install_path = '${PYDIR}'
    else:
        install_path = '${BINDIR}'
        
    bld.shlib(
        source = files,
        target = "dh_core" + env.SUFFIX,
        name = "dh_core",
        install_path = install_path,
        env = env,
        use = [
            "3rdparty_efsw",
            "3rdparty_cjson",
            "3rdparty_sfmt",
            "3rdparty_z",
            'OSDEPS'])
        
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.