From f41ca07e83b9f4654729d665767a982c5ff1eaa1 Mon Sep 17 00:00:00 2001 From: Paul Sutton Date: Wed, 14 May 2014 11:31:25 +0100 Subject: [PATCH 1/2] Adding custom targets to include all header files in generated project files --- cuhd/CMakeLists.txt | 1 + cuhd/include/CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++ graphics/CMakeLists.txt | 1 + graphics/include/CMakeLists.txt | 38 +++++++++++++++++++++++++++++++++ lte/include/CMakeLists.txt | 6 ++++-- 5 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 cuhd/include/CMakeLists.txt create mode 100644 graphics/include/CMakeLists.txt diff --git a/cuhd/CMakeLists.txt b/cuhd/CMakeLists.txt index 38d87ce55..df98412a8 100644 --- a/cuhd/CMakeLists.txt +++ b/cuhd/CMakeLists.txt @@ -22,6 +22,7 @@ ######################################################################## # Install headers ######################################################################## +ADD_SUBDIRECTORY(include) INSTALL(DIRECTORY include/ DESTINATION "${INCLUDE_DIR}" FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE diff --git a/cuhd/include/CMakeLists.txt b/cuhd/include/CMakeLists.txt new file mode 100644 index 000000000..287712c01 --- /dev/null +++ b/cuhd/include/CMakeLists.txt @@ -0,0 +1,38 @@ +# +# Copyright 2012-2013 The libLTE Developers. See the +# COPYRIGHT file at the top-level directory of this distribution. +# +# This file is part of the libLTE library. +# +# libLTE is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of +# the License, or (at your option) any later version. +# +# libLTE 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 Lesser General Public License for more details. +# +# A copy of the GNU Lesser General Public License can be found in +# the LICENSE file in the top-level directory of this distribution +# and at http://www.gnu.org/licenses/. +# + +######################################################################## +# Add headers to cmake project (useful for IDEs) +######################################################################## +SET(HEADERS_ALL "") +FILE(GLOB_RECURSE tmp "*.h") +LIST(APPEND HEADERS_ALL ${tmp}) +FILE(GLOB headers *) +FOREACH (_header ${headers}) + IF(IS_DIRECTORY ${_header}) + FILE(GLOB_RECURSE tmp "${_header}/*.h") + LIST(APPEND HEADERS_ALL ${tmp}) + ENDIF(IS_DIRECTORY ${_header}) +ENDFOREACH() +ADD_CUSTOM_TARGET (add_cuhd_headers SOURCES ${HEADERS_ALL}) + + + diff --git a/graphics/CMakeLists.txt b/graphics/CMakeLists.txt index 3dc1dbaa9..113999b4a 100644 --- a/graphics/CMakeLists.txt +++ b/graphics/CMakeLists.txt @@ -22,6 +22,7 @@ ######################################################################## # Install headers ######################################################################## +ADD_SUBDIRECTORY(include) INSTALL(DIRECTORY include/ DESTINATION "${INCLUDE_DIR}" FILES_MATCHING PATTERN "*.h" PATTERN ".svn" EXCLUDE diff --git a/graphics/include/CMakeLists.txt b/graphics/include/CMakeLists.txt new file mode 100644 index 000000000..593797adb --- /dev/null +++ b/graphics/include/CMakeLists.txt @@ -0,0 +1,38 @@ +# +# Copyright 2012-2013 The libLTE Developers. See the +# COPYRIGHT file at the top-level directory of this distribution. +# +# This file is part of the libLTE library. +# +# libLTE is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation, either version 3 of +# the License, or (at your option) any later version. +# +# libLTE 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 Lesser General Public License for more details. +# +# A copy of the GNU Lesser General Public License can be found in +# the LICENSE file in the top-level directory of this distribution +# and at http://www.gnu.org/licenses/. +# + +######################################################################## +# Add headers to cmake project (useful for IDEs) +######################################################################## +SET(HEADERS_ALL "") +FILE(GLOB_RECURSE tmp "*.h") +LIST(APPEND HEADERS_ALL ${tmp}) +FILE(GLOB headers *) +FOREACH (_header ${headers}) + IF(IS_DIRECTORY ${_header}) + FILE(GLOB_RECURSE tmp "${_header}/*.h") + LIST(APPEND HEADERS_ALL ${tmp}) + ENDIF(IS_DIRECTORY ${_header}) +ENDFOREACH() +ADD_CUSTOM_TARGET (add_graphics_headers SOURCES ${HEADERS_ALL}) + + + diff --git a/lte/include/CMakeLists.txt b/lte/include/CMakeLists.txt index 552c7a0a1..b2756ee48 100644 --- a/lte/include/CMakeLists.txt +++ b/lte/include/CMakeLists.txt @@ -22,15 +22,17 @@ ######################################################################## # Add headers to cmake project (useful for IDEs) ######################################################################## -FILE(GLOB headers *) SET(HEADERS_ALL "") +FILE(GLOB_RECURSE tmp "*.h") +LIST(APPEND HEADERS_ALL ${tmp}) +FILE(GLOB headers *) FOREACH (_header ${headers}) IF(IS_DIRECTORY ${_header}) FILE(GLOB_RECURSE tmp "${_header}/*.h") LIST(APPEND HEADERS_ALL ${tmp}) ENDIF(IS_DIRECTORY ${_header}) ENDFOREACH() -ADD_CUSTOM_TARGET (add_headers SOURCES ${HEADERS_ALL}) +ADD_CUSTOM_TARGET (add_lte_headers SOURCES ${HEADERS_ALL}) From d10e4d809d7937e27e7cadacfff340af9a4b8300 Mon Sep 17 00:00:00 2001 From: Paul Sutton Date: Mon, 19 May 2014 16:45:08 +0100 Subject: [PATCH 2/2] Building as shared libraries, adding extern C calls to support use from C++ --- graphics/lib/CMakeLists.txt | 2 +- lte/include/lte.h | 8 ++++++++ lte/lib/CMakeLists.txt | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/graphics/lib/CMakeLists.txt b/graphics/lib/CMakeLists.txt index a7ba627de..681e2cf4f 100644 --- a/graphics/lib/CMakeLists.txt +++ b/graphics/lib/CMakeLists.txt @@ -67,7 +67,7 @@ IF(QT4_FOUND AND QWT_FOUND AND QWT_MAJOR_VERSION EQUAL 6) INCLUDE_DIRECTORIES(common complexplot realplot scatterplot waterfallplot ${Boost_INCLUDE_DIRS}) - ADD_LIBRARY(graphics ${eventwraps} ${lineplotwraps} ${pointplotwraps} ${spectrogramplotwraps} ${complex} ${real} ${scatter} ${waterfall} ${SOURCES_ALL} ) + ADD_LIBRARY(graphics SHARED ${eventwraps} ${lineplotwraps} ${pointplotwraps} ${spectrogramplotwraps} ${complex} ${real} ${scatter} ${waterfall} ${SOURCES_ALL} ) TARGET_LINK_LIBRARIES(graphics pthread ${QT_LIBRARIES} ${QWT_LIBRARIES}) INSTALL(TARGETS graphics DESTINATION ${LIBRARY_DIR}) LIBLTE_SET_PIC(graphics) diff --git a/lte/include/lte.h b/lte/include/lte.h index b41d55122..0edd9ec27 100644 --- a/lte/include/lte.h +++ b/lte/include/lte.h @@ -32,6 +32,10 @@ #ifndef _LTE_ #define _LTE_ +#ifdef __cplusplus + extern "C" { +#endif + #include "lte/utils/bit.h" #include "lte/utils/convolution.h" #include "lte/utils/debug.h" @@ -90,4 +94,8 @@ #include "lte/sync/sync.h" #include "lte/sync/cfo.h" +#ifdef __cplusplus +} +#endif + #endif diff --git a/lte/lib/CMakeLists.txt b/lte/lib/CMakeLists.txt index 9efebe36f..634f0fa13 100644 --- a/lte/lib/CMakeLists.txt +++ b/lte/lib/CMakeLists.txt @@ -51,7 +51,7 @@ FOREACH (_module ${modules}) ENDIF(IS_DIRECTORY ${_module}) ENDFOREACH() -ADD_LIBRARY(lte ${SOURCES_ALL}) +ADD_LIBRARY(lte SHARED ${SOURCES_ALL}) TARGET_LINK_LIBRARIES(lte m ${FFTW3F_LIBRARIES}) INSTALL(TARGETS lte DESTINATION ${LIBRARY_DIR}) LIBLTE_SET_PIC(lte)