CMake rewrite using modern CMake best practices

Rewrite CMakeLists.txt using CMake targets and modules instead
of building up source files in variables.

Change pkgconfig file generated by CMake to use
Requires.private and Libs.private fields as recommended by the
pkgconfig maintainer:
https://people.freedesktop.org/~dbn/pkg-config-guide.html#faq

Refactor to use standard CMake variables, notably
BUILD_SHARED_LIBS instead of always building both dynamic and
static libraries. Also use CMAKE_FRAMEWORK for building as a
macOS framework.

Remove superfluous PA_ prefixes from option names.

When building with ASIO, automatically download ASIO SDK from
Steinberg if it is not found. The path to the SDK can be
manually specified with ASIO_SDK_ZIP_PATH to facilitate caching
on CI.

Add support for building JACK host API with MSVC and MinGW.

Add support for OSS (off by default).
This commit is contained in:
Be 2021-02-09 11:01:57 -06:00 committed by Phil Burk
commit 242a0241f6
16 changed files with 722 additions and 683 deletions

View file

@ -1,55 +1,59 @@
# Test projects
# Use the macro to add test projects
ADD_TEST(pa_minlat)
ADD_TEST(patest1)
ADD_TEST(patest_buffer)
ADD_TEST(patest_callbackstop)
ADD_TEST(patest_clip)
ADD_TEST(patest_converters)
ADD_TEST(patest_dither)
IF(PA_USE_DS)
ADD_TEST(patest_dsound_find_best_latency_params)
ADD_TEST(patest_dsound_low_level_latency_params)
ADD_TEST(patest_dsound_surround)
ENDIF()
ADD_TEST(patest_hang)
ADD_TEST(patest_in_overflow)
IF(PA_USE_WASAPI)
ADD_TEST(patest_jack_wasapi)
ENDIF()
ADD_TEST(patest_latency)
ADD_TEST(patest_leftright)
ADD_TEST(patest_longsine)
ADD_TEST(patest_many)
ADD_TEST(patest_maxsines)
ADD_TEST(patest_mono)
ADD_TEST(patest_multi_sine)
ADD_TEST(patest_out_underflow)
ADD_TEST(patest_prime)
ADD_TEST(patest_read_record)
ADD_TEST(patest_ringmix)
ADD_TEST(patest_sine8)
ADD_TEST(patest_sine_channelmaps)
ADD_TEST(patest_sine_formats)
ADD_TEST(patest_sine_srate)
ADD_TEST(patest_sine_time)
ADD_TEST(patest_start_stop)
ADD_TEST(patest_stop)
ADD_TEST(patest_stop_playout)
ADD_TEST(patest_suggested_vs_streaminfo_latency)
ADD_TEST(patest_sync)
ADD_TEST(patest_timing)
ADD_TEST(patest_toomanysines)
ADD_TEST(patest_two_rates)
ADD_TEST(patest_underflow)
ADD_TEST(patest_unplug)
ADD_TEST(patest_wire)
IF(PA_USE_WMME)
ADD_TEST(patest_wmme_find_best_latency_params)
ADD_TEST(patest_wmme_low_level_latency_params)
ENDIF()
ADD_TEST(patest_write_stop)
IF(UNIX)
ADD_TEST(patest_write_stop_hang_illegal)
ENDIF()
add_test(pa_minlat)
add_test(patest1)
add_test(patest_buffer)
add_test(patest_callbackstop)
add_test(patest_clip)
if(LINK_PRIVATE_SYMBOLS)
add_test(patest_converters)
endif()
add_test(patest_dither)
if(DIRECTSOUND)
add_test(patest_dsound_find_best_latency_params)
add_test(patest_dsound_low_level_latency_params)
add_test(patest_dsound_surround)
endif()
add_test(patest_hang)
add_test(patest_in_overflow)
if(WASAPI)
add_test(patest_jack_wasapi)
endif()
add_test(patest_latency)
add_test(patest_leftright)
add_test(patest_longsine)
add_test(patest_many)
add_test(patest_maxsines)
add_test(patest_mono)
add_test(patest_multi_sine)
add_test(patest_out_underflow)
add_test(patest_prime)
add_test(patest_read_record)
add_test(patest_ringmix)
add_test(patest_sine8)
add_test(patest_sine_channelmaps)
add_test(patest_sine_formats)
add_test(patest_sine_srate)
add_test(patest_sine_time)
add_test(patest_start_stop)
add_test(patest_stop)
add_test(patest_stop_playout)
add_test(patest_suggested_vs_streaminfo_latency)
if(LINK_PRIVATE_SYMBOLS)
add_test(patest_sync)
endif()
add_test(patest_timing)
add_test(patest_toomanysines)
add_test(patest_two_rates)
add_test(patest_underflow)
add_test(patest_unplug)
add_test(patest_wire)
if(WMME)
add_test(patest_wmme_find_best_latency_params)
add_test(patest_wmme_low_level_latency_params)
endif()
add_test(patest_write_stop)
if(UNIX)
add_test(patest_write_stop_hang_illegal)
endif()