diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2018-08-21 16:01:09 -0400 |
---|---|---|
committer | Henrik Edin <henrik.edin@mongodb.com> | 2018-09-20 16:13:32 -0400 |
commit | e03e2145dd1c38933aecc299047ccb8aeadaedd0 (patch) | |
tree | 22883dc23eeba4c7daffb6bf08ac203ac7ac4879 /src | |
parent | 06df250cacc2fbf7b1669201e7ab7b03fab2c173 (diff) | |
download | mongo-e03e2145dd1c38933aecc299047ccb8aeadaedd0.tar.gz |
SERVER-36703 Possibility to link mongoc as darwin framework.
Changed the Embedded SDK builders to build and use mongoc as darwin framework where possible.
(cherry picked from commit d0bf695939de0ec62dd95649cc9c992216b85ab9)
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/embedded/SConscript | 19 | ||||
-rw-r--r-- | src/mongo/embedded/functions_for_test.cpp | 1 | ||||
-rw-r--r-- | src/mongo/embedded/functions_for_test.h | 5 | ||||
-rw-r--r-- | src/mongo/embedded/mongo_embedded_mongoc_client_test.cpp | 2 | ||||
-rw-r--r-- | src/mongo/embedded/mongoc_client.h | 5 | ||||
-rw-r--r-- | src/third_party/scons-2.5.0/scons-local-2.5.0/SCons/Tool/applelink.py | 2 |
6 files changed, 16 insertions, 18 deletions
diff --git a/src/mongo/embedded/SConscript b/src/mongo/embedded/SConscript index 93265a976cd..45f8e5e7827 100644 --- a/src/mongo/embedded/SConscript +++ b/src/mongo/embedded/SConscript @@ -204,7 +204,16 @@ if get_option('link-model') != 'dynamic-sdk': if not env['MONGO_HAVE_LIBMONGOC']: Return() -mongocClientEnv = env.Clone() +def create_mongoc_env(env): + mongocEnv = env.Clone() + if mongocEnv['MONGO_HAVE_LIBMONGOC'] == "framework": + mongocEnv.AppendUnique(FRAMEWORKS=['bson', 'mongoc']) + else: + mongocEnv.AppendUnique(LIBS=['bson-1.0', 'mongoc-1.0']) + return mongocEnv + +mongocClientEnv = create_mongoc_env(env) + mongocClientEnv.AppendUnique( CPPDEFINES=[ 'MONGO_EMBEDDED_MONGOC_CLIENT_COMPILING', @@ -231,11 +240,6 @@ mongocClientEnv.Library( # No LIBDEPS or LIBDEPS_PRIVATE to mongo libraries are allowed in this library. They would get duplicated in mongo_embedded_capi. 'mongo_embedded_capi', ], - SYSLIBDEPS=[ - # No other SYSLIBDEPS than mongoc and bson are allowed in this library. - 'mongoc-1.0', - 'bson-1.0', - ], INSTALL_ALIAS=[ 'embedded-dev', ], @@ -251,7 +255,8 @@ if get_option('install-mode') == 'hygienic': ) if get_option('link-model') != 'dynamic-sdk': - clientTest = yamlEnv.Program( + mongocClientTestEnv = create_mongoc_env(yamlEnv) + clientTest = mongocClientTestEnv.Program( target='mongo_embedded_mongoc_client_test', source=[ 'mongo_embedded_mongoc_client_test.cpp', diff --git a/src/mongo/embedded/functions_for_test.cpp b/src/mongo/embedded/functions_for_test.cpp index 6f1b78f07f8..7afd93456a7 100644 --- a/src/mongo/embedded/functions_for_test.cpp +++ b/src/mongo/embedded/functions_for_test.cpp @@ -30,7 +30,6 @@ #include "mongo/embedded/functions_for_test.h" -#include <mongoc.h> #include <stdio.h> #include "mongo/embedded/mongoc_client.h" diff --git a/src/mongo/embedded/functions_for_test.h b/src/mongo/embedded/functions_for_test.h index 529ecfacc46..b975ca4558a 100644 --- a/src/mongo/embedded/functions_for_test.h +++ b/src/mongo/embedded/functions_for_test.h @@ -28,10 +28,7 @@ #pragma once -// <inttypes.h> is needed to avoid macro redefinition error when compiling on Windows. -// Should be fixed inside mongoc.h -#include <inttypes.h> -#include <mongoc.h> +#include <mongoc/mongoc.h> namespace mongo { diff --git a/src/mongo/embedded/mongo_embedded_mongoc_client_test.cpp b/src/mongo/embedded/mongo_embedded_mongoc_client_test.cpp index 6074629476b..0a94890b1d6 100644 --- a/src/mongo/embedded/mongo_embedded_mongoc_client_test.cpp +++ b/src/mongo/embedded/mongo_embedded_mongoc_client_test.cpp @@ -30,7 +30,7 @@ #include "mongo/embedded/mongoc_client.h" -#include <mongoc.h> +#include <mongoc/mongoc.h> #include <set> #include <yaml-cpp/yaml.h> diff --git a/src/mongo/embedded/mongoc_client.h b/src/mongo/embedded/mongoc_client.h index 2db787b10c1..ca21c1f1fe0 100644 --- a/src/mongo/embedded/mongoc_client.h +++ b/src/mongo/embedded/mongoc_client.h @@ -28,11 +28,8 @@ #ifndef HEADERUUID_8CAAB40D_AC65_46CF_9FA9_B48825C825DC_DEFINED #define HEADERUUID_8CAAB40D_AC65_46CF_9FA9_B48825C825DC_DEFINED -// <inttypes.h> is needed to avoid macro redefinition error when compiling on Windows. -// Should be fixed inside mongoc.h -#include <inttypes.h> #include <mongo/embedded/capi.h> -#include <mongoc.h> +#include <mongoc/mongoc.h> #pragma push_macro("MONGO_API_CALL") #undef MONGO_API_CALL diff --git a/src/third_party/scons-2.5.0/scons-local-2.5.0/SCons/Tool/applelink.py b/src/third_party/scons-2.5.0/scons-local-2.5.0/SCons/Tool/applelink.py index 4e7a679d2f7..5760ac81945 100644 --- a/src/third_party/scons-2.5.0/scons-local-2.5.0/SCons/Tool/applelink.py +++ b/src/third_party/scons-2.5.0/scons-local-2.5.0/SCons/Tool/applelink.py @@ -45,7 +45,7 @@ def generate(env): link.generate(env) env['FRAMEWORKPATHPREFIX'] = '-F' - env['_FRAMEWORKPATH'] = '${_concat(FRAMEWORKPATHPREFIX, FRAMEWORKPATH, "", __env__)}' + env['_FRAMEWORKPATH'] = '${_concat(FRAMEWORKPATHPREFIX, FRAMEWORKPATH, "", __env__, RDirs)}' env['_FRAMEWORKS'] = '${_concat("-framework ", FRAMEWORKS, "", __env__)}' env['LINKCOM'] = env['LINKCOM'] + ' $_FRAMEWORKPATH $_FRAMEWORKS $FRAMEWORKSFLAGS' env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -dynamiclib') |