90 lines
2.6 KiB
CMake
90 lines
2.6 KiB
CMake
#
|
|
# Copyright (C) 2013, 2016 Bastian Bloessl <bloessl@ccs-labs.org>
|
|
#
|
|
# This program 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 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
|
|
#
|
|
include(GrPython)
|
|
|
|
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py "
|
|
#!${PYTHON_EXECUTABLE}
|
|
|
|
import sys, os, re
|
|
sys.path.append('${GR_RUNTIME_PYTHONPATH}')
|
|
os.environ['srcdir'] = '${CMAKE_CURRENT_SOURCE_DIR}'
|
|
os.chdir('${CMAKE_CURRENT_BINARY_DIR}')
|
|
|
|
if __name__ == '__main__':
|
|
sys.path.append('${CMAKE_CURRENT_SOURCE_DIR}/../../python')
|
|
import build_utils
|
|
root, inp = sys.argv[1:3]
|
|
for sig in sys.argv[3:]:
|
|
name = re.sub ('X+', sig, root)
|
|
d = build_utils.standard_dict(name, sig, 'ieee802_11')
|
|
build_utils.expand_template(d, inp)
|
|
|
|
")
|
|
|
|
macro(expand_h root)
|
|
#make a list of all the generated files
|
|
unset(expanded_files_h)
|
|
foreach(sig ${ARGN})
|
|
string(REGEX REPLACE "X+" ${sig} name ${root})
|
|
list(APPEND expanded_files_h ${CMAKE_CURRENT_BINARY_DIR}/${name}.h)
|
|
endforeach(sig)
|
|
|
|
#create a command to generate the files
|
|
add_custom_command(
|
|
OUTPUT ${expanded_files_h}
|
|
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/${root}.h.t
|
|
COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B}
|
|
${CMAKE_CURRENT_BINARY_DIR}/generate_helper.py
|
|
${root} ${root}.h.t ${ARGN}
|
|
)
|
|
|
|
#install rules for the generated h files
|
|
list(APPEND generated_includes ${expanded_files_h})
|
|
endmacro(expand_h)
|
|
|
|
expand_h(moving_average_XX ff cc)
|
|
|
|
add_custom_target(ieee802_11_generated_includes DEPENDS
|
|
${generated_includes}
|
|
)
|
|
|
|
########################################################################
|
|
# Install public header files
|
|
########################################################################
|
|
|
|
list(APPEND include_sources
|
|
${generated_includes}
|
|
api.h
|
|
chunks_to_symbols.h
|
|
constellations.h
|
|
decode_mac.h
|
|
ether_encap.h
|
|
frame_equalizer.h
|
|
mac.h
|
|
mapper.h
|
|
parse_mac.h
|
|
signal_field.h
|
|
sync_long.h
|
|
sync_short.h
|
|
)
|
|
|
|
install(
|
|
FILES ${include_sources}
|
|
DESTINATION ${GR_INCLUDE_DIR}/gnuradio/ieee802_11
|
|
COMPONENT "ieee802_11_devel"
|
|
)
|