summaryrefslogtreecommitdiff
path: root/volk/CMakeLists.txt
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-05-09 20:31:56 -0700
committerJosh Blum <josh@joshknows.com>2011-05-10 13:49:31 -0700
commit21d6870a6ef5284a5941dce1484bcfff6684ffea (patch)
tree318a4ab75f91f48036ac9b9d01c339b959769d22 /volk/CMakeLists.txt
parent3381729bb788e2d4f158d8efb6196a45e1620946 (diff)
volk: cmake support for volk (gcc + msvc)
Diffstat (limited to 'volk/CMakeLists.txt')
-rw-r--r--volk/CMakeLists.txt97
1 files changed, 97 insertions, 0 deletions
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}")