1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-16 16:10:06 +02:00

Connected libFLAC with libogg

This commit is contained in:
Vitaliy Kirsanov 2019-04-05 20:49:33 +03:00 committed by James Crook
parent 617c1d8785
commit 67386e7799
3 changed files with 99 additions and 30 deletions

View File

@ -20,11 +20,11 @@ set_target_properties(expat PROPERTIES OSX_ARCHITECTURES "")
add_subdirectory( "FileDialog" ) add_subdirectory( "FileDialog" )
#add_subdirectory( "help" ) #add_subdirectory( "help" )
add_subdirectory( "libogg" )
add_subdirectory( "libflac" ) add_subdirectory( "libflac" )
add_subdirectory( "libid3tag" ) add_subdirectory( "libid3tag" )
add_subdirectory( "libmad" ) add_subdirectory( "libmad" )
add_subdirectory( "libnyquist" ) add_subdirectory( "libnyquist" )
add_subdirectory( "libogg" )
add_subdirectory( "libscorealign" ) add_subdirectory( "libscorealign" )
add_subdirectory( "libsndfile" ) add_subdirectory( "libsndfile" )
add_subdirectory( "libsoxr" ) add_subdirectory( "libsoxr" )

View File

@ -5,14 +5,9 @@ set(TARGET libflac)
set(TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET}) set(TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET})
project(${TARGET} VERSION 1.3.1) project(${TARGET} VERSION 1.3.1)
option(FLAC_WITH_OGG "ogg support (default: test for libogg)" OFF)
option(FLAC_ENABLE_64_BIT_WORDS "Set FLAC__BYTES_PER_WORD to 8 (4 is the default)" OFF) option(FLAC_ENABLE_64_BIT_WORDS "Set FLAC__BYTES_PER_WORD to 8 (4 is the default)" OFF)
option(FLAC_WITH_ASM "Use any assembly optimization routines" ON) option(FLAC_WITH_ASM "Use any assembly optimization routines" ON)
if(WITH_OGG)
find_package(OGG REQUIRED)
endif()
if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang") if(CMAKE_C_COMPILER_ID MATCHES "GNU|Clang")
if(CMAKE_BULD_TYPE STREQUAL Release) if(CMAKE_BULD_TYPE STREQUAL Release)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -funroll-loops") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -funroll-loops")
@ -90,7 +85,6 @@ add_compile_definitions(
CPU_IS_BIG_ENDIAN=$<BOOL:${CPU_IS_BIG_ENDIAN}> CPU_IS_BIG_ENDIAN=$<BOOL:${CPU_IS_BIG_ENDIAN}>
CPU_IS_LITTLE_ENDIAN=$<NOT:${CPU_IS_BIG_ENDIAN}> CPU_IS_LITTLE_ENDIAN=$<NOT:${CPU_IS_BIG_ENDIAN}>
FLAC__HAS_X86INTRIN=$<BOOL:${HAVE_X86INTRIN_H}> FLAC__HAS_X86INTRIN=$<BOOL:${HAVE_X86INTRIN_H}>
FLAC__HAS_OGG=$<BOOL:${OGG_FOUND}>
FLAC__USE_AVX=$<BOOL:${WITH_AVX}> FLAC__USE_AVX=$<BOOL:${WITH_AVX}>
$<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:FLAC__OVERFLOW_DETECT> $<$<OR:$<CONFIG:Debug>,$<CONFIG:RelWithDebInfo>>:FLAC__OVERFLOW_DETECT>
_ALL_SOURCE _ALL_SOURCE
@ -193,21 +187,21 @@ add_library(FLAC-static STATIC
"${TARGET_SOURCE}/src/libFLAC/stream_encoder_intrin_avx2.c" "${TARGET_SOURCE}/src/libFLAC/stream_encoder_intrin_avx2.c"
"${TARGET_SOURCE}/src/libFLAC/stream_encoder_framing.c" "${TARGET_SOURCE}/src/libFLAC/stream_encoder_framing.c"
"${TARGET_SOURCE}/src/libFLAC/window.c" "${TARGET_SOURCE}/src/libFLAC/window.c"
"$<$<BOOL:${OGG_FOUND}>:${TARGET_SOURCE}/src/libFLAC/ogg_decoder_aspect.c>" "${TARGET_SOURCE}/src/libFLAC/ogg_decoder_aspect.c"
"$<$<BOOL:${OGG_FOUND}>:${TARGET_SOURCE}/src/libFLAC/ogg_encoder_aspect.c>" "${TARGET_SOURCE}/src/libFLAC/ogg_encoder_aspect.c"
"$<$<BOOL:${OGG_FOUND}>:${TARGET_SOURCE}/src/libFLAC/ogg_helper.c>" "${TARGET_SOURCE}/src/libFLAC/ogg_helper.c"
"$<$<BOOL:${OGG_FOUND}>:${TARGET_SOURCE}/src/libFLAC/ogg_mapping.c>" "${TARGET_SOURCE}/src/libFLAC/ogg_mapping.c"
"$<$<BOOL:${WIN32}>:${TARGET_SOURCE}/src/libFLAC/windows_unicode_filenames.c>") "$<$<BOOL:${WIN32}>:${TARGET_SOURCE}/src/libFLAC/windows_unicode_filenames.c>")
include_directories( include_directories(
"${TARGET_SOURCE}/include" "${TARGET_SOURCE}/include"
"${TARGET_SOURCE}/src/libFLAC/include") "${TARGET_SOURCE}/src/libFLAC/include")
target_compile_definitions(FLAC-static PUBLIC FLAC__NO_DLL) target_compile_definitions(FLAC-static PUBLIC FLAC__NO_DLL FLAC__HAS_OGG)
target_include_directories(FLAC-static INTERFACE target_include_directories(FLAC-static INTERFACE
"$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>") "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>")
target_link_libraries(FLAC-static PUBLIC target_link_libraries(FLAC-static PUBLIC
$<TARGET_NAME_IF_EXISTS:Ogg::Ogg> libogg
$<TARGET_NAME_IF_EXISTS:FLAC-asm> $<TARGET_NAME_IF_EXISTS:FLAC-asm>
$<$<BOOL:${HAVE_LROUND}>:m>) $<$<BOOL:${HAVE_LROUND}>:m>)
set_target_properties(FLAC-static PROPERTIES OSX_ARCHITECTURES "") set_target_properties(FLAC-static PROPERTIES OSX_ARCHITECTURES "")

View File

@ -1,21 +1,96 @@
#directory cmake-proxies/libogg #directory cmake-proxies/libogg
#UNUSED set(TARGET libogg)
set( TARGET libogg ) set(TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET})
set( TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET} )
project( ${TARGET} )
set( SOURCES project(${TARGET})
${LIB_SRC_DIRECTORY}libogg/src/bitwise.c
${LIB_SRC_DIRECTORY}libogg/src/framing.c
)
# This defines the #define on both Windows and Linux.
add_definitions(
-D_LIB
)
add_library( ${TARGET} STATIC ${SOURCES})
target_include_directories( ${TARGET} PRIVATE include(CheckIncludeFile)
${TARGET_SOURCE}/include include(CheckTypeSize)
)
target_link_libraries( ${TARGET} ) check_include_file("inttypes.h" INCLUDE_INTTYPES_H)
check_include_file("stdint.h" INCLUDE_STDINT_H)
check_include_file("sys/types.h" INCLUDE_SYS_TYPES_H)
check_type_size("int16_t" INT16_SIZE LANGUAGE C)
check_type_size("uint16_t" UINT16_SIZE LANGUAGE C)
check_type_size("u_int16_t" U_INT16_SIZE LANGUAGE C)
check_type_size("int32_t" INT32_SIZE LANGUAGE C)
check_type_size("uint32_t" UINT32_SIZE LANGUAGE C)
check_type_size("u_int32_t" U_INT32_SIZE LANGUAGE C)
check_type_size("int64_t" INT64_SIZE LANGUAGE C)
check_type_size("short" SHORT_SIZE LANGUAGE C)
check_type_size("int" INT_SIZE LANGUAGE C)
check_type_size("long" LONG_SIZE LANGUAGE C)
check_type_size("long long" LONG_LONG_SIZE LANGUAGE C)
if(INT16_SIZE EQUAL 2)
set(SIZE16 "int16_t")
elseif(SHORT_SIZE EQUAL 2)
set(SIZE16 "short")
elseif(INT_SIZE EQUAL 2)
set(SIZE16 "int")
else()
message(FATAL_ERROR "No 16 bit type found on this platform!")
endif()
if(UINT16_SIZE EQUAL 2)
set(USIZE16 "uint16_t")
elseif(SHORT_SIZE EQUAL 2)
set(USIZE16 "unsigned short")
elseif(INT_SIZE EQUAL 2)
set(USIZE16 "unsigned int")
elseif(U_INT_SIZE EQUAL 2)
set(USIZE16 "u_int16_t")
else()
message(FATAL_ERROR "No unsigned 16 bit type found on this platform!")
endif()
if(INT32_SIZE EQUAL 4)
set(SIZE32 "int32_t")
elseif(SHORT_SIZE EQUAL 4)
set(SIZE32 "short")
elseif(INT_SIZE EQUAL 4)
set(SIZE32 "int")
elseif(LONG_SIZE EQUAL 4)
set(SIZE16 "long")
else()
message(FATAL_ERROR "No 32 bit type found on this platform!")
endif()
if(UINT32_SIZE EQUAL 4)
set(USIZE32 "uint32_t")
elseif(SHORT_SIZE EQUAL 4)
set(USIZE32 "unsigned short")
elseif(INT_SIZE EQUAL 4)
set(USIZE32 "unsigned int")
elseif(LONG_SIZE EQUAL 4)
set(USIZE32 "unsigned long")
elseif(U_INT_SIZE EQUAL 4)
set(USIZE32 "u_int32_t")
else()
message(FATAL_ERROR "No unsigned 32 bit type found on this platform!")
endif()
if(INT64_SIZE EQUAL 8)
set(SIZE64 "int64_t")
elseif(INT_SIZE EQUAL 8)
set(SIZE64 "int")
elseif(LONG_SIZE EQUAL 8)
set(SIZE64 "long")
elseif(LONG_LONG_SIZE EQUAL 8)
set(SIZE64 "long long")
else()
message(FATAL_ERROR "No 64 bit type found on this platform!")
endif()
configure_file(
"${LIB_SRC_DIRECTORY}libogg/include/ogg/config_types.h.in"
"ogg/config_types.h")
add_library(${TARGET}
"${LIB_SRC_DIRECTORY}libogg/src/bitwise.c"
"${LIB_SRC_DIRECTORY}libogg/src/framing.c")
target_include_directories(${TARGET} PUBLIC
"${TARGET_SOURCE}/include"
"${CMAKE_CURRENT_BINARY_DIR}")