From f0f71a479a7d304e2bfee46b496cfbb5682571e4 Mon Sep 17 00:00:00 2001 From: Owen Green Date: Thu, 25 Apr 2019 20:20:22 +0100 Subject: [PATCH] Build HISSFFT locally as static lib, just once rather than once per object. Also we don't see its warnings any more scripts/target_post.cmake CMakeLists.txt --- CMakeLists.txt | 11 +++++++ scripts/target_post.cmake | 63 +++++++++++++++------------------------ 2 files changed, 35 insertions(+), 39 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index caab9fd..b0db77e 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,6 +61,17 @@ if(APPLE OR WIN32) set(CMAKE_SHARED_MODULE_SUFFIX ".scx") endif() +get_property(FFT_SOURCES TARGET HISSTools_FFT PROPERTY INTERFACE_SOURCES) +get_property(FFT_LINK TARGET HISSTools_FFT PROPERTY INTERFACE_LINK_LIBRARIES) + +add_library(FFTLIB STATIC ${FFT_SOURCES}) +target_link_libraries( + FFTLIB PRIVATE ${FFT_LINK} +) +target_compile_options( + FFTLIB PRIVATE "$<$>: -mavx -msse -msse2 -msse3 -msse4>" +) + add_library(FLUID_SC_WRAPPER INTERFACE) target_sources(FLUID_SC_WRAPPER INTERFACE diff --git a/scripts/target_post.cmake b/scripts/target_post.cmake index 8b898e8..efa7fa3 100644 --- a/scripts/target_post.cmake +++ b/scripts/target_post.cmake @@ -5,17 +5,30 @@ else() target_compile_options(${PLUGIN} PRIVATE -Wall -Wextra -Wpedantic -Wreturn-type -Wconversion) endif() +set_target_properties(${PLUGIN} PROPERTIES + CXX_STANDARD 14 + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS NO +) + target_link_libraries( ${PLUGIN} - PRIVATE + PUBLIC FLUID_DECOMPOSITION FLUID_SC_WRAPPER + PRIVATE + FFTLIB ) + target_include_directories( ${PLUGIN} PRIVATE ${LOCAL_INCLUDES} +) + +target_include_directories( + ${PLUGIN} SYSTEM PRIVATE ${SC_PATH}/include/plugin_interface ${SC_PATH}/include/common @@ -42,45 +55,17 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_CLANG) include (CheckCXXCompilerFlag) - CHECK_CXX_COMPILER_FLAG(-msse HAS_CXX_SSE) - CHECK_CXX_COMPILER_FLAG(-msse2 HAS_CXX_SSE2) - CHECK_CXX_COMPILER_FLAG(-mfpmath=sse HAS_CXX_FPMATH_SSE) - CHECK_CXX_COMPILER_FLAG(-mavx HAS_AVX) - CHECK_CXX_COMPILER_FLAG(-mavx2 HAS_AVX2) - # target_compile_features( - # ${PLUGIN} - # PUBLIC - # "$<$>: -mavx -msse -msse2 -msse3 -msse4>" - # - # ) - - # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse") - # endif() - # - # CHECK_C_COMPILER_FLAG(-msse2 HAS_SSE2) - # - # - # if (HAS_SSE2) - # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse2") - # endif() - # if (HAS_CXX_SSE2) - # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse2") - # endif() - # - # - # - # if (HAS_FPMATH_SSE) - # set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mfpmath=sse") - # endif() - # if (HAS_CXX_FPMATH_SSE) - # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mfpmath=sse") - # endif() - # - # if(NATIVE) - # add_definitions(-march=native) - # endif() - # + # CHECK_CXX_COMPILER_FLAG(-msse HAS_CXX_SSE) + # CHECK_CXX_COMPILER_FLAG(-msse2 HAS_CXX_SSE2) + # CHECK_CXX_COMPILER_FLAG(-mfpmath=sse HAS_CXX_FPMATH_SSE) + # CHECK_CXX_COMPILER_FLAG(-mavx HAS_AVX) + # CHECK_CXX_COMPILER_FLAG(-mavx2 HAS_AVX2) + target_compile_features( + ${PLUGIN} + PUBLIC + "$<$>: -mavx -msse -msse2 -msse3 -msse4>" + ) endif() if(MINGW) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mstackrealign")