View Issue Details

IDProjectCategoryView StatusLast Update
0024888Open CASCADEOCCT:Configurationpublic2016-11-21 13:03
ReporteribsAssigned Tobugmaster  
PrioritynormalSeverityminor 
Status closedResolutionfixed 
Product Version6.7.1 
Target Version6.8.0Fixed in Version6.8.0 
Summary0024888: Refactoring of OCCT CMake meta-project
DescriptionRefactoring of OCCT CMake meta-project includes:
* find_package usage in search for 3rdparty products
* use (first of all) default CMake's tcl and freetype search scripts
* do not use *_dll variable in lin/mac case
TagsNo tags attached.
Test case number

Relationships

related to 0025244 closedbugmaster CMake building procedure should support VTK usage 
related to 0025140 closedbugmaster CMake: ask for Tcl/Tk only if build Draw option is chosen 
related to 0025141 closedbugmaster CMake / MinGW: link recipe fails due to long command 
related to 0025146 closedbugmaster Porting to Android 
related to 0028135 closedapn Configuration - adopt building script for using built-in Android cross-compiling support in CMake 3.7 

Activities

ibs

2014-05-19 11:14

developer   ~0029382

Last edited: 2014-05-30 11:10

dear rnv, please review CR24888 OCCT and WOK branches

git

2014-07-29 17:32

administrator   ~0030476

Branch CR24888 has been updated forcibly by ibs.

SHA-1: f04186b1c96ab99bb29f2a98ec7c953dcf8eb4d7

rnv

2014-08-01 10:57

developer   ~0030515

My remarks on the current CMake OCCT build procedure:

1. Using of the custom variables BUILD_CONFIGURATION and INSTALL_DIR variables which are duplicates CMAKE_BUILD_TYPE and CMAKE_INSTALL_PREFIX variables. Why define and use new variables which duplicate built-in CMake standard variables?

2. Third party detection mechanism: at the moment detection of the third party libraries done in the strange custom way, which doesn’t use standard CMake find_package() macro.

3. There are a lot of the unnecessary CMake custom macros in the OCCTMacros.cmake. In my opinion several macros can be suppressed because each such macro defines one or several variables and values of these variables don’t change during generation of the project, so these variables can be defined one time in the OCCTDefsAndFlags.cmake script, for example. There is a list of such macros:
 - OCCT_MAKE_BUILD_POSTFIX
 - OCCT_MAKE_COMPILER_BITNESS
 - OCCT_MAKE_OS_WITH_BITNESS
 - OCCT_MAKE_COMPILER_SHORT_NAME

4. Why create separate CMake project for the each OCCT toolkit?

ibs

2014-08-01 11:16

developer   ~0030517

rnv, thanks for your remarks.

git

2014-09-16 14:56

administrator   ~0031758

Branch CR24888 has been updated forcibly by ibs.

SHA-1: 825cdfdc1580e0e632889dc410d25d87eb683427

ibs

2014-09-16 14:57

developer   ~0031759

Last edited: 2014-09-16 15:15

dear bugmaster,
please test CR24888 occt and wok branches

ibs

2014-09-16 15:20

developer   ~0031766

1. generate cmake files by wok for win and lin systems
2. generate vc-projects (win) or automake (lin)
3. build generated projects
4. run testgrid test

bugmaster

2014-09-16 16:40

administrator   ~0031772

Usage of VTK can not be defined from cmake procedure

git

2014-09-16 17:11

administrator   ~0031777

Branch CR24888 has been updated forcibly by ibs.

SHA-1: 86e10d7170cdb644c266c70c30dac0b9289cc685

ibs

2014-09-16 17:20

developer   ~0031778

VTK is moved to separate issue 0025244.

ibs

2014-09-16 17:20

developer   ~0031779

dear bugmaster, please test this issue that doesn't contain vtk support anymore

git

2014-09-16 18:35

administrator   ~0031785

Branch CR24888 has been updated by ibs.

SHA-1: a6e6924c177d771b2be689fba917453de5e613bc


Detailed log of new commits:

Author: ibs
Date: Tue Sep 16 18:34:49 2014 +0400

    The messages of freetype search process added

git

2014-09-17 17:32

administrator   ~0031824

Branch CR24888 has been updated forcibly by ibs.

SHA-1: 1d080f3babd401fc8387a5b2cd3adade929623f4

git

2014-09-18 13:00

administrator   ~0031856

Branch CR24888 has been updated by ibs.

SHA-1: ae2619add0338904c808f90978b5a3968a803802


Detailed log of new commits:

Author: ibs
Date: Thu Sep 18 12:58:56 2014 +0400

    [CMAKE] custom.sh.in uses library variables instead unused dll ones.
    
    -DDEBUG remove from CMAKE_CXX_FLAGS_DEBUG and CMAKE_C_FLAGS_DEBUG
    
    hide unused 3rdparty in android case
    
    also messages of freetype search mechanism slightly updated

bugmaster

2014-09-18 13:36

administrator   ~0031858

Fix has been tested on Linux and Windows platforms with HAVE_VTK=false
All are OK.

git

2014-09-30 11:35

administrator   ~0032397

Branch CR24888 has been deleted by inv.

SHA-1: ae2619add0338904c808f90978b5a3968a803802

Related Changesets

occt: master 9f33b387

2014-09-18 11:22:02

ibs


Committer: bugmaster Details Diff
0024888: Refactoring of OCCT CMake meta-project

user sees just dirs of libs, shared libs and headers of 3rdparty products
documentation updated

3rdparty search priority was fixed: 1. user paths; 2. system paths
3rdparty debug usage fixed
vtk search introduced
occt information, generated by wok, was divided onto two files: occt_toolkits.cmake and occt_inc_toolkits.cmake
additional behavior of cmake search for freetype 2.5.1 and above

CMake (version < 3.0) don't know about new place of config/ftheader.h in freetype 2.5.1. There are cases when cmake seeks config/ftheader.h in defined place (3RDPARTY_FREETYPE_DIR variable), doesn't find it and start new search in system places. If system has own freetype header- cmake will find it and 3RDPARTY_FREETYPE* variables will point to different places. This situation is avoided

tcl, freetype, vtk are checked before usage of it (CSF variables usage)
tbb search mechanism was refactored
freetype search is processed by default cmake mechanism
tcl search is processed by default cmake mechanism

3rdparty macro seeks debug libraries (and release if debug ones aren't found); 3rdparty dll is sought in win case only

ADD_SUBDIRECTORY preferred to SUBDIRS

gendoc.bat search for tclsh.exe in user's system

0025141: CMake / MinGW: link recipe fails due to long command

0025146: Porting to Android

OCCT documentation updated. "Building with CMake and ADT for Android" article added

[CMAKE] custom.sh.in uses library variables instead unused dll ones.

-DDEBUG remove from CMAKE_CXX_FLAGS_DEBUG and CMAKE_C_FLAGS_DEBUG

hide unused 3rdparty in android case

also messages of freetype search mechanism slightly updated
Affected Issues
0024888
add - adm/templates/3rdparty_macro.cmake Diff File
mod - adm/templates/custom.bat.in Diff File
mod - adm/templates/custom.bat.main Diff File
mod - adm/templates/custom.sh.in Diff File
mod - adm/templates/custom.sh.main Diff File
mod - adm/templates/env.bat.in Diff File
mod - adm/templates/env.sh.in Diff File
add - adm/templates/freeimage.cmake Diff File
add - adm/templates/freeimageplus.cmake Diff File
add - adm/templates/freetype.cmake Diff File
add - adm/templates/gl2ps.cmake Diff File
add - adm/templates/glx.cmake Diff File
add - adm/templates/occt_defs_flags.cmake Diff File
add - adm/templates/occt_macros.cmake Diff File
add - adm/templates/opencl.cmake Diff File
mod - adm/templates/tbb.cmake Diff File
mod - adm/templates/tcl.cmake Diff File
mod - CMakeLists.txt Diff File
add - dox/dev_guides/building/android/android.md Diff File
add - dox/dev_guides/building/android/images/android_image001.png Diff File
add - dox/dev_guides/building/android/images/android_image002.png Diff File
add - dox/dev_guides/building/android/images/android_image003.png Diff File
add - dox/dev_guides/building/android/images/android_image004.png Diff File
add - dox/dev_guides/building/android/images/android_image005.png Diff File
add - dox/dev_guides/building/android/images/android_image006.png Diff File
add - dox/dev_guides/building/android/images/android_image007.png Diff File
add - dox/dev_guides/building/android/images/android_image008.png Diff File
add - dox/dev_guides/building/android/images/android_image009.png Diff File
add - dox/dev_guides/building/android/images/android_image010.png Diff File
mod - dox/dev_guides/building/building.md Diff File
mod - dox/dev_guides/building/cmake/cmake.md Diff File
rm - dox/dev_guides/building/cmake/images/cmake_image006.png Diff File
mod - dox/FILES_HTML.txt Diff File
mod - dox/overview/overview.md Diff File
mod - gendoc.bat Diff File
mod - samples/mfc/standard/01_Geometry/CMakeLists.txt Diff File
mod - samples/mfc/standard/02_Modeling/CMakeLists.txt Diff File
mod - samples/mfc/standard/03_Viewer2d/CMakeLists.txt Diff File
mod - samples/mfc/standard/04_Viewer3d/CMakeLists.txt Diff File
mod - samples/mfc/standard/05_ImportExport/CMakeLists.txt Diff File
mod - samples/mfc/standard/06_Ocaf/CMakeLists.txt Diff File
mod - samples/mfc/standard/07_Triangulation/CMakeLists.txt Diff File
mod - samples/mfc/standard/08_HLR/CMakeLists.txt Diff File
mod - samples/mfc/standard/09_Animation/CMakeLists.txt Diff File
mod - samples/mfc/standard/10_Convert/CMakeLists.txt Diff File
mod - samples/mfc/standard/mfcsample/CMakeLists.txt Diff File

Issue History

Date Modified Username Field Change
2014-04-30 16:10 ibs New Issue
2014-04-30 16:10 ibs Assigned To => ibs
2014-05-12 14:38 ibs Description Updated
2014-05-19 11:06 ibs Status new => resolved
2014-05-19 11:07 ibs Assigned To ibs => bugmaster
2014-05-19 11:07 ibs Status resolved => reviewed
2014-05-19 11:14 ibs Assigned To bugmaster => ibs
2014-05-19 11:14 ibs Status reviewed => assigned
2014-05-19 11:14 ibs Note Added: 0029382
2014-05-19 11:14 ibs Assigned To ibs => rnv
2014-05-19 11:14 ibs Status assigned => resolved
2014-05-19 15:57 ibs Note Edited: 0029382
2014-05-22 14:03 ibs Status resolved => feedback
2014-05-30 11:10 ibs Note Edited: 0029382
2014-07-01 15:36 ibs Assigned To rnv => ibs
2014-07-01 15:36 ibs Assigned To ibs => rnv
2014-07-29 17:32 git Note Added: 0030476
2014-08-01 10:57 rnv Note Added: 0030515
2014-08-01 10:57 rnv Status feedback => reviewed
2014-08-01 10:58 rnv Status reviewed => assigned
2014-08-01 10:58 rnv Assigned To rnv => ibs
2014-08-01 11:16 ibs Note Added: 0030517
2014-09-16 11:29 ibs Relationship added related to 0025140
2014-09-16 11:30 ibs Relationship added related to 0025114
2014-09-16 11:30 ibs Relationship added related to 0025141
2014-09-16 11:31 ibs Relationship deleted related to 0025114
2014-09-16 14:56 git Note Added: 0031758
2014-09-16 14:57 ibs Note Added: 0031759
2014-09-16 14:57 ibs Assigned To ibs => bugmaster
2014-09-16 14:57 ibs Status assigned => resolved
2014-09-16 15:15 ibs Note Edited: 0031759
2014-09-16 15:16 ibs Status resolved => reviewed
2014-09-16 15:20 ibs Note Added: 0031766
2014-09-16 16:40 bugmaster Note Added: 0031772
2014-09-16 16:40 bugmaster Assigned To bugmaster => ibs
2014-09-16 16:40 bugmaster Status reviewed => assigned
2014-09-16 16:53 ibs Description Updated
2014-09-16 16:57 ibs Relationship added related to 0025244
2014-09-16 17:11 git Note Added: 0031777
2014-09-16 17:20 ibs Note Added: 0031778
2014-09-16 17:20 ibs Status assigned => resolved
2014-09-16 17:20 ibs Note Added: 0031779
2014-09-16 17:20 ibs Status resolved => reviewed
2014-09-16 18:35 git Note Added: 0031785
2014-09-17 16:42 abv Relationship added related to 0025146
2014-09-17 17:32 git Note Added: 0031824
2014-09-18 13:00 git Note Added: 0031856
2014-09-18 13:36 bugmaster Note Added: 0031858
2014-09-18 13:36 bugmaster Status reviewed => tested
2014-09-19 13:42 bugmaster Changeset attached => occt master 9f33b387
2014-09-19 13:42 bugmaster Assigned To ibs => bugmaster
2014-09-19 13:42 bugmaster Status tested => verified
2014-09-19 13:42 bugmaster Resolution open => fixed
2014-09-30 11:35 git Note Added: 0032397
2014-11-11 12:44 aiv Fixed in Version => 6.8.0
2014-11-11 12:58 aiv Status verified => closed
2016-11-21 13:03 kgv Relationship added related to 0028135