From fad8962a729f299856a57d941ef3477a4d8c6ca5 Mon Sep 17 00:00:00 2001 From: san Date: Thu, 14 Mar 2013 17:21:47 +0400 Subject: [PATCH] 0023821: Improve qmake project files for Qt samples Project file extension corrected for VS 2010/2012 solutions Sources and resource files from Common and Interface sub-foldrs added to qmake project files from their original location. RES_DIR environment variable redirected to the binary directory, all resource files copied there to keep the source tree intact. RES_DIR environment variable corrected under Linux/MacOS similalry to Windows. Makefile generation corrected under MacOS: - filenames used as the output for the extra compilers instead of the absolute paths. - mkdir and cp command options corrected --- samples/qt/IESample/IESample-vc10.sln | 2 +- samples/qt/IESample/IESample-vc11.sln | 2 +- samples/qt/IESample/IESample-vc7.sln | 1 + samples/qt/IESample/IESample-vc9.sln | 1 + samples/qt/IESample/IESample.pro | 50 ++++++++++++++--- samples/qt/IESample/env.bat | 6 +- samples/qt/IESample/env.sh | 4 ++ .../qt/IESample/generation-vc-projects.bat | 1 + samples/qt/IESample/run.sh | 5 -- samples/qt/Tutorial/Tutorial-vc10.sln | 2 +- samples/qt/Tutorial/Tutorial-vc11.sln | 2 +- samples/qt/Tutorial/Tutorial-vc7.sln | 1 + samples/qt/Tutorial/Tutorial.pro | 55 +++++++++++++++---- samples/qt/Tutorial/env.bat | 6 +- samples/qt/Tutorial/env.sh | 4 ++ .../qt/Tutorial/generation-vc-projects.bat | 1 + samples/qt/Tutorial/run.sh | 5 -- 17 files changed, 108 insertions(+), 40 deletions(-) diff --git a/samples/qt/IESample/IESample-vc10.sln b/samples/qt/IESample/IESample-vc10.sln index f358270ad7..70a166763d 100644 --- a/samples/qt/IESample/IESample-vc10.sln +++ b/samples/qt/IESample/IESample-vc10.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IESample", "IESample.vcproj", "{7FD0453F-8AC0-3EE3-9C11-DD413EF20A44}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IESample", "IESample.vcxproj", "{7FD0453F-8AC0-3EE3-9C11-DD413EF20A44}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/samples/qt/IESample/IESample-vc11.sln b/samples/qt/IESample/IESample-vc11.sln index 8f0d8e1de0..0893d1298b 100644 --- a/samples/qt/IESample/IESample-vc11.sln +++ b/samples/qt/IESample/IESample-vc11.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IESample", "IESample.vcproj", "{7FD0453F-8AC0-3EE3-9C11-DD413EF20A44}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IESample", "IESample.vcxproj", "{7FD0453F-8AC0-3EE3-9C11-DD413EF20A44}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/samples/qt/IESample/IESample-vc7.sln b/samples/qt/IESample/IESample-vc7.sln index 7dce70bd7f..945d3bb42b 100644 --- a/samples/qt/IESample/IESample-vc7.sln +++ b/samples/qt/IESample/IESample-vc7.sln @@ -1,4 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 8.00 +# Visual Studio 2003 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IESample", "IESample.vcproj", "{7FD0453F-8AC0-3EE3-9C11-DD413EF20A44}" EndProject Global diff --git a/samples/qt/IESample/IESample-vc9.sln b/samples/qt/IESample/IESample-vc9.sln index 02baed55cc..1c0f562f49 100644 --- a/samples/qt/IESample/IESample-vc9.sln +++ b/samples/qt/IESample/IESample-vc9.sln @@ -1,4 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IESample", "IESample.vcproj", "{7FD0453F-8AC0-3EE3-9C11-DD413EF20A44}" EndProject Global diff --git a/samples/qt/IESample/IESample.pro b/samples/qt/IESample/IESample.pro index 9ce573152e..f820bdc2e0 100755 --- a/samples/qt/IESample/IESample.pro +++ b/samples/qt/IESample/IESample.pro @@ -1,14 +1,29 @@ TEMPLATE = app CONFIG += debug_and_release qt +QT += qt3support TARGET = IESample -HEADERS = src/*.h -SOURCES = src/*.cxx +SAMPLESROOT = $$(CASROOT)/samples/qt -TS_FILES = ./src/Common-icon.ts \ - ./src/Common-string.ts \ - ./src/Interface-string.ts +HEADERS = src/*.h \ + $${SAMPLESROOT}/Common/src/*.h \ + $${SAMPLESROOT}/Interface/src/*.h + +SOURCES = src/*.cxx \ + $${SAMPLESROOT}/Common/src/*.cxx \ + $${SAMPLESROOT}/Interface/src/*.cxx + +TS_FILES = $${SAMPLESROOT}/Common/src/Common-icon.ts \ + $${SAMPLESROOT}/Common/src/Common-string.ts \ + $${SAMPLESROOT}/Interface/src/Interface-string.ts + +RES_FILES = $${SAMPLESROOT}/Common/res/* + +RES_DIR = $$quote($$(RES_DIR)) + +INCLUDEPATH += $$quote($${SAMPLESROOT}/Common/src) +INCLUDEPATH += $$quote($${SAMPLESROOT}/Interface/src) DEFINES = CSFDB @@ -155,16 +170,33 @@ win32 { DEFINES +=WNT WIN32 NO_COMMONSAMPLE_EXPORTS NO_IESAMPLE_EXPORTS } -LIBS += -lTKernel -lPTKernel -lTKMath -lTKService -lTKV3d -lTKV2d \ +LIBS += -lTKernel -lPTKernel -lTKMath -lTKService -lTKV3d \ -lTKBRep -lTKIGES -lTKSTL -lTKVRML -lTKSTEP -lTKSTEPAttr -lTKSTEP209 \ -lTKSTEPBase -lTKShapeSchema -lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \ -lTKXSBase -lTKPShape -lTKShHealing -lTKHLR -lTKTopAlgo -lTKMesh -lTKPrim \ -lTKCDF -lTKBool -lTKBO -lTKFillet -lTKOffset \ +!exists($${RES_DIR}) { + win32 { + system(mkdir $${RES_DIR}) + } else { + system(mkdir -p $${RES_DIR}) + } +} + lrelease.name = LRELEASE ${QMAKE_FILE_IN} -lrelease.commands = lrelease ${QMAKE_FILE_IN} -qm ./res/${QMAKE_FILE_BASE}.qm -lrelease.output = ./res/${QMAKE_FILE_BASE}.qm +lrelease.commands = lrelease ${QMAKE_FILE_IN} -qm $${RES_DIR}/${QMAKE_FILE_BASE}.qm +lrelease.output = ${QMAKE_FILE_BASE}.qm lrelease.input = TS_FILES -lrelease.clean = ./res/${QMAKE_FILE_BASE}.qm +lrelease.clean = $${RES_DIR}/${QMAKE_FILE_BASE}.qm lrelease.CONFIG += no_link target_predeps QMAKE_EXTRA_COMPILERS += lrelease + +copy_res.name = Copy resource ${QMAKE_FILE_IN} +copy_res.output = ${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} +copy_res.clean = $${RES_DIR}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} +copy_res.input = RES_FILES +copy_res.CONFIG += no_link target_predeps +win32: copy_res.commands = type ${QMAKE_FILE_IN} > $${RES_DIR}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} +unix: copy_res.commands = cp -f ${QMAKE_FILE_IN} $${RES_DIR} +QMAKE_EXTRA_COMPILERS += copy_res diff --git a/samples/qt/IESample/env.bat b/samples/qt/IESample/env.bat index d42ee2c7ef..69284cc0da 100755 --- a/samples/qt/IESample/env.bat +++ b/samples/qt/IESample/env.bat @@ -1,3 +1,3 @@ -SET RES_DIR=%~dp0res -SET CSF_ResourcesDefaults=%RES_DIR% -SET CSF_IEResourcesDefaults=%RES_DIR% +SET "RES_DIR=%~dp0win%ARCH%\%VCVER%\res" +SET "CSF_ResourcesDefaults=%RES_DIR%" +SET "CSF_IEResourcesDefaults=%RES_DIR%" diff --git a/samples/qt/IESample/env.sh b/samples/qt/IESample/env.sh index a8b897d82c..dcc2990425 100755 --- a/samples/qt/IESample/env.sh +++ b/samples/qt/IESample/env.sh @@ -17,6 +17,10 @@ if test `uname -s` == "Darwin" && test "${WOKHOME}" == ""; then exit 1 fi +host=`uname -s` +export STATION=$host +export RES_DIR=${aSamplePath}/${STATION}/res + export PATH=${QTDIR}/bin:${PATH} source $CASROOT/env.sh diff --git a/samples/qt/IESample/generation-vc-projects.bat b/samples/qt/IESample/generation-vc-projects.bat index 8e9cad24f3..259981522b 100644 --- a/samples/qt/IESample/generation-vc-projects.bat +++ b/samples/qt/IESample/generation-vc-projects.bat @@ -6,6 +6,7 @@ REM second argument specifies architecture) (win32 or win64) REM third argument specifies Debug or Release mode call .\..\..\..\env.bat %1 %2 %3 +call %~dp0env.bat if not "%1" == "" ( if /I "%1" == "vc8" ( diff --git a/samples/qt/IESample/run.sh b/samples/qt/IESample/run.sh index 63dccbe243..d9d8d2acef 100755 --- a/samples/qt/IESample/run.sh +++ b/samples/qt/IESample/run.sh @@ -4,11 +4,6 @@ export aSamplePath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" if [ -e "${aSamplePath}/env.sh" ]; then source "${aSamplePath}/env.sh"; fi cd $aSamplePath -host=`uname -s` -STATION=$host - -RES_DIR="${aSamplePath}/res" - aSystem=`uname -s` if [ "$aSystem" == "Darwin" ] && [ "$MACOSX_USE_GLX" != "true" ]; then if [ "${CASDEB}" == "d" ]; then diff --git a/samples/qt/Tutorial/Tutorial-vc10.sln b/samples/qt/Tutorial/Tutorial-vc10.sln index ba41beef9b..4fb1550abd 100644 --- a/samples/qt/Tutorial/Tutorial-vc10.sln +++ b/samples/qt/Tutorial/Tutorial-vc10.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial", "Tutorial.vcproj", "{59DEDC8A-A5ED-31E8-8F2B-8D996E3A41D6}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial", "Tutorial.vcxproj", "{59DEDC8A-A5ED-31E8-8F2B-8D996E3A41D6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/samples/qt/Tutorial/Tutorial-vc11.sln b/samples/qt/Tutorial/Tutorial-vc11.sln index 6d86e82087..ef211cde2e 100644 --- a/samples/qt/Tutorial/Tutorial-vc11.sln +++ b/samples/qt/Tutorial/Tutorial-vc11.sln @@ -1,6 +1,6 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 2012 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial", "Tutorial.vcproj", "{59DEDC8A-A5ED-31E8-8F2B-8D996E3A41D6}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial", "Tutorial.vcxproj", "{59DEDC8A-A5ED-31E8-8F2B-8D996E3A41D6}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/samples/qt/Tutorial/Tutorial-vc7.sln b/samples/qt/Tutorial/Tutorial-vc7.sln index d1d2281af8..04c876ed55 100644 --- a/samples/qt/Tutorial/Tutorial-vc7.sln +++ b/samples/qt/Tutorial/Tutorial-vc7.sln @@ -1,4 +1,5 @@ Microsoft Visual Studio Solution File, Format Version 8.00 +# Visual Studio 2003 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tutorial", "Tutorial.vcproj", "{59DEDC8A-A5ED-31E8-8F2B-8D996E3A41D6}" EndProject Global diff --git a/samples/qt/Tutorial/Tutorial.pro b/samples/qt/Tutorial/Tutorial.pro index 10980d7ddc..25793b970a 100755 --- a/samples/qt/Tutorial/Tutorial.pro +++ b/samples/qt/Tutorial/Tutorial.pro @@ -1,16 +1,31 @@ TEMPLATE = app CONFIG += debug_and_release qt +QT += qt3support TARGET = Tutorial -HEADERS = src/*.h -SOURCES = src/*.cxx +SAMPLESROOT = $$(CASROOT)/samples/qt +HEADERS = src/*.h \ + $${SAMPLESROOT}/Common/src/*.h \ + $${SAMPLESROOT}/Interface/src/*.h -TS_FILES = ./src/Common-icon.ts \ - ./src/Common-string.ts \ - ./src/Tutorial-icon.ts \ - ./src/Tutorial-string.ts +SOURCES = src/*.cxx \ + $${SAMPLESROOT}/Common/src/*.cxx \ + $${SAMPLESROOT}/Interface/src/*.cxx + +TS_FILES = $${SAMPLESROOT}/Common/src/Common-icon.ts \ + $${SAMPLESROOT}/Common/src/Common-string.ts \ + ./src/Tutorial-icon.ts \ + ./src/Tutorial-string.ts + +RES_FILES = $${SAMPLESROOT}/Common/res/* \ + ./res/* + +RES_DIR = $$quote($$(RES_DIR)) + +INCLUDEPATH += $$quote($${SAMPLESROOT}/Common/src) +INCLUDEPATH += $$quote($${SAMPLESROOT}/Interface/src) DEFINES = CSFDB @@ -157,16 +172,34 @@ win32 { DEFINES +=WNT WIN32 NO_COMMONSAMPLE_EXPORTS NO_IESAMPLE_EXPORTS } -LIBS += -lTKernel -lPTKernel -lTKMath -lTKService -lTKV3d -lTKV2d \ +LIBS += -lTKernel -lPTKernel -lTKMath -lTKService -lTKV3d \ -lTKBRep -lTKIGES -lTKSTL -lTKVRML -lTKSTEP -lTKSTEPAttr -lTKSTEP209 \ -lTKSTEPBase -lTKShapeSchema -lTKGeomBase -lTKGeomAlgo -lTKG3d -lTKG2d \ -lTKXSBase -lTKPShape -lTKShHealing -lTKHLR -lTKTopAlgo -lTKMesh -lTKPrim \ -lTKCDF -lTKBool -lTKBO -lTKFillet -lTKOffset \ +!exists($${RES_DIR}) { + win32 { + system(mkdir $${RES_DIR}) + } else { + system(mkdir -p $${RES_DIR}) + } +} + lrelease.name = LRELEASE ${QMAKE_FILE_IN} -lrelease.commands = lrelease ${QMAKE_FILE_IN} -qm ./res/${QMAKE_FILE_BASE}.qm -lrelease.output = ./res/${QMAKE_FILE_BASE}.qm +lrelease.commands = lrelease ${QMAKE_FILE_IN} -qm $${RES_DIR}/${QMAKE_FILE_BASE}.qm +lrelease.output = ${QMAKE_FILE_BASE}.qm lrelease.input = TS_FILES -lrelease.clean = ./res/${QMAKE_FILE_BASE}.qm +lrelease.clean = $${RES_DIR}/${QMAKE_FILE_BASE}.qm lrelease.CONFIG += no_link target_predeps -QMAKE_EXTRA_COMPILERS += lrelease \ No newline at end of file +QMAKE_EXTRA_COMPILERS += lrelease + +copy_res.name = Copy resource ${QMAKE_FILE_IN} +copy_res.output = ${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} +copy_res.clean = $${RES_DIR}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} +copy_res.input = RES_FILES +copy_res.CONFIG += no_link target_predeps +win32: copy_res.commands = type ${QMAKE_FILE_IN} > $${RES_DIR}/${QMAKE_FILE_BASE}${QMAKE_FILE_EXT} +unix: copy_res.commands = cp -f ${QMAKE_FILE_IN} $${RES_DIR} +QMAKE_EXTRA_COMPILERS += copy_res + diff --git a/samples/qt/Tutorial/env.bat b/samples/qt/Tutorial/env.bat index a3b4345e0a..12c9d7f2a4 100755 --- a/samples/qt/Tutorial/env.bat +++ b/samples/qt/Tutorial/env.bat @@ -1,4 +1,4 @@ -SET RES_DIR=%~dp0res -SET CSF_ResourcesDefaults=%RES_DIR% -SET CSF_TutorialResourcesDefaults=%RES_DIR% +SET "RES_DIR=%~dp0win%ARCH%\%VCVER%\res" +SET "CSF_ResourcesDefaults=%RES_DIR%" +SET "CSF_TutorialResourcesDefaults=%RES_DIR%" diff --git a/samples/qt/Tutorial/env.sh b/samples/qt/Tutorial/env.sh index a8b897d82c..dcc2990425 100755 --- a/samples/qt/Tutorial/env.sh +++ b/samples/qt/Tutorial/env.sh @@ -17,6 +17,10 @@ if test `uname -s` == "Darwin" && test "${WOKHOME}" == ""; then exit 1 fi +host=`uname -s` +export STATION=$host +export RES_DIR=${aSamplePath}/${STATION}/res + export PATH=${QTDIR}/bin:${PATH} source $CASROOT/env.sh diff --git a/samples/qt/Tutorial/generation-vc-projects.bat b/samples/qt/Tutorial/generation-vc-projects.bat index 1e1d5869f1..d6c7ee4769 100644 --- a/samples/qt/Tutorial/generation-vc-projects.bat +++ b/samples/qt/Tutorial/generation-vc-projects.bat @@ -6,6 +6,7 @@ REM second argument specifies architecture) (win32 or win64) REM third argument specifies Debug or Release mode call .\..\..\..\env.bat %1 %2 %3 +call %~dp0env.bat if not "%1" == "" ( if /I "%1" == "vc8" ( diff --git a/samples/qt/Tutorial/run.sh b/samples/qt/Tutorial/run.sh index 9637375493..c2eb83498f 100755 --- a/samples/qt/Tutorial/run.sh +++ b/samples/qt/Tutorial/run.sh @@ -4,11 +4,6 @@ export aSamplePath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" if [ -e "${aSamplePath}/env.sh" ]; then source "${aSamplePath}/env.sh"; fi cd $aSamplePath -host=`uname -s` -STATION=$host - -RES_DIR="${aSamplePath}/res" - aSystem=`uname -s` if [ "$aSystem" == "Darwin" ] && [ "$MACOSX_USE_GLX" != "true" ]; then if [ "${CASDEB}" == "d" ]; then