| # Copyright 2011,2012,2016,2018,2019 Free Software Foundation, Inc. |
| # |
| # This file was generated by gr_modtool, a tool from the GNU Radio framework |
| # This file is a part of gr-gsm |
| # |
| # GNU Radio is free software; you can redistribute it and/or modify |
| # it under the terms of the GNU General Public License as published by |
| # the Free Software Foundation; either version 3, or (at your option) |
| # any later version. |
| # |
| # GNU Radio 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 General Public License for more details. |
| # |
| # You should have received a copy of the GNU General Public License |
| # along with GNU Radio; see the file COPYING. If not, write to |
| # the Free Software Foundation, Inc., 51 Franklin Street, |
| # Boston, MA 02110-1301, USA. |
| |
| ######################################################################## |
| # Setup library |
| ######################################################################## |
| include(GrPlatform) #define LIB_SUFFIX |
| |
| ######################################################################## |
| # Add sources macro |
| ######################################################################## |
| set(grgsm_sources "") |
| |
| macro (add_sources) |
| file (RELATIVE_PATH _relPath "${PROJECT_SOURCE_DIR}/lib" "${CMAKE_CURRENT_SOURCE_DIR}") |
| foreach (_src ${ARGN}) |
| if (_relPath) |
| list (APPEND grgsm_sources "${_relPath}/${_src}") |
| else() |
| list (APPEND grgsm_sources "${_src}") |
| endif() |
| endforeach() |
| if (_relPath) |
| # propagate grgsm_sources to parent directory |
| set (grgsm_sources ${grgsm_sources} PARENT_SCOPE) |
| endif() |
| endmacro() |
| |
| ######################################################################## |
| # Handle the generated constants |
| ######################################################################## |
| execute_process(COMMAND ${PYTHON_EXECUTABLE} -c |
| "import time;print(time.strftime('%a, %d %b %Y %H:%M:%S', time.gmtime()))" |
| OUTPUT_VARIABLE BUILD_DATE OUTPUT_STRIP_TRAILING_WHITESPACE |
| ) |
| message(STATUS "Loading build date ${BUILD_DATE} into constants...") |
| message(STATUS "Loading version ${VERSION} into constants...") |
| |
| #double escape for windows backslash path separators |
| string(REPLACE "\\" "\\\\" prefix "${prefix}") |
| |
| configure_file( |
| ${CMAKE_CURRENT_SOURCE_DIR}/constants.cc.in |
| ${CMAKE_CURRENT_BINARY_DIR}/constants.cc |
| ESCAPE_QUOTES |
| @ONLY) |
| |
| list(APPEND grgsm_sources ${CMAKE_CURRENT_BINARY_DIR}/constants.cc) |
| ######################################################################### |
| # Subdirecories |
| ######################################################################### |
| add_subdirectory(decoding) |
| add_subdirectory(decryption) |
| add_subdirectory(demapping) |
| add_subdirectory(flow_control) |
| add_subdirectory(misc_utils) |
| add_subdirectory(qa_utils) |
| add_subdirectory(receiver) |
| add_subdirectory(transmitter) |
| add_subdirectory(trx) |
| |
| if(NOT LOCAL_OSMOCOM) |
| list (APPEND grgsm_link_libraries ${LIBOSMOCORE_LIBRARIES} ${LIBOSMOCODEC_LIBRARIES} ${LIBOSMOGSM_LIBRARY}) |
| if(LIBOSMOCODING_FOUND) |
| list (APPEND grgsm_link_libraries |
| ${LIBOSMOCODING_LIBRARIES} |
| ) |
| list (APPEND grgsm_include_directories |
| ${LIBOSMOCORE_INCLUDE_DIR} |
| ) |
| endif() |
| endif() |
| |
| add_library(grgsm SHARED ${grgsm_sources}) |
| target_link_libraries(grgsm gnuradio::gnuradio-runtime gnuradio::gnuradio-filter volk osmocoding) |
| target_include_directories(grgsm |
| PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include> |
| PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/receiver> |
| PUBLIC $<BUILD_INTERFACE:${Boost_INCLUDE_DIR}> |
| PUBLIC $<INSTALL_INTERFACE:include> |
| ) |
| set_target_properties(grgsm PROPERTIES DEFINE_SYMBOL "grgsm_EXPORTS") |
| |
| if(APPLE) |
| set_target_properties(grgsm PROPERTIES |
| INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" |
| ) |
| endif(APPLE) |
| |
| ######################################################################## |
| # Install built library files |
| ######################################################################## |
| include(GrMiscUtils) |
| GR_LIBRARY_FOO(grgsm) |
| |
| ######################################################################## |
| # Print summary |
| ######################################################################## |
| message(STATUS "Using install prefix: ${CMAKE_INSTALL_PREFIX}") |
| message(STATUS "Building for version: ${VERSION} / ${LIBVER}") |
| |
| set (grgsm_sources ${grgsm_sources} PARENT_SCOPE) |
| |
| ######################################################################## |
| # Build and register unit test |
| ######################################################################## |
| include(GrTest) |
| |
| # If your unit tests require special include paths, add them here |
| #include_directories() |
| # List all files that contain Boost.UTF unit tests here |
| list(APPEND test_gsm_sources |
| ) |
| # Anything we need to link to for the unit tests go here |
| list(APPEND GR_TEST_TARGET_DEPS grgsm) |
| |
| if(NOT test_gsm_sources) |
| MESSAGE(STATUS "No C++ unit tests... skipping") |
| return() |
| endif(NOT test_gsm_sources) |
| |
| foreach(qa_file ${test_gsm_sources}) |
| GR_ADD_CPP_TEST("gsm_${qa_file}" |
| ${CMAKE_CURRENT_SOURCE_DIR}/${qa_file} |
| ) |
| endforeach(qa_file) |