Merge pull request #34 from jpcima/mingw
Make the build sytem MinGW-compatible
This commit is contained in:
commit
c0b4a79612
7 changed files with 40 additions and 37 deletions
|
|
@ -96,8 +96,7 @@ target_include_directories(bm_pointerIterationOrOffsets PRIVATE ../src/sfizz ../
|
|||
|
||||
if (NOT WIN32)
|
||||
add_executable(bm_resample BM_resample.cpp ${BENCHMARK_SIMD_SOURCES})
|
||||
target_link_libraries(bm_resample PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main samplerate)
|
||||
sfizz_link_libsndfile(bm_resample)
|
||||
target_link_libraries(bm_resample PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main samplerate sfizz-sndfile)
|
||||
target_include_directories(bm_resample PRIVATE ../src/sfizz ../src/external)
|
||||
endif()
|
||||
|
||||
|
|
@ -106,23 +105,19 @@ target_link_libraries(bm_envelopes PRIVATE absl::span absl::algorithm benchmark:
|
|||
target_include_directories(bm_envelopes PRIVATE ../src/sfizz ../src/external)
|
||||
|
||||
add_executable(bm_wavfile BM_wavfile.cpp ${BENCHMARK_SIMD_SOURCES})
|
||||
target_link_libraries(bm_wavfile PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main)
|
||||
sfizz_link_libsndfile(bm_wavfile)
|
||||
target_link_libraries(bm_wavfile PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main sfizz-sndfile)
|
||||
target_include_directories(bm_wavfile PRIVATE ../src/sfizz ../src/external)
|
||||
|
||||
add_executable(bm_flacfile BM_flacfile.cpp ${BENCHMARK_SIMD_SOURCES})
|
||||
target_link_libraries(bm_flacfile PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main)
|
||||
sfizz_link_libsndfile(bm_flacfile)
|
||||
target_link_libraries(bm_flacfile PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main sfizz-sndfile)
|
||||
target_include_directories(bm_flacfile PRIVATE ../src/sfizz ../src/external)
|
||||
|
||||
add_executable(bm_readChunk BM_readChunk.cpp ${BENCHMARK_SIMD_SOURCES})
|
||||
target_link_libraries(bm_readChunk PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main)
|
||||
sfizz_link_libsndfile(bm_readChunk)
|
||||
target_link_libraries(bm_readChunk PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main sfizz-sndfile)
|
||||
target_include_directories(bm_readChunk PRIVATE ../src/sfizz ../src/external)
|
||||
|
||||
add_executable(bm_resampleChunk BM_resampleChunk.cpp ${BENCHMARK_SIMD_SOURCES})
|
||||
target_link_libraries(bm_resampleChunk PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main)
|
||||
sfizz_link_libsndfile(bm_resampleChunk)
|
||||
target_link_libraries(bm_resampleChunk PRIVATE absl::span absl::algorithm benchmark::benchmark benchmark::benchmark_main sfizz-sndfile)
|
||||
target_include_directories(bm_resampleChunk PRIVATE ../src/sfizz ../src/external)
|
||||
|
||||
add_custom_target(sfizz_benchmarks)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,10 @@
|
|||
project (sfizz)
|
||||
|
||||
if (APPLE)
|
||||
include_directories (SYSTEM /usr/local/opt/jack/include)
|
||||
link_directories (/usr/local/opt/jack/lib)
|
||||
endif()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(JACK "jack" REQUIRED)
|
||||
|
||||
add_executable (sfizz_jack jack_client.cpp)
|
||||
target_link_libraries (sfizz_jack sfizz::sfizz jack absl::flags_parse)
|
||||
target_include_directories (sfizz_jack PRIVATE ${JACK_INCLUDE_DIRS})
|
||||
target_link_libraries (sfizz_jack PRIVATE sfizz::sfizz jack absl::flags_parse ${JACK_LIBRARIES})
|
||||
sfizz_enable_lto_if_needed (sfizz_jack)
|
||||
install (TARGETS sfizz_jack DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
|
||||
|
|
|
|||
|
|
@ -12,33 +12,41 @@ set (CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|||
set (CMAKE_CXX_VISIBILITY_PRESET hidden)
|
||||
set (CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
||||
|
||||
# Set Windows compatibility level to Vista
|
||||
if (WIN32)
|
||||
add_compile_definitions(_WIN32_WINNT=0x600)
|
||||
endif()
|
||||
|
||||
# Add required flags for the builds
|
||||
if (UNIX)
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
add_compile_options(-Wall)
|
||||
add_compile_options(-Wextra)
|
||||
add_compile_options(-ffast-math)
|
||||
add_compile_options(-fno-omit-frame-pointer) # For debugging purposes
|
||||
endif()
|
||||
|
||||
if (WIN32)
|
||||
elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
add_compile_options(/Zc:__cplusplus)
|
||||
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
endif()
|
||||
|
||||
if (WIN32 OR SFIZZ_USE_VCPKG)
|
||||
find_package(LibSndFile REQUIRED)
|
||||
find_path(SNDFILE_INCLUDE_DIR sndfile.hh)
|
||||
if (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
|
||||
add_compile_options(-msse2)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
function(SFIZZ_LINK_LIBSNDFILE TARGET)
|
||||
if (WIN32 OR SFIZZ_USE_VCPKG)
|
||||
target_link_libraries (${TARGET} PRIVATE sndfile-static)
|
||||
target_include_directories(${TARGET} PUBLIC ${SNDFILE_INCLUDE_DIR})
|
||||
else()
|
||||
target_link_libraries(${TARGET} PRIVATE sndfile)
|
||||
endif()
|
||||
endfunction(SFIZZ_LINK_LIBSNDFILE)
|
||||
add_library(sfizz-sndfile INTERFACE)
|
||||
|
||||
if (SFIZZ_USE_VCPKG OR CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
|
||||
find_package(LibSndFile REQUIRED)
|
||||
find_path(SNDFILE_INCLUDE_DIR sndfile.hh)
|
||||
target_include_directories(sfizz-sndfile INTERFACE "${SNDFILE_INCLUDE_DIR}")
|
||||
target_link_libraries(sfizz-sndfile INTERFACE sndfile-static)
|
||||
else()
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(SNDFILE "sndfile" REQUIRED)
|
||||
target_include_directories(sfizz-sndfile INTERFACE ${SNDFILE_INCLUDE_DIRS})
|
||||
target_link_libraries(sfizz-sndfile INTERFACE ${SNDFILE_LIBRARIES})
|
||||
endif()
|
||||
|
||||
# If we build with Clang use libc++
|
||||
if (CMAKE_CXX_COMPILER_ID MATCHES "Clang" AND NOT ANDROID)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ if (HAVE_X86INTRIN_H AND UNIX)
|
|||
add_compile_options (-DHAVE_X86INTRIN_H)
|
||||
set (SFIZZ_SIMD_SOURCES sfizz/SIMDSSE.cpp)
|
||||
elseif (HAVE_INTRIN_H AND WIN32)
|
||||
add_compile_options (/DHAVE_INTRIN_H)
|
||||
add_compile_options (-DHAVE_INTRIN_H)
|
||||
set (SFIZZ_SIMD_SOURCES sfizz/SIMDSSE.cpp)
|
||||
elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv7l")
|
||||
add_compile_options (-DHAVE_ARM_NEON_H)
|
||||
|
|
|
|||
|
|
@ -25,8 +25,7 @@ target_sources(sfizz_static PRIVATE ${SFIZZ_SOURCES} sfizz/sfizz_wrapper.cpp)
|
|||
target_include_directories (sfizz_static PUBLIC .)
|
||||
target_include_directories (sfizz_static PUBLIC external)
|
||||
target_link_libraries (sfizz_static PUBLIC absl::strings absl::span)
|
||||
target_link_libraries (sfizz_static PRIVATE sfizz_parser absl::flat_hash_map Threads::Threads)
|
||||
sfizz_link_libsndfile(sfizz_static)
|
||||
target_link_libraries (sfizz_static PRIVATE sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile)
|
||||
|
||||
add_library (sfizz::parser ALIAS sfizz_parser)
|
||||
add_library (sfizz::sfizz ALIAS sfizz_static)
|
||||
|
|
@ -40,11 +39,10 @@ if (SFIZZ_SHARED)
|
|||
target_sources(sfizz_shared PRIVATE ${SFIZZ_SOURCES} sfizz/sfizz_wrapper.cpp sfizz/sfizz.cpp)
|
||||
target_include_directories (sfizz_shared PRIVATE .)
|
||||
target_include_directories (sfizz_static PRIVATE external)
|
||||
target_link_libraries (sfizz_shared PRIVATE absl::strings absl::span sfizz_parser absl::flat_hash_map Threads::Threads)
|
||||
target_link_libraries (sfizz_shared PRIVATE absl::strings absl::span sfizz_parser absl::flat_hash_map Threads::Threads sfizz-sndfile)
|
||||
target_compile_definitions(sfizz_shared PRIVATE SFIZZ_EXPORT_SYMBOLS)
|
||||
set_target_properties (sfizz_shared PROPERTIES OUTPUT_NAME sfizz PUBLIC_HEADER "sfizz.h;sfizz.hpp")
|
||||
set_property (TARGET sfizz_shared PROPERTY SOVERSION ${PROJECT_VERSION_MAJOR})
|
||||
sfizz_link_libsndfile(sfizz_shared)
|
||||
sfizz_enable_lto_if_needed(sfizz_shared)
|
||||
configure_file (${PROJECT_SOURCE_DIR}/scripts/sfizz.pc.in sfizz.pc @ONLY)
|
||||
if (UNIX)
|
||||
|
|
|
|||
3
src/external/atomic_queue/defs.h
vendored
3
src/external/atomic_queue/defs.h
vendored
|
|
@ -6,7 +6,8 @@
|
|||
|
||||
#include <atomic>
|
||||
|
||||
#if defined(__x86_64__) || defined(_M_X64)
|
||||
#if defined(__x86_64__) || defined(_M_X64) || \
|
||||
defined(__i386__) || defined(_M_IX86)
|
||||
#include <emmintrin.h>
|
||||
namespace atomic_queue {
|
||||
constexpr int CACHE_LINE_SIZE = 64;
|
||||
|
|
|
|||
|
|
@ -27,7 +27,9 @@
|
|||
#endif
|
||||
|
||||
#elif (_WIN32 || _WIN64)
|
||||
#ifdef _MSC_VER
|
||||
#pragma intrinsic(__debugbreak)
|
||||
#endif
|
||||
#define ASSERTFALSE \
|
||||
{ \
|
||||
std::cerr << "Assert failed at " << __FILE__ << ":" << __LINE__ << '\n'; \
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue