58 lines
2.1 KiB
CMake
58 lines
2.1 KiB
CMake
#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)
|