Beispiel #1
0
    def _gen_shell_posix_impl(self, conf, obj_conf, static=False, shared=False):
        def _gen_library(lib):
            if lib.endswith('.a') or lib.endswith('.so'):
                return lib
            else:
                return lib.replace('lib', '-l')

        all_sources = eutils.get_sources_list(MakeEnv().get_proj_path(), exts=conf['extensions'], fullpath=True)
        mk_dict = dict(
            target=conf['target'],
            cflags=self._gen_options('cflags', conf.get('compile_options', [])),
            inc_dir=self._gen_options('inc_dir', conf.get('inc_dir', []), posix=True),
            objs=self._gen_options('objs', all_sources, gen=self._gen_objname, shave_last=True, posix=True)
        )
        if not static:
            mk_dict['ldflags'] = self._gen_options('ldflags', conf.get('ldflags', []), posix=True)
            mk_dict['link_dir'] = self._gen_options('link_dir', conf.get('link_dir', []), posix=True)
            mk_dict['link_libs'] = self._gen_options('link_libs', conf.get('link_libs', []), gen=_gen_library, posix=True)

        objs = []
        for source in all_sources:
            obj_name = self._gen_options('objs', [source], gen=self._gen_objname, shave_last=True, posix=True)
            objs.append(obj_conf.format(mk_obj=obj_name, mk_src=source))
        mk_dict['emake_objs'] = ''.join(objs)
        return mk_dict
Beispiel #2
0
    def _gen_shell_posix_impl(self,
                              conf,
                              obj_conf,
                              static=False,
                              shared=False):
        def _gen_library(lib):
            if lib.endswith('.a') or lib.endswith('.so'):
                return lib
            else:
                return lib.replace('lib', '-l')

        all_sources = eutils.get_sources_list(MakeEnv().get_proj_path(),
                                              exts=conf['extensions'],
                                              fullpath=True)
        mk_dict = dict(target=conf['target'],
                       cflags=self._gen_options(
                           'cflags', conf.get('compile_options', [])),
                       inc_dir=self._gen_options('inc_dir',
                                                 conf.get('inc_dir', []),
                                                 posix=True),
                       objs=self._gen_options('objs',
                                              all_sources,
                                              gen=self._gen_objname,
                                              shave_last=True,
                                              posix=True))
        if not static:
            mk_dict['ldflags'] = self._gen_options('ldflags',
                                                   conf.get('ldflags', []),
                                                   posix=True)
            mk_dict['link_dir'] = self._gen_options('link_dir',
                                                    conf.get('link_dir', []),
                                                    posix=True)
            mk_dict['link_libs'] = self._gen_options('link_libs',
                                                     conf.get('link_libs', []),
                                                     gen=_gen_library,
                                                     posix=True)

        objs = []
        for source in all_sources:
            obj_name = self._gen_options('objs', [source],
                                         gen=self._gen_objname,
                                         shave_last=True,
                                         posix=True)
            objs.append(obj_conf.format(mk_obj=obj_name, mk_src=source))
        mk_dict['emake_objs'] = ''.join(objs)
        return mk_dict
Beispiel #3
0
    def _gen_shell_windows(self, conf, obj_conf, static=False, shared=False):
        all_sources = eutils.get_sources_list(MakeEnv().get_proj_path(),
                                              exts=conf['extensions'],
                                              fullpath=True)
        mk_dict = dict(
            target=conf['target'],
            cflags=self._gen_options('cflags', conf.get('compile_options',
                                                        [])),
            preprocessor=self._gen_options('preprocessor',
                                           conf.get('precompile_options', [])),
            inc_dir=self._gen_options('inc_dir', conf.get('inc_dir', [])),
            objs=self._gen_options('objs',
                                   all_sources,
                                   gen=self._gen_objname,
                                   shave_last=True))
        if not static:
            mk_dict['ldflags'] = self._gen_options('ldflags',
                                                   conf.get('ldflags', []))
            mk_dict['link_dir'] = self._gen_options('link_dir',
                                                    conf.get('link_dir', []))
            mk_dict['link_libs'] = self._gen_options('link_libs',
                                                     conf.get('link_libs', []))

        objs = []
        for source in all_sources:
            obj_name = self._gen_options('objs', [source],
                                         gen=self._gen_objname,
                                         shave_last=True)
            if os.path.splitext(source)[1][1:] == 'c':
                clang = '-EHs'
            else:
                clang = '-EHsc'
            objs.append(
                obj_conf.format(mk_obj=obj_name, mk_src=source, clang=clang))
        mk_dict['emake_objs'] = ''.join(objs)
        return mk_dict
Beispiel #4
0
    def _gen_shell_windows(self, conf, obj_conf, static=False, shared=False):
        all_sources = eutils.get_sources_list(MakeEnv().get_proj_path(), exts=conf['extensions'], fullpath=True)
        mk_dict = dict(
            target=conf['target'],
            cflags=self._gen_options('cflags', conf.get('compile_options', [])),
            preprocessor=self._gen_options('preprocessor', conf.get('precompile_options', [])),
            inc_dir=self._gen_options('inc_dir', conf.get('inc_dir', [])),
            objs=self._gen_options('objs', all_sources, gen=self._gen_objname, shave_last=True)
        )
        if not static:
            mk_dict['ldflags'] = self._gen_options('ldflags', conf.get('ldflags', []))
            mk_dict['link_dir'] = self._gen_options('link_dir', conf.get('link_dir', []))
            mk_dict['link_libs'] = self._gen_options('link_libs', conf.get('link_libs', []))

        objs = []
        for source in all_sources:
            obj_name = self._gen_options('objs', [source], gen=self._gen_objname, shave_last=True)
            if os.path.splitext(source)[1][1:] == 'c':
                clang = '-EHs'
            else:
                clang = '-EHsc'
            objs.append(obj_conf.format(mk_obj=obj_name, mk_src=source, clang=clang))
        mk_dict['emake_objs'] = ''.join(objs)
        return mk_dict