пятница, 22 июля 2011 г.

Scons + MinGW

Решено при помощи http://www.conic.se/blog/posts/20/

 У самого свежего Scons есть небольшая проблема, а именно – он отказывается работать с MinGW, особенно если установлена Visual Studio, а на явное задание

Environment(tools = ['mingw'])
Выбрасывает ошибки. Однако на базе вышеприведенной ссылки, можно исправить такое поведение: Я добавил в скрипт возможность явного задания инструмента, которым можно это выполнить:

import platform
import os

def get_mingw_environment():
      mingw=ARGUMENTS.get('MINGW_TOOLCHAIN_PATH',"C:\\MinGW")
      env = Environment(tools = ['mingw'], ENV = os.environ)
      if mingw.endswith('\\') :
         env.PrependENVPath('PATH', mingw+'\\bin')
         env.PrependENVPath('LIB',  mingw+'\\lib')
      else:
         env.PrependENVPath('PATH', mingw+'bin')
         env.PrependENVPath('LIB',  mingw+'lib')
      return env

if platform.system() == 'Windows':
     use_mingw=ARGUMENTS.get('USE_MINGW',"NO")
     if use_mingw=="NO":
      env = Environment(ENV = os.environ)
     else:
      env=get_mingw_environment()
else:
      env = Environment(ENV = os.environ)


Использование:

scons USE_MINGW=YES MINGW_TOOLCHAIN_PATH=E:\MinGW
Первая переменная указывает на то, нужно ли использовать MinGW, вторая – путь к нему.

Комментариев нет:

Отправить комментарий