Use cmake build 55/305955/3 accepted/tizen_base_asan accepted/tizen_base_x_asan tizen_base_asan tizen_no_autogen accepted/tizen/base/asan/20240419.004024 accepted/tizen/base/x/asan/20240220.072052
authorSeungbae Shin <seungbae.shin@samsung.com>
Wed, 14 Feb 2024 06:02:18 +0000 (15:02 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Wed, 14 Feb 2024 07:30:12 +0000 (16:30 +0900)
cmake build can remove autogen dependency which may not be available for some cases.

In order to make it identical to previous autotools build, following
changes also has been applied to CMakeLists.txt.

7508a0995e3b61d6bc60627ffb951a1ae62bfa05 - Disable unused GSM610 / G72X
d185b93a2f1cb18a8ebcf5e28b59d15e8a7ae9a3 - Disable unused ALAC(Apple Lossless Audio Codec) / CAF(Core Audio Format)
3e10dcd88161de23dde52c1be53e8d54a2f097f2 - use dlopen for vorbis encoder to load so when actual needed, this will reduce runtime memory consumption
297ac676e6c641609d18b07732d1393264e03d3b - Disable vorbis encoder
53dcc94b9f8a80ce9c3c78c973c49be320e717fe - Remove FLAC dependancy
490349007ec3c1f2aa04f3a1ba0509fd5234a175 - Enable ogg with flac disable

Change-Id: If03823f233c6bc1221e89e379a80787fde9dab39

CMakeLists.txt
packaging/libsndfile.spec

index dda2243..f938ddc 100644 (file)
@@ -15,7 +15,7 @@ if (POLICY CMP0091)
        endif ()
 endif ()
 
-option (ENABLE_EXTERNAL_LIBS "Enable FLAC, Vorbis, and Opus codecs" ON)
+option (ENABLE_EXTERNAL_LIBS "Enable Vorbis, and Opus codecs" ON)
 if (ENABLE_EXTERNAL_LIBS)
        list (APPEND VCPKG_MANIFEST_FEATURES "external-libs")
 endif ()
@@ -94,7 +94,7 @@ endif ()
 
 include(SndFileChecks)
 
-if (ENABLE_EXTERNAL_LIBS AND NOT (Vorbis_FOUND OR FLAC_FOUND OR OPUS_FOUND))
+if (ENABLE_EXTERNAL_LIBS AND NOT (Vorbis_FOUND OR OPUS_FOUND))
        set (ENABLE_EXTERNAL_LIBS OFF)
 endif()
 if(ENABLE_MPEG AND (NOT HAVE_MPEG_LIBS))
@@ -134,7 +134,7 @@ set (HAVE_MPEG ${ENABLE_MPEG})
 set (HAVE_SPEEX ${ENABLE_EXPERIMENTAL})
 
 add_feature_info (BUILD_SHARED_LIBS BUILD_SHARED_LIBS "build shared libraries")
-add_feature_info (ENABLE_EXTERNAL_LIBS ENABLE_EXTERNAL_LIBS "enable FLAC, Vorbis, and Opus codecs")
+add_feature_info (ENABLE_EXTERNAL_LIBS ENABLE_EXTERNAL_LIBS "enable Vorbis, and Opus codecs")
 add_feature_info (ENABLE_MPEG ENABLE_MPEG "enable MPEG audio (including mp3) codecs")
 add_feature_info (ENABLE_EXPERIMENTAL ENABLE_EXPERIMENTAL "enable experimental code")
 add_feature_info (BUILD_TESTING BUILD_TESTING "build tests")
@@ -168,12 +168,6 @@ set_package_properties (Vorbis PROPERTIES
        DESCRIPTION "open source lossy audio codec"
        PURPOSE "Enables Vorbis support"
        )
-set_package_properties (FLAC PROPERTIES
-       TYPE RECOMMENDED
-       URL "www.xiph.org/flac/"
-       DESCRIPTION "Free Lossless Audio Codec Library"
-       PURPOSE "Enables FLAC support"
-       )
 set_package_properties (mp3lame PROPERTIES
        TYPE RECOMMENDED
        URL "https://lame.sourceforge.io/"
@@ -228,7 +222,7 @@ if (INSTALL_PKGCONFIG_MODULE)
        set (includedir "\$\{prefix\}/${CMAKE_INSTALL_INCLUDEDIR}")
        set (VERSION ${PROJECT_VERSION})
        if (ENABLE_EXTERNAL_LIBS)
-               set (EXTERNAL_XIPH_REQUIRE "flac ogg vorbis vorbisenc opus")
+               set (EXTERNAL_XIPH_REQUIRE "ogg vorbis vorbisenc opus")
                if (ENABLE_EXPERIMENTAL)
                        set (EXTERNAL_XIPH_REQUIRE "${EXTERNAL_XIPH_REQUIRE} speex")
                endif ()
@@ -271,7 +265,6 @@ add_library (sndfile
        src/double64.c
        src/ima_adpcm.c
        src/ms_adpcm.c
-       src/gsm610.c
        src/dwvw.c
        src/vox_adpcm.c
        src/interleave.c
@@ -282,7 +275,6 @@ add_library (sndfile
        src/audio_detect.c
        src/ima_oki_adpcm.c
        src/ima_oki_adpcm.h
-       src/alac.c
        src/chunk.c
        src/ogg.h
        src/ogg.c
@@ -295,10 +287,8 @@ add_library (sndfile
        src/aiff.c
        src/au.c
        src/avr.c
-       src/caf.c
        src/dwd.c
        src/flac.c
-       src/g72x.c
        src/htk.c
        src/ircam.c
        src/macos.c
@@ -332,47 +322,6 @@ add_library (sndfile
        src/mpeg.c
        src/mpeg_decode.c
        src/mpeg_l3_encode.c
-       src/GSM610/config.h
-       src/GSM610/gsm.h
-       src/GSM610/gsm610_priv.h
-       src/GSM610/add.c
-       src/GSM610/code.c
-       src/GSM610/decode.c
-       src/GSM610/gsm_create.c
-       src/GSM610/gsm_decode.c
-       src/GSM610/gsm_destroy.c
-       src/GSM610/gsm_encode.c
-       src/GSM610/gsm_option.c
-       src/GSM610/long_term.c
-       src/GSM610/lpc.c
-       src/GSM610/preprocess.c
-       src/GSM610/rpe.c
-       src/GSM610/short_term.c
-       src/GSM610/table.c
-       src/G72x/g72x.h
-       src/G72x/g72x_priv.h
-       src/G72x/g721.c
-       src/G72x/g723_16.c
-       src/G72x/g723_24.c
-       src/G72x/g723_40.c
-       src/G72x/g72x.c
-       src/ALAC/ALACAudioTypes.h
-       src/ALAC/ALACBitUtilities.h
-       src/ALAC/EndianPortable.h
-       src/ALAC/aglib.h
-       src/ALAC/dplib.h
-       src/ALAC/matrixlib.h
-       src/ALAC/alac_codec.h
-       src/ALAC/shift.h
-       src/ALAC/ALACBitUtilities.c
-       src/ALAC/ag_dec.c
-       src/ALAC/ag_enc.c
-       src/ALAC/dp_dec.c
-       src/ALAC/dp_enc.c
-       src/ALAC/matrix_dec.c
-       src/ALAC/matrix_enc.c
-       src/ALAC/alac_decoder.c
-       src/ALAC/alac_encoder.c
        ${sndfile_HDRS}
        ${CMAKE_CURRENT_BINARY_DIR}/src/config.h
        )
@@ -391,8 +340,8 @@ target_include_directories (sndfile
 target_link_libraries (sndfile
        PRIVATE
                $<$<BOOL:${LIBM_REQUIRED}>:m>
+               $<$<BOOL:${LIBM_REQUIRED}>:dl>
                $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Vorbis::vorbisenc>
-               $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:FLAC::FLAC>
                $<$<AND:$<BOOL:${ENABLE_EXPERIMENTAL}>,$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>,$<BOOL:${HAVE_SPEEX}>>:Speex::Speex>
                $<$<BOOL:${HAVE_EXTERNAL_XIPH_LIBS}>:Opus::opus>
                $<$<BOOL:${HAVE_MPEG}>:MPG123::libmpg123>
@@ -1336,27 +1285,11 @@ if (BUILD_TESTING)
                        $<$<BOOL:${LIBM_REQUIRED}>:m>
                )
 
-       ### g72x_test
-
-       add_executable (g72x_test src/G72x/g72x_test.c)
-       target_include_directories (g72x_test
-               PRIVATE
-                       src
-                       ${CMAKE_CURRENT_BINARY_DIR}/src
-               )
-       target_link_libraries (g72x_test
-               PRIVATE
-                       sndfile
-                       $<$<BOOL:${LIBM_REQUIRED}>:m>
-               )
-       add_test (g72x_test g72x_test all)
-
        ### aiff-tests
 
        add_test (write_read_test_aiff write_read_test aiff)
        add_test (lossy_comp_test_aiff_ulaw lossy_comp_test aiff_ulaw)
        add_test (lossy_comp_test_aiff_alaw lossy_comp_test aiff_alaw)
-       add_test (lossy_comp_test_aiff_gsm610 lossy_comp_test aiff_gsm610)
        add_test (peak_chunk_test_aiff peak_chunk_test aiff)
        add_test (header_test_aiff header_test aiff)
        add_test (misc_test_aiff misc_test aiff)
@@ -1369,24 +1302,10 @@ if (BUILD_TESTING)
        add_test (write_read_test_au write_read_test au)
        add_test (lossy_comp_test_au_ulaw lossy_comp_test au_ulaw)
        add_test (lossy_comp_test_au_alaw lossy_comp_test au_alaw)
-       add_test (lossy_comp_test_au_g721 lossy_comp_test au_g721)
-       add_test (lossy_comp_test_au_g723 lossy_comp_test au_g723)
        add_test (header_test_au header_test au)
        add_test (misc_test_au misc_test au)
        add_test (multi_file_test_au multi_file_test au)
 
-       ### caf-tests
-
-       add_test (write_read_test_caf write_read_test caf)
-       add_test (lossy_comp_test_caf_ulaw lossy_comp_test caf_ulaw)
-       add_test (lossy_comp_test_caf_alaw lossy_comp_test caf_alaw)
-       add_test (header_test_caf header_test caf)
-       add_test (peak_chunk_test_caf peak_chunk_test caf)
-       add_test (misc_test_caf misc_test caf)
-       add_test (chunk_test_caf chunk_test caf)
-       add_test (string_test_caf string_test caf)
-       add_test (long_read_write_test_alac long_read_write_test alac)
-
        # wav-tests
        add_test (write_read_test_wav write_read_test wav)
        add_test (lossy_comp_test_wav_pcm lossy_comp_test wav_pcm)
@@ -1394,8 +1313,6 @@ if (BUILD_TESTING)
        add_test (lossy_comp_test_wav_msadpcm lossy_comp_test wav_msadpcm)
        add_test (lossy_comp_test_wav_ulaw lossy_comp_test wav_ulaw)
        add_test (lossy_comp_test_wav_alaw lossy_comp_test wav_alaw)
-       add_test (lossy_comp_test_wav_gsm610 lossy_comp_test wav_gsm610)
-       add_test (lossy_comp_test_wav_g721 lossy_comp_test wav_g721)
        add_test (lossy_comp_test_wav_nmsadpcm lossy_comp_test wav_nmsadpcm)
        add_test (peak_chunk_test_wav peak_chunk_test wav)
        add_test (header_test_wav header_test wav)
@@ -1411,7 +1328,6 @@ if (BUILD_TESTING)
        add_test (lossy_comp_test_w64_msadpcm lossy_comp_test w64_msadpcm)
        add_test (lossy_comp_test_w64_ulaw lossy_comp_test w64_ulaw)
        add_test (lossy_comp_test_w64_alaw lossy_comp_test w64_alaw)
-       add_test (lossy_comp_test_w64_gsm610 lossy_comp_test w64_gsm610)
        add_test (header_test_w64 header_test w64)
        add_test (misc_test_w64 misc_test w64)
 
@@ -1428,7 +1344,6 @@ if (BUILD_TESTING)
        add_test (write_read_test_raw write_read_test raw)
        add_test (lossy_comp_test_raw_ulaw lossy_comp_test raw_ulaw)
        add_test (lossy_comp_test_raw_alaw lossy_comp_test raw_alaw)
-       add_test (lossy_comp_test_raw_gsm610 lossy_comp_test raw_gsm610)
        add_test (lossy_comp_test_vox_adpcm lossy_comp_test vox_adpcm)
        add_test (raw_test raw_test)
 
@@ -1507,9 +1422,6 @@ if (BUILD_TESTING)
        add_test (header_test_mpc2k header_test mpc2k)
        add_test (misc_test_mpc2k misc_test mpc2k)
 
-       ### flac-tests
-       add_test (write_read_test_flac write_read_test flac)
-       add_test (compression_size_test_flac compression_size_test flac)
        add_test (string_test_flac string_test flac)
 
        ### vorbis-tests
@@ -1572,7 +1484,6 @@ if (BUILD_TESTING)
                stdio_test
                pipe_test
                virtual_io_test
-               g72x_test
                )
 
 #      if (WIN32 AND BUILD_SHARED_LIBS)
index 1045939..f2ff072 100644 (file)
@@ -6,10 +6,9 @@ License:        LGPL-2.1+
 Summary:        C library for reading and writing sound files
 Group:          Multimedia/Audio
 BuildRequires:  gcc-c++
-BuildRequires:  libtool
+BuildRequires:  cmake
 BuildRequires:  python
 BuildRequires:  pkg-config
-BuildRequires:  autogen
 BuildRequires:  pkgconfig(ogg)
 BuildRequires:  pkgconfig(vorbis)
 BuildRequires:  pkgconfig(opus)
@@ -42,30 +41,25 @@ cp %{SOURCE1001} .
 
 %build
 %define warn_flags -W -Wall -Wstrict-prototypes -Wpointer-arith -Wno-unused-parameter
-autoreconf --force --install
 CFLAGS="%{optflags} %{warn_flags} -D__TIZEN__ -DSO_LIBDIR=\\\"%{_libdir}\\\""
 export CFLAGS
-LDFLAGS="-ldl"
-export LDFLAGS
-%configure --disable-static \
-    --disable-dependency-tracking \
-    --disable-sqlite --disable-alsa
-make %{?_smp_mflags}
-
-%check
-pushd src
-make check
-popd
+
+MAJORVER=`echo %{version} | awk 'BEGIN {FS="."}{print $1}'`
+%cmake . -DFULLVER=%{version} -DMAJORVER=${MAJORVER}
+%__make %{?jobs:-j%jobs}
 
 %install
 
 %make_install
+
 # remove programs; built in another spec file
 rm -rf %{buildroot}%{_bindir}
 rm -rf %{buildroot}%{_mandir}/man1
 # remove binaries from examples directory
 rm -rf %{buildroot}%{_datadir}/doc/libsndfile
 
+rm -rf %{buildroot}%{_libdir}/cmake/SndFile
+
 %post  -p /sbin/ldconfig
 
 %postun  -p /sbin/ldconfig