Archived issue #0030749
Confuguration, genproj - support building of Inspectors
Description
It's proposed to provide option for inspector compilation using genproj.bat
Reasons:
1. Inspector is never included in solutions generated with this script, it's OFF.
2. OCCT installation procedure doesn't copy inspector headers in inc/inspector despite of the inspector is compiled in release and available through inspector.bat. (Without these headers installed it is not possible to reuse inspector in custom applications)
Reasons:
1. Inspector is never included in solutions generated with this script, it's OFF.
2. OCCT installation procedure doesn't copy inspector headers in inc/inspector despite of the inspector is compiled in release and available through inspector.bat. (Without these headers installed it is not possible to reuse inspector in custom applications)
Public activity
25 archived notes
Participants are labeled by their role within this record.
Branch [archived branch] has been created by Participant.
[revision removed]
Detailed log of new commits:
Author: sshutina
Date: Wed Jan 29 15:29:53 2020 +0300
add checkbutton "Build Inspector" for building of an inspector
[revision removed]
Detailed log of new commits:
Author: sshutina
Date: Wed Jan 29 15:29:53 2020 +0300
add checkbutton "Build Inspector" for building of an inspector
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Fri Jan 31 20:14:08 2020 +0300
0030749: Inspectors - compilation under tcl scripts
[revision removed]
Detailed log of new commits:
Author: Author
Date: Fri Jan 31 20:14:08 2020 +0300
0030749: Inspectors - compilation under tcl scripts
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:12:14 2020 +0300
0030749: Inspectors - compilation under tcl scripts
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:12:14 2020 +0300
0030749: Inspectors - compilation under tcl scripts
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:13:38 2020 +0300
0030749: Inspectors - compilation under tcl scripts
# correction inspector for simplier compilation under Tcl
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:13:38 2020 +0300
0030749: Inspectors - compilation under tcl scripts
# correction inspector for simplier compilation under Tcl
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:15:49 2020 +0300
0030749: Inspectors - compilation under tcl scripts
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:15:49 2020 +0300
0030749: Inspectors - compilation under tcl scripts
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:13:38 2020 +0300
0030749: Inspectors - compilation under tcl scripts
# correction inspector for simplier compilation under Tcl
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:13:38 2020 +0300
0030749: Inspectors - compilation under tcl scripts
# correction inspector for simplier compilation under Tcl
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:15:49 2020 +0300
0030749: Inspectors - compilation under tcl scripts
[revision removed]
Detailed log of new commits:
Author: Author
Date: Tue Feb 4 23:15:49 2020 +0300
0030749: Inspectors - compilation under tcl scripts
Dear Kirill,
could you please check provided modification.
This build covers VStudio 2013, 64 bit.
[signature removed]Natalia
could you please check provided modification.
This build covers VStudio 2013, 64 bit.
[signature removed]Natalia
-proc wokdep:SearchLib {theLib theBitness {theSearchPath ""}} {
+proc wokdep:SearchLib {theLib theBitness {theSearchPath ""}} {
Unrelated.
+ if { "$::Qt5_FOUND" == "false" } {
I believe there is no use in handling obsolete Qt4 within genproj.
It would be better supporting only Qt5 and omitting extra code.
If there are any Qt4 users - let them use CMake.
-proc _get_used_files { pk {inc true} {src true} } {
+proc _get_used_files { pk theSourceDir {inc true} {src true} } {
...
-proc genAllResources {} {
+proc genAllResources { theSourceDir } {
...
Probably theSrcDir will be better in this context.
+proc osutils:findSrcSubPath {theSubPath theSourceDir} {
+proc genResources { theResource theSourceDir } {
Arguments order looks awkward - better changing.
- regsub -all {\"} "${aLine}" {\\"} aLine
+ # the line commented as \\ leads to wrong tcl color scheme of the file, uncomment if resources are not found
+ #regsub -all {\"} "${aLine}" {\\"} aLine
+ regsub -all {\"} "${aLine}" {\"} aLine
Please describe this change in commit message, and comment what kind of issue / on which file it fixes?
+proc OS:initdefinitions {theNameOfDefFile {os {}}} {
initDefinitions
+# obsolete, used for products only, initDefinitions should be used instead of it
proc OS:init {{os {}}} {
OCC Products has no dedicated genproj.tcl script - why it is necessary?
+ foreach aModule $theModulesOther {
+ # toolkits
Is it possible to avoid copy-paste?
+# Generate entry for one source file in Visual Studio 10 project file
+proc osutils:vcxproj:mocfile { theFile theParams } {
Seems to be wrong description.
+ #append aFilesSection $aMocFile
Probably old temporary code.
+ set moc_dir $theOutDir/moc + set moc_out $moc_dir/moc_[file rootname $aResourceName].cpp
aMocDir, aMocOut
# report all files not listed in FILES
- set anAllFiles [glob -tails -nocomplain -dir ${anUnitAbsPath} "*"]
+ set anAllFiles [glob -tails -nocomplain -dir ${anUnitAbsPath} "*.*"]
Why this is necessary and how it affects result?
+;# Liste des toolkits WOK sous forme de full path
+proc TApplicationFramework:toolkits { } {
It is better avoiding comments in French.
+proc TApplicationFramework:install { } {
+ return [list UnitsAPI]
Looks unrelated.
ttk::label .myFrame.myChecks.myE57Lbl -text "Use E57" -checkbutton .myFrame.myChecks.myQt4Check -offvalue "false" -onvalue "true" -variable CHECK_QT4 -command wokdep:gui:UpdateList -ttk::label .myFrame.myChecks.myQt4Lbl -text "Search Qt4" +checkbutton .myFrame.myChecks.myQtCheck -offvalue "false" -onvalue "true" -variable CHECK_QT -command wokdep:gui:UpdateList +ttk::label .myFrame.myChecks.myQtLbl -text "Search Qt" checkbutton .myFrame.myChecks.myJDKCheck -offvalue "false" -onvalue "true" -variable CHECK_JDK -command wokdep:gui:UpdateList
Please consider keeping indentation aligned.
<< OCC Products has no dedicated genproj.tcl script - why it is necessary? >>
There is src\VAS package for compilation products under Tcl. This package is similar to src\OS of OCCT.
If we are sure that it is not used, let's remove/comment init?
There is src\VAS package for compilation products under Tcl. This package is similar to src\OS of OCCT.
If we are sure that it is not used, let's remove/comment init?
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Fri Feb 7 16:06:32 2020 +0300
0030749: Inspectors - compilation under tcl scripts
- provide different CSF_QT content for debug and release modes
Author: Author
Date: Fri Feb 7 06:15:17 2020 +0300
0030749: Inspectors - compilation under tcl scripts
- Giving a directory of processed toolkits as parameter for a lot of procedures. Default directory is 'src', inspector directory is 'tools'. This way is similar to one used in Cmake build procedure.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Fri Feb 7 16:06:32 2020 +0300
0030749: Inspectors - compilation under tcl scripts
- provide different CSF_QT content for debug and release modes
Author: Author
Date: Fri Feb 7 06:15:17 2020 +0300
0030749: Inspectors - compilation under tcl scripts
- Giving a directory of processed toolkits as parameter for a lot of procedures. Default directory is 'src', inspector directory is 'tools'. This way is similar to one used in Cmake build procedure.
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Sun Feb 9 18:20:13 2020 +0300
0030749: Inspectors - compilation under tcl scripts
- 'Search Qt4' is renamed into 'Search Qt'. Configuration uses Qt5 from now. For Qt4 use CMake configuration.
- 'Build Inspector' check box is added. It causes 'tools' toolkits compilation. Activates automatically 'Search Qt' control.
- Many Tcl procedures are extended with additional parameter to giving a directory of processed toolkits. The default directory is 'src', inspector directory is 'tools'. This way is similar Inspector compilation implemented in Cmake build procedure.
- Dependency libraries in DEBUG are stored in __TKDEP_DEBUG__. Qt requires it as names of debug and release libraries are different.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Sun Feb 9 18:20:13 2020 +0300
0030749: Inspectors - compilation under tcl scripts
- 'Search Qt4' is renamed into 'Search Qt'. Configuration uses Qt5 from now. For Qt4 use CMake configuration.
- 'Build Inspector' check box is added. It causes 'tools' toolkits compilation. Activates automatically 'Search Qt' control.
- Many Tcl procedures are extended with additional parameter to giving a directory of processed toolkits. The default directory is 'src', inspector directory is 'tools'. This way is similar Inspector compilation implemented in Cmake build procedure.
- Dependency libraries in DEBUG are stored in __TKDEP_DEBUG__. Qt requires it as names of debug and release libraries are different.
Dear Kirill,
could you please review it once again.
Please, note that this fix has additional improvements (relatively to your previuos check):
- processing qrc resource file,
- providing different names for dependent libraries of Qt in Release and Debug modes,
- installing inspector.bat in root directory (like draw.bat).
Jenkins job: http://jenkins-test-12.nnov.opencascade.com/view/CR30749-master-NDS/
Thank you in advance, Natalia
could you please review it once again.
Please, note that this fix has additional improvements (relatively to your previuos check):
- processing qrc resource file,
- providing different names for dependent libraries of Qt in Release and Debug modes,
- installing inspector.bat in root directory (like draw.bat).
Jenkins job: http://jenkins-test-12.nnov.opencascade.com/view/CR30749-master-NDS/
Thank you in advance, Natalia
+if { "$::tcl_platform(platform)" == "windows" } {
+ checkbutton .myFrame.myChecks.myInspectorBuild -offvalue "false" -onvalue "true" -variable BUILD_Inspector -command wokdep:gui:UpdateList
Is it intentional - Inspector is indeed can be built only for Windows platform?
+
+proc osutils:convertModules { theModulesOther theSourceDirOther theSrcDir theProjects theProjectsInModule theDependencies } {
...
+proc osutils:depLibraries { theUsedLibs theOsLibs theVcVer} {
Procedures description is missing.
+ set aGeneratedFiles [osutils:tk:execfiles $aMocResFiles $theOutDir moc.exe moc cpp] + set aQrcFiles [osutils:tk:execfiles $aQrcResFiles $theOutDir rcc.exe rcc cpp]
Can it be compatible with Linux?
+ # prepare Qt moc files, appears only in Inspector - directory tools
+ set aGeneratedFiles {}
+ if { [osutils:isToolsDirectory $theSrcDir] == true } {
+ set aMocResFiles [osutils:tk:mocfiles $aHxxFiles $theOutDir]
Can it be replaced by CSF_QT check within EXTERNLIB for processed Toolkit?
+# Returns a list of exported features.
+# source : Source files
+# runtime: Shareables
+# wokadm : WOK admin files
+# api : Public include files
+proc TApplicationFramework:Export { } {
Please remove these comments.
Branch [archived branch] has been updated by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Thu Feb 13 10:55:14 2020 +0300
0030749: Inspectors - compilation under tcl scripts
# remarks correction
[revision removed]
Detailed log of new commits:
Author: Author
Date: Thu Feb 13 10:55:14 2020 +0300
0030749: Inspectors - compilation under tcl scripts
# remarks correction
Branch [archived branch] has been created by Author.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Sun Feb 9 18:20:13 2020 +0300
0030749: Inspectors - compilation under tcl scripts
- 'Search Qt4' is renamed into 'Search Qt'. Configuration uses Qt5 from now. For Qt4 use CMake configuration.
- 'Build Inspector' check box is added. It causes 'tools' toolkits compilation. Activates automatically 'Search Qt' control.
- Many Tcl procedures are extended with additional parameter to giving a directory of processed toolkits. The default directory is 'src', inspector directory is 'tools'. This way is similar Inspector compilation implemented in Cmake build procedure.
- Dependency libraries in DEBUG are stored in __TKDEP_DEBUG__. Qt requires it as names of debug and release libraries are different.
[revision removed]
Detailed log of new commits:
Author: Author
Date: Sun Feb 9 18:20:13 2020 +0300
0030749: Inspectors - compilation under tcl scripts
- 'Search Qt4' is renamed into 'Search Qt'. Configuration uses Qt5 from now. For Qt4 use CMake configuration.
- 'Build Inspector' check box is added. It causes 'tools' toolkits compilation. Activates automatically 'Search Qt' control.
- Many Tcl procedures are extended with additional parameter to giving a directory of processed toolkits. The default directory is 'src', inspector directory is 'tools'. This way is similar Inspector compilation implemented in Cmake build procedure.
- Dependency libraries in DEBUG are stored in __TKDEP_DEBUG__. Qt requires it as names of debug and release libraries are different.
Dear Kirill,
remarks are corrected, please check it on CR30749_5 (difference for the latest note is on CR30749_4)
Thank you a lot for remark about using CSF_QT.
Relatively Unix support. The current implementation goes by a way of preparing projects for VStudio only (OS:MKVC -> OS:vcsolution -> osutils:vcproj), not Unix at all.
We've discussed with Sergey that the inspector compiling under Unix is in a low priority, usually CMake is used for it.
So, I've changed the platform of this issue on Window only.
remarks are corrected, please check it on CR30749_5 (difference for the latest note is on CR30749_4)
Thank you a lot for remark about using CSF_QT.
Relatively Unix support. The current implementation goes by a way of preparing projects for VStudio only (OS:MKVC -> OS:vcsolution -> osutils:vcproj), not Unix at all.
We've discussed with Sergey that the inspector compiling under Unix is in a low priority, usually CMake is used for it.
So, I've changed the platform of this issue on Window only.
Dear Commenter 1,
please check building of OCCT and OCC Products via Tcl genproj routine (not CMake) on Linux and Windows platforms.
please check building of OCCT and OCC Products via Tcl genproj routine (not CMake) on Linux and Windows platforms.
Fix has been tested in framework of IR-2020-02-22
Combination -
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17017.87000000002 / 17024.610000000095 [-0.04%]
Products
Total CPU difference: 12533.37000000014 / 12614.3600000001 [-0.64%]
Windows-64-VC14:
OCCT
Total CPU difference: 18397.9375 / 18472.453125 [-0.40%]
Products
Total CPU difference: 14483.234375 / 14513.703125 [-0.21%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
Combination -
OCCT branch : [archived branch]
master SHA - [revision removed]
[revision removed]
Products branch : [archived branch] SHA - [revision removed]
was compiled on Linux, MacOS and Windows platforms and tested in optimize mode.
Number of compiler warnings:
No new/fixed warnings
Regressions/Differences/Improvements:
No regressions/differences
CPU differences:
Debian80-64:
OCCT
Total CPU difference: 17017.87000000002 / 17024.610000000095 [-0.04%]
Products
Total CPU difference: 12533.37000000014 / 12614.3600000001 [-0.64%]
Windows-64-VC14:
OCCT
Total CPU difference: 18397.9375 / 18472.453125 [-0.40%]
Products
Total CPU difference: 14483.234375 / 14513.703125 [-0.21%]
Image differences :
No differences that require special attention
Memory differences :
No differences that require special attention
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]
Branch [archived branch] has been deleted by Participant.
[revision removed]
[revision removed]