cvs structure.

Hi

I spent the whole weekend trying to get a decent build out of cascade with no success so far. Here are my findings.

kudos for the person who decided to put all the specific stuff under the 6 different groups. I downloaded the whole code from cvs in a different directory for every package.But that was all th e luck i had so far.

All *.dsw and *.dsp have no idea of what is called include path settings. You basically have to set them up yourself. Mind you , for every project while each project has tons of include path settings. I hope i can be of any help as this is my domain. I know you have to include adm/package for evey package you are building but i really do not think it is efficient to have 15 include path settings. Beside inc has all the headers while adm split all over the ixx files. So it is not consistent anyways.

The inc and adm dir do not come when you download FoundationClasses for example. You might have your personal opinions on this but please please consider having all the necessary files under a single package right from cvs. I do not want to waste my time downloading 13000 header files if i only need 10 of them. Don't even talk about browsing the code thru the web also.

Every package includes it's headers based on the assumption that all headers are located in one directory. I have dealt with huge libraries in the past & i have never seen this shemas before. Please i am begging you consider having only one include path (not directory) for all the projects. For example the AIX.ccc file will change from #include

#include #include

to #include

#include #include

This way all you have to specify to the compiler is a main include _path_ which in this case will be ../src Since all the files are realtive to the src directory you can always move the projects around as long as you make sure you are refenrencing the same include _path_

Also wok do work on NT (from the docs). Any way i can help ?

Please do not take this as a whining exercise. I have very great hopes in this project. But i think that in the long run people are going to be discouraged if they have to face such difficulties to just get started.

Once again .. kudos for the great work.

s-sipfamily's picture

This web thing sucks !! Here was the sample include include include

to

include include include

yan's picture

> Hi

> I spent the whole weekend trying to get a
> decent build out of cascade with no success
> so far. Here are my findings.

> kudos for the person who decided to put all
> the specific stuff under the 6 different
> groups. I downloaded the whole code from cvs
> in a different directory for every
> package.But that was all th e luck i had so
> far.

1.From the documentation about cvs , you can download a module in a other directory than it's primary definition. (See option -d of checkout command ) 2. The module definition is can be displayed (before) downloading with the option -c of checkout. Using it you can see that the modules definition just update the src directory. 3. The cvs module definitions actually matchs the splitting of OpenCascade into modules which a) organizes C++ dependency levels. For example ModelingData has references to FoundationClasses but not to ModelingAlgorithm. Etc..

b) gathers functional properties. (Graphics, Topology, etc..)

This match between cvs "modules" and OCC "modules" is proposed has a shorthand for people who want to update their distribution PROVIDED thay want only the source files.

> All *.dsw and *.dsp have no idea of what is
> called include path settings. You basically
> have to set them up yourself. Mind you , for
> every project while each project has tons of
> include path settings. I hope i can be of
> any help as this is my domain. I know you
> have to include adm/package for evey package
> you are building but i really do not think
> it is efficient to have 15 include path
> settings. Beside inc has all the headers
> while adm split all over the ixx files. So
> it is not consistent anyways.

The .dsp and .dsw file assume that you are building OCC from a directory structure like this (X is root directory where you downloaded. See also below to easily create such a one): X | --adm

|--WindowsNT --src

|--U1

|--U2

.. --drv --inc

> The inc and adm dir do not come when you
> download FoundationClasses for example. You
> might have your personal opinions on this
> but please please consider having all the
> necessary files under a single package right
> from cvs. I do not want to waste my time
> downloading 13000 header files if i only
> need 10 of them. Don't even talk about
> browsing the code thru the web also.

The command : cvs checkout -c tells you what is the content of a module in term of cvs structure.

> Every package includes it's headers based on
> the assumption that all headers are located
> in one directory. I have dealt with huge
> libraries in the past & i have never
> seen this shemas before. Please i am begging
> you consider having only one include path
> (not directory) for all the projects. For
> example the AIX.ccc file will change from
> #include #include #include to #include
> #include #include This way all you
> have to specify to the compiler is a main
> include _path_ which in this case will be
> ../src Since all the files are realtive to
> the src directory you can always move the
> projects around as long as you make sure you
> are refenrencing the same include _path_

> Also wok do work on NT (from the docs). Any
> way i can help ?

> Please do not take this as a whining
> exercise. I have very great hopes in this
> project. But i think that in the long run
> people are going to be discouraged if they
> have to face such difficulties to just get
> started.

> Once again .. kudos for the great work.

To download the whole OpenCase modules:

> mkdir X
> cd X
> cvs -d:pserver:anonymous@cvs.matra-dtv.fr:/www/cvs checkout src adm inc drv

To rebuild every thing on your platform: If you are on a Unix/Linux platform:

> setenv CASROOT `pwd`
> cd adm
> csh -f OCC.COMP

To rebuild every thing on WindowsNT. Use VIsual to rebuild ( in this order ) the projects: FoundationClasses.dsw ModelingData.dsw ModelingAlgorithms.dsw Visualization.dsw Draw.dsw DataExchange.dsw STLVRMLConvertor.dsw DrawDE.dsw Viewer.dsw ApplicationFramework.dsw

s-sipfamily's picture

Sorry but u r not really answering my questions here.

Here is 1000$ question. My main show stopper was the way files r included in the source. Can you have include AIS/AIS_xxxxx instead of include AIS_xxxxx as it is right now. ?

s-sipfamily's picture

Please please ... I would not like to turn this into politics. The cascade code is provided as open source and as such we have the right to question , and provide provide our input. It is very hypocritical of u to in one hand ask for contribution and from the other completely ignore developpers input. I am here to ask why keep one single include directory for all source code ? That is what it comes down to. I can contirbute myself to the changes but as u know i do not have write acess to cvs.

I will be very glad if somone else comments on this from the developpers community. Give your input in weither we should ave one include directory with more than 13000 files.

As i said before i have seen large libraries before and i _never_ came across such a source code structure.

This is not to put down anybody effort at all. I am just here to give my $.002 opinion on how we should do things.

regards. sipman.

yan's picture

We are very aware that the today structure is not the best one. Your ideas are welcome for improving the CVS structure. Note however that we have to take in account the following points : 1. Ensure the compatibily of the source files already delivered to the Open source community. 2. To achieve such a project (say ais.hxx => src/ais.hxx) there is a lot of source code to be modified. Note anyway that the operations you have to perform for downloading all OpenCascade stuff is not so heavy ?

To get write access to the OpenCascade repository please see the conditions at http://www.opencascade.org/community/core.html