mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-05 21:31:08 -06:00
4
Help/release/dev/findopenal-add-import-library.rst
Normal file
4
Help/release/dev/findopenal-add-import-library.rst
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
findopenal-add-import-library
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
* The :module:`FindOpenAL` module now provides an imported target.
|
||||||
@@ -29,6 +29,16 @@ OpenAL is searched in the following order:
|
|||||||
5. Manually compiled framework: ``/Library/Frameworks``.
|
5. Manually compiled framework: ``/Library/Frameworks``.
|
||||||
6. Add-on package: ``/opt``.
|
6. Add-on package: ``/opt``.
|
||||||
|
|
||||||
|
IMPORTED Targets
|
||||||
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
.. versionadded:: 3.25
|
||||||
|
|
||||||
|
This module defines the :prop_tgt:`IMPORTED` target:
|
||||||
|
|
||||||
|
``OpenAL::OpenAL``
|
||||||
|
The OpenAL library, if found.
|
||||||
|
|
||||||
Result Variables
|
Result Variables
|
||||||
^^^^^^^^^^^^^^^^
|
^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
@@ -94,3 +104,19 @@ find_package_handle_standard_args(
|
|||||||
)
|
)
|
||||||
|
|
||||||
mark_as_advanced(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
|
mark_as_advanced(OPENAL_LIBRARY OPENAL_INCLUDE_DIR)
|
||||||
|
|
||||||
|
if(OPENAL_INCLUDE_DIR AND OPENAL_LIBRARY)
|
||||||
|
if(NOT TARGET OpenAL::OpenAL)
|
||||||
|
if(EXISTS "${OPENAL_LIBRARY}")
|
||||||
|
add_library(OpenAL::OpenAL UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(OpenAL::OpenAL PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${OPENAL_LIBRARY}")
|
||||||
|
else()
|
||||||
|
add_library(OpenAL::OpenAL INTERFACE IMPORTED)
|
||||||
|
set_target_properties(OpenAL::OpenAL PROPERTIES
|
||||||
|
IMPORTED_LIBNAME "${OPENAL_LIBRARY}")
|
||||||
|
endif()
|
||||||
|
set_target_properties(OpenAL::OpenAL PROPERTIES
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${OPENAL_INCLUDE_DIR}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|||||||
@@ -1460,6 +1460,7 @@ if(BUILD_TESTING)
|
|||||||
LTTngUST
|
LTTngUST
|
||||||
ODBC
|
ODBC
|
||||||
OpenACC
|
OpenACC
|
||||||
|
OpenAL
|
||||||
OpenCL
|
OpenCL
|
||||||
OpenGL
|
OpenGL
|
||||||
OpenMP
|
OpenMP
|
||||||
|
|||||||
10
Tests/FindOpenAL/CMakeLists.txt
Normal file
10
Tests/FindOpenAL/CMakeLists.txt
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
add_test(NAME FindOpenAL.Test COMMAND
|
||||||
|
${CMAKE_CTEST_COMMAND} -C $<CONFIGURATION>
|
||||||
|
--build-and-test
|
||||||
|
"${CMake_SOURCE_DIR}/Tests/FindOpenAL/Test"
|
||||||
|
"${CMake_BINARY_DIR}/Tests/FindOpenAL/Test"
|
||||||
|
${build_generator_args}
|
||||||
|
--build-project TestFindOpenAL
|
||||||
|
--build-options ${build_options}
|
||||||
|
--test-command ${CMAKE_CTEST_COMMAND} -V -C $<CONFIGURATION>
|
||||||
|
)
|
||||||
14
Tests/FindOpenAL/Test/CMakeLists.txt
Normal file
14
Tests/FindOpenAL/Test/CMakeLists.txt
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.21)
|
||||||
|
project(TestFindOpenAL CXX)
|
||||||
|
include(CTest)
|
||||||
|
|
||||||
|
find_package(OpenAL REQUIRED)
|
||||||
|
|
||||||
|
add_executable(test_tgt main.cxx)
|
||||||
|
target_link_libraries(test_tgt OpenAL::OpenAL)
|
||||||
|
add_test(NAME test_tgt COMMAND test_tgt)
|
||||||
|
|
||||||
|
add_executable(test_var main.cxx)
|
||||||
|
target_include_directories(test_var PRIVATE ${OPENAL_INCLUDE_DIR})
|
||||||
|
target_link_libraries(test_var PRIVATE ${OPENAL_LIBRARY})
|
||||||
|
add_test(NAME test_var COMMAND test_var)
|
||||||
13
Tests/FindOpenAL/Test/main.cxx
Normal file
13
Tests/FindOpenAL/Test/main.cxx
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
#include <AL/al.h>
|
||||||
|
#include <AL/alc.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
/* Reference an AL symbol without requiring a context at runtime. */
|
||||||
|
printf("&alGetString = %p\n", &alGetString);
|
||||||
|
|
||||||
|
/* Reference an ALC symbol without requiring a context at runtime. */
|
||||||
|
printf("&alcGetString = %p\n", &alcGetString);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user