diff options
author | Rob Sykes <robs@users.sourceforge.net> | 2015-08-19 00:08:29 +0300 |
---|---|---|
committer | Rob Sykes <robs@users.sourceforge.net> | 2015-08-19 00:08:29 +0300 |
commit | a666e1bb7f7e70a16dca42e3ab4b8ff4acf181f9 (patch) | |
tree | 1bb081eeef90c07fc9d2e63097f076735d8c8eb4 | |
parent | d51f3ede7f2e6c5cb08b85df8acd2e616f53059d (diff) |
build-portability improvements
-rw-r--r-- | CMakeLists.txt | 9 | ||||
-rw-r--r-- | cmake/Modules/FindOpenMP.cmake | 13 | ||||
-rw-r--r-- | cmake/Modules/FindSIMD.cmake | 10 |
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" ) |