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