From 1c87844856f7995bccc30c32567540be948f80da Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer <eb@emlix.com> Date: Mon, 28 May 2018 15:47:23 +0200 Subject: FindALSA: provide an imported target --- Help/release/dev/alsa-target.rst | 4 ++++ Modules/FindALSA.cmake | 14 ++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 Help/release/dev/alsa-target.rst diff --git a/Help/release/dev/alsa-target.rst b/Help/release/dev/alsa-target.rst new file mode 100644 index 0000000..e970580 --- /dev/null +++ b/Help/release/dev/alsa-target.rst @@ -0,0 +1,4 @@ +alsa-target +----------- + +* The :module:`FindALSA` module now provides imported targets. diff --git a/Modules/FindALSA.cmake b/Modules/FindALSA.cmake index fa9a434..84b6ec5 100644 --- a/Modules/FindALSA.cmake +++ b/Modules/FindALSA.cmake @@ -9,6 +9,15 @@ # # Find the alsa libraries (asound) # +# IMPORTED Targets +# ^^^^^^^^^^^^^^^^ +# +# This module defines :prop_tgt:`IMPORTED` target ``ALSA::ALSA``, if +# ALSA has been found. +# +# Result Variables +# ^^^^^^^^^^^^^^^^ +# # :: # # This module defines the following variables: @@ -47,6 +56,11 @@ FIND_PACKAGE_HANDLE_STANDARD_ARGS(ALSA if(ALSA_FOUND) set( ALSA_LIBRARIES ${ALSA_LIBRARY} ) set( ALSA_INCLUDE_DIRS ${ALSA_INCLUDE_DIR} ) + if(NOT TARGET ALSA::ALSA) + add_library(ALSA::ALSA UNKNOWN IMPORTED) + set_target_properties(ALSA::ALSA PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${ALSA_INCLUDE_DIRS}") + set_property(TARGET ALSA::ALSA APPEND PROPERTY IMPORTED_LOCATION "${ALSA_LIBRARY}") + endif() endif() mark_as_advanced(ALSA_INCLUDE_DIR ALSA_LIBRARY) -- cgit v0.12 From 6a64292fa722c15b8af63e3b0b4dcef5dbfacc8e Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer <eb@emlix.com> Date: Mon, 28 May 2018 15:52:08 +0200 Subject: FindALSA: reformat docs --- Modules/FindALSA.cmake | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Modules/FindALSA.cmake b/Modules/FindALSA.cmake index 84b6ec5..c9cfd60 100644 --- a/Modules/FindALSA.cmake +++ b/Modules/FindALSA.cmake @@ -18,20 +18,27 @@ # Result Variables # ^^^^^^^^^^^^^^^^ # -# :: +# This module defines the following variables: # -# This module defines the following variables: -# ALSA_FOUND - True if ALSA_INCLUDE_DIR & ALSA_LIBRARY are found -# ALSA_LIBRARIES - Set when ALSA_LIBRARY is found -# ALSA_INCLUDE_DIRS - Set when ALSA_INCLUDE_DIR is found +# ``ALSA_FOUND`` +# True if ALSA_INCLUDE_DIR & ALSA_LIBRARY are found # +# ``ALSA_LIBRARIES`` +# List of libraries when using ALSA. # +# ``ALSA_INCLUDE_DIRS`` +# Where to find the ALSA headers. # -# :: +# Cache variables +# ^^^^^^^^^^^^^^^ # -# ALSA_INCLUDE_DIR - where to find asoundlib.h, etc. -# ALSA_LIBRARY - the asound library -# ALSA_VERSION_STRING - the version of alsa found (since CMake 2.8.8) +# The following cache variables may also be set: +# +# ``ALSA_INCLUDE_DIR`` +# the ALSA include directory +# +# ``ALSA_LIBRARY`` +# the absolute path of the asound library find_path(ALSA_INCLUDE_DIR NAMES alsa/asoundlib.h DOC "The ALSA (asound) include directory" -- cgit v0.12 From 1c5b1ad4088fc98287448a68771ec2601174a392 Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer <eike@sf-mail.de> Date: Thu, 31 May 2018 09:35:00 +0200 Subject: FindALSA: add testcase --- Tests/CMakeLists.txt | 4 ++++ Tests/FindALSA/CMakeLists.txt | 10 ++++++++++ Tests/FindALSA/Test/CMakeLists.txt | 16 ++++++++++++++++ Tests/FindALSA/Test/main.c | 10 ++++++++++ 4 files changed, 40 insertions(+) create mode 100644 Tests/FindALSA/CMakeLists.txt create mode 100644 Tests/FindALSA/Test/CMakeLists.txt create mode 100644 Tests/FindALSA/Test/main.c diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt index 0e94388..886e392 100644 --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt @@ -1368,6 +1368,10 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release endif() endif() + if(CMake_TEST_FindALSA) + add_subdirectory(FindALSA) + endif() + if(CMake_TEST_CUDA) add_subdirectory(Cuda) add_subdirectory(CudaOnly) diff --git a/Tests/FindALSA/CMakeLists.txt b/Tests/FindALSA/CMakeLists.txt new file mode 100644 index 0000000..891f7a4 --- /dev/null +++ b/Tests/FindALSA/CMakeLists.txt @@ -0,0 +1,10 @@ +add_test(NAME FindALSA.Test COMMAND + ${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION> + --build-and-test + "${CMake_SOURCE_DIR}/Tests/FindALSA/Test" + "${CMake_BINARY_DIR}/Tests/FindALSA/Test" + ${build_generator_args} + --build-project TestFindALSA + --build-options ${build_options} + --test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION> + ) diff --git a/Tests/FindALSA/Test/CMakeLists.txt b/Tests/FindALSA/Test/CMakeLists.txt new file mode 100644 index 0000000..2829740 --- /dev/null +++ b/Tests/FindALSA/Test/CMakeLists.txt @@ -0,0 +1,16 @@ +cmake_minimum_required(VERSION 3.10) +project(TestFindALSA C) +include(CTest) + +find_package(ALSA REQUIRED) + +add_definitions(-DCMAKE_EXPECTED_ALSA_VERSION="${ALSA_VERSION_STRING}") + +add_executable(test_tgt main.c) +target_link_libraries(test_tgt ALSA::ALSA) +add_test(NAME test_tgt COMMAND test_tgt) + +add_executable(test_var main.c) +target_include_directories(test_var PRIVATE ${ALSA_INCLUDE_DIRS}) +target_link_libraries(test_var PRIVATE ${ALSA_LIBRARIES}) +add_test(NAME test_var COMMAND test_var) diff --git a/Tests/FindALSA/Test/main.c b/Tests/FindALSA/Test/main.c new file mode 100644 index 0000000..d3303d0 --- /dev/null +++ b/Tests/FindALSA/Test/main.c @@ -0,0 +1,10 @@ +#include <alsa/global.h> +#include <stdio.h> +#include <string.h> + +int main() +{ + printf("Found ALSA version %s, expected version %s\n", + snd_asoundlib_version(), CMAKE_EXPECTED_ALSA_VERSION); + return strcmp(snd_asoundlib_version(), CMAKE_EXPECTED_ALSA_VERSION); +} -- cgit v0.12