From 21d6870a6ef5284a5941dce1484bcfff6684ffea Mon Sep 17 00:00:00 2001 From: Josh Blum <josh@joshknows.com> Date: Mon, 9 May 2011 20:31:56 -0700 Subject: volk: cmake support for volk (gcc + msvc) --- volk/CMakeLists.txt | 97 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 volk/CMakeLists.txt (limited to 'volk/CMakeLists.txt') diff --git a/volk/CMakeLists.txt b/volk/CMakeLists.txt new file mode 100644 index 0000000000..6e8af1855f --- /dev/null +++ b/volk/CMakeLists.txt @@ -0,0 +1,97 @@ +# +# Copyright 2011 Free Software Foundation, Inc. +# +# 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/>. +# + +######################################################################## +# Project setup +######################################################################## +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +PROJECT(volk) +ENABLE_LANGUAGE(CXX) +ENABLE_LANGUAGE(C) +ENABLE_TESTING() +SET(CMAKE_BUILD_TYPE Release) +SET(VERSION 0.1) +SET(LIBVER 0.0.0) + +######################################################################## +# Dependencies setup +######################################################################## +FIND_PACKAGE(PythonInterp) +IF(NOT PYTHONINTERP_FOUND) + MESSAGE(FATAL_ERROR "Python interpreter required by the build system.") +ENDIF(NOT PYTHONINTERP_FOUND) + +######################################################################## +# Create rules to run the volk generator +######################################################################## +#only list some of the generated sources (enough to make the rules work) +SET(some_gen_sources + ${CMAKE_BINARY_DIR}/lib/volk.c + ${CMAKE_BINARY_DIR}/include/volk/volk.h +) + +#dependencies are all python and xml files +FILE(GLOB xml_files ${CMAKE_SOURCE_DIR}/gen/*.xml) +FILE(GLOB py_files ${CMAKE_SOURCE_DIR}/gen/*.py) + +ADD_CUSTOM_COMMAND( + OUTPUT ${some_gen_sources} + DEPENDS ${xml_files} ${py_files} + COMMAND ${PYTHON_EXECUTABLE} -B + ${CMAKE_SOURCE_DIR}/gen/volk_register.py + ${CMAKE_BINARY_DIR} + COMMENT "Generating volk sources..." +) +ADD_CUSTOM_TARGET(volk_register DEPENDS ${some_gen_sources}) + +######################################################################## +# Setup the package config file +######################################################################## +#set variables found in the pc.in file +SET(prefix ${CMAKE_INSTALL_PREFIX}) +SET(exec_prefix "\${prefix}") +SET(libdir "\${exec_prefix}/lib${LIB_SUFFIX}") +SET(includedir "\${prefix}/include") + +CONFIGURE_FILE( + ${CMAKE_CURRENT_SOURCE_DIR}/volk.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/volk.pc +@ONLY) + +INSTALL_FILES( + ${CMAKE_CURRENT_BINARY_DIR}/volk.pc + DESTINATION lib${LIB_SUFFIX}/pkgconfig +) + +######################################################################## +# Install all headers in the include directories +######################################################################## +INSTALL( + DIRECTORY ${CMAKE_SOURCE_DIR}/include/volk + DIRECTORY ${CMAKE_BINARY_DIR}/include/volk + DESTINATION include FILES_MATCHING PATTERN "*.h" +) + +######################################################################## +# Setup the library +######################################################################## +ADD_SUBDIRECTORY(lib) + +######################################################################## +# Print summary +######################################################################## +MESSAGE(STATUS "Using install prefix: ${CMAKE_INSTALL_PREFIX}") -- cgit v1.2.3