Commit 85059766 authored by Jose Fonseca's avatar Jose Fonseca

Remove MSVC build support.

MSVC build of Piglit was broken for over a month.  No point in
sustaining it.

Building with MinGW is the way forward.
Reviewed-by: Brian Paul's avatarBrian Paul <brianp@vmware.com>
parent 77abfdee
......@@ -17,9 +17,9 @@ endif()
project (piglit)
# Require MSVC 2013 U4
if (MSVC AND CMAKE_C_COMPILER_VERSION VERSION_LESS 18.00.31101.0)
message (FATAL_ERROR "Visual Studio 2013 Update 4 or later required")
# Require MinGW
if (MSVC)
message (FATAL_ERROR "Windows builds require MinGW")
endif ()
find_package(Threads)
......
......@@ -101,14 +101,8 @@ Code conventions:
e.g. libpiglitutil_gles2
* Test names are '<lowercasegroupname>-<testname>.' e.g. glsl-novertexdata
* Use int, float, bool except when GL types (GLint, GLfloat) are really needed
* Don't put declarations after code. For example:
if (x < 3)
x = 0;
int y = x * x;
This will not compile with MSVC. The 'int y' declaration must be at the
top of the brace-block.
* Don't use named/designated initializers. They don't compile with MSVC.
* Always declare GL entrypoint pointer type with APIENTRY, or use piglit
dispatch typedef
Test conventions:
......
......@@ -150,83 +150,51 @@ Configure and build.
2.5 Windows
-----------
Install Python.
Install Python 3.
http://www.python.org/download
Install NumPy.
http://sourceforge.net/projects/numpy/files/NumPy
Install CMake.
http://cmake.org/cmake/resources/software.html
Download and install 'Windows' platform.
Install Microsoft Visual Studio 2013 or later.
Install 'Visual C++' feature.
Download and install Ninja
https://github.com/ninja-build/ninja/releases
Install MinGW-w64
https://mingw-w64.org/
Download OpenGL Core API and Extension Header Files.
http://www.opengl.org/registry/#headers
Copy header files to MSVC.
C:\Program Files\Microsoft Visual Studio 12.0\VC\include\GL
Install pip.
http://www.pip-installer.org/en/latest/installing.html
Pass -DGLEXT_INCLUDE_DIR=/path/to/headers
Install python mako.
> c:\Python27\Scripts\pip.exe install mako
> pip install mako
Install NumPy.
> pip install numpy
2.5.1 GLUT
----------
Download freeglut for MSVC.
http://www.transmissionzero.co.uk/software/freeglut-devel
Download freeglut for Mingw.
http://www.transmissionzero.co.uk/software/freeglut-devel/
Open Visual Studio Command Prompt.
Start Menu->All Programs->Visual Studio 2013->Visual Studio Tools->VS2013 x86 Native Tools Command Prompt
CD to piglit directory.
> cmake -H. -Bbuild -G "Ninja" -DGLEXT_INCLUDE_DIR=\path\to\glext -DGLUT_INCLUDE_DIR=\path\to\freeglut\include -DGLUT_glut_LIBRARY=\path\to\freeglut\lib\x64\libfreeglut.a -DGLEXT_INCLUDE_DIR=\path\to\glext
> ninja -C build
Run CMake GUI.
> C:\Program Files\CMake 2.8\bin\cmake-gui.exe .
Configure
- NMake Makefiles
- Use default native compilers
Set these variables in the Advanced view.
- GLUT_INCLUDE_DIR
- GLUT_glut_LIBRARY
Configure
Generate
File->Exit
Build from the Visual Studio Command Prompt.
> nmake
2.5.2 Waffle
------------
Download waffle for MSVC.
Download and build waffle for MinGW.
http://www.waffle-gl.org/
Open the Command Prompt.
CD to piglit directory.
Run CMake GUI.
> C:\Program Files\CMake 2.8\bin\cmake-gui.exe .
Configure
- 'Visual Studio 12 2013', or
- 'Visual Studio 12 2013 Win64'
- Use default native compilers
Set these variables in the Advanced view.
Note that the values provided are for reference purposed and may differ on your system.
- PIGLIT_USE_WAFFLE, BOOL, TRUE
- WAFFLE_INCLUDE_DIRS, PATH, ${waffle_root}\include\waffle
- WAFFLE_LDFLAGS, FILEPATH, ${waffle_root}\lib\waffle-1.lib
- GLEXT_INCLUDE_DIR, PATH, C:\Program Files\Microsoft Visual Studio 12.0\VC\include\GL
Configure
Generate
File->Exit
Build from the Command Prompt.
> cmake --build .
> cmake -H. -Bbuild -G "Ninja" -DGLEXT_INCLUDE_DIR=\path\to\glext -DPIGLIT_USE_WAFFLE=TRUE -DWAFFLE_INCLUDE_DIRS=\path\to\waffle\include\waffle WAFFLE_LDFLAGS=\path\to\waffle\lib\libwaffle-1.a
3. How to run tests
-------------------
......
......@@ -49,12 +49,6 @@ environment:
- MINGW_HOME: C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64
FREEGLUT_ARCHIVE: freeglut-MinGW-3.0.0-1.mp.zip
FREEGLUT_LIB: lib\x64\libfreeglut.a
# - MSVC_ARCH: x86
# FREEGLUT_ARCHIVE: freeglut-MSVC-3.0.0-2.mp.zip
# FREEGLUT_LIB: lib\freeglut.lib
# - MSVC_ARCH: x86_amd64
# FREEGLUT_ARCHIVE: freeglut-MSVC-3.0.0-2.mp.zip
# FREEGLUT_LIB: lib\x64\freeglut.lib
matrix:
fast_finish: true
......@@ -76,8 +70,6 @@ install:
- ninja --version
# Setup MinGW
- if not "%MINGW_HOME%"=="" set Path=%MINGW_HOME%\bin;%Path%
# Setup MSVC
- if not "%MSVC_ARCH%"=="" call "%VS140COMNTOOLS%\..\..\VC\vcvarsall.bat" %MSVC_ARCH%
# Install FreeGlut
- if not exist "%FREEGLUT_ARCHIVE%" appveyor DownloadFile "http://files.transmissionzero.co.uk/software/development/GLUT/%FREEGLUT_ARCHIVE%"
- 7z x -y "%FREEGLUT_ARCHIVE%" > nul
......
......@@ -79,10 +79,7 @@ piglit_add_executable (glsl-fs-fragcoord-zw-ortho glsl-fs-fragcoord-zw-ortho.c)
piglit_add_executable (glsl-fs-fragcoord-zw-perspective glsl-fs-fragcoord-zw-perspective.c)
piglit_add_executable (glsl-fs-loop glsl-fs-loop.c)
piglit_add_executable (glsl-fs-loop-nested glsl-fs-loop-nested.c)
# MSVC fails with "string exceeds 65535 bytes in length" error
IF (NOT MSVC)
piglit_add_executable (glsl-fs-raytrace-bug27060 glsl-fs-raytrace-bug27060.c)
ENDIF ()
piglit_add_executable (glsl-fs-raytrace-bug27060 glsl-fs-raytrace-bug27060.c)
piglit_add_executable (glsl-fs-sampler-numbering glsl-fs-sampler-numbering.c)
piglit_add_executable (glsl-fs-shader-stencil-export glsl-fs-shader-stencil-export.c)
piglit_add_executable (glsl-fs-sqrt-branch glsl-fs-sqrt-branch.c)
......@@ -102,10 +99,7 @@ piglit_add_executable (glsl-fs-pointcoord glsl-fs-pointcoord.c)
piglit_add_executable (glsl-vs-if-bool glsl-vs-if-bool.c)
piglit_add_executable (glsl-vs-loop glsl-vs-loop.c)
piglit_add_executable (glsl-vs-loop-nested glsl-vs-loop-nested.c)
# MSVC fails with "string exceeds 65535 bytes in length" error
IF (NOT MSVC)
piglit_add_executable (glsl-vs-raytrace-bug26691 glsl-vs-raytrace-bug26691.c)
ENDIF ()
piglit_add_executable (glsl-vs-raytrace-bug26691 glsl-vs-raytrace-bug26691.c)
piglit_add_executable (glsl-vs-statechange-1 glsl-vs-statechange-1.c)
piglit_add_executable (glsl-vs-user-varying-ff glsl-vs-user-varying-ff.c)
piglit_add_executable (glsl-light-model glsl-light-model.c)
......
......@@ -29,7 +29,6 @@
#endif
#ifdef __linux__
#include <unistd.h>
#include <sys/types.h>
#include <sys/syscall.h>
#endif
......@@ -64,6 +63,10 @@
# define USE_STDIO
#endif
#if defined(HAVE_UNISTD_H)
#include <unistd.h> // for usleep
#endif
#include "piglit-util.h"
......@@ -116,35 +119,6 @@ int asprintf(char **strp, const char *fmt, ...)
#endif /* HAVE_ASPRINTF */
#ifdef _MSC_VER
char *
basename(char *path)
{
char *res;
// Skip drive letter
if (path[0] != '\0' && path[1] == ':') {
path += 2;
}
// Return pointer to the char after the last directory separator
res = path;
while (true) {
char c = *path++;
switch (c) {
case '\0':
return res;
case '\\':
case '/':
res = ++path;
break;
}
}
}
#endif /* _MSC_VER */
/**
* \brief Split \a string into an array of strings.
*
......@@ -343,12 +317,6 @@ piglit_disable_error_message_boxes(void)
* http://msdn.microsoft.com/en-us/library/sas1dkb2.aspx
*/
_set_error_mode(_OUT_TO_STDERR);
#ifdef _MSC_VER
/* Disable abort message box.
* http://msdn.microsoft.com/en-us/library/e631wekh.aspx
*/
_set_abort_behavior(0, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
#endif
}
#endif /* _WIN32 */
}
......
......@@ -61,31 +61,6 @@ extern "C" {
#define __has_attribute(x) 0
#endif
#if defined(_MSC_VER)
/* windows.h won't define min/max macros if NOMINMAX is defined, however
* stdlib.h will still define them for C files regardless... */
#undef max
#undef min
#if !defined(__cplusplus) && !defined(inline)
#define inline __inline
#endif
#if !defined(__func__)
#define __func__ __FUNCTION__
#endif
#define snprintf _snprintf
#define alloca _alloca
#define usleep(__usec) Sleep(((__usec) + 999)/1000)
char *basename(char *path);
#endif /* defined(_MSC_VER) */
#if (__GNUC__ >= 3)
#define PRINTFLIKE(f, a) __attribute__ ((format(__printf__, f, a)))
#else
......@@ -94,8 +69,6 @@ char *basename(char *path);
#if defined(__GNUC__) || __has_attribute(noreturn)
#define NORETURN __attribute__((noreturn))
#elif defined(_MSC_VER)
#define NORETURN __declspec(noreturn)
#else
#define NORETURN
#endif
......@@ -253,28 +226,6 @@ streq(const char *a, const char *b)
static inline double
strtod_inf(const char *nptr, char **endptr)
{
#if defined(_MSC_VER)
/* skip spaces and tabs */
while (*nptr == ' ' || *nptr == '\t')
nptr++;
#pragma warning( push )
#pragma warning( disable : 4056 ) // overflow in floating-point constant arithmetic
#pragma warning( disable : 4756 ) // overflow in constant arithmetic
if (nptr[0] == 'i' && nptr[1] == 'n' && nptr[2] == 'f') {
/* +infinity */
*endptr = (char *) (nptr + 3);
return INFINITY;
}
else if (nptr[0] == '-' && nptr[1] == 'i' && nptr[2] == 'n' && nptr[3] == 'f') {
/* -infinity */
*endptr = (char *) (nptr + 4);
return -INFINITY;
}
#pragma warning( pop )
/* fall-through */
#endif
return strtod(nptr, endptr);
}
......@@ -354,11 +305,7 @@ strtol_hex(const char *nptr, char **endptr)
static inline char *
strchrnul(const char *s, int c)
{
#if defined(_MSC_VER) && defined(__cplusplus)
char *t = strchr((char *)s, c);
#else
char *t = strchr(s, c);
#endif
return (t == NULL) ? ((char *) s + strlen(s)) : t;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment