- Check for packaged streflop and use it before using embedded copy

This commit is contained in:
SoftCoder 2017-02-05 16:48:50 -08:00
parent b9a0a31127
commit 8195121fca
9 changed files with 247 additions and 41 deletions

View File

@ -49,6 +49,39 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
MESSAGE(STATUS " wxWidgets: ${wxWidgets_INCLUDE_DIRS} ;/; ${wxWidgets_LIBRARIES}") MESSAGE(STATUS " wxWidgets: ${wxWidgets_INCLUDE_DIRS} ;/; ${wxWidgets_LIBRARIES}")
ENDIF() ENDIF()
find_package(PkgConfig REQUIRED)
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()
IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0")
pkg_search_module(STREFLOP streflop-sse)
ELSE()
IF(HAS_X87_SUPPORT)
pkg_search_module(STREFLOP streflop-x87)
ELSE()
pkg_search_module(STREFLOP streflop-soft)
ENDIF()
ENDIF()
ENDIF()
IF(NOT STREFLOP_FOUND)
pkg_search_module(STREFLOP streflop)
ENDIF()
MESSAGE(STATUS "Search for Library STREFLOP result = ${STREFLOP_FOUND} libs: ${STREFLOP_LIBRARIES} include dirs: ${STREFLOP_INCLUDE_DIRS}")
IF(FORCE_EMBEDDED_LIBS)
SET(STREFLOP_FOUND OFF)
MESSAGE(STATUS "FORCING USE of EMBEDDED Libraries...")
ENDIF()
IF(WANT_USE_STREFLOP)
IF(STREFLOP_FOUND)
INCLUDE_DIRECTORIES(${STREFLOP_INCLUDE_DIRS} ${STREFLOP_INCLUDE_DIRS}/streflop)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${STREFLOP_LIBRARIES})
ADD_DEFINITIONS("-DUSE_STREFLOP_PKG")
ENDIF()
ENDIF()
IF(WIN32) IF(WIN32)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu-2.8-i586-mingw32msvc.dll.a)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a) SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${PROJECT_SOURCE_DIR}/source/win32_deps/wxWidgets-2.8.10/lib/libwx_mswu_gl-2.8-i586-mingw32msvc.dll.a)
@ -107,7 +140,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
${GLEST_MAIN_INCLUDE_ROOT}global ${GLEST_MAIN_INCLUDE_ROOT}global
${GLEST_MAIN_INCLUDE_ROOT}sound) ${GLEST_MAIN_INCLUDE_ROOT}sound)
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
SET(GLEST_LIB_INCLUDE_DIRS SET(GLEST_LIB_INCLUDE_DIRS
${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_DIRS}
${GLEST_LIB_INCLUDE_ROOT}streflop) ${GLEST_LIB_INCLUDE_ROOT}streflop)
@ -157,7 +190,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER)
ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop)
ENDIF() ENDIF()

View File

@ -139,11 +139,44 @@ IF(BUILD_MEGAGLEST)
ENDIF() ENDIF()
ENDIF() ENDIF()
find_package(PkgConfig REQUIRED)
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()
IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0")
pkg_search_module(STREFLOP streflop-sse)
ELSE()
IF(HAS_X87_SUPPORT)
pkg_search_module(STREFLOP streflop-x87)
ELSE()
pkg_search_module(STREFLOP streflop-soft)
ENDIF()
ENDIF()
ENDIF()
IF(NOT STREFLOP_FOUND)
pkg_search_module(STREFLOP streflop)
ENDIF()
MESSAGE(STATUS "Search for Library STREFLOP result = ${STREFLOP_FOUND} libs: ${STREFLOP_LIBRARIES} include dirs: ${STREFLOP_INCLUDE_DIRS}")
IF(FORCE_EMBEDDED_LIBS)
SET(STREFLOP_FOUND OFF)
MESSAGE(STATUS "FORCING USE of EMBEDDED Libraries...")
ENDIF()
IF(WANT_USE_STREFLOP)
IF(STREFLOP_FOUND)
INCLUDE_DIRECTORIES(${STREFLOP_INCLUDE_DIRS} ${STREFLOP_INCLUDE_DIRS}/streflop)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${STREFLOP_LIBRARIES})
ADD_DEFINITIONS("-DUSE_STREFLOP_PKG")
ENDIF()
ENDIF()
######################################################################################### #########################################################################################
# megaglest game # megaglest game
SET(DIRS_WITH_SRC SET(DIRS_WITH_SRC
ai ai
facilities facilities
game game
global global
@ -174,7 +207,7 @@ IF(BUILD_MEGAGLEST)
${GLEST_LIB_INCLUDE_ROOT}lua ${GLEST_LIB_INCLUDE_ROOT}lua
${GLEST_LIB_INCLUDE_ROOT}map) ${GLEST_LIB_INCLUDE_ROOT}map)
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
SET(GLEST_LIB_INCLUDE_DIRS SET(GLEST_LIB_INCLUDE_DIRS
${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_DIRS}
${GLEST_LIB_INCLUDE_ROOT}streflop ${GLEST_LIB_INCLUDE_ROOT}streflop
@ -241,7 +274,7 @@ IF(BUILD_MEGAGLEST)
ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
SET(MG_STREFLOP "") SET(MG_STREFLOP "")
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
SET(MG_STREFLOP "streflop") SET(MG_STREFLOP "streflop")
ENDIF() ENDIF()
@ -262,7 +295,7 @@ IF(BUILD_MEGAGLEST)
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32)
ENDIF() ENDIF()
IF(NOT WIN32) IF(NOT WIN32)
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP})
ENDIF() ENDIF()
TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest)

View File

@ -66,6 +66,39 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib) link_directories(${PROJECT_SOURCE_DIR}/source/win32_deps/xerces-c-src_2_8_0/lib)
ENDIF() ENDIF()
find_package(PkgConfig REQUIRED)
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()
IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0")
pkg_search_module(STREFLOP streflop-sse)
ELSE()
IF(HAS_X87_SUPPORT)
pkg_search_module(STREFLOP streflop-x87)
ELSE()
pkg_search_module(STREFLOP streflop-soft)
ENDIF()
ENDIF()
ENDIF()
IF(NOT STREFLOP_FOUND)
pkg_search_module(STREFLOP streflop)
ENDIF()
MESSAGE(STATUS "Search for Library STREFLOP result = ${STREFLOP_FOUND} libs: ${STREFLOP_LIBRARIES} include dirs: ${STREFLOP_INCLUDE_DIRS}")
IF(FORCE_EMBEDDED_LIBS)
SET(STREFLOP_FOUND OFF)
MESSAGE(STATUS "FORCING USE of EMBEDDED Libraries...")
ENDIF()
IF(WANT_USE_STREFLOP)
IF(STREFLOP_FOUND)
INCLUDE_DIRECTORIES(${STREFLOP_INCLUDE_DIRS} ${STREFLOP_INCLUDE_DIRS}/streflop)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${STREFLOP_LIBRARIES})
ADD_DEFINITIONS("-DUSE_STREFLOP_PKG")
ENDIF()
ENDIF()
######################################################################################### #########################################################################################
# megaglest map editor # megaglest map editor
@ -88,7 +121,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
${GLEST_LIB_INCLUDE_ROOT}xml/rapidxml ${GLEST_LIB_INCLUDE_ROOT}xml/rapidxml
${GLEST_MAIN_INCLUDE_ROOT}global) ${GLEST_MAIN_INCLUDE_ROOT}global)
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
SET(GLEST_LIB_INCLUDE_DIRS SET(GLEST_LIB_INCLUDE_DIRS
${GLEST_LIB_INCLUDE_DIRS} ${GLEST_LIB_INCLUDE_DIRS}
${GLEST_LIB_INCLUDE_ROOT}streflop) ${GLEST_LIB_INCLUDE_ROOT}streflop)
@ -147,7 +180,7 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32) TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 ${MG_STREFLOP} libmegaglest stdc++ moldname mingwex msvcrt user32 kernel32)
ENDIF() ENDIF()
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP})
ENDIF() ENDIF()

View File

@ -1,9 +1,42 @@
######################################################################################### #########################################################################################
# streflop # streflop
OPTION(FORCE_EMBEDDED_LIBS "Force use of embedded libraries' code." OFF)
# IMPORTANT: should come BEFORE finding packages # IMPORTANT: should come BEFORE finding packages
find_package(PkgConfig REQUIRED)
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()
IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0")
pkg_search_module(STREFLOP streflop-sse)
ELSE()
IF(HAS_X87_SUPPORT)
pkg_search_module(STREFLOP streflop-x87)
ELSE()
pkg_search_module(STREFLOP streflop-soft)
ENDIF()
ENDIF()
ENDIF()
IF(NOT STREFLOP_FOUND)
pkg_search_module(STREFLOP streflop)
ENDIF()
MESSAGE(STATUS "Search for Library STREFLOP result = ${STREFLOP_FOUND} libs: ${STREFLOP_LIBRARIES} include dirs: ${STREFLOP_INCLUDE_DIRS}")
IF(FORCE_EMBEDDED_LIBS)
SET(STREFLOP_FOUND OFF)
MESSAGE(STATUS "FORCING USE of EMBEDDED Libraries...")
ENDIF()
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP)
ADD_SUBDIRECTORY(sources/streflop) IF(NOT STREFLOP_FOUND)
ADD_SUBDIRECTORY(sources/streflop)
ELSE()
INCLUDE_DIRECTORIES(${STREFLOP_INCLUDE_DIRS} ${STREFLOP_INCLUDE_DIRS}/streflop)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${STREFLOP_LIBRARIES})
ADD_DEFINITIONS("-DUSE_STREFLOP_PKG")
ENDIF()
ENDIF() ENDIF()
######################################################################################### #########################################################################################
@ -228,7 +261,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
# megaglest lib # megaglest lib
SET(DIRS_WITH_SRC SET(DIRS_WITH_SRC
compression compression
feathery_ftp feathery_ftp
glew glew
graphics graphics
@ -241,15 +274,14 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
util util
xml) xml)
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
SET(DIRS_WITH_SRC SET(DIRS_WITH_SRC
${DIRS_WITH_SRC} ${DIRS_WITH_SRC}
streflop streflop
streflop/libm_flt32_source streflop/libm_flt32_source
streflop/softfloat) streflop/softfloat)
ENDIF() ENDIF()
OPTION(FORCE_EMBEDDED_LIBS "Force use of embedded libraries' code." OFF)
IF(FORCE_EMBEDDED_LIBS) IF(FORCE_EMBEDDED_LIBS)
SET(FORCE_USE_EMBEDDED_Miniupnpc ON) SET(FORCE_USE_EMBEDDED_Miniupnpc ON)
ELSE() ELSE()
@ -468,7 +500,7 @@ IF(BUILD_MEGAGLEST_MODEL_VIEWER OR BUILD_MEGAGLEST_MAP_EDITOR OR BUILD_MEGAGLEST
TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 stdc++ moldname mingwex msvcrt user32 kernel32) TARGET_LINK_LIBRARIES(${TARGET_NAME} stdc++ gcc odbc32 wsock32 winspool winmm shell32 comctl32 ctl3d32 advapi32 wsock32 opengl32 glu32 ole32 oleaut32 uuid mingw32 ddraw dsound dxguid ws2_32 iphlpapi wsock32 libogg libvorbis libvorbisfile zlib jpeg libpng xerces-c2_8_0 OpenAL32 libcurl winmm gdi32 opengl32 glu32 ${SDL_VERSION_NAME} ${SDL_VERSION_NAME}main lua5.1 stdc++ moldname mingwex msvcrt user32 kernel32)
ENDIF() ENDIF()
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop) TARGET_LINK_LIBRARIES(${TARGET_NAME} streflop)
ENDIF() ENDIF()
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${EXTERNAL_LIBS})

View File

@ -18,7 +18,7 @@
#define STREFLOP_COND_H #define STREFLOP_COND_H
#if defined(STREFLOP_X87) || defined(STREFLOP_SSE) || defined(STREFLOP_SOFT) #if defined(STREFLOP_X87) || defined(STREFLOP_SSE) || defined(STREFLOP_SOFT)
#include "streflop.h" #include <streflop.h>
using namespace streflop; using namespace streflop;
namespace math { namespace math {

View File

@ -1,15 +1,50 @@
AUX_SOURCE_DIRECTORY(libm/flt-32 libm_flt32_source) find_package(PkgConfig REQUIRED)
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()
IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0")
pkg_search_module(STREFLOP streflop-sse)
ELSE()
IF(HAS_X87_SUPPORT)
pkg_search_module(STREFLOP streflop-x87)
ELSE()
pkg_search_module(STREFLOP streflop-soft)
ENDIF()
ENDIF()
ENDIF()
IF(NOT STREFLOP_FOUND)
pkg_search_module(STREFLOP streflop)
ENDIF()
MESSAGE(STATUS "Search for Library STREFLOP result = ${STREFLOP_FOUND} libs: ${STREFLOP_LIBRARIES} include dirs: ${STREFLOP_INCLUDE_DIRS}")
SET(cxxflags "-w -O3 -I${CMAKE_CURRENT_SOURCE_DIR}/libm/headers") IF(FORCE_EMBEDDED_LIBS)
if (NOT $ENV{CXX} MATCHES "icpc") SET(STREFLOP_FOUND OFF)
SET(cxxflags "${cxxflags} -mfpmath=sse -msse") MESSAGE(STATUS "FORCING USE of EMBEDDED Libraries...")
endif (NOT $ENV{CXX} MATCHES "icpc") ENDIF()
SET_SOURCE_FILES_PROPERTIES(${libm_flt32_source} PROPERTIES COMPILE_FLAGS "-DLIBM_COMPILING_FLT32 ${cxxflags}")
ADD_LIBRARY(streflop STATIC EXCLUDE_FROM_ALL IF(WANT_USE_STREFLOP)
SMath.cpp IF(STREFLOP_FOUND)
Random.cpp INCLUDE_DIRECTORIES(${STREFLOP_INCLUDE_DIRS} ${STREFLOP_INCLUDE_DIRS}/streflop)
streflopC.cpp SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${STREFLOP_LIBRARIES})
${libm_flt32_source}
) ADD_DEFINITIONS("-DUSE_STREFLOP_PKG")
set_target_properties(streflop PROPERTIES COMPILE_FLAGS "${PIC_FLAG}") ENDIF()
ENDIF()
IF(NOT STREFLOP_FOUND)
AUX_SOURCE_DIRECTORY(libm/flt-32 libm_flt32_source)
SET(cxxflags "-w -O3 -I${CMAKE_CURRENT_SOURCE_DIR}/libm/headers")
if (NOT $ENV{CXX} MATCHES "icpc")
SET(cxxflags "${cxxflags} -mfpmath=sse -msse")
endif (NOT $ENV{CXX} MATCHES "icpc")
SET_SOURCE_FILES_PROPERTIES(${libm_flt32_source} PROPERTIES COMPILE_FLAGS "-DLIBM_COMPILING_FLT32 ${cxxflags}")
ADD_LIBRARY(streflop STATIC EXCLUDE_FROM_ALL
SMath.cpp
Random.cpp
streflopC.cpp
${libm_flt32_source}
)
set_target_properties(streflop PROPERTIES COMPILE_FLAGS "${PIC_FLAG}")
ENDIF()

View File

@ -15,7 +15,7 @@
//#include "LogOutput.h" //#include "LogOutput.h"
#include "util.h" #include "util.h"
#include "streflop_cond.h" #include "../../include/platform/common/streflop_cond.h"
/** /**
@brief checks FPU control registers. @brief checks FPU control registers.

View File

@ -2,7 +2,7 @@
#include "streflopC.h" #include "streflopC.h"
#include "streflop_cond.h" #include "../../include/platform/common/streflop_cond.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {

View File

@ -33,15 +33,53 @@ IF(BUILD_MEGAGLEST_TESTS)
endif() endif()
endif() endif()
find_package(PkgConfig REQUIRED)
IF(FORCE_STREFLOP_SOFTWRAPPER)
pkg_search_module(STREFLOP streflop-soft)
ELSE()
IF(HAS_SSE_EXTENSIONS AND NOT ${FORCE_MAX_SSE_LEVEL} MATCHES "0")
pkg_search_module(STREFLOP streflop-sse)
ELSE()
IF(HAS_X87_SUPPORT)
pkg_search_module(STREFLOP streflop-x87)
ELSE()
pkg_search_module(STREFLOP streflop-soft)
ENDIF()
ENDIF()
ENDIF()
IF(NOT STREFLOP_FOUND)
pkg_search_module(STREFLOP streflop)
ENDIF()
MESSAGE(STATUS "Search for Library STREFLOP result = ${STREFLOP_FOUND} libs: ${STREFLOP_LIBRARIES} include dirs: ${STREFLOP_INCLUDE_DIRS}")
IF(FORCE_EMBEDDED_LIBS)
SET(STREFLOP_FOUND OFF)
MESSAGE(STATUS "FORCING USE of EMBEDDED Libraries...")
ENDIF()
IF(WANT_USE_STREFLOP)
IF(STREFLOP_FOUND)
INCLUDE_DIRECTORIES(${STREFLOP_INCLUDE_DIRS} ${STREFLOP_INCLUDE_DIRS}/streflop)
SET(EXTERNAL_LIBS ${EXTERNAL_LIBS} ${STREFLOP_LIBRARIES})
ADD_DEFINITIONS("-DUSE_STREFLOP_PKG")
ENDIF()
ENDIF()
######################################################################################### #########################################################################################
# megaglest test code # megaglest test code
SET(DIRS_WITH_SRC SET(DIRS_WITH_SRC
./ ./
shared_lib/graphics shared_lib/graphics
shared_lib/streflop shared_lib/util
shared_lib/util
shared_lib/xml) shared_lib/xml)
IF(NOT STREFLOP_FOUND)
SET(DIRS_WITH_SRC
${DIRS_WITH_SRC}
shared_lib/streflop)
ENDIF()
SET(MG_INCLUDES_ROOT "./") SET(MG_INCLUDES_ROOT "./")
SET(MG_SOURCES_ROOT "./") SET(MG_SOURCES_ROOT "./")
@ -72,10 +110,12 @@ IF(BUILD_MEGAGLEST_TESTS)
) )
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP)
SET(GLEST_LIB_INCLUDE_DIRS IF(NOT STREFLOP_FOUND)
${GLEST_LIB_INCLUDE_DIRS} SET(GLEST_LIB_INCLUDE_DIRS
${GLEST_LIB_INCLUDE_ROOT}streflop ${GLEST_LIB_INCLUDE_DIRS}
${GLEST_LIB_INCLUDE_ROOT}streflop/libm_flt32_source) ${GLEST_LIB_INCLUDE_ROOT}streflop
${GLEST_LIB_INCLUDE_ROOT}streflop/libm_flt32_source)
ENDIF()
ENDIF() ENDIF()
INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} ) INCLUDE_DIRECTORIES( ${GLEST_LIB_INCLUDE_DIRS} )
@ -153,7 +193,7 @@ IF(BUILD_MEGAGLEST_TESTS)
ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES}) ADD_EXECUTABLE(${TARGET_NAME} ${MG_SOURCE_FILES} ${MG_INCLUDE_FILES})
IF(NOT WIN32) IF(NOT WIN32)
IF(WANT_USE_STREFLOP) IF(WANT_USE_STREFLOP AND NOT STREFLOP_FOUND)
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP}) TARGET_LINK_LIBRARIES(${TARGET_NAME} ${MG_STREFLOP})
ENDIF() ENDIF()
TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest) TARGET_LINK_LIBRARIES(${TARGET_NAME} libmegaglest)