Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fdk-aac encoder + libshout-idjc + vcpkg Windows dependencies integration #3615

Merged
merged 58 commits into from
Feb 22, 2021
Merged
Show file tree
Hide file tree
Changes from 57 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
029b405
fdk-aac encoder
Jan 17, 2019
c844c85
Renamed libshout folder to libshout-idjc
daschuer Jan 8, 2021
4ec8ceb
update to libshout-idjc-2.4.1
daschuer Jan 8, 2021
ff9335e
fix loading of libfdk-aac if no symlink without a version is provided
daschuer Jan 9, 2021
77c557a
fix line break
daschuer Jan 9, 2021
ee26074
fix include files
daschuer Jan 9, 2021
dcf9895
Enable internal libshout-idjc for all targets
daschuer Jan 9, 2021
cf3188f
clazy fixes
daschuer Jan 9, 2021
afe65d2
Fix indent
daschuer Jan 10, 2021
b628f61
Don't use config.h configure by cmake instead, taken from https://git…
daschuer Jan 10, 2021
ad5a511
fix os.h
daschuer Jan 10, 2021
20ba8ca
Remove unsused strings.h
daschuer Jan 10, 2021
d7530f5
replace illegal void* arythmetric
daschuer Jan 10, 2021
d11fdc8
Try loading libfdk-aac.so.2 first
daschuer Jan 10, 2021
85450b5
Avoid possible string truncation.
daschuer Jan 10, 2021
d346048
Avoid extra buffer for sample conversion
daschuer Jan 10, 2021
282e838
link libshout-idjc against pthread
daschuer Jan 10, 2021
8819241
Link against pthread on windows
daschuer Jan 12, 2021
1387cbc
Fix file extensions during recording.
daschuer Jan 20, 2021
597b79f
Merge remote-tracking branch 'upstream/2.3' into fdkaac-encoder3
daschuer Jan 27, 2021
be0b0d2
Fix linking to system installed libshout-idjc
daschuer Jan 28, 2021
82ec841
Merge remote-tracking branch 'upstream/2.3' into fdkaac-encoder3
daschuer Jan 31, 2021
9557eee
Re-enabled Quality slider for AAC recording
daschuer Feb 1, 2021
5843994
Avoid log spam when probing fdkaac libraries
daschuer Feb 1, 2021
3408a2b
Check return value from aacEncoder_SetParam
daschuer Feb 1, 2021
7fd6657
Check for SBR support
daschuer Feb 1, 2021
3c75744
Replace QString::null
daschuer Feb 2, 2021
171fd9d
Improve error handling when initalize the encoders for recording or b…
daschuer Feb 2, 2021
3968d81
Prevent double message box in case of recording issues.
daschuer Feb 2, 2021
0fd0429
Fix second pop up in case of encoder issues during broadcasting.
daschuer Feb 2, 2021
1aa1406
fixed shadowed varibale issue
daschuer Feb 2, 2021
d0b3532
removed stray ;
daschuer Feb 2, 2021
6609aea
Fix redundant message box when fdk-aac is not installed.
daschuer Feb 2, 2021
4132ca5
Update error message.
daschuer Feb 2, 2021
a51634a
replace isNull() with isEmpty()
daschuer Feb 3, 2021
d0c227f
Make the encoding keys more readable.
daschuer Feb 3, 2021
ad5543e
Use more QStringLiteral
daschuer Feb 3, 2021
8a2a4ec
remove useless comment
daschuer Feb 3, 2021
97e1ffe
EncoderFdkAac: update name of BUTT DLL
Be-ing Feb 4, 2021
5a39153
EncoderFdkAac: change m_library to a std::unique_ptr
Be-ing Feb 4, 2021
bd27594
EncoderFdkAac: prefer external libraries that may support HE-AAC
Be-ing Feb 4, 2021
b196d0c
EncoderFdkAac: use #pragma once
Be-ing Feb 9, 2021
8bf2abf
CMake: Allow building if FFMPEG version is missing
Holzhaus Jan 16, 2021
d4db6a9
CMake: Rewrite Ogg/Vorbis find module
Holzhaus Jan 16, 2021
3d45e10
CMake libshout-idjc: link pthreads4w from vcpkg
Be-ing Feb 4, 2021
e4f4616
use Windows dependencies from vcpkg
Be-ing Jan 24, 2021
b115f87
use macOS build environment with fdk-aac fork without HE-AAC
Be-ing Feb 3, 2021
0c15373
CMake: copy libfdk-aac into Windows and macOS packages
Be-ing Feb 3, 2021
94016e1
avoid symbol collision with fdk-aac
Be-ing Feb 9, 2021
7eceda8
CMake: cleanup hacks for legacy Windows build environment
Be-ing Feb 4, 2021
70b0c51
CMake: add user feedback for FindFFMPEG.cmake module
Be-ing Feb 4, 2021
b022501
CMake: enable FFMPEG if it is found
Be-ing Feb 4, 2021
daa876c
factor out SemanticVersion into a utility class
Be-ing Feb 9, 2021
969975e
SoundSourceSndFile: do not support ogg for libsndfile >= 1.0.30
Be-ing Feb 9, 2021
1eab1d0
Encoder: fix build with OPUS=OFF
Be-ing Feb 9, 2021
e5d98a5
ShoutConnection: allow AAC for Shoutcast
Be-ing Feb 13, 2021
18bc1e8
CMake: disable FFMPEG automatically if it is too old
Be-ing Feb 16, 2021
3133372
CMake: add comment why qt_de.dm is searched for
Be-ing Feb 17, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/build-checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:
libqt5svg5-dev \
libqt5x11extras5-dev \
librubberband-dev \
libshout3-dev \
libshout-idjc-dev \
libsndfile1-dev \
libsoundtouch-dev \
libsqlite3-dev \
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ jobs:
os: ubuntu-18.04
cmake_args: >-
-DFAAD=ON
-DKEYFINDER=ON
-DLOCALECOMPARE=ON
-DMAD=ON
-DMODPLUG=ON
Expand Down Expand Up @@ -75,7 +74,6 @@ jobs:
-DLOCALECOMPARE=ON
-DMAD=ON
-DMEDIAFOUNDATION=ON
-DSTATIC_DEPS=ON
cc: cl
cxx: cl
cmake_generator: Ninja
Expand Down Expand Up @@ -110,7 +108,7 @@ jobs:
with:
# This should always match the mininum required version in
# our CMakeLists.txt
cmake-version: '3.13.x'
cmake-version: '3.15.x'

- name: "[Windows] Install additional build tools"
if: runner.os == 'Windows'
Expand Down
132 changes: 72 additions & 60 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cmake_minimum_required(VERSION 3.13.0)
cmake_minimum_required(VERSION 3.15.0)
project(mixxx VERSION 2.3.0)
set(CMAKE_PROJECT_HOMEPAGE_URL "https://www.mixxx.org")
set(CMAKE_PROJECT_DESCRIPTION "Mixxx is Free DJ software that gives you everything you need to perform live mixes.")
Expand Down Expand Up @@ -468,10 +468,11 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/effects/effectsmanager.cpp
src/encoder/encoder.cpp
src/encoder/encoderbroadcastsettings.cpp
src/encoder/encoderfdkaac.cpp
src/encoder/encoderfdkaacsettings.cpp
src/encoder/encoderflacsettings.cpp
src/encoder/encodermp3.cpp
src/encoder/encodermp3settings.cpp
src/encoder/encoderopussettings.cpp
src/encoder/encodersndfileflac.cpp
src/encoder/encodervorbis.cpp
src/encoder/encodervorbissettings.cpp
Expand Down Expand Up @@ -813,6 +814,7 @@ add_library(mixxx-lib STATIC EXCLUDE_FROM_ALL
src/util/sample.cpp
src/util/samplebuffer.cpp
src/util/sandbox.cpp
src/util/semanticversion.cpp
src/util/screensaver.cpp
src/util/sleepableqthread.cpp
src/util/stat.cpp
Expand Down Expand Up @@ -1350,6 +1352,25 @@ if(MSVC)
)
endif()

if(WIN32)
find_file(QT_TRANSLATION_FILE qt_de.qm PATH_SUFFIXES share/qt5/translations)
Be-ing marked this conversation as resolved.
Show resolved Hide resolved
get_filename_component(QT_TRANSLATIONS ${QT_TRANSLATION_FILE} DIRECTORY)
install(
DIRECTORY "${QT_TRANSLATIONS}"
DESTINATION "${MIXXX_INSTALL_DATADIR}"
# QT 5 translations have been separated into several files, and most of the qt_xx.qm files
# contain just shortcuts to load the qtbase, qtmultimedia etc files.
Be-ing marked this conversation as resolved.
Show resolved Hide resolved
FILES_MATCHING REGEX
"qt_.+\.qm|qtbase_.*\.qm|qtmultimedia_.*\.qm|qtscript_.*\.qm|qtxmlpatterns_.*\.qm"
)

# Qt 5 loads these ANGLE DLLs at runtime if the graphics driver is blocklisted.
# Qt does not link these and vcpkg does not build them as a dependency of Qt,
# so copy them manually.
find_file(EGL_DLL libEGL.dll PATH_SUFFIXES ${CMAKE_INSTALL_BINDIR})
find_file(GLESv2_DLL libGLESv2.dll PATH_SUFFIXES ${CMAKE_INSTALL_BINDIR})
install(FILES ${EGL_DLL} ${GLESv2_DLL} DESTINATION "${MIXXX_INSTALL_BINDIR}")
endif()

#
# Tests
Expand Down Expand Up @@ -1755,10 +1776,13 @@ set(OpenGL_GL_PREFERENCE "GLVND")
find_package(OpenGL REQUIRED)
target_link_libraries(mixxx-lib PUBLIC OpenGL::GL)

# Ogg Vorbis
find_package(OggVorbis REQUIRED)
target_include_directories(mixxx-lib SYSTEM PUBLIC ${OggVorbis_INCLUDE_DIRS})
target_link_libraries(mixxx-lib PUBLIC ${OggVorbis_LIBRARIES})
# Ogg
find_package(Ogg REQUIRED)
target_link_libraries(mixxx-lib PUBLIC Ogg::ogg)

# Vorbis
find_package(Vorbis REQUIRED)
target_link_libraries(mixxx-lib PUBLIC Vorbis::vorbis Vorbis::vorbisenc Vorbis::vorbisfile)

# PortAudio
find_package(PortAudio REQUIRED)
Expand Down Expand Up @@ -1920,32 +1944,6 @@ elseif(WIN32)
endif()
endif()

# Qt5_DIR is not set until now, so this cannot be moved above with the rest of the install commands
if(WIN32)
install(
# I haven't seen a way to determine where the translations dir is, so I am making
# some assumptions here, and assuming that Qt5_DIR points to Qt-5.14.2/lib/cmake/Qt5
# which is what my configuration tells me.
DIRECTORY
"${Qt5_DIR}/../../../translations"
DESTINATION
"${MIXXX_INSTALL_DATADIR}"
# QT 5 translations have been separated into several files, and most of the qt_xx.qm files
# contain just shortcuts to load the qtbase, qtmultimedia etc files.
FILES_MATCHING REGEX
"qt_.+\.qm|qtbase_.*\.qm|qtmultimedia_.*\.qm|qtscript_.*\.qm|qtxmlpatterns_.*\.qm"
)

# ANGLE DLLs are dynamically linked even when the rest of Qt is built statically
install(
FILES
"${Qt5_DIR}/../../../bin/libEGL.dll"
"${Qt5_DIR}/../../../bin/libGLESv2.dll"
DESTINATION
"${MIXXX_INSTALL_DATADIR}"
)
endif()

# QtScriptByteArray
add_library(QtScriptByteArray STATIC EXCLUDE_FROM_ALL
lib/qtscript-bytearray/bytearrayclass.cpp
Expand Down Expand Up @@ -2219,29 +2217,49 @@ if(FAAD)
endif()
endif()

# FDK-AAC is loaded dynamically at runtime by EncoderFdkAac using QLibrary,
# so copy it into the Windows and macOS packages, but do not link to it.
find_library(FDK_AAC_LIBRARY fdk-aac)
# On Windows find_library finds the .lib file, but the installer needs the .dll file.
Be-ing marked this conversation as resolved.
Show resolved Hide resolved
find_file(FDK_AAC_DLL fdk-aac.dll PATH_SUFFIXES ${CMAKE_INSTALL_BINDIR})
Be-ing marked this conversation as resolved.
Show resolved Hide resolved
if(APPLE AND MACOS_BUNDLE AND FDK_AAC_LIBRARY)
message(STATUS "Found fdk-aac: ${FDK_AAC_LIBRARY}")
file(COPY ${FDK_AAC_LIBRARY}
DESTINATION ${MIXXX_INSTALL_PREFIX}/Contents/Frameworks
FOLLOW_SYMLINK_CHAIN
)
elseif(WIN32 AND FDK_AAC_DLL)
message(STATUS "Found fdk-aac DLL: ${FDK_AAC_DLL}")
install(FILES ${FDK_AAC_DLL} DESTINATION ${MIXXX_INSTALL_BINDIR})
elseif(FDK_AAC_LIBRARY)
message(STATUS "Found fdk-aac: ${FDK_AAC_LIBRARY}")
Be-ing marked this conversation as resolved.
Show resolved Hide resolved
else()
message(STATUS "Could NOT find fdk-aac")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be rephrased and give more target specific hints.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Such as?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Such as: "Could not find fdk-aac.dll in ${CMAKE_INSTALL_BINDIR}"

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that extra complexity is necessary or really helpful...

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not just add it? The fast merge of this PR is so important - please don't postpone it uneccessary by such detail discussions!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that merging this PR should not be slowed down by bikeshedding pointless details.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am also against repeating the inner workings of the find algorithm in colloquial language, maybe even with platform-dependent wording. This message will only ever be seen by developers and is sufficient.

endif()

# FFmpeg 4.x support
# FFmpeg is multimedia library that can be found http://ffmpeg.org/
find_package(FFMPEG COMPONENTS libavcodec libavformat libavutil libswresample)
option(FFMPEG "FFmpeg 4.x support" OFF)
cmake_dependent_option(FFMPEG "FFmpeg 4.x support" ON "FFMPEG_FOUND;FFMPEG_libavcodec_VERSION VERSION_GREATER_EQUAL 58" OFF)
if(FFMPEG)
if(NOT FFMPEG_libavcodec_FOUND)
message(FATAL_ERROR "FFmpeg support requires libavcodec and its development headers.")
elseif(FFMPEG_libavcodec_VERSION VERSION_LESS 58)
elseif(FFMPEG_libavcodec_VERSION AND FFMPEG_libavcodec_VERSION VERSION_LESS 58)
message(FATAL_ERROR "FFmpeg support requires at least version 58 of libavcodec (found: ${AVCODEC_VERSION}).")
endif()
if(NOT FFMPEG_libavformat_FOUND)
message(FATAL_ERROR "FFmpeg support requires libavformat and its development headers.")
elseif(FFMPEG_libavformat_VERSION VERSION_LESS 58)
elseif(FFMPEG_libavformat_VERSION AND FFMPEG_libavformat_VERSION VERSION_LESS 58)
message(FATAL_ERROR "FFmpeg support requires at least version 58 of libavformat (found: ${AVFORMAT_VERSION}).")
endif()
if(NOT FFMPEG_libavutil_FOUND)
message(FATAL_ERROR "FFmpeg support requires libavutil and its development headers.")
elseif(FFMPEG_libavutil_VERSION VERSION_LESS 56)
elseif(FFMPEG_libavutil_VERSION AND FFMPEG_libavutil_VERSION VERSION_LESS 56)
message(FATAL_ERROR "FFmpeg support requires at least version 56 of libavutil (found: ${AVUTIL_VERSION}).")
endif()
if(NOT FFMPEG_libswresample_FOUND)
message(FATAL_ERROR "FFmpeg support requires libswresample and its development headers.")
elseif(FFMPEG_libswresample_VERSION VERSION_LESS 3.1)
elseif(FFMPEG_libswresample_VERSION AND FFMPEG_libswresample_VERSION VERSION_LESS 3.1)
message(FATAL_ERROR "FFmpeg support requires at least version 3.1 of libswresample (found: ${SWRESAMPLE_VERSION}).")
endif()

Expand Down Expand Up @@ -2310,30 +2328,23 @@ endif()
# Live Broadcasting (Shoutcast)
option(BROADCAST "Live Broadcasting (Shoutcast) support" ON)
if(BROADCAST)
find_package(Shout)
if(UNIX AND NOT APPLE)
# Check if system lib is at least 2.4.6 and not suffering bugs
# https://bugs.launchpad.net/mixxx/+bug/1833225
# https://bugs.launchpad.net/mixxx/+bug/1913579
if(Shout_FOUND AND Shout_VERSION VERSION_LESS 2.4.4)
message(STATUS "Installed libshout version: ${Shout_VERSION} is suffering from bugs lp1833225 and lp1913579")
elseif(Shout_FOUND AND Shout_VERSION VERSION_LESS 2.4.6)
message(STATUS "Installed libshout version: ${Shout_VERSION} is suffering from bug lp1913579")
endif()
if(NOT Shout_FOUND OR Shout_VERSION VERSION_LESS 2.4.6)
# Fall back to internal libraray in the lib tree
message(STATUS "Using internal libshout")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/lib/libshout")
target_include_directories(mixxx-lib SYSTEM PUBLIC lib/libshout/include)
target_link_libraries(mixxx-lib PUBLIC shout_mixxx)
else()
target_link_libraries(mixxx-lib PUBLIC Shout::Shout)
endif()
find_package(Shoutidjc)
# Check if system lib is at least 2.4.6 and not suffering bugs
# https://bugs.launchpad.net/mixxx/+bug/1833225
# https://bugs.launchpad.net/mixxx/+bug/1913579
if(Shoutidjc_FOUND AND Shoutidjc_VERSION VERSION_LESS 2.4.4)
message(STATUS "Installed libshout-idjc version: ${Shoutidjc_VERSION} is suffering from bug lp1833225")
elseif(Shoutidjc_FOUND AND Shoutidjc_VERSION VERSION_LESS 2.4.6)
message(STATUS "Installed libshout version: ${Shout_VERSION} is suffering from bug lp1913579")
endif()
if(NOT Shsoutidjc_FOUND OR Shoutidjc_VERSION VERSION_LESS 2.4.6)
# Fall back to internal libraray in the lib tree
message(STATUS "Using internal libshout-idjc")
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/lib/libshout-idjc")
target_include_directories(mixxx-lib SYSTEM PUBLIC lib/libshout-idjc/include)
target_link_libraries(mixxx-lib PUBLIC shout_mixxx)
else()
if(NOT Shout_FOUND)
message(FATAL_ERROR "Live Broadcasting support requires the libshout and its development headers.")
endif()
target_link_libraries(mixxx-lib PUBLIC Shout::Shout)
target_link_libraries(mixxx-lib PUBLIC Shoutidjc::Shoutidjc)
endif()
target_sources(mixxx-lib PRIVATE
src/preferences/dialog/dlgprefbroadcastdlg.ui
Expand Down Expand Up @@ -2373,6 +2384,7 @@ if(OPUS)
target_sources(mixxx-lib PRIVATE
src/sources/soundsourceopus.cpp
src/encoder/encoderopus.cpp
src/encoder/encoderopussettings.cpp
)
target_compile_definitions(mixxx-lib PUBLIC __OPUS__)
target_include_directories(mixxx-lib SYSTEM PUBLIC ${Opus_INCLUDE_DIRS})
Expand Down
6 changes: 3 additions & 3 deletions cmake/modules/FindFFMPEG.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,10 @@ macro(find_component _component _pkgconfig _library _header)
set(FFMPEG_${_component}_VERSION ${PC_FFMPEG_${_component}_VERSION} CACHE STRING "The ${_component} version number.")

if (FFMPEG_${_component}_LIBRARIES AND FFMPEG_${_component}_INCLUDE_DIRS)
# message(STATUS " - ${_component} found.")
message(STATUS " - ${_component} found.")
set(FFMPEG_${_component}_FOUND TRUE)
else ()
# message(STATUS " - ${_component} not found.")
message(STATUS " - ${_component} not found.")
endif ()

mark_as_advanced(
Expand All @@ -119,7 +119,7 @@ macro(find_component _component _pkgconfig _library _header)

endmacro()


message(STATUS "Searching for FFMPEG components")
# Check for all possible component.
find_component(libavcodec libavcodec avcodec libavcodec/avcodec.h)
find_component(libavformat libavformat avformat libavformat/avformat.h)
Expand Down
78 changes: 78 additions & 0 deletions cmake/modules/FindOgg.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# This file is part of Mixxx, Digital DJ'ing software.
# Copyright (C) 2001-2020 Mixxx Development Team
# Distributed under the GNU General Public Licence (GPL) version 2 or any later
# later version. See the LICENSE file for details.

#[=======================================================================[.rst:
FindOgg
-------

Finds the Ogg library.

Result Variables
^^^^^^^^^^^^^^^^

This will define the following variables:

``Ogg_FOUND``
True if the system has the Ogg library.
``Ogg_INCLUDE_DIRS``
Include directories needed to use Ogg.
``Ogg_LIBRARIES``
Libraries needed to link to Ogg.
``Ogg_DEFINITIONS``
Compile definitions needed to use Ogg.

Cache Variables
^^^^^^^^^^^^^^^

The following cache variables may also be set:

``Ogg_INCLUDE_DIR``
The directory containing ``ogg/ogg.h``.
``Ogg_LIBRARY``
The path to the Ogg library.

#]=======================================================================]
find_package(PkgConfig QUIET)
if(PkgConfig_FOUND)
pkg_check_modules(PC_Ogg QUIET ogg)
endif()

find_path(Ogg_INCLUDE_DIR
NAMES ogg/ogg.h
PATHS ${PC_Ogg_INCLUDE_DIRS}
DOC "Ogg include directory"
)
mark_as_advanced(Ogg_INCLUDE_DIR)

find_library(Ogg_LIBRARY
NAMES ogg
PATHS ${PC_Ogg_LIBRARY_DIRS}
DOC "Ogg library"
)
mark_as_advanced(Ogg_LIBRARY)

include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(
Ogg
REQUIRED_VARS
Ogg_INCLUDE_DIR
Ogg_LIBRARY
)

if(Ogg_FOUND)
set(Ogg_LIBRARIES ${Ogg_LIBRARY})
set(Ogg_INCLUDE_DIRS ${Ogg_INCLUDE_DIR})
set(Ogg_DEFINITIONS ${PC_Ogg_CFLAGS_OTHER})

if(NOT TARGET Ogg::ogg)
add_library(Ogg::ogg UNKNOWN IMPORTED)
set_target_properties(Ogg::ogg
PROPERTIES
IMPORTED_LOCATION "${Ogg_LIBRARY}"
INTERFACE_COMPILE_OPTIONS "${PC_Ogg_CFLAGS_OTHER}"
INTERFACE_INCLUDE_DIRECTORIES "${Ogg_INCLUDE_DIR}"
)
endif()
endif()
Loading