zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 0c6e2d227b4ca709d5aa6945b1ea587c4bbfd707
parent 5a437f0719916974610dc41dc0fbe58ee8640023
Author: Friedolino <mkirchn@freenet.de>
Date:   Sun, 22 Nov 2015 00:31:33 +0100

added checks for SSE2 and ARM Neon.

Diffstat:
Msrc/CMakeLists.txt | 45+++++++++++++++++++++++++++++++++++----------
1 file changed, 35 insertions(+), 10 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt @@ -6,6 +6,7 @@ message(STATUS "Checking Library Path" $ENV{CMAKE_LIBRARY_PATH} ${CMAKE_LIBRARY_ include(CheckFunctionExists) include(CheckIncludeFile) include(CheckCXXSourceCompiles) +include(CheckCXXCompilerFlag) find_package(PkgConfig REQUIRED) find_package(zlib REQUIRED) find_package(X11) @@ -42,6 +43,10 @@ CHECK_CXX_SOURCE_COMPILES( #error unreliable atomics #endif int main(){return 0;}" HAVE_ASYNC) + +check_cxx_compiler_flag("-msse2" SUPPORT_SSE) +check_cxx_compiler_flag("-mfpu=neon -Werror" SUPPORT_NEON) + set(CMAKE_REQUIRED_FLAGS "") @@ -150,18 +155,28 @@ option (BuildForDebug "Include gdb debugging support" OFF) set(CMAKE_BUILD_TYPE "Release") + set (BuildOptions_x86_64AMD - "-std=c++11 -O3 -march=athlon64 -m64 -Wall -Wno-unused-parameter -ffast-math -fno-finite-math-only -fomit-frame-pointer" + "-march=athlon64 -m64 -Wall -Wno-unused-parameter" CACHE STRING "X86_64 compiler options" ) set (BuildOptions_X86_64Core2 - "-std=c++11 -O3 -march=core2 -m64 -Wall -Wno-unused-parameter -ffast-math -fno-finite-math-only -fomit-frame-pointer" + "-march=core2 -m64 -Wall -Wno-unused-parameter" CACHE STRING "X86_64 compiler options" ) +set (BuildOptions_NEON + "-march=armv7-a -mfloat-abi=hard -mfpu=neon -mcpu=cortex-a9 -mtune=cortex-a9 -pipe -mvectorize-with-neon-quad -funsafe-loop-optimizations" + CACHE STRING "Cortex_a9 compiler options" +) +set (BuildOptions_SSE + "-msse -msse2 -mfpmath=sse" + CACHE STRING "SSE compiler options" +) + set (BuildOptionsBasic - "-std=c++11 -Wno-unused-parameter -O3 -msse -msse2 -mfpmath=sse -ffast-math -fomit-frame-pointer" + "-std=c++11 -Wno-unused-parameter -O3 -ffast-math -fomit-frame-pointer" CACHE STRING "basic X86 complier options" ) @@ -235,15 +250,25 @@ if (BuildForDebug) message (STATUS "Building for ${CMAKE_BUILD_TYPE}, flags: ${CMAKE_CXX_FLAGS_DEBUG}") else (BuildForDebug) set (CMAKE_BUILD_TYPE "Release") + + set (CMAKE_CXX_FLAGS_RELEASE ${BuildOptionsBasic}) + if (BuildForAMD_X86_64) - set (CMAKE_CXX_FLAGS_RELEASE ${BuildOptions_x86_64AMD}) - else (BuildForAMD_X86_64) - if (BuildForCore2_X86_64) - set (CMAKE_CXX_FLAGS_RELEASE ${BuildOptions_X86_64Core2}) - else (BuildForCore2_X86_64) - set (CMAKE_CXX_FLAGS_RELEASE ${BuildOptionsBasic}) - endif (BuildForCore2_X86_64) + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${BuildOptions_x86_64AMD}") endif (BuildForAMD_X86_64) + + if (BuildForCore2_X86_64) + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${BuildOptions_X86_64Core2}") + endif (BuildForCore2_X86_64) + + if (SUPPORT_SSE) + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${BuildOptions_SSE}") + endif (SUPPORT_SSE) + + if (SUPPORT_NEON) + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${BuildOptions_NEON}") + endif (SUPPORT_NEON) + message (STATUS "Building for ${CMAKE_BUILD_TYPE}, flags: ${CMAKE_CXX_FLAGS_RELEASE}") endif (BuildForDebug)