From 85012b3d74fe88f903372e6f8fb88edf3a856245 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sun, 23 Oct 2016 11:12:13 +0200 Subject: [PATCH] Improve handling of ORC library if present This also allows to build a snap package --- CMakeLists.txt | 2 +- cmake/Modules/FindGFlags.cmake | 1 + cmake/Modules/FindGLOG.cmake | 1 + cmake/Modules/FindORC.cmake | 16 ++++++++++++++++ .../volk_gnsssdr/cmake/Modules/FindORC.cmake | 16 ++++++++++++++++ .../volk_gnsssdr/lib/CMakeLists.txt | 8 ++------ src/main/CMakeLists.txt | 5 +++++ 7 files changed, 42 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index e98c6af33..9ba1465b0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -467,7 +467,7 @@ if(NOT VOLK_GNSSSDR_FOUND) add_library(volk_gnsssdr UNKNOWN IMPORTED) set_property(TARGET volk_gnsssdr PROPERTY IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install/lib/libvolk_gnsssdr.a) set(VOLK_GNSSSDR_INCLUDE_DIRS "${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/build/include/;${CMAKE_CURRENT_SOURCE_DIR}/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/include;${ORC_INCLUDE_DIRS}") - set(VOLK_GNSSSDR_LIBRARIES volk_gnsssdr) + set(VOLK_GNSSSDR_LIBRARIES volk_gnsssdr ${ORC_LIBRARIES}) add_custom_command(TARGET volk_gnsssdr_module POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/volk_gnsssdr_module/install/bin/volk_gnsssdr_profile diff --git a/cmake/Modules/FindGFlags.cmake b/cmake/Modules/FindGFlags.cmake index 15a870a4b..4a03a59d1 100644 --- a/cmake/Modules/FindGFlags.cmake +++ b/cmake/Modules/FindGFlags.cmake @@ -42,6 +42,7 @@ else(APPLE) /usr/lib/powerpc-linux-gnu /usr/lib/powerpc64-linux-gnu /usr/lib/powerpc64le-linux-gnu + /usr/lib/hppa-linux-gnu /usr/lib/s390x-linux-gnu /usr/lib64 /usr/lib diff --git a/cmake/Modules/FindGLOG.cmake b/cmake/Modules/FindGLOG.cmake index 6d6920f40..f99e3c60a 100644 --- a/cmake/Modules/FindGLOG.cmake +++ b/cmake/Modules/FindGLOG.cmake @@ -36,6 +36,7 @@ macro(_FIND_GLOG_LIBRARIES _var) /usr/lib/powerpc-linux-gnu /usr/lib/powerpc64-linux-gnu /usr/lib/powerpc64le-linux-gnu + /usr/lib/hppa-linux-gnu /usr/lib/s390x-linux-gnu PATH_SUFFIXES lib ) diff --git a/cmake/Modules/FindORC.cmake b/cmake/Modules/FindORC.cmake index e07b02c7f..9d0da9ee2 100644 --- a/cmake/Modules/FindORC.cmake +++ b/cmake/Modules/FindORC.cmake @@ -12,6 +12,22 @@ FIND_PATH(ORC_INCLUDE_DIR NAMES orc/orc.h FIND_PATH(ORC_LIBRARY_DIR NAMES ${CMAKE_SHARED_LIBRARY_PREFIX}orc-0.4${CMAKE_SHARED_LIBRARY_SUFFIX} HINTS ${PC_ORC_LIBDIR} + /usr/local/lib + /usr/lib/x86_64-linux-gnu + /usr/lib/i386-linux-gnu + /usr/lib/arm-linux-gnueabihf + /usr/lib/arm-linux-gnueabi + /usr/lib/aarch64-linux-gnu + /usr/lib/mipsel-linux-gnu + /usr/lib/mips-linux-gnu + /usr/lib/mips64el-linux-gnuabi64 + /usr/lib/powerpc-linux-gnu + /usr/lib/powerpc64-linux-gnu + /usr/lib/powerpc64le-linux-gnu + /usr/lib/hppa-linux-gnu + /usr/lib/s390x-linux-gnu + /usr/lib64 + /usr/lib PATHS ${ORC_ROOT}/lib${LIB_SUFFIX} ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) FIND_LIBRARY(ORC_LIB orc-0.4 diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake index 104d69896..8e8e4f292 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/cmake/Modules/FindORC.cmake @@ -15,6 +15,22 @@ FIND_PATH(ORC_INCLUDE_DIR NAMES orc/orc.h FIND_PATH(ORC_LIBRARY_DIR NAMES ${CMAKE_SHARED_LIBRARY_PREFIX}orc-0.4${CMAKE_SHARED_LIBRARY_SUFFIX} HINTS ${PC_ORC_LIBDIR} + /usr/local/lib + /usr/lib/x86_64-linux-gnu + /usr/lib/i386-linux-gnu + /usr/lib/arm-linux-gnueabihf + /usr/lib/arm-linux-gnueabi + /usr/lib/aarch64-linux-gnu + /usr/lib/mipsel-linux-gnu + /usr/lib/mips-linux-gnu + /usr/lib/mips64el-linux-gnuabi64 + /usr/lib/powerpc-linux-gnu + /usr/lib/powerpc64-linux-gnu + /usr/lib/powerpc64le-linux-gnu + /usr/lib/hppa-linux-gnu + /usr/lib/s390x-linux-gnu + /usr/lib64 + /usr/lib PATHS ${ORC_ROOT}/lib${LIB_SUFFIX} ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}) FIND_LIBRARY(ORC_LIB orc-0.4 diff --git a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt index 528f11eff..903882815 100644 --- a/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt +++ b/src/algorithms/libs/volk_gnsssdr_module/volk_gnsssdr/lib/CMakeLists.txt @@ -541,15 +541,11 @@ endif() if(CMAKE_VERSION VERSION_GREATER "2.8.7") #Create a volk_gnsssdr object library (requires cmake >= 2.8.8) add_library(volk_gnsssdr_obj OBJECT ${volk_gnsssdr_sources}) - - #Add dynamic library - file(GLOB orc ${PROJECT_SOURCE_DIR}/kernels/volk_gnsssdr/asm/orc/*.orc) - list(SORT orc) if(ENABLE_STATIC_LIBS) - add_library(volk_gnsssdr STATIC $ ${orc}) + add_library(volk_gnsssdr STATIC $ ${volk_gnsssdr_sources}) else(ENABLE_STATIC_LIBS) - add_library(volk_gnsssdr SHARED $ ${orc}) + add_library(volk_gnsssdr SHARED $ ${volk_gnsssdr_sources}) endif(ENABLE_STATIC_LIBS) target_link_libraries(volk_gnsssdr ${volk_gnsssdr_libraries} ${Boost_LIBRARIES}) diff --git a/src/main/CMakeLists.txt b/src/main/CMakeLists.txt index 1d7bbdc5e..84a3a2d49 100644 --- a/src/main/CMakeLists.txt +++ b/src/main/CMakeLists.txt @@ -43,6 +43,11 @@ if(ENABLE_CUDA) set(GNSS_SDR_OPTIONAL_HEADERS ${GNSS_SDR_OPTIONAL_HEADERS} ${CUDA_INCLUDE_DIRS}) endif(ENABLE_CUDA) +if(ORC_FOUND) + set(GNSS_SDR_OPTIONAL_LIBS ${GNSS_SDR_OPTIONAL_LIBS} ${ORC_LIBRARIES}) + set(GNSS_SDR_OPTIONAL_HEADERS ${GNSS_SDR_OPTIONAL_HEADERS} ${ORC_INCLUDE_DIRS}) +endif(ORC_FOUND) + include_directories( ${CMAKE_SOURCE_DIR}/src/core/system_parameters