Statistics
| Branch: | Tag: | Revision:

root / host / lib / CMakeLists.txt @ fdd80e54

History | View | Annotate | Download (5.31 KB)

1
#
2
# Copyright 2010 Ettus Research LLC
3
#
4
# This program is free software: you can redistribute it and/or modify
5
# it under the terms of the GNU General Public License as published by
6
# the Free Software Foundation, either version 3 of the License, or
7
# (at your option) any later version.
8
#
9
# This program is distributed in the hope that it will be useful,
10
# but WITHOUT ANY WARRANTY; without even the implied warranty of
11
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12
# GNU General Public License for more details.
13
#
14
# You should have received a copy of the GNU General Public License
15
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
16
#
17

    
18

    
19
########################################################################
20
# Setup Python
21
########################################################################
22
INCLUDE(FindPythonInterp)
23

    
24
MACRO(PYTHON_CHECK_MODULE module have)
25
    MESSAGE(STATUS "Checking for python module ${module}")
26
    EXECUTE_PROCESS(
27
        COMMAND ${PYTHON_EXECUTABLE} -c "import ${module}"
28
        RESULT_VARIABLE ${have}
29
    )
30
    IF(${have} EQUAL 0)
31
        MESSAGE(STATUS "Checking for python module ${module} - found")
32
        SET(${have} TRUE)
33
    ELSE(${have} EQUAL 0)
34
        MESSAGE(STATUS "Checking for python module ${module} - not found")
35
        SET(${have} FALSE)
36
    ENDIF(${have} EQUAL 0)
37
ENDMACRO(PYTHON_CHECK_MODULE)
38

    
39
PYTHON_CHECK_MODULE("Cheetah" HAVE_PYTHON_MODULE_CHEETAH)
40

    
41
IF(NOT HAVE_PYTHON_MODULE_CHEETAH)
42
    MESSAGE(FATAL_ERROR "Error: Cheetah Templates needed for pre-build generation.")
43
ENDIF(NOT HAVE_PYTHON_MODULE_CHEETAH)
44

    
45
########################################################################
46
# Create a list of libuhd sources
47
########################################################################
48
SET(libuhd_sources
49
    device.cpp
50
    gain_handler.cpp
51
    load_modules.cpp
52
    types.cpp
53
    wax.cpp
54
    transport/if_addrs.cpp
55
    transport/udp_simple.cpp
56
    usrp/dboard/db_basic_and_lf.cpp
57
    usrp/dboard/db_rfx.cpp
58
    usrp/dboard_base.cpp
59
    usrp/simple_usrp.cpp
60
    usrp/dboard_manager.cpp
61
    usrp/tune_helper.cpp
62
    usrp/usrp2/dboard_impl.cpp
63
    usrp/usrp2/dboard_interface.cpp
64
    usrp/usrp2/dsp_impl.cpp
65
    usrp/usrp2/io_impl.cpp
66
    usrp/usrp2/mboard_impl.cpp
67
    usrp/usrp2/usrp2_impl.cpp
68
)
69

    
70
########################################################################
71
# Generate Files
72
########################################################################
73
MACRO(UHD_PYTHON_GEN_FILE pyfile outfile)
74
    ADD_CUSTOM_COMMAND(
75
        OUTPUT ${outfile} DEPENDS ${pyfile}
76
        COMMAND ${PYTHON_EXECUTABLE} ${pyfile} ${outfile}
77
        COMMENT "Calling ${pyfile} to generate ${outfile}"
78
    )
79
ENDMACRO(UHD_PYTHON_GEN_FILE)
80
UHD_PYTHON_GEN_FILE(
81
    ${CMAKE_CURRENT_SOURCE_DIR}/transport/gen_vrt.py
82
    ${CMAKE_CURRENT_BINARY_DIR}/transport/vrt.cpp
83
)
84
LIST(APPEND libuhd_sources
85
    ${CMAKE_CURRENT_BINARY_DIR}/transport/vrt.cpp
86
)
87

    
88
########################################################################
89
# Conditionally add the udp sources
90
########################################################################
91
LIST(APPEND libuhd_sources
92
    transport/udp_zero_copy_asio.cpp
93
)
94

    
95
########################################################################
96
# Conditionally add the usrp1e sources
97
########################################################################
98
LIST(APPEND libuhd_sources
99
    usrp/usrp1e/usrp1e_none.cpp
100
)
101

    
102
########################################################################
103
# Setup defines for module loading
104
########################################################################
105
MESSAGE(STATUS "Configuring module loading...")
106

    
107
INCLUDE(CheckIncludeFileCXX)
108
CHECK_INCLUDE_FILE_CXX(dlfcn.h HAVE_DLFCN_H)
109
CHECK_INCLUDE_FILE_CXX(windows.h HAVE_WINDOWS_H)
110

    
111
IF(HAVE_DLFCN_H)
112
    MESSAGE(STATUS "  Module loading supported through dlopen.")
113
    ADD_DEFINITIONS(-DHAVE_DLFCN_H)
114
ELSEIF(HAVE_WINDOWS_H)
115
    MESSAGE(STATUS "  Module loading supported through LoadLibrary.")
116
    ADD_DEFINITIONS(-DHAVE_WINDOWS_H)
117
ELSE(HAVE_DLFCN_H)
118
    MESSAGE(STATUS "  Module loading not supported.")
119
ENDIF(HAVE_DLFCN_H)
120

    
121
########################################################################
122
# Setup defines for interface address discovery
123
########################################################################
124
MESSAGE(STATUS "Configuring interface address discovery...")
125

    
126
INCLUDE(CheckIncludeFileCXX)
127
CHECK_INCLUDE_FILE_CXX(ifaddrs.h HAVE_IFADDRS_H)
128
CHECK_INCLUDE_FILE_CXX(winsock2.h HAVE_WINSOCK2_H)
129

    
130
IF(HAVE_IFADDRS_H)
131
    MESSAGE(STATUS "  Interface address discovery supported through getifaddrs.")
132
    ADD_DEFINITIONS(-DHAVE_IFADDRS_H)
133
ELSEIF(HAVE_WINSOCK2_H)
134
    MESSAGE(STATUS "  Interface address discovery supported through SIO_GET_INTERFACE_LIST.")
135
    ADD_DEFINITIONS(-DHAVE_WINSOCK2_H)
136
ELSE(HAVE_IFADDRS_H)
137
    MESSAGE(STATUS "  Interface address discovery not supported.")
138
ENDIF(HAVE_IFADDRS_H)
139

    
140
########################################################################
141
# Setup libuhd library
142
########################################################################
143
ADD_LIBRARY(uhd SHARED ${libuhd_sources})
144

    
145
TARGET_LINK_LIBRARIES(uhd ${Boost_LIBRARIES} ${CMAKE_DL_LIBS})
146

    
147
SET_TARGET_PROPERTIES(uhd PROPERTIES DEFINE_SYMBOL "UHD_DLL_EXPORTS")
148

    
149
INSTALL(TARGETS uhd
150
    LIBRARY DESTINATION ${LIBRARY_DIR} # .so file
151
    ARCHIVE DESTINATION ${LIBRARY_DIR} # .lib file
152
    RUNTIME DESTINATION ${LIBRARY_DIR} # .dll file
153
)