mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-03 02:09:41 +00:00
MSVC: Fix all warnings at level 4, upgrade Qt5 to 5.15.2 to also reduce warnings, disabled 5054 warnings due to Qt5's use of deprecated operators in C++20 .
This commit is contained in:
parent
9e59a7e271
commit
02ef9c953e
5 changed files with 87 additions and 97 deletions
|
@ -376,7 +376,7 @@ macOS12_Xcode13:
|
|||
- $env:CCACHE_BASEDIR = Get-Location
|
||||
- $env:CCACHE_DIR = "$(Get-Location)\ccache"
|
||||
- New-Item -Type Directory -Force -Path $env:CCACHE_DIR
|
||||
- sh CI/before_script.msvc.sh -c $config -p Win64 -v 2019 -k -V -N -b -t -C $multiview
|
||||
- sh CI/before_script.msvc.sh -c $config -p Win64 -v 2019 -k -V -N -b -t -C $multiview -E
|
||||
- cd MSVC2019_64_Ninja
|
||||
- .\ActivateMSVC.ps1
|
||||
- cmake --build . --config $config
|
||||
|
@ -439,8 +439,7 @@ macOS12_Xcode13:
|
|||
- .Windows_Ninja_Base
|
||||
variables:
|
||||
config: "RelWithDebInfo"
|
||||
# Gitlab can't successfully execute following binaries due to unknown reason
|
||||
# executables: "openmw_test_suite.exe,openmw_detournavigator_navmeshtilescache_benchmark.exe"
|
||||
executables: "openmw_test_suite.exe,openmw_detournavigator_navmeshtilescache_benchmark.exe"
|
||||
|
||||
.Windows_MSBuild_Base:
|
||||
tags:
|
||||
|
@ -478,7 +477,7 @@ macOS12_Xcode13:
|
|||
- $env:CCACHE_BASEDIR = Get-Location
|
||||
- $env:CCACHE_DIR = "$(Get-Location)\ccache"
|
||||
- New-Item -Type Directory -Force -Path $env:CCACHE_DIR
|
||||
- sh CI/before_script.msvc.sh -c $config -p Win64 -v 2019 -k -V -b -t -C $multiview -E
|
||||
- sh CI/before_script.msvc.sh -c $config -p Win64 -v 2019 -k -V -b -t -C $multiview -E
|
||||
- cd MSVC2019_64
|
||||
- cmake --build . --config $config
|
||||
- ccache --show-stats
|
||||
|
@ -538,7 +537,6 @@ Windows_MSBuild_RelWithDebInfo:
|
|||
- .Windows_MSBuild_Base
|
||||
variables:
|
||||
config: "RelWithDebInfo"
|
||||
# Gitlab can't successfully execute following binaries due to unknown reason
|
||||
executables: "openmw_test_suite.exe,openmw_detournavigator_navmeshtilescache_benchmark.exe"
|
||||
# temporarily enabled while we're linking these on the downloads page
|
||||
rules:
|
||||
|
|
|
@ -855,108 +855,77 @@ printf "${OSG_ARCHIVE_NAME}... "
|
|||
cd $DEPS
|
||||
echo
|
||||
# Qt
|
||||
if [ -z $APPVEYOR ]; then
|
||||
printf "Qt 5.15.0... "
|
||||
else
|
||||
printf "Qt 5.13 AppVeyor... "
|
||||
fi
|
||||
printf "Qt 5.15.2... "
|
||||
{
|
||||
if [ $BITS -eq 64 ]; then
|
||||
SUFFIX="_64"
|
||||
else
|
||||
SUFFIX=""
|
||||
fi
|
||||
if [ -z $APPVEYOR ]; then
|
||||
cd $DEPS_INSTALL
|
||||
|
||||
qt_version="5.15.0"
|
||||
if [ "win${BITS}_msvc${MSVC_REAL_YEAR}${SUFFIX}" == "win64_msvc2017_64" ]; then
|
||||
echo "This combination of options is known not to work. Falling back to Qt 5.14.2."
|
||||
qt_version="5.14.2"
|
||||
cd $DEPS_INSTALL
|
||||
|
||||
qt_version="5.15.2"
|
||||
|
||||
QT_SDK="$(real_pwd)/Qt/${qt_version}/msvc${MSVC_REAL_YEAR}${SUFFIX}"
|
||||
|
||||
if [ -d "Qt/${qt_version}" ]; then
|
||||
printf "Exists. "
|
||||
elif [ -z $SKIP_EXTRACT ]; then
|
||||
if [ $MISSINGPYTHON -ne 0 ]; then
|
||||
echo "Can't be automatically installed without Python."
|
||||
wrappedExit 1
|
||||
fi
|
||||
|
||||
QT_SDK="$(real_pwd)/Qt/${qt_version}/msvc${MSVC_REAL_YEAR}${SUFFIX}"
|
||||
|
||||
if [ -d "Qt/${qt_version}" ]; then
|
||||
printf "Exists. "
|
||||
elif [ -z $SKIP_EXTRACT ]; then
|
||||
if [ $MISSINGPYTHON -ne 0 ]; then
|
||||
echo "Can't be automatically installed without Python."
|
||||
wrappedExit 1
|
||||
fi
|
||||
|
||||
pushd "$DEPS" > /dev/null
|
||||
if ! [ -d 'aqt-venv' ]; then
|
||||
echo " Creating Virtualenv for aqt..."
|
||||
run_cmd python -m venv aqt-venv
|
||||
fi
|
||||
if [ -d 'aqt-venv/bin' ]; then
|
||||
VENV_BIN_DIR='bin'
|
||||
elif [ -d 'aqt-venv/Scripts' ]; then
|
||||
VENV_BIN_DIR='Scripts'
|
||||
else
|
||||
echo "Error: Failed to create virtualenv in expected location."
|
||||
wrappedExit 1
|
||||
fi
|
||||
|
||||
# check version
|
||||
aqt-venv/${VENV_BIN_DIR}/pip list | grep 'aqtinstall\s*1.1.3' || [ $? -ne 0 ]
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " Installing aqt wheel into virtualenv..."
|
||||
run_cmd "aqt-venv/${VENV_BIN_DIR}/pip" install aqtinstall==1.1.3
|
||||
fi
|
||||
popd > /dev/null
|
||||
|
||||
rm -rf Qt
|
||||
|
||||
mkdir Qt
|
||||
cd Qt
|
||||
|
||||
run_cmd "${DEPS}/aqt-venv/${VENV_BIN_DIR}/aqt" install $qt_version windows desktop "win${BITS}_msvc${MSVC_REAL_YEAR}${SUFFIX}"
|
||||
|
||||
printf " Cleaning up extraneous data... "
|
||||
rm -rf Qt/{aqtinstall.log,Tools}
|
||||
|
||||
echo Done.
|
||||
pushd "$DEPS" > /dev/null
|
||||
if ! [ -d 'aqt-venv' ]; then
|
||||
echo " Creating Virtualenv for aqt..."
|
||||
run_cmd python -m venv aqt-venv
|
||||
fi
|
||||
if [ -d 'aqt-venv/bin' ]; then
|
||||
VENV_BIN_DIR='bin'
|
||||
elif [ -d 'aqt-venv/Scripts' ]; then
|
||||
VENV_BIN_DIR='Scripts'
|
||||
else
|
||||
echo "Error: Failed to create virtualenv in expected location."
|
||||
wrappedExit 1
|
||||
fi
|
||||
|
||||
cd $QT_SDK
|
||||
add_cmake_opts -DQT_QMAKE_EXECUTABLE="${QT_SDK}/bin/qmake.exe" \
|
||||
-DCMAKE_PREFIX_PATH="$QT_SDK"
|
||||
for CONFIGURATION in ${CONFIGURATIONS[@]}; do
|
||||
if [ $CONFIGURATION == "Debug" ]; then
|
||||
DLLSUFFIX="d"
|
||||
else
|
||||
DLLSUFFIX=""
|
||||
fi
|
||||
add_runtime_dlls $CONFIGURATION "$(pwd)/bin/Qt5"{Core,Gui,Network,OpenGL,Widgets}${DLLSUFFIX}.dll
|
||||
add_qt_platform_dlls $CONFIGURATION "$(pwd)/plugins/platforms/qwindows${DLLSUFFIX}.dll"
|
||||
add_qt_style_dlls $CONFIGURATION "$(pwd)/plugins/styles/qwindowsvistastyle${DLLSUFFIX}.dll"
|
||||
done
|
||||
echo Done.
|
||||
else
|
||||
# default to msvc2019 which pre-loads Qt 5.15.2
|
||||
qt_version="5.15.2"
|
||||
if [ "msvc${MSVC_REAL_YEAR}" == "msvc2017" ]; then
|
||||
qt_version="5.13"
|
||||
fi
|
||||
QT_SDK="C:/Qt/${qt_version}/msvc${MSVC_REAL_YEAR}${SUFFIX}"
|
||||
# check version
|
||||
aqt-venv/${VENV_BIN_DIR}/pip list | grep 'aqtinstall\s*1.1.3' || [ $? -ne 0 ]
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " Installing aqt wheel into virtualenv..."
|
||||
run_cmd "aqt-venv/${VENV_BIN_DIR}/pip" install aqtinstall==1.1.3
|
||||
fi
|
||||
popd > /dev/null
|
||||
|
||||
rm -rf Qt
|
||||
|
||||
mkdir Qt
|
||||
cd Qt
|
||||
|
||||
run_cmd "${DEPS}/aqt-venv/${VENV_BIN_DIR}/aqt" install $qt_version windows desktop "win${BITS}_msvc${MSVC_REAL_YEAR}${SUFFIX}"
|
||||
|
||||
printf " Cleaning up extraneous data... "
|
||||
rm -rf Qt/{aqtinstall.log,Tools}
|
||||
|
||||
add_cmake_opts -DQT_QMAKE_EXECUTABLE="${QT_SDK}/bin/qmake.exe" \
|
||||
-DCMAKE_PREFIX_PATH="$QT_SDK"
|
||||
for CONFIGURATION in ${CONFIGURATIONS[@]}; do
|
||||
if [ $CONFIGURATION == "Debug" ]; then
|
||||
DLLSUFFIX="d"
|
||||
else
|
||||
DLLSUFFIX=""
|
||||
fi
|
||||
DIR=$(windowsPathAsUnix "${QT_SDK}")
|
||||
add_runtime_dlls $CONFIGURATION "${DIR}/bin/Qt5"{Core,Gui,Network,OpenGL,Widgets}${DLLSUFFIX}.dll
|
||||
add_qt_platform_dlls $CONFIGURATION "${DIR}/plugins/platforms/qwindows${DLLSUFFIX}.dll"
|
||||
add_qt_style_dlls $CONFIGURATION "${DIR}/plugins/styles/qwindowsvistastyle${DLLSUFFIX}.dll"
|
||||
done
|
||||
echo Done.
|
||||
fi
|
||||
|
||||
cd $QT_SDK
|
||||
add_cmake_opts -DQT_QMAKE_EXECUTABLE="${QT_SDK}/bin/qmake.exe" \
|
||||
-DCMAKE_PREFIX_PATH="$QT_SDK"
|
||||
for CONFIGURATION in ${CONFIGURATIONS[@]}; do
|
||||
if [ $CONFIGURATION == "Debug" ]; then
|
||||
DLLSUFFIX="d"
|
||||
else
|
||||
DLLSUFFIX=""
|
||||
fi
|
||||
add_runtime_dlls $CONFIGURATION "$(pwd)/bin/Qt5"{Core,Gui,Network,OpenGL,Widgets}${DLLSUFFIX}.dll
|
||||
add_qt_platform_dlls $CONFIGURATION "$(pwd)/plugins/platforms/qwindows${DLLSUFFIX}.dll"
|
||||
add_qt_style_dlls $CONFIGURATION "$(pwd)/plugins/styles/qwindowsvistastyle${DLLSUFFIX}.dll"
|
||||
done
|
||||
echo Done.
|
||||
}
|
||||
cd $DEPS
|
||||
echo
|
||||
|
|
|
@ -690,7 +690,7 @@ if (WIN32)
|
|||
|
||||
# Play a bit with the warning levels
|
||||
|
||||
set(WARNINGS /W4)
|
||||
set(WARNINGS "/W4")
|
||||
|
||||
set(WARNINGS_DISABLE
|
||||
4100 # Unreferenced formal parameter (-Wunused-parameter)
|
||||
|
@ -712,11 +712,11 @@ if (WIN32)
|
|||
endif()
|
||||
|
||||
foreach(d ${WARNINGS_DISABLE})
|
||||
list(APPEND WARNINGS /wd${d})
|
||||
set(WARNINGS "${WARNINGS} /wd${d}")
|
||||
endforeach(d)
|
||||
|
||||
if(OPENMW_MSVC_WERROR)
|
||||
list(APPEND WARNINGS /WX)
|
||||
set(WARNINGS "${WARNINGS} /WX")
|
||||
endif()
|
||||
|
||||
set_target_properties(components PROPERTIES COMPILE_FLAGS "${WARNINGS}")
|
||||
|
@ -771,7 +771,8 @@ if (WIN32)
|
|||
endif()
|
||||
|
||||
if (BUILD_BULLETOBJECTTOOL)
|
||||
set_target_properties(openmw-bulletobjecttool PROPERTIES COMPILE_FLAGS "${WARNINGS} ${MT_BUILD}")
|
||||
set(WARNINGS "${WARNINGS} ${MT_BUILD}")
|
||||
set_target_properties(openmw-bulletobjecttool PROPERTIES COMPILE_FLAGS "${WARNINGS}")
|
||||
endif()
|
||||
endif(MSVC)
|
||||
|
||||
|
|
|
@ -225,6 +225,14 @@ namespace NifOsg
|
|||
std::vector<FloatInterpolator> mKeyFrames;
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( push )
|
||||
/*
|
||||
* Warning C4250: 'NifOsg::KeyframeController': inherits 'osg::Callback::osg::Callback::asCallback' via dominance,
|
||||
* there is no way to solved this if an object must inherit from both osg::Object and osg::Callback
|
||||
*/
|
||||
#pragma warning( disable : 4250 )
|
||||
#endif
|
||||
class KeyframeController : public SceneUtil::KeyframeController, public SceneUtil::NodeCallback<KeyframeController, NifOsg::MatrixTransform*>
|
||||
{
|
||||
public:
|
||||
|
@ -253,6 +261,9 @@ namespace NifOsg
|
|||
|
||||
osg::Quat getXYZRotation(float time) const;
|
||||
};
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
|
||||
class UVController : public SceneUtil::StateSetUpdater, public SceneUtil::Controller
|
||||
{
|
||||
|
|
|
@ -35,6 +35,14 @@ namespace SceneUtil
|
|||
Resource::Animation* mAnimation;
|
||||
};
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( push )
|
||||
/*
|
||||
* Warning C4250: 'SceneUtil::OsgAnimationController': inherits 'osg::Callback::osg::Callback::asCallback' via dominance,
|
||||
* there is no way to solved this if an object must inherit from both osg::Object and osg::Callback
|
||||
*/
|
||||
#pragma warning( disable : 4250 )
|
||||
#endif
|
||||
class OsgAnimationController : public SceneUtil::KeyframeController, public SceneUtil::NodeCallback<OsgAnimationController>
|
||||
{
|
||||
public:
|
||||
|
@ -68,6 +76,9 @@ namespace SceneUtil
|
|||
std::vector<osg::ref_ptr<Resource::Animation>> mMergedAnimationTracks; // Used only by osgAnimation-based formats (e.g. dae)
|
||||
std::vector<EmulatedAnimation> mEmulatedAnimations;
|
||||
};
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning( pop )
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue