Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/alexmarsev/soxr.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Sykes <robs@users.sourceforge.net>2015-08-19 00:08:29 +0300
committerRob Sykes <robs@users.sourceforge.net>2015-08-19 00:08:29 +0300
commita666e1bb7f7e70a16dca42e3ab4b8ff4acf181f9 (patch)
tree1bb081eeef90c07fc9d2e63097f076735d8c8eb4
parentd51f3ede7f2e6c5cb08b85df8acd2e616f53059d (diff)
build-portability improvements
-rw-r--r--CMakeLists.txt9
-rw-r--r--cmake/Modules/FindOpenMP.cmake13
-rw-r--r--cmake/Modules/FindSIMD.cmake10
3 files changed, 23 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8a24952..ce4e14f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -75,10 +75,11 @@ endif ()
if (WITH_OPENMP)
find_package (OpenMP)
-endif ()
-if (OPENMP_FOUND)
- set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
- set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
+ if (OPENMP_FOUND)
+ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
+ set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
+ set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${OpenMP_SHARED_LINKER_FLAGS}")
+ endif ()
endif ()
if (WITH_SIMD)
diff --git a/cmake/Modules/FindOpenMP.cmake b/cmake/Modules/FindOpenMP.cmake
index 654dc30..eef8422 100644
--- a/cmake/Modules/FindOpenMP.cmake
+++ b/cmake/Modules/FindOpenMP.cmake
@@ -9,7 +9,9 @@
#
# Supported compilers can be found at http://openmp.org/wp/openmp-compilers/
#
-# Modified for libsoxr not to rely on presence of C++ compiler.
+# Modifications for soxr:
+# * don't rely on presence of C++ compiler
+# * support MINGW
#
#=============================================================================
# Copyright 2009 Kitware, Inc.
@@ -103,6 +105,11 @@ set (OpenMP_C_FLAGS "${OpenMP_C_FLAGS_INTERNAL}"
# handle the standard arguments for find_package
find_package_handle_standard_args (OpenMP DEFAULT_MSG
- OpenMP_C_FLAGS OpenMP_C_FLAGS)
+ OpenMP_C_FLAGS)
-mark_as_advanced (OpenMP_C_FLAGS)
+if (MINGW)
+ set (OpenMP_SHARED_LINKER_FLAGS "${OpenMP_SHARED_LINKER_FLAGS} ${OpenMP_C_FLAGS}")
+ set (OpenMP_EXE_LINKER_FLAGS "${OpenMP_EXE_LINKER_FLAGS} ${OpenMP_C_FLAGS}")
+endif ()
+
+mark_as_advanced (OpenMP_C_FLAGS OpenMP_SHARED_LINKER_FLAGS OpenMP_EXE_LINKER_FLAGS)
diff --git a/cmake/Modules/FindSIMD.cmake b/cmake/Modules/FindSIMD.cmake
index 6484bbd..6ac51cb 100644
--- a/cmake/Modules/FindSIMD.cmake
+++ b/cmake/Modules/FindSIMD.cmake
@@ -40,12 +40,18 @@
include (CheckCSourceCompiles)
include (FindPackageHandleStandardArgs)
+if (WIN32) # Safety for when mixed lib/app compilers (but performance hit)
+ set (GCC_WIN32_SIMD_OPTS "-mincoming-stack-boundary=2")
+endif ()
+
set (SIMD_C_FLAG_CANDIDATES
- # Microsoft Visual Studio x64
+ # x64
" "
# Microsoft Visual Studio x86
"/arch:SSE /fp:fast -D__SSE__"
- # Gnu
+ # Gcc x86
+ "-msse -mfpmath=sse ${GCC_WIN32_SIMD_OPTS}"
+ # Gcc x86 (old versions)
"-msse -mfpmath=sse"
)