def init_dirs(self):
     fsutil.make_dir(self.work_dir)
     fsutil.make_dir(self.build_dir)
     fsutil.make_dir(self.install_dir)
     fsutil.make_dir(self.cache_dir)
     if self.enable_dist:
         fsutil.make_dir(self.dist_dir)
def install(patterns, source_dir = '', target_dir = ''):
    source_dir_full = _add_subpath(_info.build_dir, source_dir)
    target_dir_full = _add_subpath(_info.install_dir, target_dir)
    fsutil.make_dir(target_dir_full)
    for pattern in patterns.split():
        for source in glob.iglob(path.join(source_dir_full, pattern)):
            shutil.copy(source, target_dir_full)
def build_cmake(options = '', subdir = ''):
    build_dir = _add_subpath(_info.build_dir, subdir)
    cmake_dir = path.join(build_dir, 'cmake.build')
    options = _build_cmake_args() + options.split()

    fsutil.make_dir(cmake_dir)

    cmdutil.native_exec('cmake', options, work_dir=cmake_dir)
    cmdutil.native_make([], work_dir=cmake_dir)
    cmdutil.native_make(['install'], work_dir=cmake_dir)
def generate_pkg_config(pkgname, libname = None, version = None):
    if not libname:
        libname = _info.short_name
    if not version:
        version = '1.0.0'
    output_file = path.join(_info.install_dir, 'lib', 'pkgconfig', pkgname + '.pc')
    fsutil.make_dir(path.dirname(output_file))
    with open(output_file, 'wb') as f:
        f.write('prefix=%s\n' % cmdutil.to_unix_path(_info.install_dir))
        f.write('exec_prefix=${prefix}\n')
        f.write('libdir=${exec_prefix}/lib\n')
        f.write('includedir=${prefix}/include\n')
        f.write('\n')
        f.write('Name: %s\n' % pkgname)
        f.write('Description: %s library\n' % libname)
        f.write('Version: %s\n' % version)
        f.write('Libs: -L${libdir} -l%s\n' % libname)
        f.write('Cflags: -I${includedir}\n')
def init(base_dir, profile):
    global _base_dir
    global _package_dir
    global _cache_dir
    global _work_dir

    _base_dir = _adjust_path(base_dir)
    _package_dir = path.join(_base_dir, 'packages')

    if not path.exists(_package_dir):
        raise ValueError('Package directory is not found: ' + _package_dir)
        
    if profile != config.DEFAULT_PROFILE:
        work = 'work-' + profile
    else:
        work = 'work'

    _cache_dir = _resolve_dir('cache_dir', 'cache')
    _work_dir = _resolve_dir('work_dir', work)

    fsutil.make_dir(_cache_dir)
    fsutil.make_dir(_work_dir)