1
0
Fork 0

Merge branch 'devel' of https://github.com/arangodb/arangodb into devel

This commit is contained in:
Kaveh Vahedipour 2017-02-08 16:01:33 +01:00
commit 64ebfaa628
11 changed files with 20 additions and 30 deletions

View File

@ -593,12 +593,6 @@ configure_file(
"${ICU_DT}"
"${CMAKE_BINARY_DIR}/tests/${CONFIGURATION}/${ICU_DT_DEST}"
COPYONLY)
install(FILES ${ICU_DT}
DESTINATION "share/arangodb/"
RENAME ${ICU_DT_DEST})
install(FILES ${ICU_DT}
DESTINATION "bin/share/arangodb/"
RENAME ${ICU_DT_DEST})
if (NOT WIN32)
add_custom_target(nonthinV8
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/../../Installation/archive-de-thinner.sh ${V8_REL_TARGET_PATH}

2
3rdParty/V8/v8 vendored

@ -1 +1 @@
Subproject commit d12a9da7103c17bf14fe2fb42749a2ab1e5dd33f
Subproject commit 1d884030018fa0ca10183e468e73c93bc0912841

View File

@ -28,7 +28,7 @@ void IcuInitializer::setup(char const* path) {
initialized = true;
std::string p;
std::string binaryPath = TRI_LocateBinaryPath(path);
icuDataPtr = arangodb::LanguageFeature::prepareIcu(SBIN_DIRECTORY, binaryPath, p);
icuDataPtr = arangodb::LanguageFeature::prepareIcu(TEST_DIRECTORY, binaryPath, p, "basics_suite");
if (icuDataPtr == nullptr ||
!arangodb::basics::Utf8Helper::DefaultUtf8Helper.setCollatorLanguage("", icuDataPtr)) {
std::string msg =

View File

@ -2,7 +2,7 @@
include_directories(.)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/tests/")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_TEST_DIRECTORY}")
################################################################################
## basics_suite

View File

@ -41,6 +41,8 @@ FILE(MAKE_DIRECTORY "${PROJECT_BINARY_DIR}/var/log/${CMAKE_PROJECT_NAME}")
set(INSTALL_ICU_DT_DEST "${CMAKE_INSTALL_DATAROOTDIR}/${CMAKE_PROJECT_NAME}")
set(CMAKE_TEST_DIRECTORY "tests")
include(InstallMacros)
# install ----------------------------------------------------------------------
install(DIRECTORY ${PROJECT_SOURCE_DIR}/Documentation/man/
@ -173,6 +175,7 @@ to_native_path("ICU_DT_DEST")
to_native_path("CMAKE_INSTALL_SBINDIR")
to_native_path("CMAKE_INSTALL_BINDIR")
to_native_path("INSTALL_ICU_DT_DEST")
to_native_path("CMAKE_TEST_DIRECTORY")
configure_file (
"${CMAKE_CURRENT_SOURCE_DIR}/lib/Basics/directories.h.in"

View File

@ -58,7 +58,7 @@ void LanguageFeature::collectOptions(
new StringParameter(&_language));
}
void* LanguageFeature::prepareIcu(std::string const& binaryPath, std::string const& binaryExecutionPath, std::string& path) {
void* LanguageFeature::prepareIcu(std::string const& binaryPath, std::string const& binaryExecutionPath, std::string& path, std::string const& binaryName) {
char const* icuDataEnv = getenv("ICU_DATA");
std::string fn("icudtl.dat");
@ -71,6 +71,7 @@ void* LanguageFeature::prepareIcu(std::string const& binaryPath, std::string con
LOG(WARN) << "failed to locate '" << fn << "' at '"<< path << "'";
}
std::string bpfn = binaryExecutionPath + TRI_DIR_SEPARATOR_STR + fn;
if (TRI_IsRegularFile(fn.c_str())) {
path = fn;
}
@ -78,11 +79,8 @@ void* LanguageFeature::prepareIcu(std::string const& binaryPath, std::string con
path = bpfn;
}
else {
#if _WIN32
path = TRI_LocateInstallDirectory(binaryPath.c_str());
#else
path = TRI_DIR_SEPARATOR_STR;
#endif
std::string argv_0 = binaryExecutionPath + TRI_DIR_SEPARATOR_STR + binaryName;
path = TRI_LocateInstallDirectory(argv_0.c_str(), binaryPath.c_str());
path += ICU_DESTINATION_DIRECTORY TRI_DIR_SEPARATOR_STR + fn;
}
if (!TRI_IsRegularFile(path.c_str())) {
@ -112,7 +110,8 @@ void LanguageFeature::prepare() {
std::string p;
auto context = ArangoGlobalContext::CONTEXT;
std::string binaryExecutionPath = context->getBinaryPath();
_icuDataPtr = LanguageFeature::prepareIcu(_binaryPath, binaryExecutionPath, p);
std::string binaryName = context->binaryName();
_icuDataPtr = LanguageFeature::prepareIcu(_binaryPath, binaryExecutionPath, p, binaryName);
if (!Utf8Helper::DefaultUtf8Helper.setCollatorLanguage(_language, _icuDataPtr)) {
LOG(FATAL) << "error initializing ICU with the contents of '" << p << "'";

View File

@ -34,7 +34,7 @@ class LanguageFeature final : public application_features::ApplicationFeature {
void collectOptions(std::shared_ptr<options::ProgramOptions>) override final;
void prepare() override final;
void start() override final;
static void* prepareIcu(std::string const& binaryPath, std::string const& binaryExecutionPath, std::string& path);
static void* prepareIcu(std::string const& binaryPath, std::string const& binaryExecutionPath, std::string& path, std::string const& binaryName);
private:
std::string _language;

View File

@ -5,3 +5,4 @@
#define ICU_DESTINATION_DIRECTORY "@INC_INSTALL_ICU_DT_DEST@"
#define SBIN_DIRECTORY "@INC_CMAKE_INSTALL_SBINDIR@"
#define BIN_DIRECTORY "@INC_CMAKE_INSTALL_BINDIR@"
#define TEST_DIRECTORY "@INC_CMAKE_TEST_DIRECTORY@"

View File

@ -2370,17 +2370,12 @@ void TRI_SetUserTempPath(std::string const& path) { TempPath = path; }
//
/// Will always end in a directory separator.
////////////////////////////////////////////////////////////////////////////////
#if _WIN32
std::string TRI_LocateInstallDirectory(char const* binaryPath) {
std::string thisPath = TRI_LocateBinaryPath(nullptr);
std::string TRI_LocateInstallDirectory(char const* argv_0, char const* binaryPath) {
std::string thisPath = TRI_LocateBinaryPath(argv_0);
return TRI_GetInstallRoot(thisPath, binaryPath) +
std::string(1, TRI_DIR_SEPARATOR_CHAR);
}
#endif
////////////////////////////////////////////////////////////////////////////////
/// @brief locates the configuration directory
///
@ -2407,7 +2402,7 @@ char* TRI_LocateConfigDirectory(char const* binaryPath) {
#elif defined(_SYSCONFDIR_)
char* TRI_LocateConfigDirectory(const char* binaryPath) {
char* TRI_LocateConfigDirectory(char const* binaryPath) {
char* v = LocateConfigDirectoryEnv();
if (v != nullptr) {

View File

@ -342,15 +342,13 @@ bool TRI_CopySymlink(std::string const& srcItem, std::string const& dstItem,
/// @brief locate the installation directory
////////////////////////////////////////////////////////////////////////////////
#if _WIN32
std::string TRI_LocateInstallDirectory(const char* binaryPath);
#endif
std::string TRI_LocateInstallDirectory(char const* argv_0, const char* binaryPath);
////////////////////////////////////////////////////////////////////////////////
/// @brief locate the configuration directory
////////////////////////////////////////////////////////////////////////////////
char* TRI_LocateConfigDirectory(const char * binaryPath);
char* TRI_LocateConfigDirectory(char const* binaryPath);
////////////////////////////////////////////////////////////////////////////////
/// @brief get the address of the null buffer

View File

@ -93,7 +93,7 @@ std::string arangodb::options::EnvironmentTranslator(std::string const& value,
if (v == nullptr) {
#if _WIN32
if (TRI_EqualString(k.c_str(), "ROOTDIR")) {
vv = TRI_LocateInstallDirectory(binaryPath);
vv = TRI_LocateInstallDirectory(nullptr, binaryPath);
if (!vv.empty()) {
char c = *(vv.rbegin());