Parent Directory
|
Revision Log
1) Rob, could you please set up your editor to not put CR's into the files. 2) The import esys.bruce fails on Linux, but the rest seems OK. Here is how things go. If a directory (bruce say) contains an __init__.py, then import esys.bruce actually imports the __init__.py file. One can either phoney up the namespace by then saying from bruce import * in __init__.py (ugly!!) or just rename bruce.py to __init__.py. All the sub-packages need this treatment. I suggest doing it with the .py files in the source tree rather than re-naming at build time. Any other modules in the sub-directory can then be imported into the __init__.py in the usual way in order to make them visible to the user. Alternatively, any module not imported to __init__.py is invisible to the user. This is much better than mucking with PYTHON_PATH and LD_LIBRARY_PATH, which has a tendency to make everything visible, and creates module name clashes in site-packages on occasions. The .so associated with a sub-directory should reside with the corresponding __init__.py that imports it. Careful use of "from AClass import AClass" and "from ASharedLib import *" in __init__.py is also a good method of making classes contained in submodules look like they are in the namespace of the __init__.py, thereby hiding the intervening module name from the user. That way esys.bruce.AClass.AClass can be morphed into esys.bruce.AClass, eliminating the annoying intervening module namespace.
1 | Import('*') |
2 | |
3 | lib_name = 'finleyC' |
4 | |
5 | finleyC_env=env.Copy() |
6 | src_dir = finleyC_env.Dir('.').srcnode().abspath |
7 | |
8 | import os |
9 | filenames = os.listdir(src_dir) |
10 | sources = [x for x in filenames if os.path.splitext(x)[1] in ['.cpp', '.c']] |
11 | headers = [x for x in filenames if os.path.splitext(x)[1] in ['.h']] |
12 | |
13 | include = Dir('finley/finleyC', esys_inc) |
14 | finleyC_env.Install( include, headers ) |
15 | |
16 | if env['PLATFORM'] != "win32" and env['PLATFORM'] != "posix" : |
17 | import os |
18 | |
19 | cc_flags = '-O0 -openmp -openmp_report0 -tpp2 -ansi -ansi_alias -no-gcc -w1' |
20 | |
21 | cpp_path = ['#../escript/inc', |
22 | '#../esysUtils/inc', |
23 | '#../finley/inc', |
24 | '#../paso/inc', |
25 | '/raid2/tools/python-2.3.4/include/python2.3', |
26 | '/raid2/tools/boost/include/boost-1_31'] |
27 | |
28 | |
29 | |
30 | finleyC_env = Environment(ENV = os.environ) |
31 | |
32 | finleyC_env.Replace(CC = 'icc') |
33 | finleyC_env.Replace(CCFLAGS = cc_flags) |
34 | finleyC_env.Replace(CPPPATH = cpp_path) |
35 | |
36 | finleyC_lib = finleyC_env.StaticLibrary(lib_name, sources) |
37 | finleyC_env.Install(esys_lib, finleyC_lib) |
ViewVC Help | |
Powered by ViewVC 1.1.26 |