diff --git a/cmake-proxies/CMakeLists.txt b/cmake-proxies/CMakeLists.txt index fa44ee43a..ca284363b 100644 --- a/cmake-proxies/CMakeLists.txt +++ b/cmake-proxies/CMakeLists.txt @@ -20,11 +20,11 @@ set_target_properties(expat PROPERTIES OSX_ARCHITECTURES "") add_subdirectory( "FileDialog" ) #add_subdirectory( "help" ) +add_subdirectory( "libogg" ) add_subdirectory( "libflac" ) add_subdirectory( "libid3tag" ) add_subdirectory( "libmad" ) add_subdirectory( "libnyquist" ) -add_subdirectory( "libogg" ) add_subdirectory( "libscorealign" ) add_subdirectory( "libsndfile" ) add_subdirectory( "libsoxr" ) diff --git a/cmake-proxies/libflac/CMakeLists.txt b/cmake-proxies/libflac/CMakeLists.txt index 1b9598183..c436ead0c 100644 --- a/cmake-proxies/libflac/CMakeLists.txt +++ b/cmake-proxies/libflac/CMakeLists.txt @@ -5,14 +5,9 @@ set(TARGET libflac) set(TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET}) 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_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_BULD_TYPE STREQUAL Release) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -funroll-loops") @@ -90,7 +85,6 @@ add_compile_definitions( CPU_IS_BIG_ENDIAN=$ CPU_IS_LITTLE_ENDIAN=$ FLAC__HAS_X86INTRIN=$ - FLAC__HAS_OGG=$ FLAC__USE_AVX=$ $<$,$>:FLAC__OVERFLOW_DETECT> _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_framing.c" "${TARGET_SOURCE}/src/libFLAC/window.c" - "$<$:${TARGET_SOURCE}/src/libFLAC/ogg_decoder_aspect.c>" - "$<$:${TARGET_SOURCE}/src/libFLAC/ogg_encoder_aspect.c>" - "$<$:${TARGET_SOURCE}/src/libFLAC/ogg_helper.c>" - "$<$:${TARGET_SOURCE}/src/libFLAC/ogg_mapping.c>" + "${TARGET_SOURCE}/src/libFLAC/ogg_decoder_aspect.c" + "${TARGET_SOURCE}/src/libFLAC/ogg_encoder_aspect.c" + "${TARGET_SOURCE}/src/libFLAC/ogg_helper.c" + "${TARGET_SOURCE}/src/libFLAC/ogg_mapping.c" "$<$:${TARGET_SOURCE}/src/libFLAC/windows_unicode_filenames.c>") include_directories( "${TARGET_SOURCE}/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_link_libraries(FLAC-static PUBLIC - $ + libogg $ $<$:m>) set_target_properties(FLAC-static PROPERTIES OSX_ARCHITECTURES "") diff --git a/cmake-proxies/libogg/CMakeLists.txt b/cmake-proxies/libogg/CMakeLists.txt index 8720f0916..e99be56e5 100644 --- a/cmake-proxies/libogg/CMakeLists.txt +++ b/cmake-proxies/libogg/CMakeLists.txt @@ -1,21 +1,96 @@ #directory cmake-proxies/libogg -#UNUSED -set( TARGET libogg ) -set( TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET} ) -project( ${TARGET} ) +set(TARGET libogg) +set(TARGET_SOURCE ${LIB_SRC_DIRECTORY}${TARGET}) -set( SOURCES -${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}) +project(${TARGET}) -target_include_directories( ${TARGET} PRIVATE -${TARGET_SOURCE}/include -) +include(CheckIncludeFile) +include(CheckTypeSize) -target_link_libraries( ${TARGET} ) \ No newline at end of file +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}")