Skip to content

Commit 98eddc7

Browse files
committed
Export CMake targets to the build tree
Properly export Vorbis targets when added via `add_subdirectory()`.
1 parent 4a767c9 commit 98eddc7

File tree

3 files changed

+14
-5
lines changed

3 files changed

+14
-5
lines changed

CMakeLists.txt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ message(STATUS "Configuring ${PROJECT_NAME} ${PROJECT_VERSION}")
6262
check_library_exists(m floor "" HAVE_LIBM)
6363

6464
# Find ogg dependency
65-
find_package(Ogg REQUIRED)
65+
if(NOT TARGET Ogg::ogg)
66+
find_package(Ogg REQUIRED)
67+
endif()
6668

6769
add_subdirectory(lib)
6870

cmake/VorbisConfig.cmake.in

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
@PACKAGE_INIT@
22

33
include(CMakeFindDependencyMacro)
4-
find_dependency(Ogg REQUIRED)
4+
if(NOT TARGET Ogg::ogg)
5+
find_dependency(Ogg REQUIRED)
6+
endif()
57

68
include(${CMAKE_CURRENT_LIST_DIR}/VorbisTargets.cmake)
79

lib/CMakeLists.txt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,10 @@ if (NOT BUILD_FRAMEWORK)
7878
add_library(vorbisenc ${VORBISENC_SOURCES})
7979
add_library(vorbisfile ${VORBISFILE_SOURCES})
8080

81+
add_library(Vorbis::vorbis ALIAS vorbis)
82+
add_library(Vorbis::vorbisenc ALIAS vorbisenc)
83+
add_library(Vorbis::vorbisfile ALIAS vorbisfile)
84+
8185
get_version_info(VORBIS_VERSION_INFO "V_LIB_CURRENT" "V_LIB_AGE" "V_LIB_REVISION")
8286
set_target_properties(vorbis PROPERTIES SOVERSION ${VORBIS_VERSION_INFO})
8387
get_version_info(VORBISENC_VERSION_INFO "VE_LIB_CURRENT" "VE_LIB_AGE" "VE_LIB_REVISION")
@@ -121,6 +125,7 @@ if (NOT BUILD_FRAMEWORK)
121125
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
122126
FRAMEWORK DESTINATION ${CMAKE_INSTALL_LIBDIR}
123127
)
128+
export(EXPORT VorbisTargets NAMESPACE Vorbis:: FILE VorbisTargets.cmake)
124129

125130
if(INSTALL_CMAKE_PACKAGE_MODULE)
126131

@@ -134,15 +139,15 @@ if (NOT BUILD_FRAMEWORK)
134139

135140
include(CMakePackageConfigHelpers)
136141

137-
configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/VorbisConfig.cmake.in ${PROJECT_BINARY_DIR}/VorbisConfig.cmake
142+
configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/VorbisConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/VorbisConfig.cmake
138143
INSTALL_DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
139144
)
140145

141-
write_basic_package_version_file(${PROJECT_BINARY_DIR}/VorbisConfigVersion.cmake
146+
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/VorbisConfigVersion.cmake
142147
COMPATIBILITY SameMajorVersion
143148
)
144149

145-
install(FILES ${PROJECT_BINARY_DIR}/VorbisConfig.cmake ${PROJECT_BINARY_DIR}/VorbisConfigVersion.cmake
150+
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/VorbisConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/VorbisConfigVersion.cmake
146151
DESTINATION ${CMAKE_INSTALL_CONFIGDIR}
147152
)
148153

0 commit comments

Comments
 (0)