← Back to team overview

yade-users team mailing list archive

Re: [IMPORANT] Migration to cmake

 

Hi Anton,

in order to get the compilation going we had to change the include for
boost as follows:

#include(FindBoost)
SET(LIB_BOOST_PATH "/usr/local/boost-1.46/lib" )

The boost issue seems to work now. However, compilation is still not
working.

geotech-r710-3-build: make -j4
Scanning dependencies of target yade-all
[  5%] [ 11%] Building CXX object CMakeFiles/yade-all.dir/core.0.cpp.o
[ 17%] [ 23%] Building CXX object CMakeFiles/yade-all.dir/pkg.1.cpp.o
Building CXX object CMakeFiles/yade-all.dir/pkg.0.cpp.o
Building CXX object CMakeFiles/yade-all.dir/lib.0.cpp.o
In file included from
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/backward/strstream:47,
                 from //usr/include/vtk/vtkIOStream.h:112,
                 from //usr/include/vtk/vtkSystemIncludes.h:40,
                 from //usr/include/vtk/vtkIndent.h:24,
                 from //usr/include/vtk/vtkObjectBase.h:43,
                 from //usr/include/vtk/vtkObject.h:41,
                 from //usr/include/vtk/vtkCellArray.h:35,
                 from
/home/mape526/YADE-git/trunk/pkg/dem/VTKRecorder.cpp:7,
                 from /home/mape526/YADE-git/build/pkg.0.cpp:12:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/backward/backward_warning.h:28:2:
warning: #warning This file includes at least one deprecated or antiquated
header which may be removed without further notice at a future date. Please
use a non-deprecated interface with equivalent functionality instead. For a
listing of replacement headers and interfaces, consult the file
backward_warning.h. To disable this warning use -Wno-deprecated.
[ 29%] Building CXX object CMakeFiles/yade-all.dir/pyModules.0.cpp.o
In file included from
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/backward/strstream:47,
                 from //usr/include/vtk/vtkIOStream.h:112,
                 from //usr/include/vtk/vtkSystemIncludes.h:40,
                 from //usr/include/vtk/vtkIndent.h:24,
                 from //usr/include/vtk/vtkObjectBase.h:43,
                 from //usr/include/vtk/vtkObject.h:41,
                 from //usr/include/vtk/vtkLocator.h:53,
                 from //usr/include/vtk/vtkAbstractPointLocator.h:27,
                 from //usr/include/vtk/vtkPointLocator.h:39,
                 from /home/mape526/YADE-git/trunk/py/_eudoxos.cpp:13,
                 from /home/mape526/YADE-git/build/pyModules.0.cpp:2:
/usr/lib/gcc/x86_64-redhat-linux/4.4.6/../../../../include/c++/4.4.6/backward/backward_warning.h:28:2:
warning: #warning This file includes at least one deprecated or antiquated
header which may be removed without further notice at a future date. Please
use a non-deprecated interface with equivalent functionality instead. For a
listing of replacement headers and interfaces, consult the file
backward_warning.h. To disable this warning use -Wno-deprecated.
/home/mape526/YADE-git/build/pyModules.0.cpp:3:50: error:
/home/mape526/YADE-git/trunk/py/log.cpp: No such file or directory
In file included from /home/mape526/YADE-git/build/pyModules.0.cpp:4:
/home/mape526/YADE-git/trunk/py/_utils.cpp:16:32: error:
numpy/ndarrayobject.h: No such file or directory
In file included from /home/mape526/YADE-git/build/pyModules.0.cpp:4:
/home/mape526/YADE-git/trunk/py/_utils.cpp: In function ‘bool
pointInsidePolygon(boost::python::tuple, boost::python::api::object)’:
/home/mape526/YADE-git/trunk/py/_utils.cpp:293: error: ‘PyArrayObject’ was
not declared in this scope
/home/mape526/YADE-git/trunk/py/_utils.cpp:293: error: ‘vert’ was not
declared in this scope
/home/mape526/YADE-git/trunk/py/_utils.cpp:293: error: expected
primary-expression before ‘)’ token
/home/mape526/YADE-git/trunk/py/_utils.cpp:293: error: expected ‘;’ before
‘vertices’
/home/mape526/YADE-git/trunk/py/_utils.cpp:294: error: ‘PyArray_DOUBLE’ was
not declared in this scope
/home/mape526/YADE-git/trunk/py/_utils.cpp:294: error: ‘PyArray_As2D’ was
not declared in this scope
/home/mape526/YADE-git/trunk/py/_utils.cpp: In function ‘void
init_module__utils()’:
/home/mape526/YADE-git/trunk/py/_utils.cpp:449: error: ‘import_array’ was
not declared in this scope
make[2]: *** [CMakeFiles/yade-all.dir/pyModules.0.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
^Cmake[2]: *** [CMakeFiles/yade-all.dir/pkg.0.cpp.o] Interrupt
make[1]: *** [CMakeFiles/yade-all.dir/all] Interrupt
make: *** [all] Interrupt

There is a problem with py/log.cpp which has been removed recently.

Furthermore, there seems to be an issue with numpy on our server (Red Hat).
In the scons version the problem has been solved with:
CPPPATH =
'/usr/include/vtk-5.0:/usr/include/vtk-5.2:/usr/include/vtk-5.4:/usr/include/vtk-5.6:/usr/include/vtk
-5.8:/usr/include/vtk:/usr/lib64/python2.6/site-packages/numpy/core/include:/usr/local/boost-1.46/include:/usr/
include/eigen2'

However, when adding

INCLUDE_DIRECTORIES("/usr/lib64/python2.6/site-packages/numpy/core/include")

to the cmake list nothing changes.

Any ideas?

Thanks
Anna

2012/6/8 Anton Gladky <gladky.anton@xxxxxxxxx>

> Dear users and developers,
>
> if you looked after my last commits, you have probably payed attention
> on changes in cmake-build. Cmake is a cross-platform, open-source system
> widely used today for many open-source projects to handle build-process.
>
> I am going to replace scons build-system, which is used in yade last
> several years. The reason is to escape complicated and "hacked"
> style of SConstruct-files in the project, which is hard to maintain.
>
> CMake should prolong the life of yade without any changes from the
> "build-side".
> Also we will hopefully get better portability of the program on
> different platforms.
>
> I want to ask everybody to test precisely the new build-system before we
> drop scons-files.
>
> Cmake is working differently, other than scons. It builds its files
> not in the same
> folder, where is the source. So, you have to create a separate
> "build-place"
> for you. Like in scons, you should point the place, where the files will be
> installed.
>
> 1. Create a build place (a folder)
>
> 2. go into that folder
>
> 3. run in command line:
>    cmake -DINSTALL_PREFIX=/path/to/installfolder /path/to/sources
>
> 4. Read, what is the written at the end of configure-process. You will
> see there,
>    which yade-modules are enabled and disabled.
>    If you want to enable/disable some modules, you should add to cmake
> command
>    line the following variables:
>    -DENABLE_GUI=ON    (or OFF)
>    -DENABLE_VTK=ON    (or OFF)
>    -DENABLE_OPENMP=ON    (or OFF)
>    -DENABLE_GTS=ON    (or OFF)
>    -DENABLE_GL2PS=ON    (or OFF)
>
>     All modules are ON by default. But if you do not have necessary
> packages in your
>     system, some of them will be disabled by CMAKE. You will get a
> notice about that.
>
>     Other parameters:
>     -DDEBUG=ON (OFF by default)   create debug-build
>     -DSUFFIX=MYVERSION  (by default - git revision)  create suffix
>     -DNOSUFFIX=ON (OFF by default)  do not create suffix for yade
> (like yade-git-1234565)
>     -DCMAKE_VERBOSE_MAKEFILE=ON (OFF by default)  show an additional
> info during build
>
> 5. Type in command line
>    make
>
>    And wait, when the process is finished. Alternatively you can
> indicate how much cores,
>    you want to use. For example:
>    make -j4
>
>    Please, pay attention, yade requires approximately 2GB RAM/core.
>
> 6. Install:
>    make install
>
> For GUI-option on Debian/Ubuntu-systems, please install 2 additional
> packages:
> sudo apt-get install libxmu-dev libxi-dev
>
> I have disabled chunkSize option for the moment. Yade has always
> problems with a huge consumption
> of RAM (especially on build-servers) during the compilation.
>
> I would like to ask everybody to test it and give a feedback.
>
> Cheers.
>
> Anton
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-users
> Post to     : yade-users@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~yade-users
> More help   : https://help.launchpad.net/ListHelp
>

References