From 2fbe242692e370d0c228ebd3ca35034c0f2665af Mon Sep 17 00:00:00 2001 From: SuperStik Date: Tue, 1 Oct 2024 15:14:45 -0700 Subject: [PATCH] Merge decoder and encoder libs, and use dynamic linking --- CMakeLists.txt | 7 +++---- cmake/libxaac.cmake | 14 ++++++++++++++ decoder/libxaacdec.cmake | 1 - encoder/libxaacenc.cmake | 2 -- fuzzer/xaac_dec_fuzzer.cmake | 2 +- fuzzer/xaac_enc_fuzzer.cmake | 2 +- test/decoder/xaacdec.cmake | 2 +- test/encoder/xaacenc.cmake | 2 +- 8 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 cmake/libxaac.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 82539b7..016396c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,8 +7,6 @@ set(XAAC_ROOT "${CMAKE_CURRENT_SOURCE_DIR}") set(XAAC_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}") find_package(Threads REQUIRED) -set(CMAKE_STATIC_LIBRARY_PREFIX "") - include("${XAAC_ROOT}/cmake/utils.cmake") libxaac_add_compile_options() @@ -18,12 +16,13 @@ if(NOT COMPILER_HAS_SANITIZER) libxaac_set_link_libraries() endif() +include("${XAAC_ROOT}/cmake/libxaac.cmake") + include("${XAAC_ROOT}/common/common.cmake") -include("${XAAC_ROOT}/decoder/libxaacdec.cmake") + include("${XAAC_ROOT}/test/decoder/xaacdec.cmake") include("${XAAC_ROOT}/fuzzer/xaac_dec_fuzzer.cmake") -include("${XAAC_ROOT}/encoder/libxaacenc.cmake") include("${XAAC_ROOT}/test/encoder/xaacenc.cmake") include("${XAAC_ROOT}/fuzzer/xaac_enc_fuzzer.cmake") diff --git a/cmake/libxaac.cmake b/cmake/libxaac.cmake new file mode 100644 index 0000000..aeba769 --- /dev/null +++ b/cmake/libxaac.cmake @@ -0,0 +1,14 @@ +# include old library and common +include("${XAAC_ROOT}/decoder/libxaacdec.cmake") +include("${XAAC_ROOT}/encoder/libxaacenc.cmake") +include("${XAAC_ROOT}/common/common.cmake") + +# generate object files without linking +add_library(xaacobjlib OBJECT ${LIBXAACENC_SRCS} ${LIBXAAC_COMMON_SRCS} ${LIBXAACDEC_SRCS} ${LIBXAACCDEC_ASMS}) + +# PIC for shared libraries +set_property(TARGET xaacobjlib PROPERTY POSITION_INDEPENDENT_CODE 1) + +# build from same object files +add_library(xaac SHARED $) +add_library(xaac_static STATIC $) \ No newline at end of file diff --git a/decoder/libxaacdec.cmake b/decoder/libxaacdec.cmake index d75dc28..9ddf5b2 100644 --- a/decoder/libxaacdec.cmake +++ b/decoder/libxaacdec.cmake @@ -136,4 +136,3 @@ else() include("${XAAC_ROOT}/decoder/x86/libxaacdec_x86.cmake") endif() -add_library(libxaacdec STATIC ${LIBXAAC_COMMON_SRCS} ${LIBXAACDEC_SRCS} ${LIBXAACCDEC_ASMS}) diff --git a/encoder/libxaacenc.cmake b/encoder/libxaacenc.cmake index 3a3772a..448833a 100644 --- a/encoder/libxaacenc.cmake +++ b/encoder/libxaacenc.cmake @@ -136,5 +136,3 @@ set(LIBXAACENC_INCLUDES ${XAAC_ROOT}/encoder ${XAAC_ROOT}/encoder/drc_src) include_directories(${LIBXAACENC_INCLUDES}) include("${XAAC_ROOT}/encoder/drc_src/libxaacenc_drc.cmake") - -add_library(libxaacenc STATIC ${LIBXAACENC_SRCS} ${LIBXAAC_COMMON_SRCS}) \ No newline at end of file diff --git a/fuzzer/xaac_dec_fuzzer.cmake b/fuzzer/xaac_dec_fuzzer.cmake index c544091..44c0fa1 100644 --- a/fuzzer/xaac_dec_fuzzer.cmake +++ b/fuzzer/xaac_dec_fuzzer.cmake @@ -3,5 +3,5 @@ list(APPEND XAAC_DEC_FUZZER_SRCS "${XAAC_ROOT}/fuzzer/xaac_dec_fuzzer.cpp") set(LIBXAACDEC_INCLUDES ${XAAC_ROOT}/decoder ${XAAC_ROOT}/test ${XAAC_ROOT}/decoder/drc_src) -libxaac_add_fuzzer(xaac_dec_fuzzer libxaacdec SOURCES ${XAAC_DEC_FUZZER_SRCS} +libxaac_add_fuzzer(xaac_dec_fuzzer xaac SOURCES ${XAAC_DEC_FUZZER_SRCS} INCLUDES ${LIBXAACDEC_INCLUDES}) diff --git a/fuzzer/xaac_enc_fuzzer.cmake b/fuzzer/xaac_enc_fuzzer.cmake index fe17d48..66571bb 100644 --- a/fuzzer/xaac_enc_fuzzer.cmake +++ b/fuzzer/xaac_enc_fuzzer.cmake @@ -2,5 +2,5 @@ list(APPEND XAAC_ENC_FUZZER_SRCS "${XAAC_ROOT}/fuzzer/xaac_enc_fuzzer.cpp") set(LIBXAACENC_INCLUDES ${XAAC_ROOT}/encoder ${XAAC_ROOT}/test/encoder ${XAAC_ROOT}/common) -libxaac_add_fuzzer(xaac_enc_fuzzer libxaacenc SOURCES ${XAAC_ENC_FUZZER_SRCS} +libxaac_add_fuzzer(xaac_enc_fuzzer xaac SOURCES ${XAAC_ENC_FUZZER_SRCS} INCLUDES ${LIBXAACENC_INCLUDES}) diff --git a/test/decoder/xaacdec.cmake b/test/decoder/xaacdec.cmake index 51f8fed..2ac024d 100644 --- a/test/decoder/xaacdec.cmake +++ b/test/decoder/xaacdec.cmake @@ -7,7 +7,7 @@ set(LIBXAACDEC_INCLUDES ${XAAC_ROOT}/decoder ${XAAC_ROOT}/test/decoder/ include_directories(${LIBXAACDEC_INCLUDES}) -libxaac_add_executable(xaacdec libxaacdec SOURCES ${XAACDEC_SRCS} INCLUDES +libxaac_add_executable(xaacdec xaac SOURCES ${XAACDEC_SRCS} INCLUDES ${LIBXAACDEC_INCLUDES}) if(MSVC) diff --git a/test/encoder/xaacenc.cmake b/test/encoder/xaacenc.cmake index a7930d2..179dc4e 100644 --- a/test/encoder/xaacenc.cmake +++ b/test/encoder/xaacenc.cmake @@ -10,7 +10,7 @@ set(LIBXAACENC_INCLUDES ${XAAC_ROOT}/encoder include_directories(${LIBXAACENC_INCLUDES}) -libxaac_add_executable(xaacenc libxaacenc SOURCES ${XAACENC_SRCS} INCLUDES +libxaac_add_executable(xaacenc xaac SOURCES ${XAACENC_SRCS} INCLUDES ${LIBXAACENC_INCLUDES}) if (MSVC)