X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=adm%2Fgenconfdeps.tcl;h=50d2c7ff9ee60eae7d6d2d7c05d1abd2f9c7ecd9;hb=aafe169f89f642b6ea42decc025cae6f0f758eee;hpb=84b904bc36834914197ce0d4c2b7c84d05137ead diff --git a/adm/genconfdeps.tcl b/adm/genconfdeps.tcl index e2010b90ef..50d2c7ff9e 100644 --- a/adm/genconfdeps.tcl +++ b/adm/genconfdeps.tcl @@ -27,8 +27,10 @@ if { "$tcl_platform(platform)" == "unix" } { set SYS_EXE_SUFFIX "" if { "$tcl_platform(os)" == "Darwin" } { set SYS_LIB_SUFFIX "dylib" + set PRJFMT "xcd" } else { set SYS_LIB_SUFFIX "so" + set PRJFMT "cbp" } set VCVER "gcc" set VCVARS "" @@ -39,6 +41,7 @@ if { "$tcl_platform(platform)" == "unix" } { set SYS_EXE_SUFFIX ".exe" set VCVER "vc10" set VCVARS "" + set PRJFMT "vcxproj" } set SHORTCUT_HEADERS "ShortCut" @@ -82,7 +85,7 @@ if { "$tcl_platform(platform)" != "windows" } { set HAVE_D3D "" set HAVE_RelWithDebInfo "" } -foreach anEnvIter {ARCH VCVER VCVARS PRODUCTS_PATH} { +foreach anEnvIter {ARCH VCVER VCVARS PRJFMT PRODUCTS_PATH} { if { [info exists ::env(${anEnvIter})] } { set ${anEnvIter} "$::env(${anEnvIter})" } @@ -1118,15 +1121,33 @@ proc wokdep:SearchX11 {theErrInc theErrLib32 theErrLib64 theErrBin32 theErrBin64 return "$isFound" } +# Returns OCCT version string from file Standard_Version.hxx (if available) +proc wokdep:DetectCasVersion {} { + set occt_ver 7.0.0 + set aCasRoot [file normalize [file dirname [info script]]] + set filename "${aCasRoot}/src/Standard/Standard_Version.hxx" + if { [file exists $filename] } { + set fh [open $filename "r"] + set fh_loaded [read $fh] + close $fh + regexp {[^/]\s*#\s*define\s+OCC_VERSION_COMPLETE\s+\"([^\s]*)\"} $fh_loaded dummy occt_ver + } else { + puts "Error: file '$filename' not found" + } + return $occt_ver +} + # Generate (override) custom environment file proc wokdep:SaveCustom {} { + set aGenInfo "This environment file was generated by genconf.tcl script at [clock format [clock seconds] -format "%Y.%m.%d %H:%M"]" if { "$::tcl_platform(platform)" == "windows" } { set aCustomFilePath "./custom.bat" set aFile [open $aCustomFilePath "w"] puts $aFile "@echo off" - puts $aFile "rem This environment file was generated by wok_depsgui.tcl script at [clock format [clock seconds] -format "%Y.%m.%d %H:%M"]" + puts $aFile "rem $aGenInfo" puts $aFile "" + puts $aFile "set PRJFMT=$::PRJFMT" puts $aFile "set VCVER=$::VCVER" puts $aFile "set ARCH=$::ARCH" puts $aFile "set VCVARS=$::VCVARS" @@ -1175,9 +1196,10 @@ proc wokdep:SaveCustom {} { set aCustomFilePath "./custom.sh" set aFile [open $aCustomFilePath "w"] puts $aFile "#!/bin/bash" - puts $aFile "# This environment file was generated by wok_depsgui.tcl script at [clock format [clock seconds] -format "%Y.%m.%d %H:%M"]" + puts $aFile "# $aGenInfo" puts $aFile "" + puts $aFile "export PRJFMT=$::PRJFMT" puts $aFile "export ARCH=$::ARCH" puts $aFile "export SHORTCUT_HEADERS=$::SHORTCUT_HEADERS" @@ -1211,6 +1233,52 @@ proc wokdep:SaveCustom {} { close $aFile } - puts "Configuration saved to file '$aCustomFilePath'" + + if { "$::PRJFMT" == "pro" } { + set aCasVer [wokdep:DetectCasVersion] + set aCustomFilePath "./adm/qmake/custom.auto.pri" + set aFile [open $aCustomFilePath "w"] + puts $aFile "# $aGenInfo" + + puts $aFile "" + puts $aFile "VERSION=$aCasVer" + puts $aFile "PRODUCTS_PATH=\"$::PRODUCTS_PATH\"" + + puts $aFile "" + puts $aFile "# Optional 3rd-parties switches" + foreach anEnvIter $::THE_ENV_VARIABLES { + set aName ${anEnvIter} + set aValue [set ::${anEnvIter}] + if { "$aValue" == "true" } { + puts $aFile "CONFIG += ${aName}" + } else { + #puts $aFile "CONFIG -= ${aName}" + } + } + + puts $aFile "" + puts $aFile "# Additional headers search paths" + foreach anIncPath $::CSF_OPT_INC { + puts $aFile "INCLUDEPATH += \"${anIncPath}\"" + } + + puts $aFile "" + puts $aFile "# Additional libraries search paths" + foreach aLibPath [set ::CSF_OPT_LIB$::ARCH] { + puts $aFile "LIBS += -L\"${aLibPath}\"" + } + + if { "$::tcl_platform(platform)" == "windows" } { + puts $aFile "" + puts $aFile "# Additional DLLs search paths" + foreach aDllPath [set ::CSF_OPT_BIN$::ARCH] { + puts $aFile "LIBS += -L\"${aDllPath}\"" + } + } + + puts $aFile "" + close $aFile + puts "Configuration saved to file '$aCustomFilePath'" + } }