mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-01-16 21:49:55 +00:00
Merge branch 'windows_test_azdul' into 'master'
Windows test azdul See merge request OpenMW/openmw!60
This commit is contained in:
commit
592d29f7db
3 changed files with 78 additions and 0 deletions
|
@ -34,6 +34,8 @@ VS_VERSION=""
|
||||||
NMAKE=""
|
NMAKE=""
|
||||||
PLATFORM=""
|
PLATFORM=""
|
||||||
CONFIGURATION=""
|
CONFIGURATION=""
|
||||||
|
TEST_FRAMEWORK=""
|
||||||
|
GOOGLE_INSTALL_ROOT=""
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
ARGSTR=$1
|
ARGSTR=$1
|
||||||
|
@ -78,6 +80,9 @@ while [ $# -gt 0 ]; do
|
||||||
CONFIGURATION=$1
|
CONFIGURATION=$1
|
||||||
shift ;;
|
shift ;;
|
||||||
|
|
||||||
|
t )
|
||||||
|
TEST_FRAMEWORK=true ;;
|
||||||
|
|
||||||
h )
|
h )
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
Usage: $0 [-cdehkpuvV]
|
Usage: $0 [-cdehkpuvV]
|
||||||
|
@ -94,6 +99,8 @@ Options:
|
||||||
Keep the old build directory, default is to delete it.
|
Keep the old build directory, default is to delete it.
|
||||||
-p <Win32/Win64>
|
-p <Win32/Win64>
|
||||||
Set the build platform, can also be set with environment variable PLATFORM.
|
Set the build platform, can also be set with environment variable PLATFORM.
|
||||||
|
-t
|
||||||
|
Build unit tests / Google test
|
||||||
-u
|
-u
|
||||||
Configure for unity builds.
|
Configure for unity builds.
|
||||||
-v <2013/2015/2017>
|
-v <2013/2015/2017>
|
||||||
|
@ -395,6 +402,16 @@ if [ -z $SKIP_DOWNLOAD ]; then
|
||||||
download "SDL 2.0.7" \
|
download "SDL 2.0.7" \
|
||||||
"https://www.libsdl.org/release/SDL2-devel-2.0.7-VC.zip" \
|
"https://www.libsdl.org/release/SDL2-devel-2.0.7-VC.zip" \
|
||||||
"SDL2-2.0.7.zip"
|
"SDL2-2.0.7.zip"
|
||||||
|
|
||||||
|
# Google test and mock
|
||||||
|
if [ ! -z $TEST_FRAMEWORK ]; then
|
||||||
|
echo "Google test 1.8.1..."
|
||||||
|
if [ -d googletest ]; then
|
||||||
|
printf " Google test exists, skipping."
|
||||||
|
else
|
||||||
|
git clone -b release-1.8.1 https://github.com/google/googletest.git
|
||||||
|
fi
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cd .. #/..
|
cd .. #/..
|
||||||
|
@ -670,6 +687,52 @@ printf "SDL 2.0.7... "
|
||||||
add_runtime_dlls "$(pwd)/SDL2-2.0.7/lib/x${ARCHSUFFIX}/SDL2.dll"
|
add_runtime_dlls "$(pwd)/SDL2-2.0.7/lib/x${ARCHSUFFIX}/SDL2.dll"
|
||||||
echo Done.
|
echo Done.
|
||||||
}
|
}
|
||||||
|
cd $DEPS
|
||||||
|
echo
|
||||||
|
# Google Test and Google Mock
|
||||||
|
if [ ! -z $TEST_FRAMEWORK ]; then
|
||||||
|
printf "Google test 1.8.1 ..."
|
||||||
|
|
||||||
|
cd googletest
|
||||||
|
if [ ! -d build ]; then
|
||||||
|
mkdir build
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd build
|
||||||
|
|
||||||
|
GOOGLE_INSTALL_ROOT="${DEPS_INSTALL}/GoogleTest"
|
||||||
|
if [ $CONFIGURATION == "Debug" ]; then
|
||||||
|
DEBUG_SUFFIX="d"
|
||||||
|
else
|
||||||
|
DEBUG_SUFFIX=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -d $GOOGLE_INSTALL_ROOT ]; then
|
||||||
|
|
||||||
|
cmake .. -DCMAKE_BUILD_TYPE="${CONFIGURATION}" -DCMAKE_INSTALL_PREFIX="${GOOGLE_INSTALL_ROOT}" -DCMAKE_USE_WIN32_THREADS_INIT=1 -G "${GENERATOR}" -DBUILD_SHARED_LIBS=1
|
||||||
|
cmake --build . --config "${CONFIGURATION}"
|
||||||
|
cmake --build . --target install --config "${CONFIGURATION}"
|
||||||
|
|
||||||
|
add_runtime_dlls "${GOOGLE_INSTALL_ROOT}\bin\gtest_main${DEBUG_SUFFIX}.dll"
|
||||||
|
add_runtime_dlls "${GOOGLE_INSTALL_ROOT}\bin\gtest${DEBUG_SUFFIX}.dll"
|
||||||
|
add_runtime_dlls "${GOOGLE_INSTALL_ROOT}\bin\gmock_main${DEBUG_SUFFIX}.dll"
|
||||||
|
add_runtime_dlls "${GOOGLE_INSTALL_ROOT}\bin\gmock${DEBUG_SUFFIX}.dll"
|
||||||
|
fi
|
||||||
|
|
||||||
|
add_cmake_opts -DBUILD_UNITTESTS=yes
|
||||||
|
# FindGTest and FindGMock do not work perfectly on Windows
|
||||||
|
# but we can help them by telling them everything we know about installation
|
||||||
|
add_cmake_opts -DGMOCK_ROOT="$GOOGLE_INSTALL_ROOT"
|
||||||
|
add_cmake_opts -DGTEST_ROOT="$GOOGLE_INSTALL_ROOT"
|
||||||
|
add_cmake_opts -DGTEST_LIBRARY="$GOOGLE_INSTALL_ROOT/lib/gtest${DEBUG_SUFFIX}.lib"
|
||||||
|
add_cmake_opts -DGTEST_MAIN_LIBRARY="$GOOGLE_INSTALL_ROOT/lib/gtest_main${DEBUG_SUFFIX}.lib"
|
||||||
|
add_cmake_opts -DGMOCK_LIBRARY="$GOOGLE_INSTALL_ROOT/lib/gmock${DEBUG_SUFFIX}.lib"
|
||||||
|
add_cmake_opts -DGMOCK_MAIN_LIBRARY="$GOOGLE_INSTALL_ROOT/lib/gmock_main${DEBUG_SUFFIX}.lib"
|
||||||
|
add_cmake_opts -DGTEST_LINKED_AS_SHARED_LIBRARY=True
|
||||||
|
echo Done.
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
cd $DEPS_INSTALL/..
|
cd $DEPS_INSTALL/..
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -40,4 +40,13 @@ if (GTEST_FOUND AND GMOCK_FOUND)
|
||||||
add_definitions(--coverage)
|
add_definitions(--coverage)
|
||||||
target_link_libraries(openmw_test_suite gcov)
|
target_link_libraries(openmw_test_suite gcov)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if (MSVC)
|
||||||
|
if (CMAKE_CL_64)
|
||||||
|
# Debug version of openmw_unit_tests needs increased number of sections beyond 2^16
|
||||||
|
# just like openmw and openmw-cs
|
||||||
|
set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /bigobj")
|
||||||
|
endif (CMAKE_CL_64)
|
||||||
|
endif (MSVC)
|
||||||
|
|
||||||
endif()
|
endif()
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
#include <gtest/gtest.h>
|
#include <gtest/gtest.h>
|
||||||
|
|
||||||
|
#ifdef WIN32
|
||||||
|
//we cannot use GTEST_API_ before main if we're building standalone exe application,
|
||||||
|
//and we're linking GoogleTest / GoogleMock as DLLs and not linking gtest_main / gmock_main
|
||||||
|
int main(int argc, char **argv) {
|
||||||
|
#else
|
||||||
GTEST_API_ int main(int argc, char **argv) {
|
GTEST_API_ int main(int argc, char **argv) {
|
||||||
|
#endif
|
||||||
testing::InitGoogleTest(&argc, argv);
|
testing::InitGoogleTest(&argc, argv);
|
||||||
return RUN_ALL_TESTS();
|
return RUN_ALL_TESTS();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue