1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
#set(SPEEXDSP_CMAKE_ARGS -DBUILD_SHARED_LIBS=FALSE -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/external/dist)
set(SPEEXDSP_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/external/dist)
if(USE_STATIC_SPEEXDSP)
list(APPEND SPEEXDSP_CMAKE_ARGS
-DSPEEXDSP_LIBRARIES=${CMAKE_BINARY_DIR}/external/dist/lib/libspeexdsp.a
-DSPEEXDSP_INCLUDE_DIR=${CMAKE_BINARY_DIR}/external/dist/include)
endif()
set(CODEC2_CMAKE_ARGS -DUNITTEST=FALSE)
if(CMAKE_CROSSCOMPILING)
set(CODEC2_CMAKE_ARGS ${CODEC2_CMAKE_ARGS} -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
endif()
# Bootstrap build for lpcnetfreedv library.
include(ExternalProject)
ExternalProject_Add(build_codec2_lpcnet
SOURCE_DIR codec2_src
BINARY_DIR codec2_build
GIT_REPOSITORY https://github.com/drowe67/codec2.git
GIT_TAG origin/master
CMAKE_ARGS ${CODEC2_CMAKE_ARGS} ${SPEEXDSP_CMAKE_ARGS}
CMAKE_CACHE_ARGS -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
INSTALL_COMMAND ""
)
ExternalProject_Get_Property(build_codec2_lpcnet BINARY_DIR)
ExternalProject_Get_Property(build_codec2_lpcnet SOURCE_DIR)
include_directories(${SOURCE_DIR}/src ${BINARY_DIR})
# Bootstrap lpcnetfreedv library
include(cmake/BuildLPCNet.cmake)
add_dependencies(build_lpcnetfreedv build_codec2_lpcnet)
# Build final codec2 library with lpcnetfreedv
set(CODEC2_CMAKE_ARGS ${CODEC2_CMAKE_ARGS} -DLPCNET_BUILD_DIR=${CMAKE_BINARY_DIR}/LPCNet_build)
include(ExternalProject)
ExternalProject_Add(build_codec2
SOURCE_DIR codec2_src
BINARY_DIR codec2_build
DOWNLOAD_COMMAND ""
CMAKE_ARGS ${CODEC2_CMAKE_ARGS} ${SPEEXDSP_CMAKE_ARGS}
CMAKE_CACHE_ARGS -DCMAKE_OSX_DEPLOYMENT_TARGET:STRING=${CMAKE_OSX_DEPLOYMENT_TARGET}
INSTALL_COMMAND ""
)
ExternalProject_Get_Property(build_codec2 BINARY_DIR)
ExternalProject_Get_Property(build_codec2 SOURCE_DIR)
add_library(codec2 SHARED IMPORTED)
set_target_properties(codec2 PROPERTIES
IMPORTED_LOCATION "${BINARY_DIR}/src/libcodec2${CMAKE_SHARED_LIBRARY_SUFFIX}"
IMPORTED_IMPLIB "${BINARY_DIR}/src/libcodec2${CMAKE_IMPORT_LIBRARY_SUFFIX}"
)
add_dependencies(build_codec2 build_lpcnetfreedv)
|