mirror of
https://github.com/glest/glest-source.git
synced 2025-08-21 15:41:24 +02:00
- bugfixes to build on debians multi-platform build system
This commit is contained in:
145
mk/cmake/Modules/SpecialMacros.cmake
Normal file
145
mk/cmake/Modules/SpecialMacros.cmake
Normal file
@@ -0,0 +1,145 @@
|
|||||||
|
# special macros SpecialMacros.cmake
|
||||||
|
|
||||||
|
include(CheckFunctionExists)
|
||||||
|
include(AddFileDependencies)
|
||||||
|
|
||||||
|
macro(special_add_library lib)
|
||||||
|
if (WIN32)
|
||||||
|
add_library(${lib} STATIC ${ARGN})
|
||||||
|
else (WIN32)
|
||||||
|
add_library(${lib} SHARED ${ARGN})
|
||||||
|
endif (WIN32)
|
||||||
|
endmacro(special_add_library)
|
||||||
|
|
||||||
|
macro(special_check_for_sse _max_sse_level_desired)
|
||||||
|
set(${_max_sse_level_desired})
|
||||||
|
|
||||||
|
message(STATUS "Max SSE desired: [${_max_sse_level_desired}]")
|
||||||
|
|
||||||
|
# check for SSE extensions
|
||||||
|
include(CheckCXXSourceRuns)
|
||||||
|
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)
|
||||||
|
|
||||||
|
set(CMAKE_REQUIRED_FLAGS)
|
||||||
|
|
||||||
|
if(HAS_SSE3_EXTENSIONS AND (NOT ${_max_sse_level_desired} OR ${_max_sse_level_desired} MATCHES "3"))
|
||||||
|
set(SSE_FLAGS "-msse3 -mfpmath=sse")
|
||||||
|
message(STATUS "Found SSE3 extensions, using flags: ${SSE_FLAGS}")
|
||||||
|
elseif(HAS_SSE2_EXTENSIONS AND (NOT ${_max_sse_level_desired} OR ${_max_sse_level_desired} MATCHES "2"))
|
||||||
|
set(SSE_FLAGS "-msse2 -mfpmath=sse")
|
||||||
|
message(STATUS "Found SSE2 extensions, using flags: ${SSE_FLAGS}")
|
||||||
|
elseif(HAS_SSE_EXTENSIONS AND (NOT ${_max_sse_level_desired} OR ${_max_sse_level_desired} MATCHES "1"))
|
||||||
|
set(SSE_FLAGS "-msse -mfpmath=sse")
|
||||||
|
message(STATUS "Found SSE extensions, using flags: ${SSE_FLAGS}")
|
||||||
|
endif()
|
||||||
|
elseif(MSVC)
|
||||||
|
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)
|
||||||
|
if( HAS_SSE2_EXTENSIONS AND (NOT ${_max_sse_level_desired} OR ${_max_sse_level_desired} MATCHES "2"))
|
||||||
|
message(STATUS "Found SSE2 extensions")
|
||||||
|
set(SSE_FLAGS "/arch:SSE2 /fp:fast -D__SSE__ -D__SSE2__" )
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endmacro(special_check_for_sse)
|
||||||
|
|
||||||
|
macro(special_add_compile_flags target)
|
||||||
|
set(args ${ARGN})
|
||||||
|
separate_arguments(args)
|
||||||
|
get_target_property(_flags ${target} COMPILE_FLAGS)
|
||||||
|
if(NOT _flags)
|
||||||
|
set(_flags ${ARGN})
|
||||||
|
else(NOT _flags)
|
||||||
|
separate_arguments(_flags)
|
||||||
|
list(APPEND _flags "${args}")
|
||||||
|
endif(NOT _flags)
|
||||||
|
|
||||||
|
_special_list_to_string(_flags_str "${_flags}")
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
COMPILE_FLAGS "${_flags_str}")
|
||||||
|
endmacro(special_add_compile_flags)
|
||||||
|
|
||||||
|
macro(special_add_link_flags target)
|
||||||
|
set(args ${ARGN})
|
||||||
|
separate_arguments(args)
|
||||||
|
get_target_property(_flags ${target} LINK_FLAGS)
|
||||||
|
if(NOT _flags)
|
||||||
|
set(_flags ${ARGN})
|
||||||
|
else(NOT _flags)
|
||||||
|
separate_arguments(_flags)
|
||||||
|
list(APPEND _flags "${args}")
|
||||||
|
endif(NOT _flags)
|
||||||
|
|
||||||
|
_special_list_to_string(_flags_str "${_flags}")
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
LINK_FLAGS "${_flags_str}")
|
||||||
|
endmacro(special_add_link_flags)
|
||||||
|
|
||||||
|
macro(_special_list_to_string _string _list)
|
||||||
|
set(${_string})
|
||||||
|
foreach(_item ${_list})
|
||||||
|
string(LENGTH "${${_string}}" _len)
|
||||||
|
if(${_len} GREATER 0)
|
||||||
|
set(${_string} "${${_string}} ${_item}")
|
||||||
|
else(${_len} GREATER 0)
|
||||||
|
set(${_string} "${_item}")
|
||||||
|
endif(${_len} GREATER 0)
|
||||||
|
endforeach(_item)
|
||||||
|
endmacro(_special_list_to_string)
|
||||||
|
|
@@ -17,12 +17,6 @@ IF(BUILD_MEGAGLEST_MAP_EDITOR)
|
|||||||
|
|
||||||
IF(NOT WIN32)
|
IF(NOT WIN32)
|
||||||
# It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'.
|
# It was noticed that when using MinGW gcc it is essential that 'core' is mentioned before 'base'.
|
||||||
|
|
||||||
IF(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD")
|
|
||||||
SET(wxWidgets_CONFIG_OPTIONS --prefix=/usr/local)
|
|
||||||
MESSAGE(STATUS "Detected FreeBSD.....")
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
FIND_PACKAGE(wxWidgets COMPONENTS core base gl REQUIRED)
|
FIND_PACKAGE(wxWidgets COMPONENTS core base gl REQUIRED)
|
||||||
|
|
||||||
# wxWidgets include (this will do all the magic to configure everything)
|
# wxWidgets include (this will do all the magic to configure everything)
|
||||||
|
@@ -313,7 +313,7 @@ string Ip::getString() const{
|
|||||||
// class Socket
|
// class Socket
|
||||||
// ===============================================
|
// ===============================================
|
||||||
|
|
||||||
#if defined(__FreeBSD__) || defined(BSD) || defined(__APPLE__) || defined(__linux__)
|
#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(BSD) || defined(__APPLE__) || defined(__linux__)
|
||||||
# define USE_GETIFADDRS 1
|
# define USE_GETIFADDRS 1
|
||||||
# include <ifaddrs.h>
|
# include <ifaddrs.h>
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user