summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/Modules/FindGnuradio.cmake105
-rw-r--r--cmake/Modules/FindICE.cmake84
-rw-r--r--cmake/msvc/stdbool.h45
3 files changed, 234 insertions, 0 deletions
diff --git a/cmake/Modules/FindGnuradio.cmake b/cmake/Modules/FindGnuradio.cmake
new file mode 100644
index 0000000000..14498488f2
--- /dev/null
+++ b/cmake/Modules/FindGnuradio.cmake
@@ -0,0 +1,105 @@
+INCLUDE(FindPkgConfig)
+INCLUDE(FindPackageHandleStandardArgs)
+
+# a subset of required modules can be set using the following syntax
+#set(GR_REQUIRED_MODULES CORE BLOCKS)
+
+# if GR_REQUIRED_MODULES is not defined, it will be set to the following list (all of them)
+if(NOT GR_REQUIRED_MODULES)
+ set(GR_REQUIRED_MODULES CORE ANALOG ATSC AUDIO BLOCKS CHANNELS DIGITAL FEC FFT FILTER NOAA PAGER QTGUI TRELLIS UHD VOCODER WAVELET)
+endif()
+
+set(GNURADIO_ALL_LIBRARIES "")
+set(GNURADIO_ALL_INCLUDE_DIRS "")
+
+MACRO(LIST_CONTAINS var value)
+ SET(${var})
+ FOREACH(value2 ${ARGN})
+ IF (${value} STREQUAL ${value2})
+ SET(${var} TRUE)
+ ENDIF(${value} STREQUAL ${value2})
+ ENDFOREACH(value2)
+ENDMACRO(LIST_CONTAINS)
+
+function(GR_MODULE EXTVAR PCNAME INCFILE LIBFILE)
+
+ LIST_CONTAINS(REQUIRED_MODULE ${EXTVAR} ${GR_REQUIRED_MODULES})
+ if(NOT REQUIRED_MODULE)
+ #message("Ignoring GNU Radio Module ${EXTVAR}")
+ return()
+ endif()
+
+ message("Checking for GNU Radio Module: ${EXTVAR}")
+
+ # check for .pc hints
+ PKG_CHECK_MODULES(PC_GNURADIO_${EXTVAR} ${PCNAME})
+
+ set(INCVAR_NAME "GNURADIO_${EXTVAR}_INCLUDE_DIRS")
+ set(LIBVAR_NAME "GNURADIO_${EXTVAR}_LIBRARIES")
+ set(PC_INCDIR "PC_GNURADIO_${EXTVAR}_INCLUDEDIR")
+ set(PC_LIBDIR "PC_GNURADIO_${EXTVAR}_LIBDIR")
+
+ # look for include files
+ FIND_PATH(
+ ${INCVAR_NAME}
+ NAMES ${INCFILE}
+ HINTS $ENV{GNURADIO_CORE_DIR}/include/gnuradio
+ ${PC_INCDIR}
+ ${CMAKE_INSTALL_PREFIX}/include/gnuradio
+ PATHS /usr/local/include/gnuradio
+ /usr/include/gnuradio
+ )
+
+ # look for libs
+ FIND_LIBRARY(
+ ${LIBVAR_NAME}
+ NAMES ${LIBFILE}
+ HINTS $ENV{GNURADIO_CORE_DIR}/lib
+ ${PC_LIBDIR}
+ ${CMAKE_INSTALL_PREFIX}/lib/
+ ${CMAKE_INSTALL_PREFIX}/lib64/
+ PATHS /usr/local/lib
+ /usr/local/lib64
+ /usr/lib
+ /usr/lib64
+ )
+
+ # show results
+ message(" * INCLUDES=${GNURADIO_${EXTVAR}_INCLUDE_DIRS}")
+ message(" * LIBS=${GNURADIO_${EXTVAR}_LIBRARIES}")
+
+ # append to all includes and libs list
+ LIST(APPEND GNURADIO_ALL_INCLUDE_DIRS ${GNURADIO_${EXTVAR}_INCLUDE_DIRS})
+ LIST(APPEND GNURADIO_ALL_LIBRARIES ${GNURADIO_${EXTVAR}_LIBRARIES})
+
+ FIND_PACKAGE_HANDLE_STANDARD_ARGS(GNURADIO_${EXTVAR} DEFAULT_MSG GNURADIO_${EXTVAR}_LIBRARIES GNURADIO_${EXTVAR}_INCLUDE_DIRS)
+ message("GNURADIO_${EXTVAR}_FOUND = ${GNURADIO_${EXTVAR}_FOUND}")
+ set(GNURADIO_${EXTVAR}_FOUND ${GNURADIO_${EXTVAR}_FOUND} PARENT_SCOPE)
+
+ # generate an error if the module is missing
+ if(NOT GNURADIO_${EXTVAR}_FOUND)
+ message(FATAL_ERROR "Required GNU Radio Component: ${EXTVAR} missing!")
+ endif()
+
+ MARK_AS_ADVANCED(GNURADIO_${EXTVAR}_LIBRARIES GNURADIO_${EXTVAR}_INCLUDE_DIRS)
+
+endfunction()
+
+GR_MODULE(CORE gnuradio-core gr_top_block.h gnuradio-core)
+GR_MODULE(ANALOG gnuradio-analog analog/noise_type.h gnuradio-analog)
+GR_MODULE(ATSC gnuradio-atsc atsc_api.h gnuradio-atsc)
+GR_MODULE(AUDIO gnuradio-audio audio/sink.h gnuradio-audio)
+GR_MODULE(BLOCKS gnuradio-blocks blocks/delay.h gnuradio-blocks)
+GR_MODULE(CHANNELS gnuradio-channels channels/channel_model.h gnuradio-channels)
+GR_MODULE(DIGITAL gnuradio-digital digital/lfsr.h gnuradio-digital)
+GR_MODULE(FEC gnuradio-fec fec/rs.h gnuradio-fec)
+GR_MODULE(FFT gnuradio-fft fft/fft.h gnuradio-fft)
+GR_MODULE(FILTER gnuradio-filter filter/fir_filter.h gnuradio-filter)
+GR_MODULE(NOAA gnuradio-noaa noaa/hrpt.h gnuradio-noaa)
+GR_MODULE(PAGER gnuradio-pager noaa/flex_deinterleave.h gnuradio-pager)
+GR_MODULE(QTGUI gnuradio-qtgui qtgui/utils.h gnuradio-qtgui)
+GR_MODULE(TRELLIS gnuradio-trellis trellis/fsm.h gnuradio-trellis)
+GR_MODULE(UHD gnuradio-uhd gr_uhd/usrp_sink.h gnuradio-uhd)
+GR_MODULE(VOCODER gnuradio-vocoder vocoder/alaw_encode_sb.h gnuradio-vocoder)
+GR_MODULE(WAVELET gnuradio-wavelet wavelet/wavelet_ff.h gnuradio-wavelet)
+
diff --git a/cmake/Modules/FindICE.cmake b/cmake/Modules/FindICE.cmake
new file mode 100644
index 0000000000..4186c5bbd0
--- /dev/null
+++ b/cmake/Modules/FindICE.cmake
@@ -0,0 +1,84 @@
+FIND_PACKAGE(PkgConfig)
+PKG_CHECK_MODULES(PC_ICE Ice-3.4)
+
+#set(ICE_MANUAL_INSTALL_PATH /opt/Ice-3.4.2/)
+FIND_PATH(
+ ICE_INCLUDE_DIR
+ NAMES IceUtil/IceUtil.h Ice/Ice.h IceStorm/IceStorm.h icestorm_publisher_template.h
+ HINTS ${CMAKE_INSTALL_PREFIX}/${HEADER_DIR} ${ICE_MANUAL_INSTALL_PATH}/include/
+)
+
+set(ICE_LIBRARY )
+
+FIND_LIBRARY(
+ ICE_ICESTORM IceStorm
+ PATHS ENV LD_LIBRARY_PATH
+ HINTS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+)
+
+FIND_LIBRARY(
+ ICE_ICESTORM IceStorm
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ ENV LD_LIBRARY_PATH
+)
+FIND_LIBRARY(
+ ICE_ICE Ice
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ ENV LD_LIBRARY_PATH
+)
+FIND_LIBRARY(
+ ICE_ICEGRID IceGrid
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ ENV LD_LIBRARY_PATH
+)
+FIND_LIBRARY(
+ ICE_ICEUTIL IceUtil
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ ENV LD_LIBRARY_PATH
+)
+FIND_LIBRARY(
+ ICE_GLACIER2 Glacier2
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ ENV LD_LIBRARY_PATH
+)
+
+if(APPLE)
+ FIND_LIBRARY(
+ ICE_ZEROCICE ZeroCIce
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} ${ICE_MANUAL_INSTALL_PATH}/lib64/
+ ENV LD_LIBRARY_PATH
+ )
+endif(APPLE)
+
+FIND_LIBRARY(
+ ICE_PTHREAD NAMES pthread pthread-2.13
+ PATHS HINTS ${CMAKE_INSTALL_PREFIX}/lib64/ ${CMAKE_INSTALL_PREFIX}/lib/
+ PATHS ${PC_ICE_LIBDIR} ${PC_ICE_LIBRARY_DIRS} /lib/i386-linux-gnu /lib/x86_64-linux-gnu /usr/lib /lib /lib64
+ ENV LD_LIBRARY_PATH
+)
+
+list(APPEND ICE_LIBRARY
+ ${ICE_ICESTORM}
+ ${ICE_ICE}
+ ${ICE_ICEGRID}
+ ${ICE_ICEUTIL}
+ ${ICE_GLACIER2}
+ ${ICE_ZEROCICE}
+ ${ICE_PTHREAD}
+)
+
+FIND_PROGRAM(ICE_SLICE2CPP slice2cpp HINTS ${CMAKE_INSTALL_PREFIX}/bin ${ICE_MANUAL_INSTALL_PATH}/bin/)
+FIND_PROGRAM(ICE_SLICE2PY slice2py HINTS ${CMAKE_INSTALL_PREFIX}/bin ${ICE_MANUAL_INSTALL_PATH}/bin/)
+
+set(ICE_LIBRARIES ${ICE_LIBRARY})
+set(ICE_INCLUDE_DIRS ${ICE_INCLUDE_DIR})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(ICE DEFAULT_MSG ICE_LIBRARY ICE_INCLUDE_DIR)
+mark_as_advanced(ICE_INCLUDE_DIR ICE_LIBRARY)
diff --git a/cmake/msvc/stdbool.h b/cmake/msvc/stdbool.h
new file mode 100644
index 0000000000..ca4581d37a
--- /dev/null
+++ b/cmake/msvc/stdbool.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005, 2006 Apple Computer, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef STDBOOL_WIN32_H
+#define STDBOOL_WIN32_H
+
+#ifndef _MSC_VER // [
+#error "Use this header only with Microsoft Visual C++ compilers!"
+#endif // _MSC_VER ]
+
+#ifndef __cplusplus
+
+typedef unsigned char bool;
+
+#define true 1
+#define false 0
+
+#ifndef CASSERT
+#define CASSERT(exp, name) typedef int dummy##name [(exp) ? 1 : -1];
+#endif
+
+CASSERT(sizeof(bool) == 1, bool_is_one_byte)
+CASSERT(true, true_is_true)
+CASSERT(!false, false_is_false)
+
+#endif
+
+#endif