From 7d2044f645231fcfdc18ae2dc68d51c05124ffa4 Mon Sep 17 00:00:00 2001 From: ArthurSonzogni Date: Tue, 23 Apr 2019 20:05:10 +0200 Subject: [PATCH 1/2] Populate the PUBLIC and PRIVATE interface of libnyquist When linking against libnyquist: + include its public headers in the PUBLIC interface. + include its libraries dependencies in the PRIVATE interface. Along the way, update the linkage of the examples, it was made PUBLIC unnecessarily, it is an executable, it won't be linked against another target. --- CMakeLists.txt | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a263fd4..680a542 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -164,8 +164,11 @@ if (WIN32) _disable_warning(4018) endif() -target_include_directories(libnyquist PRIVATE - ${LIBNYQUIST_ROOT}/include +target_include_directories(libnyquist + PUBLIC + $ + $ + PRIVATE ${LIBNYQUIST_ROOT}/include/libnyquist ${LIBNYQUIST_ROOT}/third_party ${LIBNYQUIST_ROOT}/third_party/FLAC/src/include @@ -198,7 +201,7 @@ set_target_properties(libnyquist RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" ) -#target_link_libraries(libnyquist libopus libwavpack) +target_link_libraries(libnyquist PRIVATE libopus libwavpack) install(TARGETS libnyquist LIBRARY DESTINATION lib @@ -236,22 +239,22 @@ if(BUILD_EXAMPLE) target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __MACOSX_CORE__) elseif(LIBNYQUIST_JACK) target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __UNIX_JACK__) - target_link_libraries(${NQR_EXAMPLE_APP_NAME} PUBLIC jack pthread) + target_link_libraries(${NQR_EXAMPLE_APP_NAME} PRIVATE jack pthread) elseif(LIBNYQUIST_PULSE) target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __LINUX_PULSE__) - target_link_libraries(${NQR_EXAMPLE_APP_NAME} PUBLIC pulse pthread) + target_link_libraries(${NQR_EXAMPLE_APP_NAME} PRIVATE pulse pthread) elseif(LIBNYQUIST_ASOUND) target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __LINUX_ALSA__) - target_link_libraries(${NQR_EXAMPLE_APP_NAME} PUBLIC asound pthread) + target_link_libraries(${NQR_EXAMPLE_APP_NAME} PRIVATE asound pthread) else() message(FATAL, "On Linux, one of LIBNYQUIST_JACK, LIBNYQUIST_PULSE, or LIBNYQUIST_ASOUND must be set.") endif() target_include_directories(${NQR_EXAMPLE_APP_NAME} PRIVATE - ${LIBNYQUIST_ROOT}/include ${LIBNYQUIST_ROOT}/examples/src ${LIBNYQUIST_ROOT}/third_party ) + target_link_libraries(${NQR_EXAMPLE_APP_NAME} PRIVATE libnyquist) set_target_properties(${NQR_EXAMPLE_APP_NAME} PROPERTIES @@ -261,13 +264,13 @@ if(BUILD_EXAMPLE) ) if(APPLE) - set(DARWIN_LIBS + target_link_libraries(${NQR_EXAMPLE_APP_NAME} PRIVATE "-framework AudioToolbox" "-framework AudioUnit" "-framework Accelerate" "-framework CoreAudio" - "-framework Cocoa") + "-framework Cocoa" + ) ENDIF(APPLE) - target_link_libraries(${NQR_EXAMPLE_APP_NAME} PUBLIC ${DARWIN_LIBS} libnyquist libopus libwavpack) endif() From 12f60ab575e6e792d71efcbbc9d0403f833966c4 Mon Sep 17 00:00:00 2001 From: ArthurSonzogni Date: Tue, 30 Apr 2019 16:46:29 +0200 Subject: [PATCH 2/2] Fix flac_min/flac_max not defined with Emscripten. When the compiler doesn't match the ones expected, flac_min/flac_max aren't defined. There is a fallback to always define them, but MIN/MAX were defined instead of flac_min/flac_max This commit is the same as the one is the original FLAC project: https://github.com/xiph/flac/blob/master/src/libFLAC/include/private/macros.h --- third_party/FLAC/src/include/private/macros.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/third_party/FLAC/src/include/private/macros.h b/third_party/FLAC/src/include/private/macros.h index b72b69b..fcdfad1 100644 --- a/third_party/FLAC/src/include/private/macros.h +++ b/third_party/FLAC/src/include/private/macros.h @@ -61,12 +61,12 @@ #define flac_min(a,b) __min(a,b) #endif -#ifndef MIN -#define MIN(x,y) ((x) <= (y) ? (x) : (y)) +#ifndef flac_min +#define flac_min(x,y) ((x) <= (y) ? (x) : (y)) #endif -#ifndef MAX -#define MAX(x,y) ((x) >= (y) ? (x) : (y)) +#ifndef flac_max +#define flac_max(x,y) ((x) >= (y) ? (x) : (y)) #endif #endif