Statistics
| Branch: | Tag: | Revision:

root / gr-howto-write-a-block / CMakeLists.txt @ 00420d32

History | View | Annotate | Download (4.8 kB)

1
# Copyright 2011 Free Software Foundation, Inc.
2
# 
3
# This file is part of GNU Radio
4
# 
5
# GNU Radio is free software; you can redistribute it and/or modify
6
# it under the terms of the GNU General Public License as published by
7
# the Free Software Foundation; either version 3, or (at your option)
8
# any later version.
9
# 
10
# GNU Radio is distributed in the hope that it will be useful,
11
# but WITHOUT ANY WARRANTY; without even the implied warranty of
12
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
# GNU General Public License for more details.
14
# 
15
# You should have received a copy of the GNU General Public License
16
# along with GNU Radio; see the file COPYING.  If not, write to
17
# the Free Software Foundation, Inc., 51 Franklin Street,
18
# Boston, MA 02110-1301, USA.
19
20
21
########################################################################
22
# Project setup
23
########################################################################
24
cmake_minimum_required(VERSION 2.6)
25
project(gr-howto-write-a-block CXX)
26
enable_testing()
27
28
#select the release build type by default to get optimization flags
29
if(NOT CMAKE_BUILD_TYPE)
30
   set(CMAKE_BUILD_TYPE "Release")
31
   message(STATUS "Build type not specified: defaulting to release.")
32
endif(NOT CMAKE_BUILD_TYPE)
33
set(CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE} CACHE STRING "")
34
35
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/Modules)
36
37
########################################################################
38
# Compiler specific setup
39
########################################################################
40
if(CMAKE_COMPILER_IS_GNUCXX AND NOT WIN32)
41
    #http://gcc.gnu.org/wiki/Visibility
42
    add_definitions(-fvisibility=hidden)
43
endif()
44
45
########################################################################
46
# Find boost
47
########################################################################
48
if(UNIX AND EXISTS "/usr/lib64")
49
    list(APPEND BOOST_LIBRARYDIR "/usr/lib64") #fedora 64-bit fix
50
endif(UNIX AND EXISTS "/usr/lib64")
51
set(Boost_ADDITIONAL_VERSIONS
52
    "1.35.0" "1.35" "1.36.0" "1.36" "1.37.0" "1.37" "1.38.0" "1.38" "1.39.0" "1.39"
53
    "1.40.0" "1.40" "1.41.0" "1.41" "1.42.0" "1.42" "1.43.0" "1.43" "1.44.0" "1.44"
54
    "1.45.0" "1.45" "1.46.0" "1.46" "1.47.0" "1.47" "1.48.0" "1.48" "1.49.0" "1.49"
55
    "1.50.0" "1.50" "1.51.0" "1.51" "1.52.0" "1.52" "1.53.0" "1.53" "1.54.0" "1.54"
56
    "1.55.0" "1.55" "1.56.0" "1.56" "1.57.0" "1.57" "1.58.0" "1.58" "1.59.0" "1.59"
57
    "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"
58
    "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"
59
)
60
find_package(Boost "1.35")
61
62
if(NOT Boost_FOUND)
63
    message(FATAL_ERROR "Boost required to compile howto")
64
endif()
65
66
########################################################################
67
# Install directories
68
########################################################################
69
include(GrPlatform) #define LIB_SUFFIX
70
set(GR_RUNTIME_DIR      bin)
71
set(GR_LIBRARY_DIR      lib${LIB_SUFFIX})
72
set(GR_INCLUDE_DIR      include)
73
set(GR_DATA_DIR         share)
74
set(GR_PKG_DATA_DIR     ${GR_DATA_DIR}/${CMAKE_PROJECT_NAME})
75
set(GR_DOC_DIR          ${GR_DATA_DIR}/doc)
76
set(GR_PKG_DOC_DIR      ${GR_DOC_DIR}/${CMAKE_PROJECT_NAME})
77
set(GR_CONF_DIR         etc)
78
set(GR_PKG_CONF_DIR     ${GR_CONF_DIR}/${CMAKE_PROJECT_NAME}/conf.d)
79
set(GR_LIBEXEC_DIR      libexec)
80
set(GR_PKG_LIBEXEC_DIR  ${GR_LIBEXEC_DIR}/${CMAKE_PROJECT_NAME})
81
set(GRC_BLOCKS_DIR      ${GR_PKG_DATA_DIR}/grc/blocks)
82
83
########################################################################
84
# Find gnuradio build dependencies
85
########################################################################
86
find_package(Gruel)
87
find_package(GnuradioCore)
88
89
if(NOT GRUEL_FOUND)
90
    message(FATAL_ERROR "Gruel required to compile howto")
91
endif()
92
93
if(NOT GNURADIO_CORE_FOUND)
94
    message(FATAL_ERROR "GnuRadio Core required to compile howto")
95
endif()
96
97
########################################################################
98
# Setup the include and linker paths
99
########################################################################
100
include_directories(
101
    ${CMAKE_SOURCE_DIR}/include
102
    ${Boost_INCLUDE_DIRS}
103
    ${GRUEL_INCLUDE_DIRS}
104
    ${GNURADIO_CORE_INCLUDE_DIRS}
105
)
106
107
link_directories(
108
    ${Boost_LIBRARY_DIRS}
109
    ${GRUEL_LIBRARY_DIRS}
110
    ${GNURADIO_CORE_LIBRARY_DIRS}
111
)
112
113
# Set component parameters
114
set(GR_HOWTO_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include CACHE INTERNAL "" FORCE)
115
set(GR_HOWTO_SWIG_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/swig CACHE INTERNAL "" FORCE)
116
117
########################################################################
118
# Add subdirectories
119
########################################################################
120
add_subdirectory(include)
121
add_subdirectory(lib)
122
add_subdirectory(swig)
123
add_subdirectory(python)
124
add_subdirectory(grc)
125
add_subdirectory(apps)
126
add_subdirectory(docs)