--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -71,7 +71,7 @@ "1.60.0" "1.60" "1.61.0" "1.61" "1.62.0" "1.62" "1.63.0" "1.63" "1.64.0" "1.64" "1.65.0" "1.65" "1.66.0" "1.66" "1.67.0" "1.67" "1.68.0" "1.68" "1.69.0" "1.69" ) -find_package(Boost "1.35" COMPONENTS filesystem system) +find_package(Boost "1.35" COMPONENTS thread filesystem system) if(NOT Boost_FOUND) message(FATAL_ERROR "Boost required to compile lora") @@ -117,8 +117,6 @@ ######################################################################## # Find gnuradio build dependencies ######################################################################## -find_package(CppUnit) -find_package(Doxygen) # Search for GNU Radio and its components and versions. Add any # components required to the list of GR_REQUIRED_COMPONENTS (in all @@ -127,13 +125,25 @@ set(GR_REQUIRED_COMPONENTS RUNTIME FILTER) find_package(Gnuradio "3.7.2" REQUIRED) +find_package(CppUnit) if(NOT CPPUNIT_FOUND) - message(FATAL_ERROR "CppUnit required to compile lora") + message(FATAL_ERROR "CppUnit required to compile gr-lora") +endif() + +find_package(Volk) +if(NOT VOLK_FOUND) + message(FATAL_ERROR "Volk required to compile gr-lora") +endif() + +find_package(Liquid-DSP) +if(NOT LIQUID_DSP_FOUND) + message(FATAL_ERROR "Liquid-DSP required to compile gr-lora") endif() ######################################################################## # Setup doxygen option ######################################################################## +find_package(Doxygen) if(DOXYGEN_FOUND) option(ENABLE_DOXYGEN "Build docs using Doxygen" ON) else(DOXYGEN_FOUND) @@ -151,12 +161,16 @@ ${Boost_INCLUDE_DIRS} ${CPPUNIT_INCLUDE_DIRS} ${GNURADIO_ALL_INCLUDE_DIRS} + ${VOLK_INCLUDE_DIRS} + ${LIQUID_DSP_INCLUDE_DIRS} ) link_directories( ${Boost_LIBRARY_DIRS} ${CPPUNIT_LIBRARY_DIRS} ${GNURADIO_RUNTIME_LIBRARY_DIRS} + ${VOLK_LIBRARY_DIRS} + ${LIQUID_DSP_LIBRARY_DIRS} ) # Set component parameters --- /dev/null +++ b/cmake/Modules/FindLiquid-DSP.cmake @@ -0,0 +1,33 @@ +# +# Find the Liquid-DSP includes and library +# +# This module defines +# LIQUID_DSP_INCLUDE_DIR, where to find the main Liquid-DSP header +# LIQUID_DSP_LIBRARIES, the libraries to link against to use Liquid-DSP. +# LIQUID_DSP_FOUND, If false, do not try to use Liquid-DSP. + +FIND_PATH(LIQUID_DSP_INCLUDE_DIRS + NAMES liquid/liquid.h + HINTS ${LIQUID_DIR}/include + ${CMAKE_INSTALL_PREFIX}/include + PATHS + /usr/local/include + /usr/include + /opt/local/include +) + +FIND_LIBRARY(LIQUID_DSP_LIBRARIES + NAMES liquid + HINTS ${LIQUID_DIR}/lib + ${LIQUID_DSP_INCLUDE_DIRS}/../lib + ${CMAKE_INSTALL_PREFIX}/lib + ${CMAKE_INSTALL_PREFIX}/lib64 + PATHS + /usr/local/lib + /usr/lib + /opt/local/lib +) + +INCLUDE(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS(LIQUID_DSP DEFAULT_MSG LIQUID_DSP_LIBRARIES LIQUID_DSP_INCLUDE_DIRS) +MARK_AS_ADVANCED(LIQUID_DSP_LIBRARIES LIQUID_DSP_INCLUDE_DIRS) --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -22,9 +22,6 @@ ######################################################################## include(GrPlatform) #define LIB_SUFFIX -include_directories(${Boost_INCLUDE_DIR}) -link_directories(${Boost_LIBRARY_DIRS}) - list(APPEND lora_sources decoder_impl.cc message_file_sink_impl.cc @@ -35,22 +32,17 @@ message_socket_source_impl.cc ) -set(lora_sources "${lora_sources}" PARENT_SCOPE) -if(NOT lora_sources) - MESSAGE(STATUS "No C++ sources... skipping lib/") - return() -endif(NOT lora_sources) +list(APPEND lora_libs + ${Boost_LIBRARIES} + ${GNURADIO_ALL_LIBRARIES} + ${VOLK_LIBRARIES} + ${LIQUID_DSP_LIBRARIES} +) add_library(gnuradio-lora SHARED ${lora_sources}) -target_link_libraries(gnuradio-lora ${Boost_LIBRARIES} ${GNURADIO_ALL_LIBRARIES} liquid) +target_link_libraries(gnuradio-lora ${lora_libs}) set_target_properties(gnuradio-lora PROPERTIES DEFINE_SYMBOL "gnuradio_lora_EXPORTS") -if(APPLE) - set_target_properties(gnuradio-lora PROPERTIES - INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib" - ) -endif(APPLE) - ######################################################################## # Install built library files ######################################################################## @@ -77,11 +69,9 @@ target_link_libraries( test-lora - ${GNURADIO_RUNTIME_LIBRARIES} - ${Boost_LIBRARIES} - ${CPPUNIT_LIBRARIES} gnuradio-lora - liquid + ${lora_libs} + ${CPPUNIT_LIBRARIES} ) GR_ADD_TEST(test_lora test-lora) --- a/swig/CMakeLists.txt +++ b/swig/CMakeLists.txt @@ -17,14 +17,6 @@ # the Free Software Foundation, Inc., 51 Franklin Street, # Boston, MA 02110-1301, USA. -######################################################################## -# Check if there is C++ code at all -######################################################################## -if(NOT lora_sources) - MESSAGE(STATUS "No C++ sources... skipping swig/") - return() -endif(NOT lora_sources) - ######################################################################## # Include swig generation macros ########################################################################