/[ascend]/trunk/scons/ipopt.py
ViewVC logotype

Annotation of /trunk/scons/ipopt.py

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2327 - (hide annotations) (download) (as text)
Wed Dec 22 07:17:24 2010 UTC (11 years, 9 months ago) by jpye
File MIME type: text/x-python
File size: 1375 byte(s)
Merging in refactor of the C++ code, which is moved out of 'pygtk' and into 'ascxx'.
Adding support for IPOPT 3.9.1, the current latest version.
Support in dtar for parallel builds (possibly needs some testing still).
1 jpye 2327 import os, os.path, platform, subprocess
2     from SCons.Script import *
3    
4     munge = lambda s: s
5    
6     try:
7     # if we have access to GetShortPathName, we'll use it...
8     import win32api
9     def munge1(s):
10     s1 = s
11     try:
12     # we can only munge the path if it actually exists
13     s1 = win32api.GetShortPathName(s)
14     except:
15     # if it doesn't exist, we just return the un-munged path
16     pass
17     return s1
18     munge = munge1
19     except:
20     pass
21    
22     def generate(env):
23     """
24     Detect IPOPT settings and add them to the environment.
25     """
26     try:
27     if platform.system()=="Windows":
28     pkgconfig = ['c:\\MSYS\\1.0\\bin\\sh.exe','/MinGW/bin/pkg-config']
29     else:
30     pkgconfig = ['/usr/bin/pkg-config']
31    
32     cmd = pkgconfig + ['ipopt','--libs','--cflags']
33     env1 = env.Clone()
34     env1['CPPPATH'] = None
35     env1['LIBPATH'] = None
36     env1['LIBS'] = None
37     env1.ParseConfig(cmd)
38     env['IPOPT_CPPPATH'] = env1.get('CPPPATH')
39     env['IPOPT_LIBPATH'] = env1.get('LIBPATH')
40     env['IPOPT_LIBS'] = env1.get('LIBS')
41     env['HAVE_IPOPT'] = True
42    
43     print "IPOPT_LIBS =",env.get('IPOPT_LIBS')
44     print "IPOPT_LIBPATH =",env.get('IPOPT_LIBPATH')
45     print "IPOPT_CPPPATH =",env.get('IPOPT_CPPPATH')
46    
47     except Exception, e:
48     print "FAILED IPOPT DETECTION:",e.__class__,str(e)
49     env['HAVE_IPOPT'] = False
50    
51     def exists(env):
52     """
53     Make sure this tool exists.
54     """
55     if not subprocess.call('pkg-config --exists ipopt'):
56     return True
57     return False
58    

john.pye@anu.edu.au
ViewVC Help
Powered by ViewVC 1.1.22