DiscussionsIssue archiveOCCT:Configuration

Archived issue #0025114

CMake-based build tools for OCCT 7.0

Open CASCADEOCCT:Configurationclosed98 public notes

Search issues

Description

In OCCT 6.x, CMake scripts are generated by WOK (except the root one).
For OCCT 7.0 we need to have these scripts edited manually and stored in OCCT sources.

Public activity

98 archived notes

Participants are labeled by their role within this record.

01Commenter 2
Branch [archived branch] has been created by Commenter 3.

[revision removed]
02Commenter 3
Branch CR25114 is ready for review.
03Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
04Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
05Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
06Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
07Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


      from 4582e67 0025114: CMake-based build tools for OCCT 7.0
       new 74bec74 Added opportunity to run tests and generate documentation from cmake.


Detailed log of new commits:

[revision removed]
Author: Commenter 3
Date: Tue Aug 5 12:17:01 2014 +0400

    Added opportunity to run tests and generate documentation from cmake.

08Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


      from 74bec74 Added opportunity to run tests and generate documentation from cmake.
       new fd02cad Generation of *.yacc and *.lex files and copying of doc directory were added.


Detailed log of new commits:

[revision removed]
Author: ski
Date: Mon Aug 11 11:04:31 2014 +0400

    Generation of *.yacc and *.lex files and copying of doc directory were added.

09Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


      from fd02cad Generation of *.yacc and *.lex files and copying of doc directory were added.
       new 49c8282 Some remarks were applyed: - Unused EXTERNLIB files were removed. - GenerateDocumentation project is independent from anything now. - All modules are placed to the folder "Modules" in solution explorer in msvc. - Support of OpenSl was removed. - All *.cmake files were moved from adm/templates to adm/cmake directory. - Files template.cmake_dinf and template.cmake_modules were removed. - Wrong using of "$<CONFIGURATION>" variable were removed.


Detailed log of new commits:

[revision removed]
Author: ski
Date: Thu Aug 14 10:58:55 2014 +0400

    Some remarks were applyed:
    - Unused EXTERNLIB files were removed.
    - GenerateDocumentation project is independent from anything now.
    - All modules are placed to the folder "Modules" in solution explorer in msvc.
    - Support of OpenSl was removed.
    - All *.cmake files were moved from adm/templates to adm/cmake directory.
    - Files template.cmake_dinf and template.cmake_modules were removed.
    - Wrong using of "$<CONFIGURATION>" variable were removed.

10Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


      from 49c8282 Some remarks were applyed: - Unused EXTERNLIB files were removed. - GenerateDocumentation project is independent from anything now. - All modules are placed to the folder "Modules" in solution explorer in msvc. - Support of OpenSl was removed. - All *.cmake files were moved from adm/templates to adm/cmake directory. - Files template.cmake_dinf and template.cmake_modules were removed. - Wrong using of "$<CONFIGURATION>" variable were removed.
       new d745051 Using native Bison and Flex packages from Cmake was added.


Detailed log of new commits:

[revision removed]
Author: ski
Date: Thu Aug 14 15:13:01 2014 +0400

    Using native Bison and Flex packages from Cmake was added.

11Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


      from d745051 Using native Bison and Flex packages from Cmake was added.
       new 86a26fd List of OCC Modules with dependent toolkits is stored in file adm/MODULES now.


Detailed log of new commits:

[revision removed]
Author: ski
Date: Thu Aug 14 17:22:33 2014 +0400

    List of OCC Modules with dependent toolkits is stored in file adm/MODULES now.

12Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


      from 86a26fd List of OCC Modules with dependent toolkits is stored in file adm/MODULES now.
       new 41e4bcc List of OCC Resources is stored in file adm/RESOURCES now.


Detailed log of new commits:

[revision removed]
Author: ski
Date: Thu Aug 14 18:58:34 2014 +0400

    List of OCC Resources is stored in file adm/RESOURCES now.
    
    Some cosmetic changes were done.
    List of source files is created from src/package/FILES file.

13Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


      from 41e4bcc List of OCC Resources is stored in file adm/RESOURCES now.
       new db6c795 Modifications for building OCCT with cmake on Linux (search and copy libraries)


Detailed log of new commits:

[revision removed]
Author: Commenter 3
Date: Fri Aug 15 14:55:24 2014 +0400

    Modifications for building OCCT with cmake on Linux (search and copy libraries)

14Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
15Commenter 2
Branch [archived branch] has been created by Commenter 3.

[revision removed]


This branch includes the following new commits:

       new 50fd6f1 0025114: CMake-based build tools for OCCT 7.0


Detailed log of new commits:

[revision removed]
Author: Commenter 3
Date: Tue Aug 19 12:57:43 2014 +0400

    0025114: CMake-based build tools for OCCT 7.0
    
    Rebased CR25114 to CR0_noCDL_3
16Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
17Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Thu Aug 21 12:01:36 2014 +0400

    Modified standard mfc samples to compile its by cmake (exception caused by deleting package MgtBRep).

18Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Thu Aug 21 19:10:08 2014 +0400

    0025141: CMake / MinGW: link recipe fails due to long command
    
    required configuration options added

19Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
20Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Mon Sep 1 16:54:34 2014 +0400

    Generation of documentation was moved from .tcl scripts to .cmake file.

21Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
22Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Wed Sep 3 12:00:01 2014 +0400

    Generation of documentation in chm and pdf formats is available now.

23Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
24Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
25Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
26Commenter 26
apn,

cmake building procedure was cut and integrated into master. If you would like to rebase CR25114 occt branch onto master, i can help with it.
27Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Tue Oct 7 12:39:50 2014 +0400

    OCCT mfc samples were corrected

28Commenter 2
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Wed Oct 15 10:05:33 2014 +0400

    *occt_upgrade_nocdl* command from branch CR24816 was applied.

Author: ski
Date: Tue Oct 14 17:10:30 2014 +0400

    Package SortTools and its derived classes are removed; STL sort algorithms are used instead.
    
    Comparator objects are mostly reimplemented as local classes.

Author: ski
Date: Tue Oct 14 16:25:04 2014 +0400

    Forward declaration of TCollection instances as classes are replaced by inclusion of corresponding header.
    
    Cyclic dependencies between declaration of collection class and its item are resolved by forward declaring a class in collection header.

Author: ski
Date: Tue Oct 14 16:04:11 2014 +0400

    Automatic upgrade of code by command "occt_upgrade -tcollection" from branch CR24816.

Author: ski
Date: Tue Oct 14 16:00:47 2014 +0400

    Remaining missing includes added manually.

Author: ski
Date: Tue Oct 14 15:52:28 2014 +0400

    Automatic upgrade of code by command "occt_upgrade -rtti" from branch CR24816.

Author: ski
Date: Tue Oct 14 15:49:57 2014 +0400

    Automatic upgrade of code by command "occt_upgrade -rtti -compat" from branch CR24816.

Author: ski
Date: Tue Oct 14 15:44:38 2014 +0400

    Redesign OCCT legacy type system
    
    Global static functions instantiating RTTI descriptors for class types (used though STANDARD_TYPE macro) are replaced by template static method Instance() of the class Standard_Type.
    Implementation of RTTI is revised accordingly (global registry of type descriptors added to ensure single instance of each type descriptor shared by all dynamic libraries).
    Obsolete methods of Standard_Type class (IsInstance(), Ancestors()) are removed; new method Parent() is added returning type descriptor of the parent class.
    Class Standard_AncestorIterator is removed; this iteration can be easily done by recursive calls to Standard_Type::Parent().
    
    Definition of macro STANDARD_TYPE() moved from Standard_Macro.hxx to Standard_DefineHandle.hxx.
    Inclusion of Standard_Type.hxx and the class header is now necessary for use of method DownCast() and function STANDARD_TYPE() for the class.
    In general, Standard_Type.hxx should be included now instead of Standard_DefineHandle.hxx in places where these macros are used.
    
    Macro DEFINE_STANDARD_EXCEPTION changed to define all methods inline; macro IMPLEMENT_STANDARD_EXCEPTION becomes obsolete.
    Macros IMPLEMENT_DOWNCAST, IMPLEMENT_STANDARD_* become deprecated, they are still defined (as empty) for compatibility.
    
    Implementation of Handle classes became fully inline.
    Method get() is added in Handle classes returning pointer to the contained object.
    
    RTTI removed from NCollection_Handle class.
    
    Standard_Persistent is made empty descendant of Standard_Transient, instead of implementing its own hierarchy with reference counting.
    Note that on CDL level it is still defined as inheriting Standard_Storable.
    
    Unused enumerations Standard_InternalType, Standard_WayOfLife, Standard_KindOfType are removed.
    Global function HashCode() accepting Handle(Standard_Transient) is removed; HashCode() for Standard_CString with length should be used instead.

Author: ski
Date: Tue Oct 14 14:42:38 2014 +0400

    Use new CDL features to import Standard_Type class and handle classes in Graphic3d

Author: ski
Date: Tue Oct 14 14:17:09 2014 +0400

    - delete "Storable" class from "Standard" package and all using of it

Author: ski
Date: Tue Oct 14 13:52:46 2014 +0400

    0025114: CMake-based build tools for OCCT 7.0
    
    Brute force removal of standard persistence (ShapeSchema, StdLSchema, StdSchema, XCAFSchema) and all persistence-specific toolkits
29Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
30Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Wed Oct 15 16:04:53 2014 +0400

    Modified folder adm/cmake and adm/templates, UDLIST, main CMakeLists.txt.
    Added CMakeLists.txt, deleted EXTERNLIB from packages.

31Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Wed Oct 15 16:33:34 2014 +0400

    Automatic upgrade of code by command "occt_upgrade -rtti" from branch CR24816 part 2

32Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Wed Oct 15 18:08:26 2014 +0400

    Add support of VTK

33Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Thu Oct 16 15:34:32 2014 +0400

    Correct compile errors.

34Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Fri Oct 17 17:38:02 2014 +0400

    Modified libraries and includes search of VTK product

35Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Mon Oct 20 14:03:48 2014 +0400

    Modified search of dll for VTK

36Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
37Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Tue Oct 21 15:24:46 2014 +0400

    Modified install procedure for VTK.

38Commenter 2
Branch [archived branch] has been created by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Thu Nov 13 18:43:16 2014 +0300

    Fixed compilation errors

Author: Commenter 3
Date: Thu Nov 13 15:29:01 2014 +0300

    Cosmetic changes for VTK

Author: Commenter 3
Date: Thu Nov 13 15:18:33 2014 +0300

    Correct compile errors.

Author: Commenter 3
Date: Thu Nov 13 14:57:58 2014 +0300

    Modified folder adm/cmake and adm/templates, UDLIST, main CMakeLists.txt.
    Added CMakeLists.txt, deleted EXTERNLIB from packages.

Author: Commenter 3
Date: Thu Nov 13 14:39:02 2014 +0300

    Automatic upgrade of code by command "occt_upgrade -rtti" from branch CR24816 for new files after -nocdl execution.

Author: Commenter 3
Date: Thu Nov 13 14:01:45 2014 +0300

    Automatic upgrade of code by command "occt_upgrade -nocdl" from branch CR24816.

Author: Commenter 3
Date: Wed Nov 12 14:29:37 2014 +0300

    Package SortTools and its derived classes are removed; STL sort algorithms are used instead.
    Comparator objects are mostly reimplemented as local classes.

Author: Commenter 3
Date: Wed Nov 12 13:46:35 2014 +0300

    Forward declaration of TCollection instances as classes are replaced by inclusion of corresponding header.
    Cyclic dependencies between declaration of collection class and its item are resolved by forward declaring a class in collection header.

Author: Commenter 3
Date: Wed Nov 12 13:01:14 2014 +0300

    Automatic upgrade of code by command "occt_upgrade -tcollection" from branch CR24816.

Author: Commenter 3
Date: Wed Nov 12 12:57:43 2014 +0300

    Remaining missing includes added manually

Author: Commenter 3
Date: Wed Nov 12 12:50:40 2014 +0300

    Automatic upgrade of code by command "occt_upgrade -rtti -compat" from branch CR24816.
    Automatic upgrade of code by command "occt_upgrade -rtti" from branch CR24816.

Author: Commenter 3
Date: Wed Nov 12 12:41:02 2014 +0300

    Redesign OCCT legacy type system
    
    Global static functions instantiating RTTI descriptors for class types (used though STANDARD_TYPE macro) are replaced by template static method Instance() of the class Standard_Type.
    Implementation of RTTI is revised accordingly (global registry of type descriptors added to ensure single instance of each type descriptor shared by all dynamic libraries).
    Obsolete methods of Standard_Type class (IsInstance(), Ancestors()) are removed; new method Parent() is added returning type descriptor of the parent class.
    Class Standard_AncestorIterator is removed; this iteration can be easily done by recursive calls to Standard_Type::Parent().
    
    Definition of macro STANDARD_TYPE() moved from Standard_Macro.hxx to Standard_DefineHandle.hxx.
    Inclusion of Standard_Type.hxx and the class header is now necessary for use of method DownCast() and function STANDARD_TYPE() for the class.
    In general, Standard_Type.hxx should be included now instead of Standard_DefineHandle.hxx in places where these macros are used.
    
    Macro DEFINE_STANDARD_EXCEPTION changed to define all methods inline; macro IMPLEMENT_STANDARD_EXCEPTION becomes obsolete.
    Macros IMPLEMENT_DOWNCAST, IMPLEMENT_STANDARD_* become deprecated, they are still defined (as empty) for compatibility.
    
    Implementation of Handle classes became fully inline.
    Method get() is added in Handle classes returning pointer to the contained object.
    
    RTTI removed from NCollection_Handle class.
    
    Standard_Persistent is made empty descendant of Standard_Transient, instead of implementing its own hierarchy with reference counting.
    Note that on CDL level it is still defined as inheriting Standard_Storable.
    
    Unused enumerations Standard_InternalType, Standard_WayOfLife, Standard_KindOfType are removed.
    Global function HashCode() accepting Handle(Standard_Transient) is removed; HashCode() for Standard_CString with length should be used instead.

Author: Commenter 3
Date: Wed Nov 12 11:33:03 2014 +0300

    Use new CDL features to import Standard_Type class and handle classes in Graphic3d

Author: Commenter 3
Date: Tue Nov 11 16:27:36 2014 +0300

    Delete "Storable" class from "Standard" package and all using of it

Author: Commenter 3
Date: Tue Nov 11 15:53:32 2014 +0300

    0025114: CMake-based build tools for OCCT 7.0
    
    Remove standard persistence (ShapeSchema, StdLSchema, StdSchema, XCAFSchema) and all persistence-specific toolkits.
39Commenter 2
Branch [archived branch] has been created by Commenter 3.

[revision removed]


No new revisions were added by this update.
40Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
41Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Fri Nov 14 15:56:37 2014 +0300

    Added installation of zlib1.dll for TCL

42Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Wed Nov 19 13:43:33 2014 +0300

    Install procedure in Debug configuration is done to correct directories.

43Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
44Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Wed Dec 10 18:23:44 2014 +0300

    Install procedure is done to common directory INSTALL_DIR/OS_WITH_BIT/COMPILER

45Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Thu Dec 25 12:10:47 2014 +0300

    Compilation on linux fixed.

46Commenter 2
Branch [archived branch] has been created by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Fri Dec 26 15:16:00 2014 +0300

    Fixed compile errors.

Author: ski
Date: Fri Dec 26 12:14:59 2014 +0300

    Files were changed for new cmake procedure.

Author: ski
Date: Fri Dec 26 11:56:01 2014 +0300

    Automatic upgrade of code by command "occt_upgrade -nocdl"

Author: Author
Date: Mon Jun 2 09:55:19 2014 +0400

    0024859: Replace SortTools by STL equivalents
    
    Package SortTools and its derived classes are removed; STL sort algorithms are used instead.
    Comparator objects are mostly reimplemented as local classes.

Author: Author
Date: Mon Jun 2 10:08:25 2014 +0400

    0024750: Replace instantiations of TCollection generic classes by NCollection templates -- manual changes
    
    Forward declaration of TCollection instances as classes are replaced by inclusion of corresponding header.
    Cyclic dependencies between declaration of collection class and its item are resolved by forward declaring a class in collection header.

Author: ski
Date: Fri Dec 26 11:05:45 2014 +0300

    Automatic upgrade of code by command "occt_upgrade -tcollection"

Author: Author
Date: Thu Aug 14 17:20:14 2014 +0400

    0024947: Redesign OCCT legacy type system -- final corrections
    
    Remaining missing includes added manually

Author: ski
Date: Fri Dec 26 10:31:48 2014 +0300

    Automatic upgrade of code by command "occt_upgrade -rtti"

Author: ski
Date: Fri Dec 26 10:26:25 2014 +0300

    Automatic upgrade of code by command "occt_upgrade -rtti -compat"

Author: Author
Date: Wed May 28 09:19:45 2014 +0400

    0024947: Redesign OCCT legacy type system
    
    Global static functions instantiating RTTI descriptors for class types (used though STANDARD_TYPE macro) are replaced by template static method Instance() of the class Standard_Type.
    Implementation of RTTI is revised accordingly (global registry of type descriptors added to ensure single instance of each type descriptor shared by all dynamic libraries).
    Obsolete methods of Standard_Type class (IsInstance(), Ancestors()) are removed; new method Parent() is added returning type descriptor of the parent class.
    Class Standard_AncestorIterator is removed; this iteration can be easily done by recursive calls to Standard_Type::Parent().
    
    Definition of macro STANDARD_TYPE() moved from Standard_Macro.hxx to Standard_DefineHandle.hxx.
    Inclusion of Standard_Type.hxx and the class header is now necessary for use of method DownCast() and function STANDARD_TYPE() for the class.
    In general, Standard_Type.hxx should be included now instead of Standard_DefineHandle.hxx in places where these macros are used.
    
    Macro DEFINE_STANDARD_EXCEPTION changed to define all methods inline; macro IMPLEMENT_STANDARD_EXCEPTION becomes obsolete.
    Macros IMPLEMENT_DOWNCAST, IMPLEMENT_STANDARD_* become deprecated, they are still defined (as empty) for compatibility.
    
    Implementation of Handle classes became fully inline.
    Method get() is added in Handle classes returning pointer to the contained object.
    
    RTTI removed from NCollection_Handle class.
    
    Standard_Persistent is made empty descendant of Standard_Transient, instead of implementing its own hierarchy with reference counting.
    Note that on CDL level it is still defined as inheriting Standard_Storable.
    
    Unused enumerations Standard_InternalType, Standard_WayOfLife, Standard_KindOfType are removed.
    Global function HashCode() accepting Handle(Standard_Transient) is removed; HashCode() for Standard_CString with length should be used instead.

Author: ski
Date: Thu Dec 25 18:25:55 2014 +0300

    Fixed compile error.

Author: kgv
Date: Fri Mar 28 10:56:16 2014 +0400

    0024769: Extend CDL syntax with "imported transient class" keyword
    
    Use new CDL features to import Standard_Type class and handle classes in Graphic3d

Author: dln
Date: Fri Aug 15 10:03:58 2014 +0400

    0024927: Getting rid of "Persistent" functionality -- Storable
    
    - delete "Storable" class from "Standard" package and all using of it

Author: Author
Date: Wed Jun 4 12:12:21 2014 +0400

    0024927: Getting rid of "Persistent" functionality -- toolkits
    
    Brute force removal of standard persistence (ShapeSchema, StdLSchema, StdSchema, XCAFSchema) and all persistence-specific toolkits
47Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
48Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
49Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
50Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
51Commenter 2
Branch [archived branch] has been updated by Commenter 3.

[revision removed]


Detailed log of new commits:

Author: Commenter 3
Date: Mon Dec 29 16:05:13 2014 +0300

    Modified standard mfc samples to compile its by cmake

52Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
53Commenter 2
Branch [archived branch] has been updated forcibly by Commenter 3.

[revision removed]
54Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ssv
Date: Thu Jan 15 16:05:22 2015 +0300

    DownCast() method of NCollection_Handle has been slightly changed to call constructor for Ptr* argument explicitly. Without this there is a compilation error on template instantiation

55Commenter 55
Let me share new bunch of problems with CMake. I think it is convenient to take care of them in this branch. All problems are also described in the attached Attachment 2 (PDF) document.

1. It is not possible to launch Draw from working build directory. For development
   needs it is inconvenient to re-install OCCT each time you want to launch
   Draw;

2. There is a problem with using single installation directory for both
   debug and release configurations. While binaries are packed correctly
   (into proper subdirectories), the environment scripts are overwritten
   after installation, so that only the last deployed configuration can be used.
   It is necessary to rework the environment scripts taking into account two
   constraints:

   a) custom.bat(sh) should become a place where user can set up default
      configuration. If no configuration arguments are passed (e.g. when
      launching Draw or IDE), the default values are implicitly used;
   b) env.bat(sh) should be kept the same for both debug and release configuration.
      Currently it differs because of default initializations;

   Example of environment scripts fitting these constraints is attached to the
   bug (Attachment 1 (ZIP)): directory "old" contains CMake-generated version which is
   not good; directory "new" contains the manually reworked version of scripts
   which seems to work well. It is necessary to review the proposed approach,
   automate it with CMake and make sure that it is adequately documented in
   the "Building with CMake" manual (check out the attached Attachment 2 (PDF)).

3. After installation in release mode, environment file with name custom_{IDE}_{arch}_.bat(sh)
   appears. The trailing underscore ("_") character in its name looks weird and is better
   to be removed;

4. GUI hints (tooltips) for CMake variables should be carefully revised. It is
   proposed to reuse descriptions for the attached Attachment 2 (PDF) document;

5. CMake variable TESTS_RUN looks weird. It is better to rename it, e.g. to
   TESTS_CREATE_PROJECT and update tooltip and documentation (Attachment 2 (PDF))
   correspondingly;

6. Once the tests are launched from IDE using START_TESTS project, a directory
   with name "TestResults" appears. This directory is different from the standard
   one which is used when non-regression tests are executed from Draw: "results"
   directory with temporary subdirectories. It is necessary to unify this behavior.
   I.e. if user builds START_TESTS project, the results should be completely
   identical to typing "testgrid" in Draw console;

7. It is necessary to check if BUILD_TOOLKITS functionality works at all. E.g.
   after typing TKFillet or even TKernel I obtained just empty MSVC solution;

8. It is necessary to check if BUILD_MFC_SAMPLES functionality works. I was
   not able to build the generated MSVC solution because of linkage errors in
   samples;

9. If user disables build for all modules except one, problems may arise. I tried
   to keep only Modeling Algorithms module unchecking all others. As a result
   MSVC solution contained only this module without its dependencies (no TKernel etc
   appeared in solution). Compilation was impossible: build errors occurred;

10. All DOC* variables should be removed from CMake. It was decided that configuration
    is a bad stage for generating documentation;

11. Overview documentation should be available from IDE via specific project
    (probably it is already done?).

12. Patching functionality (#24810) does not work.
56Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Fri Jan 23 16:22:00 2015 +0300

    environment scripts (custom.sh/bat) are NOT overwritten after installation.

57Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Fri Jan 23 16:24:51 2015 +0300

    CMAKE_MFC_FLAG removed from main CMakeLists.txt

58Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Fri Jan 23 17:19:38 2015 +0300

    correct including of used toolkit cmake-projects

59Commenter 59
dear apn and ski,

USED_TOOLKITS also contains CSF_ constants
60Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Fri Jan 23 18:26:55 2015 +0300

    code cleaned up

61Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Fri Jan 23 18:29:47 2015 +0300

    occt_getdoc.cmake renamed in occt_gendoc.cmake

62Commenter 62
dear ssv,
2,8,9, 12 problems are fixed and required to be tested
63Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Mon Jan 26 12:26:43 2015 +0300

    unset 3rdparty variables if it is not used

64Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Mon Jan 26 14:55:28 2015 +0300

    a toolkit dependencies is accumulated correctly

65Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
66Commenter 66
dear ski,

mfc samples include headers from <occt>/src directory (not <occt>/inc), e.g.
  #include <Standard/Standard_ShortReal.hxx>
not
  #include <Standard_ShortReal.hxx>

due to this behavior the samples are not compiled. could you please update the cmake projects of the samples to solve this issue?

the last changes implemented in CR25114_4 branch

steps:
1. get CR25114_4
2. generate vc10 project (all modules and samples included into it)
3. build the generated vc10 project
67Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Tue Jan 27 14:29:05 2015 +0300

    Added src directory to include directories for mfc samples projects

68Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Wed Jan 28 10:23:27 2015 +0300

    underscore removed from the release name of specific "custom" script
    
    was: custom_{IDE}_{arch}_.bat(sh)
    now: custom_{IDE}_{arch}.bat(sh)

69Commenter 69
dear ski,
#0025713 issue introduces occt static build (excluding DRAWEXE). Could you integrate/port this functionality into this issue (#0025114).

70Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Thu Jan 29 12:56:29 2015 +0300

    Explicit specification of library type (static/shared) removed
    
    DRAWEXE excluded when library build is static

71Commenter 71
Changes from issue #0025713 were ported into this issue (#0025114):
  - Explicit specification of library type (static/shared) removed
  - DRAWEXE excluded when library build is static

This issue (#0025114) was build is static and shared modes:
  - static - DRAWEXE project is excluded, *.dll and *.exe files (occt) are not created
  - shared - as usual build, draw.bat can be started, "testgrid" command works

72Commenter 72
dear ski,

building process of visual studio puts libraries into <build dir>\out\bin\Release . please change the place with <build dir>/<os_with_bitness>/<compiler>\bin . The tail of the path is the same as the tail of installation path of release version: <install dir>/<os_with_bitness>/<compiler>/bin

It'is required to offer the possibility for a developer to run occt project and draw without installation (ssv request above)

ssv said:
>1. It is not possible to launch Draw from working build
>directory. For development needs it is inconvenient
>to re-install OCCT each time you want to launch Draw;
73Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Tue Feb 10 17:27:22 2015 +0300

    Temporary directory to store binaries and libraries during build process was changed.

74Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Tue Feb 10 18:55:18 2015 +0300

    var names cleaned up

75Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Wed Feb 11 16:07:06 2015 +0300

    Added possibility to start draw.bat/sh from temporary build directory.

76Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
77Commenter 77
It is possible to launch Draw from working build directory now.
78Commenter 78
dear ski,

all works great. could you please do some extra changes:

1. copy samples.bat also if BUILD_MFC_SAMPLES is checked

2. if, for example, INSTALL_FREETYPE checked, custom_{compiler}_{bitness}.bat will contain empty FREETYPE_DIR variable.
This behavior is correct for install folder but in build folder FREETYPE_DIR variable should not be empty.
For example, additional custom_{compiler}_{bitnes}.build.bat may be created and used by main custom.bat

3. the OCCT resources may be used from the root of OCCT, without copping they into build folder.
In this case, env.bat should be fixed:
  a. set CASROOT to real the root of OCCT
  b. correct PATH var: set "PATH=<CMAKE_BUILD_DIR>/%BIN_TAIL%;%PATH%"

may be i could miss something in the scripts logic
79Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Mon Feb 16 12:31:21 2015 +0300

    Copy samples.bat also if BUILD_MFC_SAMPLES is checked

80Commenter 2
Branch [archived branch] has been updated forcibly by Participant.

[revision removed]
81Commenter 81
It is possible to launch Draw from working build directory.
All necessary files (bat/sh) are copied to working build directory.

82Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Thu Jun 11 14:37:14 2015 +0300

    Using installed 3rdparty libraries

83Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Mon Jun 15 14:25:50 2015 +0300

    Corrected search procedure for tbb libraries on Linux

84Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ski
Date: Tue Jun 16 09:41:22 2015 +0300

    Added possibility to install samples sources.

85Commenter 2
Branch [archived branch] has been created by Author.

[revision removed]


Detailed log of new commits:

Author: Author
Date: Sun Mar 15 19:50:11 2015 +0300

    Correct path to includes in CMake scripts
86Commenter 86
I have tried current version (branch CR0-OCCT7-2015) and experienced several problems:

1. I run on Win 74 64-bit and have 64-bit TclTk installed in d:/DevTools/Tcltk (this Tcl is in PATH); 32-bit version is unpacked in folder d:/abv/occt/3rdparty which I use for other 3rdparty libs required for OCCT. Until I specify PRODUCT_PATH for CMake, it finds 64-bit TclTk correctly, but as soon as I specify it, it takes 32-bit Tcltk, even for 64-bit build. Can this be corrected?

2. Running of DRAW from MSVC doe not work (paths are not set)

3. draw.bat does not start: no paths to FreeImage

4. Install does not work:

1> CMake Error at cmake_install.cmake:54 (file):
1> file INSTALL cannot find "D:/DevTools/TclTk85/bin/zlib1.dll".

(At that point I disabled install of Tcl to continue)

5. Install produces message "up-to-date" for every file (header, test, etc.), which is annoying. Can this be suppressed (optimally we can use VS parameter indicating verbosity for builds)?

6. When DRAW is launched, it produces error message:

tkLoop: error in Tk initialization. Tcl reported: invalid command name "tcl_find
Library"

and some features are missing (no command completion, command testgrid fails saying "invalid command name "clock"", etc.)

87Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Tue Jun 30 17:54:32 2015 +0300

    collect all OCCT header files in <binary dir>/inc during cmake configuration process

88Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Tue Jun 30 18:50:02 2015 +0300

    OCCT header files copied just to inc directory of an installation folder. (header files grouping removed)

89Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Wed Jul 1 11:35:50 2015 +0300

    tcl samples are installed to correct place in install folder

90Commenter 2
Branch [archived branch] has been updated by Participant.

[revision removed]


Detailed log of new commits:

Author: ibs
Date: Wed Jul 1 12:30:11 2015 +0300

    tcl installation procedure installs all dlls found in tcl bin folder (for win)
    
    this approach takes into account installing of zlib library that may be located in tcl bin folder

91Commenter 91
CMake 3.2.3 gives the following warnings on version in branch CR0-IR-OCCT7-alpha2:

****

Info: Collecting all OCCT header files into D:/ABV/OCCT/occt700/work/vc10-win64-release/inc ...
CMake Warning (dev) at CMakeLists.txt:415 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '${3RDPARTY_DLL_DIRS_FOR_PATH};@3RDPARTY_DLL_DIR@'

  the old evaluation rules produce:

    ';D:/DevTools/TclTk85/bin'

  but the new evaluation rules produce:

    ';@3RDPARTY_DLL_DIR@'

  Using the old result for compatibility since the policy is not set.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:415 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '${3RDPARTY_DLL_DIRS_FOR_PATH};@3RDPARTY_DLL_DIR@'

  the old evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin'

  but the new evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;@3RDPARTY_DLL_DIR@'

  Using the old result for compatibility since the policy is not set.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:415 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '${3RDPARTY_DLL_DIRS_FOR_PATH};@3RDPARTY_DLL_DIR@'

  the old evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin;D:/ABV/OCCT/3rdparty/VTK-6.1.0-vc10-64/bin'

  but the new evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin;@3RDPARTY_DLL_DIR@'

  Using the old result for compatibility since the policy is not set.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:415 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '${3RDPARTY_DLL_DIRS_FOR_PATH};@3RDPARTY_DLL_DIR@'

  the old evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin;D:/ABV/OCCT/3rdparty/VTK-6.1.0-vc10-64/bin;D:/ABV/OCCT/3rdparty/freeimage-vc10-64/bin'

  but the new evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin;D:/ABV/OCCT/3rdparty/VTK-6.1.0-vc10-64/bin;@3RDPARTY_DLL_DIR@'

  Using the old result for compatibility since the policy is not set.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:415 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '${3RDPARTY_DLL_DIRS_FOR_PATH};@3RDPARTY_DLL_DIR@'

  the old evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin;D:/ABV/OCCT/3rdparty/VTK-6.1.0-vc10-64/bin;D:/ABV/OCCT/3rdparty/freeimage-vc10-64/bin;D:/ABV/OCCT/3rdparty/gl2ps-1.3.8-vc10-64/bin'

  but the new evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin;D:/ABV/OCCT/3rdparty/VTK-6.1.0-vc10-64/bin;D:/ABV/OCCT/3rdparty/freeimage-vc10-64/bin;@3RDPARTY_DLL_DIR@'

  Using the old result for compatibility since the policy is not set.
This warning is for project developers. Use -Wno-dev to suppress it.

CMake Warning (dev) at CMakeLists.txt:415 (set):
  Policy CMP0053 is not set: Simplify variable reference and escape sequence
  evaluation. Run "cmake --help-policy CMP0053" for policy details. Use the
  cmake_policy command to set the policy and suppress this warning.

  For input:

    '${3RDPARTY_DLL_DIRS_FOR_PATH};@3RDPARTY_DLL_DIR@'

  the old evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin;D:/ABV/OCCT/3rdparty/VTK-6.1.0-vc10-64/bin;D:/ABV/OCCT/3rdparty/freeimage-vc10-64/bin;D:/ABV/OCCT/3rdparty/gl2ps-1.3.8-vc10-64/bin;D:/ABV/OCCT/3rdparty/tbb42_20130725oss/bin/intel64/vc10'

  but the new evaluation rules produce:

    ';D:/DevTools/TclTk85/bin;D:/ABV/OCCT/3rdparty/freetype-2.5.3-vc10-64/bin;D:/ABV/OCCT/3rdparty/VTK-6.1.0-vc10-64/bin;D:/ABV/OCCT/3rdparty/freeimage-vc10-64/bin;D:/ABV/OCCT/3rdparty/gl2ps-1.3.8-vc10-64/bin;@3RDPARTY_DLL_DIR@'

  Using the old result for compatibility since the policy is not set.
This warning is for project developers. Use -Wno-dev to suppress it.

*****

One more point is: if not all OCCT modules are being built. perhaps only headers belonging to the selected toolkits should be installed
92Commenter 92
Considered as fixed, integrated to master
93Commenter 2
Branch [archived branch] has been deleted by Author.

[revision removed]
94Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
95Commenter 2
Branch [archived branch] has been deleted by Author.

[revision removed]
96Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
97Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]
98Commenter 2
Branch [archived branch] has been deleted by Participant.

[revision removed]

Related records