From: mmv Date: Fri, 31 Jan 2014 11:49:09 +0000 (+0400) Subject: Added opportunity to generate AutoMake files foe new platform X-Git-Url: http://git.dev.opencascade.org/gitweb/?a=commitdiff_plain;h=refs%2Fheads%2FCR24443;p=occt-wok.git Added opportunity to generate AutoMake files foe new platform --- diff --git a/src/WOKTclLib/OS.tcl b/src/WOKTclLib/OS.tcl index b7c5f2e..b145a1b 100755 --- a/src/WOKTclLib/OS.tcl +++ b/src/WOKTclLib/OS.tcl @@ -3369,10 +3369,10 @@ proc OS:MKPRC { {theOutDir {}} {theProjectType {}} {theIDE ""} } { "cbp" { OS:MKCBP $anOutDir $aModules $anAllSolution } "cmake" { OS:MKCMK "${anOutRoot}/.." $aModules $anAllSolution } "amk" { OS:MKAMK $anOutDir $aModules "adm/${aWokStation}/${theIDE}" ""} - "android" { OS:MKAMK $anOutDir $aModules "adm/${aWokStation}/${theIDE}" "true"} + "android" { OS:MKAMK $anOutDir $aModules "adm/${aWokStation}/${theIDE}" "true"} "xcd" { - set ::THE_GUIDS_LIST($::aTKNullKey) "000000000000000000000000" - OS:MKXCD $anOutDir $aModules $anAllSolution + set ::THE_GUIDS_LIST($::aTKNullKey) "000000000000000000000000" + OS:MKXCD $anOutDir $aModules $anAllSolution } } @@ -3397,103 +3397,102 @@ proc OS:MKPRC { {theOutDir {}} {theProjectType {}} {theIDE ""} } { ;# proc OS:PKGSRC { {ll {} } {mode link} } { - set BOX [OS -box] - set lmodules [OS -lm] - if { $ll != {} } { set lmodules $ll } - set lesmodules {} - foreach mo $lmodules { - if { [lsearch [${mo}:Export] source] != -1 } { - lappend lesmodules $mo - } - } - - ;# La ou on cree l'arborescence pour l'archive. - ;# et le nom de la racine contenue dans l'archive - ;# - set TMPDIR /dn01/KAS/dev/ros/work - set ROOT [OS:archive_root] - ;# La ou on met le tar.gz avec le nom desire. - ;# - set DISTRIB [OS -distrib] - set fmtnam "$DISTRIB/source%s-[OS:dotted_version].tar" - - if { [lsearch [list copy link] $mode] == -1 } { - puts stderr "OS:PKGSRC erreur: mode=copy ou mode=link" - return - } - - - foreach module $lesmodules { - puts stderr "OS:PKGSRC($module)" - set LISTE {} - - ;#OS -lsource $module -v -o $BOX/$module.sources - OS -lsource $module -o $BOX/$module.sources - OS -u udlist $module -o $BOX/$module.UDLIST - set lx [wokUtils:FILES:FileToList $BOX/$module.sources] - lappend lx "$BOX/$module.UDLIST [file join adm $module.UDLIST]" - wokUtils:FILES:ListToFile $lx $BOX/${module}.sources - if [file exists $BOX/${module}.sources] { - lappend LISTE $BOX/${module}.sources - } else { - puts stderr "Erreur : pas de fichier $BOX/${module}.sources" - return - } - ;# Pour embarquer les projets Visual. - ;# - foreach plats [concat [OS:plats_disponibles] WindowsNT] { - if [file exists $BOX/$plats/${module}.admfiles] { - lappend LISTE $BOX/$plats/${module}.admfiles - } else { - puts stderr "Note : pas de fichier $BOX/$plats/${module}.admfiles" - } - } - ;#OS -lressource $module -v -type source -o $BOX/$module.ressources - OS -lressource $module -type source -o $BOX/$module.ressources - if [file exists $BOX/${module}.ressources] { - lappend LISTE $BOX/${module}.ressources - } - - OS -lfreefiles ${module} -type source -o $BOX/${module}.freefiles - if [file exists $BOX/${module}.freefiles] { - lappend LISTE $BOX/${module}.freefiles - } else { - puts stderr "Erreur : Pas de fichier $BOX/${module}.freefiles" - } - - set tmpdir [file join $TMPDIR $module src] - - set r [OS -mktree -mode $mode -from [join $LISTE ,] -tmpdir $tmpdir -root $ROOT] - - set znam [format $fmtnam [${module}:name]] - set z [OS -mkar $znam $module -tmpdir $tmpdir -root $ROOT] - - } + set BOX [OS -box] + set lmodules [OS -lm] + if { $ll != {} } { set lmodules $ll } + set lesmodules {} + foreach mo $lmodules { + if { [lsearch [${mo}:Export] source] != -1 } { + lappend lesmodules $mo + } + } + + ;# La ou on cree l'arborescence pour l'archive. + ;# et le nom de la racine contenue dans l'archive + ;# + set TMPDIR /dn01/KAS/dev/ros/work + set ROOT [OS:archive_root] + ;# La ou on met le tar.gz avec le nom desire. + ;# + set DISTRIB [OS -distrib] + set fmtnam "$DISTRIB/source%s-[OS:dotted_version].tar" + + if { [lsearch [list copy link] $mode] == -1 } { + puts stderr "OS:PKGSRC erreur: mode=copy ou mode=link" + return + } + + + foreach module $lesmodules { + puts stderr "OS:PKGSRC($module)" + set LISTE {} + + ;#OS -lsource $module -v -o $BOX/$module.sources + OS -lsource $module -o $BOX/$module.sources + OS -u udlist $module -o $BOX/$module.UDLIST + set lx [wokUtils:FILES:FileToList $BOX/$module.sources] + lappend lx "$BOX/$module.UDLIST [file join adm $module.UDLIST]" + wokUtils:FILES:ListToFile $lx $BOX/${module}.sources + if [file exists $BOX/${module}.sources] { + lappend LISTE $BOX/${module}.sources + } else { + puts stderr "Erreur : pas de fichier $BOX/${module}.sources" + return + } + ;# Pour embarquer les projets Visual. + ;# + foreach plats [concat [OS:plats_disponibles] WindowsNT] { + if [file exists $BOX/$plats/${module}.admfiles] { + lappend LISTE $BOX/$plats/${module}.admfiles + } else { + puts stderr "Note : pas de fichier $BOX/$plats/${module}.admfiles" + } + } + ;#OS -lressource $module -v -type source -o $BOX/$module.ressources + OS -lressource $module -type source -o $BOX/$module.ressources + if [file exists $BOX/${module}.ressources] { + lappend LISTE $BOX/${module}.ressources + } + + OS -lfreefiles ${module} -type source -o $BOX/${module}.freefiles + if [file exists $BOX/${module}.freefiles] { + lappend LISTE $BOX/${module}.freefiles + } else { + puts stderr "Erreur : Pas de fichier $BOX/${module}.freefiles" + } + + set tmpdir [file join $TMPDIR $module src] + + set r [OS -mktree -mode $mode -from [join $LISTE ,] -tmpdir $tmpdir -root $ROOT] + + set znam [format $fmtnam [${module}:name]] + set z [OS -mkar $znam $module -tmpdir $tmpdir -root $ROOT] + + } } proc OS:EXTRSRC { {ll {} } {mode link} } { - set BOX [OS -box] - set lmodules [OS -lm] - if { $ll != {} } { set lmodules $ll } - set lesmodules {} - foreach mo $lmodules { - if { [lsearch [${mo}:Export] source] != -1 } { - lappend lesmodules $mo - } + set BOX [OS -box] + set lmodules [OS -lm] + if { $ll != {} } { set lmodules $ll } + set lesmodules {} + foreach mo $lmodules { + if { [lsearch [${mo}:Export] source] != -1 } { + lappend lesmodules $mo } + } - set lx "" - set ff [open [wokinfo -p AdmDir :OS:OCC:RELEASE]/UDLIST w] - foreach module $lesmodules { - OS -u udlist $module -o /tmp/UDLIST - for_file Ustr /tmp/UDLIST { - puts $ff $Ustr - } - + set lx "" + set ff [open [wokinfo -p AdmDir :OS:OCC:RELEASE]/UDLIST w] + foreach module $lesmodules { + OS -u udlist $module -o /tmp/UDLIST + for_file Ustr /tmp/UDLIST { + puts $ff $Ustr } - close $ff + } + close $ff } ;# ;# Fabrique les archives RunTime @@ -3501,57 +3500,56 @@ proc OS:EXTRSRC { {ll {} } {mode link} } { ;# proc OS:PKGRTL { {llplat {}} {ll {} } { mode link } } { - set BOX [OS -box] + set BOX [OS -box] - set lesplats [OS:plats_disponibles] - if { $llplat != {} } { set lesplats $llplat } - set lmodules [OS -lm] - if { $ll != {} } { set lmodules $ll } + set lesplats [OS:plats_disponibles] + if { $llplat != {} } { set lesplats $llplat } + set lmodules [OS -lm] + if { $ll != {} } { set lmodules $ll } - set lesmodules {} - foreach mo $lmodules { - if { [lsearch [${mo}:Export] runtime] != -1 } { - lappend lesmodules $mo - } + set lesmodules {} + foreach mo $lmodules { + if { [lsearch [${mo}:Export] runtime] != -1 } { + lappend lesmodules $mo } + } - set TMPDIR /dn01/KAS/dev/ros/work - set ROOT [OS:archive_root] - - set DISTRIB [OS -distrib] - set fmtnam "$DISTRIB/%s%s-[OS:dotted_version].tar" - - foreach plat $lesplats { - puts stderr "OS:PKGRTL: $plat" - foreach module $lesmodules { - set LISTE {} - OS -os $plat -lshare $module -o $BOX/$plat/$module.share - lappend LISTE $BOX/$plat/$module.share - ;# - ;# Si le module a des ressources runtime. - ;# - OS -os $plat -lressource $module -type runtime -o $BOX/$plat/$module.ressources - lappend LISTE $BOX/$plat/$module.ressources - OS -lfreefiles ${module} -type runtime -o $BOX/$plat/${module}.freefiles - lappend LISTE $BOX/$plat/${module}.freefiles - set tmpdir [file join $TMPDIR $module $plat] + set TMPDIR /dn01/KAS/dev/ros/work + set ROOT [OS:archive_root] - puts "mktree: " - set r [OS -v -mktree -mode $mode -from [join $LISTE ,] -tmpdir $tmpdir -root [file join $ROOT $plat]] - if [file exists $r/src ] { - set savpwd [pwd] - cd $r/.. - puts stderr "Dans [pwd] on renomme $plat/src ." - exec mv $plat/src . - cd $savpwd - } + set DISTRIB [OS -distrib] + set fmtnam "$DISTRIB/%s%s-[OS:dotted_version].tar" - puts "mkar: " - set znam [format $fmtnam $plat [${module}:name]] - set z [OS -mkar $znam -tmpdir $tmpdir -root $ROOT] + foreach plat $lesplats { + puts stderr "OS:PKGRTL: $plat" + foreach module $lesmodules { + set LISTE {} + OS -os $plat -lshare $module -o $BOX/$plat/$module.share + lappend LISTE $BOX/$plat/$module.share + ;# + ;# Si le module a des ressources runtime. + ;# + OS -os $plat -lressource $module -type runtime -o $BOX/$plat/$module.ressources + lappend LISTE $BOX/$plat/$module.ressources + OS -lfreefiles ${module} -type runtime -o $BOX/$plat/${module}.freefiles + lappend LISTE $BOX/$plat/${module}.freefiles + set tmpdir [file join $TMPDIR $module $plat] + + puts "mktree: " + set r [OS -v -mktree -mode $mode -from [join $LISTE ,] -tmpdir $tmpdir -root [file join $ROOT $plat]] + if [file exists $r/src ] { + set savpwd [pwd] + cd $r/.. + puts stderr "Dans [pwd] on renomme $plat/src ." + exec mv $plat/src . + cd $savpwd + } - } + puts "mkar: " + set znam [format $fmtnam $plat [${module}:name]] + set z [OS -mkar $znam -tmpdir $tmpdir -root $ROOT] } + } } # Administration de wok diff --git a/src/WOKTclLib/osutils.tcl b/src/WOKTclLib/osutils.tcl index 0960c3b..54af5e7 100755 --- a/src/WOKTclLib/osutils.tcl +++ b/src/WOKTclLib/osutils.tcl @@ -1159,9 +1159,9 @@ proc osutils:tk:mkam { dir tkloc isAndroid} { } if { $isAndroid !={} } { - set avoidversion "lib${tkloc}_la_LDFLAGS = -avoid-version" - } else { - set avoidversion "" + set avoidversion "lib${tkloc}_la_LDFLAGS = -avoid-version" + } else { + set avoidversion "" } regsub -all -- {__AVOIDVERSION__} $tmplat $avoidversion tmplat @@ -1417,7 +1417,7 @@ proc osutils:am:root { dir theSubPath {lesmodules {}} isAndroid} { append amstring "${theModule}_PKGS =" foreach r [${theModule}:ressources] { if { "[lindex $r 1]" == "r" } { - append amstring " [lindex $r 2]" + append amstring " [lindex $r 2]" } } set up ${theModule} @@ -1432,24 +1432,24 @@ proc osutils:am:root { dir theSubPath {lesmodules {}} isAndroid} { set lower [string tolower ${lower}] - if {$isAndroid !={} } { - set flags {Linux*) CXXFLAGS="$CXXFLAGS -DLIN -D_GNU_SOURCE=1" - CFLAGS="$CFLAGS -DLIN" - LDFLAGS="$LDFLAGS -lstdc++ -lc";;} - set pthread {AC_CHECK_LIB([c],[pthread_create],[],[AC_MSG_ERROR([Posix threads required])]) - CSF_ThreadLibs_LIB=-lc} - set fpucontrol "fpu_control.h" - set pathmakefile "adm/lin/android/Makefile" - } else { - set flags {Linux*) CXXFLAGS="$CXXFLAGS -DLIN -DLININTEL -D_GNU_SOURCE=1 -mmmx -msse -msse2 -mfpmath=sse -Wall" - CFLAGS="$CFLAGS -DLIN -DLININTEL -fexceptions -mmmx -msse -msse2 -mfpmath=sse -Wall" - LDFLAGS="$LDFLAGS -lstdc++ -lrt";;} - - set pthread {AC_CHECK_LIB([pthread],[pthread_create],[],[AC_MSG_ERROR([Posix threads required])]) - CSF_ThreadLibs_LIB=-lpthread} - set fpucontrol "" - set pathmakefile "adm/lin/amk/Makefile" - } + if {$isAndroid !={} } { + set flags {Linux*) CXXFLAGS="$CXXFLAGS -DLIN -D_GNU_SOURCE=1" + CFLAGS="$CFLAGS -DLIN" + LDFLAGS="$LDFLAGS -lstdc++ -lc";;} + set pthread {AC_CHECK_LIB([c],[pthread_create],[],[AC_MSG_ERROR([Posix threads required])]) + CSF_ThreadLibs_LIB=-lc} + set fpucontrol "fpu_control.h" + set pathmakefile "adm/lin/android/Makefile" + } else { + set flags {Linux*) CXXFLAGS="$CXXFLAGS -DLIN -DLININTEL -D_GNU_SOURCE=1 -mmmx -msse -msse2 -mfpmath=sse -Wall" + CFLAGS="$CFLAGS -DLIN -DLININTEL -fexceptions -mmmx -msse -msse2 -mfpmath=sse -Wall" + LDFLAGS="$LDFLAGS -lstdc++ -lrt";;} + + set pthread {AC_CHECK_LIB([pthread],[pthread_create],[],[AC_MSG_ERROR([Posix threads required])]) + CSF_ThreadLibs_LIB=-lpthread} + set fpucontrol "" + set pathmakefile "adm/lin/amk/Makefile" + } append amstring "\n\nif ENABLE_${up}\n" append amstring " ${theModule}_DIRS = \$(${theModule}_PKGS)\n" append amstring "else\n" @@ -1479,7 +1479,7 @@ proc osutils:am:root { dir theSubPath {lesmodules {}} isAndroid} { foreach dep $deplist { set dup ${dep} if { [info procs ${dep}:alias] != "" } { - set dup [${dep}:alias] + set dup [${dep}:alias] } set dup [string toupper ${dup}] append confstr " if test \"xyes\" = \"x\$ENABLE_${up}\" -a \"xyes\" != \"x\$ENABLE_${dup}\"; then\n" diff --git a/src/WOKsite/wok_tclshrc.tcl b/src/WOKsite/wok_tclshrc.tcl index df6ae32..74a65d8 100755 --- a/src/WOKsite/wok_tclshrc.tcl +++ b/src/WOKsite/wok_tclshrc.tcl @@ -294,14 +294,14 @@ proc wgenprojbat {thePath theIDE} { } switch -exact -- "$theIDE" { - "vc7" - - "vc8" - - "vc9" - - "vc10" - - "vc11" { file copy -force -- "$::env(WOKHOME)/lib/templates/msvc.bat" "$aBox/msvc.bat" } - "cbp" { file copy -force -- "$::env(WOKHOME)/lib/templates/codeblocks.sh" "$aBox/codeblocks.sh" } - "xcd" { file copy -force -- "$::env(WOKHOME)/lib/templates/xcode.sh" "$aBox/xcode.sh" } - "android" {file copy -force -- "$::env(WOKHOME)/lib/templates/build_android" "$aBox/build_android" } + "vc7" - + "vc8" - + "vc9" - + "vc10" - + "vc11" { file copy -force -- "$::env(WOKHOME)/lib/templates/msvc.bat" "$aBox/msvc.bat" } + "cbp" { file copy -force -- "$::env(WOKHOME)/lib/templates/codeblocks.sh" "$aBox/codeblocks.sh" } + "xcd" { file copy -force -- "$::env(WOKHOME)/lib/templates/xcode.sh" "$aBox/xcode.sh" } + "android" {file copy -force -- "$::env(WOKHOME)/lib/templates/build_android" "$aBox/build_android" } } } } @@ -382,8 +382,8 @@ proc wgenproj { args } { cbp - CodeBlocks cmake - CMake amk - AutoMake - xcd - Xcode" - android - Android AutoMake" + xcd - Xcode + android - Android AutoMake" return } @@ -463,7 +463,7 @@ proc wenv {} { if { $aShaders != "" } { set env(CSF_ShadersDirectory) [string range [wokinfo -p source:. [woklocate -u Shaders]] 0 [expr {[string length [wokinfo -p source:. $aShaders]] - 3}]] } else { - puts "Warning! 'Shaders' package not found!" + puts "Warning! 'Shaders' package not found!" } set aXSMsg [woklocate -u XSMessage] @@ -567,7 +567,7 @@ if ![file exists [set woksession [file join $env(WOK_ROOTADMDIR) WOKSESSION.edl regsub -all -- {TOSUBSTITUTE} "$str1" "[file normalize $env(WOK_ROOTADMDIR)]" result1 wokUtils:FILES:StringToFile $result1 $woksession if [file exists $woksession] { - puts stderr "File $woksession has been created. " + puts stderr "File $woksession has been created. " } }