srsLTE/srslte/lib/CMakeLists.txt

104 lines
3.4 KiB
CMake
Raw Normal View History

#
2015-05-08 08:05:40 -07:00
# Copyright 2013-2015 The srsLTE Developers. See the
# COPYRIGHT file at the top-level directory of this distribution.
#
2015-03-24 07:58:33 -07:00
# This file is part of the srsLTE library.
#
2015-03-24 07:58:33 -07:00
# srsLTE is free software: you can redistribute it and/or modify
2015-05-08 08:05:40 -07:00
# 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.
#
2015-03-24 07:58:33 -07:00
# 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
2015-05-08 08:05:40 -07:00
# GNU Affero General Public License for more details.
#
2015-05-08 08:05:40 -07:00
# 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/.
#
########################################################################
# Find Dependencies
########################################################################
2014-04-23 02:33:19 -07:00
include(CheckFunctionExistsMath)
FIND_PACKAGE(SRSGUI)
FIND_PACKAGE(UHD)
FIND_PACKAGE(FFTW3F REQUIRED) # TODO: distribute kissfft instead
2014-03-03 13:01:04 -08:00
IF(${DISABLE_VOLK})
IF(${DISABLE_VOLK} EQUAL 0)
FIND_PACKAGE(Volk)
ELSE(${DISABLE_VOLK} EQUAL 0)
MESSAGE(STATUS "VOLK library disabled (DISABLE_VOLK=1)")
ENDIF(${DISABLE_VOLK} EQUAL 0)
2014-03-03 13:01:04 -08:00
ELSE(${DISABLE_VOLK})
FIND_PACKAGE(Volk)
2014-03-03 13:01:04 -08:00
ENDIF(${DISABLE_VOLK})
IF(FFTW3F_FOUND)
INCLUDE_DIRECTORIES(${FFTW3F_INCLUDE_DIRS})
LINK_DIRECTORIES(${FFTW3F_LIBRARY_DIRS})
ENDIF(FFTW3F_FOUND)
IF(UHD_FOUND)
INCLUDE_DIRECTORIES(${UHD_INCLUDE_DIRS})
LINK_DIRECTORIES(${UHD_LIBRARY_DIRS})
ENDIF(UHD_FOUND)
IF(SRSGUI_FOUND)
INCLUDE_DIRECTORIES(${SRSGUI_INCLUDE_DIRS})
LINK_DIRECTORIES(${SRSGUI_LIBRARY_DIRS})
ENDIF(SRSGUI_FOUND)
########################################################################
# Recurse subdirectories and compile all source files into the same lib
########################################################################
FILE(GLOB modules *)
SET(SOURCES_ALL "")
FOREACH (_module ${modules})
IF(IS_DIRECTORY ${_module})
IF ((NOT ${_module} MATCHES "cuhd") OR UHD_FOUND)
FILE(GLOB_RECURSE tmp "${_module}/src/*.c")
LIST(APPEND SOURCES_ALL ${tmp})
FILE(GLOB_RECURSE tmp2 "${_module}/src/*.cpp")
LIST(APPEND SOURCES_ALL ${tmp2})
ENDIF ((NOT ${_module} MATCHES "cuhd") OR UHD_FOUND)
ENDIF(IS_DIRECTORY ${_module})
ENDFOREACH()
ADD_LIBRARY(srslte SHARED ${SOURCES_ALL})
TARGET_LINK_LIBRARIES(srslte m ${FFTW3F_LIBRARIES})
IF(UHD_FOUND)
TARGET_LINK_LIBRARIES(srslte ${UHD_LIBRARIES})
ENDIF(UHD_FOUND)
INSTALL(TARGETS srslte DESTINATION ${LIBRARY_DIR})
2015-05-08 08:05:40 -07:00
SRSLTE_SET_PIC(srslte)
2014-03-03 13:01:04 -08:00
IF(VOLK_FOUND)
INCLUDE_DIRECTORIES(${VOLK_INCLUDE_DIRS})
SET_TARGET_PROPERTIES(srslte PROPERTIES COMPILE_DEFINITIONS "${VOLK_DEFINITIONS}")
TARGET_LINK_LIBRARIES(srslte ${VOLK_LIBRARIES})
MESSAGE(STATUS " Compiling with VOLK SIMD library.")
2014-03-03 13:01:04 -08:00
ELSE(VOLK_FOUND)
MESSAGE(STATUS " VOLK SIMD library NOT found. Using generic implementation.")
2014-03-03 13:01:04 -08:00
ENDIF(VOLK_FOUND)
2014-03-08 03:46:19 -08:00
########################################################################
# Recurse subdirectories and find all directories with a CMakeLists.txt file in it
########################################################################
FILE(GLOB_RECURSE cmakefiles CMakeLists.txt)
FOREACH (_file ${cmakefiles})
GET_FILENAME_COMPONENT(dir ${_file} PATH)
IF (NOT ${dir} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
ADD_SUBDIRECTORY(${dir})
ENDIF ()
2014-03-08 03:46:19 -08:00
ENDFOREACH()