From 98ba0cc067489d417342314a7e7408d2dbbc8250 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Sun, 15 Aug 2010 10:51:25 -0700 Subject: uhd: extract named prop returns a named prop (not a tuple) simplifies the code after the property set/get declaration --- host/lib/utils/props.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) (limited to 'host/lib/utils') diff --git a/host/lib/utils/props.cpp b/host/lib/utils/props.cpp index fac5fe24f..fc9f8e63f 100644 --- a/host/lib/utils/props.cpp +++ b/host/lib/utils/props.cpp @@ -29,15 +29,12 @@ named_prop_t::named_prop_t( /* NOP */ } -typedef boost::tuple named_prop_tuple; - -named_prop_tuple uhd::extract_named_prop( +named_prop_t named_prop_t::extract( const wax::obj &key, const std::string &name ){ if (key.type() == typeid(named_prop_t)){ - named_prop_t np = key.as(); - return named_prop_tuple(np.key, np.name); + return key.as(); } - return named_prop_tuple(key, name); + return named_prop_t(key, name); } -- cgit v1.2.3 From 7b084e3af206afa20ff5a026ebf5d7e49a755def Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Sun, 15 Aug 2010 12:18:35 -0700 Subject: uhd: use cmake to convert the pkg data dir to native system format --- host/lib/CMakeLists.txt | 3 +++ host/lib/constants.hpp.in | 3 +-- host/lib/utils/paths.cpp | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) (limited to 'host/lib/utils') diff --git a/host/lib/CMakeLists.txt b/host/lib/CMakeLists.txt index 48cfe742e..b117b99ce 100644 --- a/host/lib/CMakeLists.txt +++ b/host/lib/CMakeLists.txt @@ -53,6 +53,9 @@ INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/utils/CMakeLists.txt) ######################################################################## # Append to the list of sources for lib uhd ######################################################################## +FILE(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${PKG_DATA_DIR} FULL_PKG_DATA_DIR) +MESSAGE(STATUS "Full package data directory: ${FULL_PKG_DATA_DIR}") + CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/constants.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/constants.hpp diff --git a/host/lib/constants.hpp.in b/host/lib/constants.hpp.in index aa51e558c..2ed4e302f 100644 --- a/host/lib/constants.hpp.in +++ b/host/lib/constants.hpp.in @@ -23,7 +23,6 @@ //these should be pre-processor macros to avoid static initialization issues #define UHD_VERSION_STRING "@CPACK_PACKAGE_VERSION@" -#define UHD_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@" -#define UHD_PKG_DATA_DIR "@PKG_DATA_DIR@" +#define FULL_PKG_DATA_DIR "@FULL_PKG_DATA_DIR@" #endif /* INCLUDED_LIBUHD_CONSTANTS_HPP */ diff --git a/host/lib/utils/paths.cpp b/host/lib/utils/paths.cpp index 9ac20d855..3f29945dd 100644 --- a/host/lib/utils/paths.cpp +++ b/host/lib/utils/paths.cpp @@ -72,13 +72,13 @@ static std::vector get_env_paths(const std::string &var_name){ **********************************************************************/ std::vector get_image_paths(void){ std::vector paths = get_env_paths("UHD_IMAGE_PATH"); - paths.push_back(fs::path(UHD_INSTALL_PREFIX) / UHD_PKG_DATA_DIR / "images"); + paths.push_back(fs::path(FULL_PKG_DATA_DIR) / "images"); return paths; } std::vector get_module_paths(void){ std::vector paths = get_env_paths("UHD_MODULE_PATH"); - paths.push_back(fs::path(UHD_INSTALL_PREFIX) / UHD_PKG_DATA_DIR / "modules"); + paths.push_back(fs::path(FULL_PKG_DATA_DIR) / "modules"); return paths; } -- cgit v1.2.3 From 7d110e73e6b0651f73e8e5b165244f59e66fed87 Mon Sep 17 00:00:00 2001 From: Josh Blum Date: Mon, 16 Aug 2010 23:28:37 -0700 Subject: uhd: added the concept of installer path (along with local path) for package data --- host/lib/CMakeLists.txt | 10 ++++++++-- host/lib/constants.hpp.in | 6 ++---- host/lib/utils/paths.cpp | 8 ++++++-- 3 files changed, 16 insertions(+), 8 deletions(-) (limited to 'host/lib/utils') diff --git a/host/lib/CMakeLists.txt b/host/lib/CMakeLists.txt index b117b99ce..cbb68c725 100644 --- a/host/lib/CMakeLists.txt +++ b/host/lib/CMakeLists.txt @@ -53,8 +53,14 @@ INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/utils/CMakeLists.txt) ######################################################################## # Append to the list of sources for lib uhd ######################################################################## -FILE(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${PKG_DATA_DIR} FULL_PKG_DATA_DIR) -MESSAGE(STATUS "Full package data directory: ${FULL_PKG_DATA_DIR}") +FILE(TO_NATIVE_PATH ${CMAKE_INSTALL_PREFIX}/${PKG_DATA_DIR} LOCAL_PKG_DATA_DIR) +MESSAGE(STATUS "Local package data directory: ${LOCAL_PKG_DATA_DIR}") + +IF(UNIX) + #on unix systems, installers will use this directory for the package data + FILE(TO_NATIVE_PATH /usr/${PKG_DATA_DIR} INSTALLER_PKG_DATA_DIR) + MESSAGE(STATUS "Installer package data directory: ${INSTALLER_PKG_DATA_DIR}") +ENDIF(UNIX) CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/constants.hpp.in diff --git a/host/lib/constants.hpp.in b/host/lib/constants.hpp.in index 2ed4e302f..4aedb6d4a 100644 --- a/host/lib/constants.hpp.in +++ b/host/lib/constants.hpp.in @@ -18,11 +18,9 @@ #ifndef INCLUDED_LIBUHD_CONSTANTS_HPP #define INCLUDED_LIBUHD_CONSTANTS_HPP -#include -#include - //these should be pre-processor macros to avoid static initialization issues #define UHD_VERSION_STRING "@CPACK_PACKAGE_VERSION@" -#define FULL_PKG_DATA_DIR "@FULL_PKG_DATA_DIR@" +#define LOCAL_PKG_DATA_DIR "@LOCAL_PKG_DATA_DIR@" +#define INSTALLER_PKG_DATA_DIR "@INSTALLER_PKG_DATA_DIR@" #endif /* INCLUDED_LIBUHD_CONSTANTS_HPP */ diff --git a/host/lib/utils/paths.cpp b/host/lib/utils/paths.cpp index 3f29945dd..6ad12d3cc 100644 --- a/host/lib/utils/paths.cpp +++ b/host/lib/utils/paths.cpp @@ -72,13 +72,17 @@ static std::vector get_env_paths(const std::string &var_name){ **********************************************************************/ std::vector get_image_paths(void){ std::vector paths = get_env_paths("UHD_IMAGE_PATH"); - paths.push_back(fs::path(FULL_PKG_DATA_DIR) / "images"); + paths.push_back(fs::path(LOCAL_PKG_DATA_DIR) / "images"); + if (not std::string(INSTALLER_PKG_DATA_DIR).empty()) + paths.push_back(fs::path(INSTALLER_PKG_DATA_DIR) / "images"); return paths; } std::vector get_module_paths(void){ std::vector paths = get_env_paths("UHD_MODULE_PATH"); - paths.push_back(fs::path(FULL_PKG_DATA_DIR) / "modules"); + paths.push_back(fs::path(LOCAL_PKG_DATA_DIR) / "modules"); + if (not std::string(INSTALLER_PKG_DATA_DIR).empty()) + paths.push_back(fs::path(INSTALLER_PKG_DATA_DIR) / "modules"); return paths; } -- cgit v1.2.3