让scons在windows下以 posix 风格编译

来源:互联网 发布:泰安焦点网络好不好 编辑:程序博客网 时间:2024/05/19 08:46

要在 windows下编译第三方 jni 库,但是配置好后,scons 自动使用 windows 风格的编译,将.c编译成 .obj,导致 android arm 交叉编译工具 g++出错。

#######################################################
# Main Build
#######################################################
options = Variables()
options.AddVariables(
    EnumVariable('target', 'build target', DefaultTarget(), allowed_values=PLATFORM_TO_TARGET_MAP.values()+CROSS_PLATFORMS+SPECIAL_PLATFORMS),
    BoolVariable('stop_on_warning', 'Stop the build on warnings', False),
    ListVariable('build_config', 'build configurations', 'Debug', names=['Debug', 'Release'])
)
env = Environment(variables=options)
#del env['MSVS_VERSION']
#env.Replace(HOST_OS=['None'])
#env.Replace(TOOLS=['gcc', 'g++', 'gnulink'])
env.Replace(LIBPREFIX='lib')
env.Replace(CC='gcc')
env.Replace(CXX='g++')
env.Replace(CXXFLAGS='')
env.Replace(CCFLAGS='')
env.Replace(ASFLAGS='')
env.Replace(ARFLAGS='rc')
env.Replace(LINKFLAGS='')
env.Replace(CPPDEFPREFIX='-D')
env.Replace(INCPREFIX='-I')
env.Replace(LIBDIRPREFIX='-L')
env.Replace(PROGSUFFIX='.e')
env.Replace(LIBSUFFIX='.a')
env.Replace(OBJSUFFIX='.o')
env.Replace(_CCCOMCOM=['$CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS'])
env.Replace(CXXCOM=['$CXX -o $TARGET -c $CXXFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'])
env.Replace(ASCOM=['$AS $ASFLAGS -o $TARGET $SOURCES'])
env.Replace(CCCOM=['$CC -o $TARGET -c $CFLAGS $CCFLAGS $_CCCOMCOM $SOURCES'])
env.Replace(ARCOM=['$AR $ARFLAGS $TARGET $SOURCES'])
env.Replace(LINKCOM=['$LINK -o $TARGET $LINKFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'])
env.Replace(LDMODULECOM=['$LDMODULE -o $TARGET $LDMODULEFLAGS $__RPATH $SOURCES $_LIBDIRFLAGS $_LIBFLAGS'])
env.Replace(RPATHPREFIX=['-Wl,-rpath='])
#env.Replace(_LIBDIRFLAGS=['$( ${_concat(LIBDIRPREFIX, LIBPATH, LIBDIRSUFFIX, __env__, RDirs, TARGET, SOURCE)} $)'])


0 0