source: trunk/avango-python/SConscript @ 417

Revision 417, 6.2 KB checked in by rkuck, 2 years ago (diff)

Basic class mechanisms now work in reworked avango.python

  • Property svn:eol-style set to native
Line 
1# -*- Mode:Python -*-
2
3##########################################################################
4#                                                                        #
5# This file is part of AVANGO.                                           #
6#                                                                        #
7# Copyright 1997 - 2009 Fraunhofer-Gesellschaft zur Foerderung der       #
8# angewandten Forschung (FhG), Munich, Germany.                          #
9#                                                                        #
10# AVANGO is free software: you can redistribute it and/or modify         #
11# it under the terms of the GNU Lesser General Public License as         #
12# published by the Free Software Foundation, version 3.                  #
13#                                                                        #
14# AVANGO is distributed in the hope that it will be useful,              #
15# but WITHOUT ANY WARRANTY; without even the implied warranty of         #
16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the           #
17# GNU General Public License for more details.                           #
18#                                                                        #
19# You should have received a copy of the GNU Lesser General Public       #
20# License along with AVANGO. If not, see <http://www.gnu.org/licenses/>. #
21#                                                                        #
22##########################################################################
23
24import avango.build
25import avango.build.oshelper
26
27avango.build.Environment.prepend_include_path(Dir('include').abspath)
28avango.build.Environment.prepend_python_path(Dir('src/test_package').abspath)
29avango.build.Environment.prepend_library_path(Dir('.').abspath)
30avango.build.Environment.prepend_library_path(Dir('src/avango').abspath)
31avango.build.Environment.prepend_library_path(Dir('src/avango/script').abspath)
32avango_env = avango.build.PythonEnvironment()
33avango_env.Append(LIBS=["avangoScript"])
34avango.build.add_library(avango_env, 'boost_python')
35avango.build.add_library(avango_env, 'avango-core')
36
37Alias('all', Alias('python'))
38Alias('check', Alias('check-python'))
39Alias('install', Alias('install-python'))
40
41avango_script_library_files = Split("""
42    src/avango/script/Init.cpp
43    src/avango/script/Types.cpp
44    src/avango/script/Update.cpp
45    src/avango/script/Script.cpp
46    """)
47avango_lib_env = avango.build.Environment()
48avango_lib_env.Append(CPPDEFINES='AV_PYTHON_LIBRARY')
49avango.build.add_library(avango_lib_env, 'boost_python')
50avango.build.add_library(avango_lib_env, 'avango-core')
51avango_script_library = avango_lib_env.SharedLibrary("avangoScript", avango_script_library_files)
52Alias('install-python', Install(avango.build.get_library_path(), avango_script_library))
53
54avango_files = Split("""
55    src/avango/_avango.cpp
56    src/avango/FieldContainer.cpp
57    src/avango/Field.cpp
58    src/avango/exceptions.cpp
59    src/avango/InputStream.cpp
60    src/avango/OutputStream.cpp
61    """)
62
63avango_python_files = Split("""
64    src/avango/__init__.py
65    src/avango/_fieldcontainer.py
66    src/avango/_utility.py
67    src/avango/nodefactory.py
68    """)
69
70avango_module = avango_env.SharedLibrary("src/avango/_avango", avango_files)
71Depends(avango_module, avango_python_files)
72install_python_files = Install(avango.build.get_python_path('avango'), avango_python_files)
73install_python_module = Install(avango.build.get_python_path('avango'), avango_module)
74Alias('python', avango_module)
75Alias('install-python', [install_python_files, install_python_module])
76
77av_script_files = Split("""
78    src/avango/script/_script.cpp
79    """)
80av_script_python_files = Split("""
81    src/avango/script/__init__.py
82    src/avango/script/_meta_script.py
83    src/avango/script/_container.py
84    """)
85avango_script_env = avango_env.Clone()
86av_script = avango_script_env.SharedLibrary("src/avango/script/_script", av_script_files)
87Depends(av_script, avango_script_library)
88Depends(av_script, av_script_python_files)
89Install(avango.build.get_python_path('avango/script'), av_script_python_files)
90Install(avango.build.get_python_path('avango/script'), av_script)
91Alias('install-python', avango.build.get_python_path('avango/script'))
92Alias('python', av_script)
93
94
95# Build tests
96local_env = avango.build.Environment()
97avango.build.add_library(local_env, 'avango-core')
98local_env.Append(CPPDEFINES=['AV_MOCKUP_LIBRARY'])
99mockfieldcontainer = local_env.SharedLibrary("src/tests/MockFieldContainer.cpp")
100
101local_mock_env = avango_env.Clone()
102local_mock_env.Prepend(LIBPATH=[Dir('src/tests').abspath])
103local_mock_env.Append(LIBS=['MockFieldContainer'])
104mockfieldcontainer_python = local_mock_env.SharedLibrary("src/tests/_mockfieldcontainer.cpp")
105Depends(mockfieldcontainer_python, mockfieldcontainer)
106
107test_package_dir = 'src/test_package/'
108Install(test_package_dir+'avango/', avango_module)
109Install(test_package_dir+'avango/script', av_script)
110Install(test_package_dir+'tests/', mockfieldcontainer)
111Install(test_package_dir+'tests/', mockfieldcontainer_python)
112avango.build.install_python(test_package_dir+'avango/', avango_python_files)
113avango.build.install_python(test_package_dir+'avango/script', av_script_python_files)
114avango_python_test_files = Split("""
115    src/tests/mock.py
116    src/tests/TestFieldContainer.py
117    src/tests/TestField.py
118    src/tests/TestUpdate.py
119    src/tests/TestScript.py
120    src/tests/TestNodefactory.py
121    src/tests/TestContainer.py
122    src/tests/TestUtility.py
123    src/tests/runtests.py
124    """)
125avango_python_test_pkg_files = Split("""
126    src/tests/apackage/__init__.py
127    src/tests/apackage/empty.py
128    """)
129avango.build.install_python(test_package_dir+'tests/', avango_python_test_files)
130avango.build.install_python(test_package_dir+'tests/apackage', avango_python_test_pkg_files)
131
132local_test_env = avango.build.TestEnvironment()
133local_test_env.PrependENVPath(avango.build.get_library_search_path_env(), Dir('src/tests').abspath)
134check = local_test_env.Alias('test-python', 'src/test_package/tests/runtests.pyc', 'python $SOURCE')
135AlwaysBuild(check)
136Alias('check-python', check)
137local_test_env.Depends(check, test_package_dir)
138
139
140SConscript('include/avango/python/SConscript')
141SConscript('include/avango/python/script/SConscript')
142
143avango.build.make_vcproject(local_env, 'avango-python', 'python')
Note: See TracBrowser for help on using the repository browser.