- fixed cmake build to work again with mingw

This commit is contained in:
Mark Vejvoda 2012-04-24 03:52:06 +00:00
parent c60900b4f5
commit e5d1cada0e
3 changed files with 69 additions and 60 deletions

View File

@ -6,7 +6,7 @@ NUMCORES=`cat /proc/cpuinfo | grep -cE '^processor'`
mkdir -p build-win32
cd build-win32
cmake -DCMAKE_TOOLCHAIN_FILE=../mk/cmake/Modules/Toolchain-mingw32.cmake -DXERCESC_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include -DXERCESC_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib -DXERCESC_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib/libxerces-c2_8_0.dll -DOPENAL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854 -DOPENAL_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/OpenAL32.dll -DOGG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include -DOGG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libogg.dll -DVORBIS_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libvorbis.dll -DVORBIS_FILE_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libvorbisfile.dll -DLUA_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src -DLUA_LIBRARIES=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/lua5.1.dll -DJPEG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b -DJPEG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libjpeg.dll -DZLIB_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5 -DZLIB_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libz.a -DPNG_PNG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141 -DPNG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libpng.dll -DCURL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include -DCURL_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libcurl.dll -DSDL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include -DFREETYPE_INCLUDE_DIR_ft2build=${PROJECT_SOURCE_DIR}/source/win32_deps/freetype-2.4.8/include -DFREETYPE_INCLUDE_DIR_freetype2=${PROJECT_SOURCE_DIR}/source/win32_deps/freetype-2.4.8/include/freetype -DFREETYPE_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libfreetype-6.dll -DFTGL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/ftgl-2.1.3~rc5/src -DFTGL_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libftgl.a -DGLEW_INCLUDE_PATH=${PROJECT_SOURCE_DIR}/source/win32_deps/glew-1.7.0/include -DGLEW_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/glew32.dll -DCMAKE_INSTALL_PREFIX= -DWANT_STATIC_LIBS=ON ..
cmake -DCMAKE_TOOLCHAIN_FILE=../mk/cmake/Modules/Toolchain-mingw32.cmake -DXERCESC_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/include -DXERCESC_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib -DXERCESC_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib/libxerces-c2_8_0.dll -DOPENAL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/openal-soft-1.12.854 -DOPENAL_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/OpenAL32.dll -DOGG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/libogg-1.2.1/include -DOGG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libogg.dll -DVORBIS_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libvorbis.dll -DVORBIS_FILE_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libvorbisfile.dll -DLUA_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/lua-5.1/src -DLUA_LIBRARIES=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/lua5.1.dll -DJPEG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/jpeg-8b -DJPEG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libjpeg.dll -DZLIB_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/zlib-1.2.5 -DZLIB_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libz.a -DPNG_PNG_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/lpng141 -DPNG_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libpng.dll -DCURL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/curl-7.21.3/include -DCURL_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libcurl.dll -DSDL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/SDL-1.2.x/include -DFREETYPE_INCLUDE_DIR_ft2build=${PROJECT_SOURCE_DIR}/source/win32_deps/freetype-2.4.8/include -DFREETYPE_INCLUDE_DIR_freetype2=${PROJECT_SOURCE_DIR}/source/win32_deps/freetype-2.4.8/include/freetype -DFREETYPE_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libfreetype-6.dll -DFTGL_INCLUDE_DIR=${PROJECT_SOURCE_DIR}/source/win32_deps/ftgl-2.1.3~rc5/src -DFTGL_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/libftgl.a -DGLEW_INCLUDE_PATH=${PROJECT_SOURCE_DIR}/source/win32_deps/glew-1.7.0/include -DGLEW_LIBRARY=${PROJECT_SOURCE_DIR}/source/win32_deps/lib/glew32.dll -DCMAKE_INSTALL_PREFIX= -DWANT_STATIC_LIBS=ON -DHAS_SSE_EXTENSION=ON ..
make -j$NUMCORES

View File

@ -20,53 +20,57 @@ macro(special_check_for_sse _max_sse_level_desired)
include(CheckCXXSourceRuns)
include(CheckCSourceRuns)
if( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
set(SSE_FLAGS)
set(CMAKE_REQUIRED_FLAGS "-msse3")
check_cxx_source_runs("
#include <pmmintrin.h>
int main()
{
__m128d a, b;
double vals[2] = {0};
a = _mm_loadu_pd(vals);
b = _mm_hadd_pd(a,a);
_mm_storeu_pd(vals, b);
return 0;
}"
HAS_SSE3_EXTENSIONS)
set(CMAKE_REQUIRED_FLAGS "-msse2")
check_cxx_source_runs("
#include <emmintrin.h>
int main()
{
__m128d a, b;
double vals[2] = {0};
a = _mm_loadu_pd(vals);
b = _mm_add_pd(a,a);
_mm_storeu_pd(vals,b);
return 0;
}"
HAS_SSE2_EXTENSIONS)
set(CMAKE_REQUIRED_FLAGS "-msse")
check_cxx_source_runs("
#include <xmmintrin.h>
int main()
{
__m128 a, b;
float vals[4] = {0};
a = _mm_loadu_ps(vals);
b = a;
b = _mm_add_ps(a,b);
_mm_storeu_ps(vals,b);
return 0;
}"
HAS_SSE_EXTENSIONS)
IF(NOT MINGW)
if( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
set(SSE_FLAGS)
set(CMAKE_REQUIRED_FLAGS "-msse3")
check_cxx_source_runs("
#include <pmmintrin.h>
int main()
{
__m128d a, b;
double vals[2] = {0};
a = _mm_loadu_pd(vals);
b = _mm_hadd_pd(a,a);
_mm_storeu_pd(vals, b);
return 0;
}"
HAS_SSE3_EXTENSIONS)
set(CMAKE_REQUIRED_FLAGS "-msse2")
check_cxx_source_runs("
#include <emmintrin.h>
int main()
{
__m128d a, b;
double vals[2] = {0};
a = _mm_loadu_pd(vals);
b = _mm_add_pd(a,a);
_mm_storeu_pd(vals,b);
return 0;
}"
HAS_SSE2_EXTENSIONS)
set(CMAKE_REQUIRED_FLAGS "-msse")
check_cxx_source_runs("
#include <xmmintrin.h>
int main()
{
__m128 a, b;
float vals[4] = {0};
a = _mm_loadu_ps(vals);
b = a;
b = _mm_add_ps(a,b);
_mm_storeu_ps(vals,b);
return 0;
}"
HAS_SSE_EXTENSIONS)
ELSE()
set(HAS_SSE_EXTENSIONS ON)
ENDIF()
set(CMAKE_REQUIRED_FLAGS)
@ -113,17 +117,21 @@ macro(special_check_for_x87)
if( CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX )
check_cxx_source_runs("
int main()
{
unsigned short fpu_mode;
do { asm volatile (\"fstcw %0\" : \"=m\" (fpu_mode) : ); } while (0);
fpu_mode &= 0xFCFF;
do { asm volatile (\"fclex \\\\n fldcw %0\" : : \"m\" (fpu_mode)); } while (0);
IF(NOT MINGW)
check_cxx_source_runs("
int main()
{
unsigned short fpu_mode;
do { asm volatile (\"fstcw %0\" : \"=m\" (fpu_mode) : ); } while (0);
fpu_mode &= 0xFCFF;
do { asm volatile (\"fclex \\\\n fldcw %0\" : : \"m\" (fpu_mode)); } while (0);
return 0;
}"
HAS_X87_SUPPORT)
return 0;
}"
HAS_X87_SUPPORT)
ELSE()
set(HAS_X87_SUPPORT On)
ENDIF()
if(HAS_X87_SUPPORT)
message(STATUS "Found X87 support.")

View File

@ -127,7 +127,7 @@ void PlatformExceptionHandler::install(string dumpFileName){
string PlatformExceptionHandler::getStackTrace() {
string result = "\nStack Trace:\n";
#ifndef __MINGW32__
/*
unsigned int i;
const int max_stack_count = 25;
@ -230,7 +230,8 @@ string PlatformExceptionHandler::getStackTrace() {
} while (fSuccess);
SymCleanup(hProcess);
}
}
#endif
return result;
}