You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

110 lines
3.4 KiB
CMake

#
# Copyright 2013-2015 Software Radio Systems Limited
#
# This file is part of the srsLTE library.
#
# srsLTE is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of
# the License, or (at your option) any later version.
#
# srsLTE is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# A copy of the GNU Affero General Public License can be found in
# the LICENSE file in the top-level directory of this distribution
# and at http://www.gnu.org/licenses/.
#
add_subdirectory(agc)
add_subdirectory(ch_estimation)
add_subdirectory(common)
add_subdirectory(fec)
add_subdirectory(mimo)
add_subdirectory(phch)
add_subdirectory(rf)
add_subdirectory(sync)
add_subdirectory(utils)
add_subdirectory(channel)
add_subdirectory(dft)
add_subdirectory(io)
add_subdirectory(modem)
add_subdirectory(resampling)
add_subdirectory(scrambling)
add_subdirectory(ue)
add_subdirectory(enb)
set(srslte_srcs version.c
$<TARGET_OBJECTS:srslte_agc>
$<TARGET_OBJECTS:srslte_ch_estimation>
$<TARGET_OBJECTS:srslte_common>
$<TARGET_OBJECTS:srslte_fec>
$<TARGET_OBJECTS:srslte_mimo>
$<TARGET_OBJECTS:srslte_phch>
$<TARGET_OBJECTS:srslte_sync>
$<TARGET_OBJECTS:srslte_utils>
$<TARGET_OBJECTS:srslte_channel>
$<TARGET_OBJECTS:srslte_dft>
$<TARGET_OBJECTS:srslte_io>
$<TARGET_OBJECTS:srslte_modem>
$<TARGET_OBJECTS:srslte_resampling>
$<TARGET_OBJECTS:srslte_scrambling>
$<TARGET_OBJECTS:srslte_ue>
$<TARGET_OBJECTS:srslte_enb>
)
add_library(srslte SHARED ${srslte_srcs})
target_link_libraries(srslte pthread m)
set_target_properties(srslte PROPERTIES
VERSION ${SRSLTE_VERSION_MAJOR}.${SRSLTE_VERSION_MINOR})
if(NOT DisableMEX)
add_library(srslte_static STATIC ${srslte_srcs})
endif(NOT DisableMEX)
if(MKL_FOUND)
if(StaticMKL)
target_link_libraries(srslte ${MKL_STATIC_LIBRARIES})
if(NOT DisableMEX)
target_link_libraries(srslte_static ${MKL_STATIC_LIBRARIES})
endif(NOT DisableMEX)
else(StaticMKL)
target_link_libraries(srslte ${MKL_LIBRARIES})
if(NOT DisableMEX)
target_link_libraries(srslte_static ${MKL_LIBRARIES})
endif(NOT DisableMEX)
endif(StaticMKL)
else(MKL_FOUND)
target_link_libraries(srslte ${FFTW3F_LIBRARIES})
if(NOT DisableMEX)
target_link_libraries(srslte_static ${FFTW3F_LIBRARIES})
endif(NOT DisableMEX)
endif(MKL_FOUND)
## This linkage is required for the examples and tests only
if(RF_FOUND)
target_link_libraries(srslte srslte_rf)
if(UHD_FOUND)
target_link_libraries(srslte ${UHD_LIBRARIES})
endif(UHD_FOUND)
if(BLADERF_FOUND)
target_link_libraries(srslte ${BLADERF_LIBRARIES})
endif(BLADERF_FOUND)
endif(RF_FOUND)
if(VOLK_FOUND)
target_link_libraries(srslte ${VOLK_LIBRARIES})
if(NOT DisableMEX)
target_link_libraries(srslte_static ${VOLK_LIBRARIES})
endif(NOT DisableMEX)
endif(VOLK_FOUND)
INSTALL(TARGETS srslte DESTINATION ${LIBRARY_DIR})
SRSLTE_SET_PIC(srslte)