mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-23 16:43:50 +00:00
This updates the minimum required cmake version and the libs that have updates for this. Ogg updated to master as of 20052025 Libsndfile updated to master as of 20052025 Opus minimum cmake version changed vorbis minimum cmake version changed
80 lines
2.6 KiB
CMake
80 lines
2.6 KiB
CMake
cmake_minimum_required(VERSION 3.6)
|
|
project(vorbis)
|
|
|
|
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
|
|
|
# Required modules
|
|
include(GNUInstallDirs)
|
|
include(CheckIncludeFiles)
|
|
include(CheckLibraryExists)
|
|
|
|
# Build options
|
|
option(BUILD_SHARED_LIBS "Build shared library" OFF)
|
|
if(APPLE)
|
|
option(BUILD_FRAMEWORK "Build Framework bundle for OSX" OFF)
|
|
endif()
|
|
|
|
if(BUILD_FRAMEWORK)
|
|
set(BUILD_SHARED_LIBS TRUE)
|
|
endif()
|
|
|
|
option(INSTALL_CMAKE_PACKAGE_MODULE "Install CMake package configiguration module" ON)
|
|
|
|
# Extract project version from configure.ac
|
|
file(READ configure.ac CONFIGURE_AC_CONTENTS)
|
|
string(REGEX MATCH "AC_INIT\\(\\[libvorbis\\],\\[([0-9]*).([0-9]*).([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})
|
|
set(PROJECT_VERSION_MAJOR ${CMAKE_MATCH_1})
|
|
set(PROJECT_VERSION_MINOR ${CMAKE_MATCH_2})
|
|
set(PROJECT_VERSION_PATCH ${CMAKE_MATCH_3})
|
|
set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH})
|
|
|
|
# Helper function to get version-info
|
|
function(get_version_info result current_var_name age_var_name revision_var_name)
|
|
string(REGEX MATCH "${current_var_name}=([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})
|
|
set(VERSION_INFO_CURRENT ${CMAKE_MATCH_1})
|
|
|
|
string(REGEX MATCH "${age_var_name}=([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})
|
|
set(VERSION_INFO_AGE ${CMAKE_MATCH_1})
|
|
|
|
string(REGEX MATCH "${revision_var_name}=([0-9]*)" DUMMY ${CONFIGURE_AC_CONTENTS})
|
|
set(VERSION_INFO_REVISION ${CMAKE_MATCH_1})
|
|
|
|
math(EXPR VERSION_INFO_CURRENT_MINUS_AGE "${VERSION_INFO_CURRENT} - ${VERSION_INFO_AGE}")
|
|
|
|
set(${result} "${VERSION_INFO_CURRENT_MINUS_AGE}.${VERSION_INFO_AGE}.${VERSION_INFO_REVISION}" PARENT_SCOPE)
|
|
endfunction()
|
|
|
|
# Helper function to configure pkg-config files
|
|
function(configure_pkg_config_file pkg_config_file_in)
|
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
|
set(exec_prefix ${CMAKE_INSTALL_FULL_BINDIR})
|
|
set(libdir ${CMAKE_INSTALL_FULL_LIBDIR})
|
|
set(includedir ${CMAKE_INSTALL_FULL_INCLUDEDIR})
|
|
set(VERSION ${PROJECT_VERSION})
|
|
string(REPLACE ".in" "" pkg_config_file ${pkg_config_file_in})
|
|
configure_file(${pkg_config_file_in} ${pkg_config_file} @ONLY)
|
|
endfunction()
|
|
|
|
message(STATUS "Configuring ${PROJECT_NAME} ${PROJECT_VERSION}")
|
|
|
|
# Find math library
|
|
|
|
check_library_exists(m floor "" HAVE_LIBM)
|
|
|
|
# Find ogg dependency
|
|
#find_package(ogg CONFIG REQUIRED)
|
|
|
|
add_subdirectory(lib)
|
|
|
|
configure_pkg_config_file(vorbis.pc.in)
|
|
configure_pkg_config_file(vorbisenc.pc.in)
|
|
configure_pkg_config_file(vorbisfile.pc.in)
|
|
|
|
install(
|
|
FILES
|
|
${CMAKE_CURRENT_BINARY_DIR}/vorbis.pc
|
|
${CMAKE_CURRENT_BINARY_DIR}/vorbisenc.pc
|
|
${CMAKE_CURRENT_BINARY_DIR}/vorbisfile.pc
|
|
DESTINATION
|
|
${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
|
)
|