summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorHenrik Edin <henrik.edin@mongodb.com>2018-08-21 16:01:09 -0400
committerHenrik Edin <henrik.edin@mongodb.com>2018-09-20 16:13:32 -0400
commite03e2145dd1c38933aecc299047ccb8aeadaedd0 (patch)
tree22883dc23eeba4c7daffb6bf08ac203ac7ac4879 /src
parent06df250cacc2fbf7b1669201e7ab7b03fab2c173 (diff)
downloadmongo-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/SConscript19
-rw-r--r--src/mongo/embedded/functions_for_test.cpp1
-rw-r--r--src/mongo/embedded/functions_for_test.h5
-rw-r--r--src/mongo/embedded/mongo_embedded_mongoc_client_test.cpp2
-rw-r--r--src/mongo/embedded/mongoc_client.h5
-rw-r--r--src/third_party/scons-2.5.0/scons-local-2.5.0/SCons/Tool/applelink.py2
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')