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.
pull/38/head
ArthurSonzogni 7 years ago
parent ae0f455615
commit 7d2044f645

@ -164,8 +164,11 @@ if (WIN32)
_disable_warning(4018) _disable_warning(4018)
endif() endif()
target_include_directories(libnyquist PRIVATE target_include_directories(libnyquist
${LIBNYQUIST_ROOT}/include PUBLIC
$<INSTALL_INTERFACE:include>
$<BUILD_INTERFACE:${LIBNYQUIST_ROOT}/include>
PRIVATE
${LIBNYQUIST_ROOT}/include/libnyquist ${LIBNYQUIST_ROOT}/include/libnyquist
${LIBNYQUIST_ROOT}/third_party ${LIBNYQUIST_ROOT}/third_party
${LIBNYQUIST_ROOT}/third_party/FLAC/src/include ${LIBNYQUIST_ROOT}/third_party/FLAC/src/include
@ -198,7 +201,7 @@ set_target_properties(libnyquist
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
) )
#target_link_libraries(libnyquist libopus libwavpack) target_link_libraries(libnyquist PRIVATE libopus libwavpack)
install(TARGETS libnyquist install(TARGETS libnyquist
LIBRARY DESTINATION lib LIBRARY DESTINATION lib
@ -236,22 +239,22 @@ if(BUILD_EXAMPLE)
target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __MACOSX_CORE__) target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __MACOSX_CORE__)
elseif(LIBNYQUIST_JACK) elseif(LIBNYQUIST_JACK)
target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __UNIX_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) elseif(LIBNYQUIST_PULSE)
target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __LINUX_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) elseif(LIBNYQUIST_ASOUND)
target_compile_definitions(${NQR_EXAMPLE_APP_NAME} PRIVATE __LINUX_ALSA__) 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() else()
message(FATAL, "On Linux, one of LIBNYQUIST_JACK, LIBNYQUIST_PULSE, or LIBNYQUIST_ASOUND must be set.") message(FATAL, "On Linux, one of LIBNYQUIST_JACK, LIBNYQUIST_PULSE, or LIBNYQUIST_ASOUND must be set.")
endif() endif()
target_include_directories(${NQR_EXAMPLE_APP_NAME} PRIVATE target_include_directories(${NQR_EXAMPLE_APP_NAME} PRIVATE
${LIBNYQUIST_ROOT}/include
${LIBNYQUIST_ROOT}/examples/src ${LIBNYQUIST_ROOT}/examples/src
${LIBNYQUIST_ROOT}/third_party ${LIBNYQUIST_ROOT}/third_party
) )
target_link_libraries(${NQR_EXAMPLE_APP_NAME} PRIVATE libnyquist)
set_target_properties(${NQR_EXAMPLE_APP_NAME} set_target_properties(${NQR_EXAMPLE_APP_NAME}
PROPERTIES PROPERTIES
@ -261,13 +264,13 @@ if(BUILD_EXAMPLE)
) )
if(APPLE) if(APPLE)
set(DARWIN_LIBS target_link_libraries(${NQR_EXAMPLE_APP_NAME} PRIVATE
"-framework AudioToolbox" "-framework AudioToolbox"
"-framework AudioUnit" "-framework AudioUnit"
"-framework Accelerate" "-framework Accelerate"
"-framework CoreAudio" "-framework CoreAudio"
"-framework Cocoa") "-framework Cocoa"
)
ENDIF(APPLE) ENDIF(APPLE)
target_link_libraries(${NQR_EXAMPLE_APP_NAME} PUBLIC ${DARWIN_LIBS} libnyquist libopus libwavpack)
endif() endif()

Loading…
Cancel
Save