build: add -std=c++03 (in non C++11 mode) and -pedantic to the default CXXFLAGS
And fix the resulting warnings. The long-long-int warning is explicitly
suppressed because it's not trivial to workaround in a platform-independent
and ISO-conformant way without using C++11.
This commit also includes fix for the advisory check for C++11-enabled
compiler in common.hpp (gcc < 4.7 does not correctly define __cpluplus
macro).
Finally, when custom CXXFLAGS are specified, --with-c++11 does not force
-std=c++11 or -std=c++0x flags, but just performs mandatory checks for
std::shared_ptr and std::function.
Change-Id: Icf44627edfddd34301bd27a05882b62fcbf54329
diff --git a/.waf-tools/boost.py b/.waf-tools/boost.py
index 6d79788..2b4b05a 100644
--- a/.waf-tools/boost.py
+++ b/.waf-tools/boost.py
@@ -61,6 +61,14 @@
#include <boost/version.hpp>
int main() { std::cout << BOOST_LIB_VERSION << ":" << BOOST_VERSION << std::endl; }
'''
+BOOST_SYSTEM_CODE = '''
+#include <boost/system/error_code.hpp>
+int main() { boost::system::error_code c; }
+'''
+BOOST_THREAD_CODE = '''
+#include <boost/thread.hpp>
+int main() { boost::thread t; }
+'''
# toolsets from {boost_dir}/tools/build/v2/tools/common.jam
PLATFORM = Utils.unversioned_sys_platform()
@@ -310,19 +318,13 @@
def try_link():
if 'system' in params['lib']:
self.check_cxx(
- fragment="\n".join([
- '#include <boost/system/error_code.hpp>',
- 'int main() { boost::system::error_code c; }',
- ]),
+ fragment=BOOST_SYSTEM_CODE,
use=var,
execute=False,
)
if 'thread' in params['lib']:
self.check_cxx(
- fragment="\n".join([
- '#include <boost/thread.hpp>',
- 'int main() { boost::thread t; }',
- ]),
+ fragment=BOOST_THREAD_CODE,
use=var,
execute=False,
)
diff --git a/.waf-tools/default-compiler-flags.py b/.waf-tools/default-compiler-flags.py
index 265259e..9f7843e 100644
--- a/.waf-tools/default-compiler-flags.py
+++ b/.waf-tools/default-compiler-flags.py
@@ -12,27 +12,36 @@
def configure(conf):
areCustomCxxflagsPresent = (len(conf.env.CXXFLAGS) > 0)
+ defaultFlags = []
+
+ if conf.options.use_cxx11:
+ defaultFlags += ['-std=c++0x', '-std=c++11']
+ else:
+ defaultFlags += ['-std=c++03']
+
+ defaultFlags += ['-pedantic', '-Wall', '-Wno-long-long']
+
if conf.options.debug:
conf.define('_DEBUG', 1)
- defaultFlags = ['-O0', '-g3',
- '-Werror',
- '-Wall',
- '-fcolor-diagnostics', # only clang supports
+ defaultFlags += ['-O0',
+ '-Og', # gcc >= 4.8
+ '-g3',
+ '-fcolor-diagnostics', # clang
+ '-fdiagnostics-color', # gcc >= 4.9
+ '-Werror'
]
-
if areCustomCxxflagsPresent:
missingFlags = [x for x in defaultFlags if x not in conf.env.CXXFLAGS]
if len(missingFlags) > 0:
Logs.warn("Selected debug mode, but CXXFLAGS is set to a custom value '%s'"
- % " ".join(conf.env.CXXFLAGS))
+ % " ".join(conf.env.CXXFLAGS))
Logs.warn("Default flags '%s' are not activated" % " ".join(missingFlags))
else:
- conf.add_supported_cxxflags(cxxflags = defaultFlags)
+ conf.add_supported_cxxflags(defaultFlags)
else:
- defaultFlags = ['-O2', '-g', '-Wall',
- ]
+ defaultFlags += ['-O2', '-g']
if not areCustomCxxflagsPresent:
- conf.add_supported_cxxflags(cxxflags = defaultFlags)
+ conf.add_supported_cxxflags(defaultFlags)
@Configure.conf
def add_supported_cxxflags(self, cxxflags):
@@ -46,5 +55,5 @@
if self.check_cxx(cxxflags=[flag], mandatory=False):
supportedFlags += [flag]
- self.end_msg(' '.join (supportedFlags))
+ self.end_msg(' '.join(supportedFlags))
self.env.CXXFLAGS = supportedFlags + self.env.CXXFLAGS
diff --git a/src/common.hpp b/src/common.hpp
index 457ac23..79f6c1c 100644
--- a/src/common.hpp
+++ b/src/common.hpp
@@ -45,11 +45,18 @@
#define DEPRECATED(func) func
#endif
-#if NDN_CPP_HAVE_CXX11
+#ifdef NDN_CPP_HAVE_CXX11
-#if (__cplusplus < 201103L)
-#error "NDN-CPP-DEV library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
-#endif
+#if defined(__GNUC__)
+# if !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L
+# error "NDN-CPP-DEV library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
+# endif // !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L
+#endif // defined(__GNUC__)
+
+#if defined(__clang__) && __cplusplus < 201103L
+# error "NDN-CPP-DEV library is configured and compiled in C++11 mode, but the current compiler is not C++11 enabled"
+#endif // defined(__clang__) && (__cplusplus < 201103L)
+
#include <memory>
#include <functional>
@@ -60,6 +67,7 @@
namespace func_lib = std;
using std::shared_ptr;
+using std::weak_ptr;
using std::make_shared;
using std::enable_shared_from_this;
@@ -77,6 +85,7 @@
#else
#include <boost/shared_ptr.hpp>
+#include <boost/weak_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
#include <boost/make_shared.hpp>
@@ -89,6 +98,7 @@
namespace func_lib = boost;
using boost::shared_ptr;
+using boost::weak_ptr;
using boost::make_shared;
using boost::enable_shared_from_this;
@@ -101,7 +111,7 @@
} // namespace ndn
-#endif
+#endif // NDN_CPP_HAVE_CXX11
namespace ndn {
diff --git a/src/encoding/tlv-nrd.hpp b/src/encoding/tlv-nrd.hpp
index 6dcbbfd..9ca1a65 100644
--- a/src/encoding/tlv-nrd.hpp
+++ b/src/encoding/tlv-nrd.hpp
@@ -23,12 +23,12 @@
Cost = 104,
ExpirationPeriod = 105,
StrategyName = 106,
- Protocol = 107,
+ Protocol = 107
};
enum {
NDN_FORW_CHILD_INHERIT = 1,
- NDN_FORW_CAPTURE = 2,
+ NDN_FORW_CAPTURE = 2
};
} // namespace nrd
diff --git a/src/encoding/tlv.hpp b/src/encoding/tlv.hpp
index 803df9f..60fad5d 100644
--- a/src/encoding/tlv.hpp
+++ b/src/encoding/tlv.hpp
@@ -65,13 +65,13 @@
enum SignatureType {
DigestSha256 = 0,
- SignatureSha256WithRsa = 1,
+ SignatureSha256WithRsa = 1
};
enum ConentType {
ContentType_Default = 0,
ContentType_Link = 1,
- ContentType_Key = 2,
+ ContentType_Key = 2
};
/**
diff --git a/src/security/certificate-cache-ttl.cpp b/src/security/certificate-cache-ttl.cpp
index 0997182..8dea438 100644
--- a/src/security/certificate-cache-ttl.cpp
+++ b/src/security/certificate-cache-ttl.cpp
@@ -11,7 +11,7 @@
#include "../util/logging.hpp"
-INIT_LOGGER("ndn.CertificateCacheTtl")
+INIT_LOGGER("ndn.CertificateCacheTtl");
using namespace std;
diff --git a/src/security/conf/checker.hpp b/src/security/conf/checker.hpp
index 1ec2323..48664ea 100644
--- a/src/security/conf/checker.hpp
+++ b/src/security/conf/checker.hpp
@@ -68,7 +68,7 @@
enum
{
INTEREST_SIG_VALUE = -1,
- INTEREST_SIG_INFO = -2,
+ INTEREST_SIG_INFO = -2
};
public:
@@ -176,7 +176,7 @@
enum
{
INTEREST_SIG_VALUE = -1,
- INTEREST_SIG_INFO = -2,
+ INTEREST_SIG_INFO = -2
};
public:
FixedSignerChecker(uint32_t sigType,
diff --git a/src/security/conf/filter.hpp b/src/security/conf/filter.hpp
index 1db7498..7d5b833 100644
--- a/src/security/conf/filter.hpp
+++ b/src/security/conf/filter.hpp
@@ -42,7 +42,7 @@
{
RELATION_EQUAL,
RELATION_IS_PREFIX_OF,
- RELATION_IS_STRICT_PREFIX_OF,
+ RELATION_IS_STRICT_PREFIX_OF
};
RelationNameFilter(const Name& name, Relation relation)
diff --git a/src/security/conf/key-locator-checker.hpp b/src/security/conf/key-locator-checker.hpp
index 0f667f7..5785c59 100644
--- a/src/security/conf/key-locator-checker.hpp
+++ b/src/security/conf/key-locator-checker.hpp
@@ -28,7 +28,7 @@
{
RELATION_EQUAL,
RELATION_IS_PREFIX_OF,
- RELATION_IS_STRICT_PREFIX_OF,
+ RELATION_IS_STRICT_PREFIX_OF
};
virtual
diff --git a/src/security/key-chain.hpp b/src/security/key-chain.hpp
index cbc1f2a..ac03ce4 100644
--- a/src/security/key-chain.hpp
+++ b/src/security/key-chain.hpp
@@ -53,7 +53,7 @@
createIdentity(const Name& identityName)
{
Info::addIdentity(identityName);
-
+
Name keyName;
try
{
@@ -71,14 +71,14 @@
}
catch(InfoError& e)
{
- shared_ptr<IdentityCertificate> selfCert = selfSign(keyName);
+ shared_ptr<IdentityCertificate> selfCert = selfSign(keyName);
Info::addCertificateAsIdentityDefault(*selfCert);
certName = selfCert->getName();
}
return certName;
}
-
+
/**
* @brief Generate a pair of RSA keys for the specified identity.
*
@@ -92,7 +92,7 @@
{
return generateKeyPair(identityName, isKsk, KEY_TYPE_RSA, keySize);
}
-
+
/**
* @brief Generate a pair of RSA keys for the specified identity and set it as default key for the identity.
*
@@ -107,7 +107,7 @@
Name keyName = generateKeyPair(identityName, isKsk, KEY_TYPE_RSA, keySize);
Info::setDefaultKeyNameForIdentity(keyName);
-
+
return keyName;
}
@@ -118,7 +118,7 @@
* @param signingIdentity The signing identity.
* @param notBefore Refer to IdentityCertificate.
* @param notAfter Refer to IdentityCertificate.
- * @param subjectDescription Refer to IdentityCertificate.
+ * @param subjectDescription Refer to IdentityCertificate.
* @return IdentityCertificate.
*/
shared_ptr<IdentityCertificate>
@@ -131,7 +131,7 @@
{
if(keyName.size() < 1)
return shared_ptr<IdentityCertificate>();
-
+
std::string keyIdPrefix = keyName.get(-1).toEscapedString().substr(0, 4);
if(keyIdPrefix != "ksk-" && keyIdPrefix != "dsk-")
return shared_ptr<IdentityCertificate>();
@@ -177,7 +177,7 @@
}
certificate->encode();
-
+
return certificate;
}
@@ -185,7 +185,7 @@
* @brief Sign packet with default identity
*
* On return, signatureInfo and signatureValue in the packet are set.
- * If default identity does not exist,
+ * If default identity does not exist,
* a temporary identity will be created and set as default.
*
* @param packet The packet to be signed
@@ -219,7 +219,7 @@
sign(packet, *Info::defaultCertificate());
}
-
+
/**
* @brief Sign packet with a particular certificate.
*
@@ -228,7 +228,7 @@
* @throws SecPublicInfo::Error if certificate does not exist.
*/
template<typename T>
- void
+ void
sign(T& packet, const Name& certificateName)
{
if (!Info::doesCertificateExist(certificateName))
@@ -238,11 +238,11 @@
signature.setKeyLocator(certificateName.getPrefix(-1)); // implicit conversion should take care
// For temporary usage, we support RSA + SHA256 only, but will support more.
- signPacketWrapper(packet, signature,
- IdentityCertificate::certificateNameToPublicKeyName(certificateName),
+ signPacketWrapper(packet, signature,
+ IdentityCertificate::certificateNameToPublicKeyName(certificateName),
DIGEST_ALGORITHM_SHA256);
}
-
+
/**
* @brief Sign the byte array using a particular certificate.
*
@@ -260,10 +260,10 @@
SignatureSha256WithRsa signature;
signature.setKeyLocator(certificateName.getPrefix(-1)); // implicit conversion should take care
-
+
// For temporary usage, we support RSA + SHA256 only, but will support more.
- signature.setValue(Tpm::signInTpm(buffer, bufferLength,
- IdentityCertificate::certificateNameToPublicKeyName(certificateName),
+ signature.setValue(Tpm::signInTpm(buffer, bufferLength,
+ IdentityCertificate::certificateNameToPublicKeyName(certificateName),
DIGEST_ALGORITHM_SHA256));
return signature;
}
@@ -277,7 +277,7 @@
* @param identityName The signing identity name.
*/
template<typename T>
- void
+ void
signByIdentity(T& packet, const Name& identityName)
{
Name signingCertificateName;
@@ -287,14 +287,14 @@
}
catch(InfoError& e)
{
- signingCertificateName = createIdentity(identityName);
+ signingCertificateName = createIdentity(identityName);
// Ideally, no exception will be thrown out, unless something goes wrong in the TPM, which is a fatal error.
}
// We either get or create the signing certificate, sign packet! (no exception unless fatal error in TPM)
sign(packet, signingCertificateName);
}
-
+
/**
* @brief Sign the byte array using the default certificate of a particular identity.
*
@@ -313,10 +313,10 @@
}
catch(InfoError& e)
{
- signingCertificateName = createIdentity(identityName);
+ signingCertificateName = createIdentity(identityName);
// Ideally, no exception will be thrown out, unless something goes wrong in the TPM, which is a fatal error.
}
-
+
// We either get or create the signing certificate, sign data! (no exception unless fatal error in TPM)
return sign(buffer, bufferLength, signingCertificateName);
}
@@ -332,8 +332,8 @@
SignatureSha256 sig;
data.setSignature(sig);
- Block sigValue(Tlv::SignatureValue,
- crypto::sha256(data.wireEncode().value(),
+ Block sigValue(Tlv::SignatureValue,
+ crypto::sha256(data.wireEncode().value(),
data.wireEncode().value_size() - data.getSignature().getValue().size()));
data.setSignatureValue(sigValue);
@@ -359,7 +359,7 @@
}
shared_ptr<IdentityCertificate> certificate = make_shared<IdentityCertificate>();
-
+
Name certificateName = keyName.getPrefix(-1);
certificateName.append("KEY").append(keyName.get(-1)).append("ID-CERT").appendVersion();
@@ -397,9 +397,9 @@
/**
* @brief delete a certificate.
*
- * If the certificate to be deleted is current default system default,
+ * If the certificate to be deleted is current default system default,
* the method will not delete the certificate and return immediately.
- *
+ *
* @param certificateName The certificate to be deleted.
*/
void
@@ -421,9 +421,9 @@
/**
* @brief delete a key.
*
- * If the key to be deleted is current default system default,
+ * If the key to be deleted is current default system default,
* the method will not delete the key and return immediately.
- *
+ *
* @param keyName The key to be deleted.
*/
void
@@ -446,9 +446,9 @@
/**
* @brief delete an identity.
*
- * If the identity to be deleted is current default system default,
+ * If the identity to be deleted is current default system default,
* the method will not delete the identity and return immediately.
- *
+ *
* @param identity The identity to be deleted.
*/
void
@@ -467,9 +467,9 @@
std::vector<Name> nameList;
Info::getAllKeyNamesOfIdentity(identity, nameList, true);
Info::getAllKeyNamesOfIdentity(identity, nameList, false);
-
+
Info::deleteIdentityInfo(identity);
-
+
std::vector<Name>::const_iterator it = nameList.begin();
for(; it != nameList.end(); it++)
Tpm::deleteKeyPairInTpm(*it);
@@ -488,7 +488,7 @@
{
if (!Info::doesIdentityExist(identity))
throw InfoError("Identity does not exist!");
-
+
Name keyName = Info::getDefaultKeyNameForIdentity(identity);
ConstBufferPtr pkcs8;
@@ -501,14 +501,14 @@
throw InfoError("Fail to export PKCS8 of private key");
}
- shared_ptr<IdentityCertificate> cert;
+ shared_ptr<IdentityCertificate> cert;
try
{
cert = Info::getCertificate(Info::getDefaultCertificateNameForKey(keyName));
}
catch(InfoError& e)
{
- cert = selfSign(keyName);
+ cert = selfSign(keyName);
Info::addCertificateAsIdentityDefault(*cert);
}
@@ -528,16 +528,16 @@
{
Name keyName = IdentityCertificate::certificateNameToPublicKeyName(securedBag.getCertificate().getName());
Name identity = keyName.getPrefix(-1);
-
+
// Add identity
Info::addIdentity(identity);
-
+
// Add key
Tpm::importPrivateKeyPkcs8IntoTpm(keyName, securedBag.getKey()->buf(), securedBag.getKey()->size(), passwordStr);
shared_ptr<PublicKey> pubKey = Tpm::getPublicKeyFromTpm(keyName.toUri());
Info::addPublicKey(keyName, KEY_TYPE_RSA, *pubKey); // HACK! We should set key type according to the pkcs8 info.
Info::setDefaultKeyNameForIdentity(keyName);
-
+
// Add cert
Info::addCertificateAsIdentityDefault(securedBag.getCertificate());
}
@@ -591,7 +591,7 @@
* @param keyName The name of the signing key.
* @param digestAlgorithm the digest algorithm.
* @throws Tpm::Error
- */
+ */
void
signPacketWrapper(Data& data, const SignatureSha256WithRsa& signature, const Name& keyName, DigestAlgorithm digestAlgorithm)
{
@@ -610,14 +610,14 @@
* @param keyName The name of the signing key.
* @param digestAlgorithm the digest algorithm.
* @throws Tpm::Error
- */
+ */
void
signPacketWrapper(Interest& interest, const SignatureSha256WithRsa& signature, const Name& keyName, DigestAlgorithm digestAlgorithm)
{
Name signedName = Name(interest.getName()).append(signature.getInfo());
- Block sigValue = Tpm::signInTpm(signedName.wireEncode().value(),
- signedName.wireEncode().value_size(),
+ Block sigValue = Tpm::signInTpm(signedName.wireEncode().value(),
+ signedName.wireEncode().value_size(),
keyName,
DIGEST_ALGORITHM_SHA256);
sigValue.encode();
@@ -634,17 +634,19 @@
#if defined(NDN_CPP_HAVE_OSX_SECURITY) and defined(NDN_CPP_WITH_OSX_KEYCHAIN)
-namespace ndn
-{
+namespace ndn {
+
typedef KeyChainImpl<SecPublicInfoSqlite3, SecTpmOsx> KeyChain;
-};
+
+} // namespace ndn
#else
-namespace ndn
-{
+namespace ndn {
+
typedef KeyChainImpl<SecPublicInfoSqlite3, SecTpmFile> KeyChain;
-};
+
+} // namespace ndn
#endif //NDN_CPP_HAVE_OSX_SECURITY
diff --git a/src/security/security-common.hpp b/src/security/security-common.hpp
index 1bea763..67a2315 100644
--- a/src/security/security-common.hpp
+++ b/src/security/security-common.hpp
@@ -13,7 +13,7 @@
enum KeyType {
KEY_TYPE_RSA,
// KEY_TYPE_DSA,
- KEY_TYPE_AES,
+ KEY_TYPE_AES
// KEY_TYPE_DES,
// KEY_TYPE_RC4,
// KEY_TYPE_RC2
@@ -24,7 +24,7 @@
KEY_CLASS_PRIVATE,
KEY_CLASS_SYMMETRIC
};
-
+
enum DigestAlgorithm {
// DIGEST_ALGORITHM_MD2,
// DIGEST_ALGORITHM_MD5,
@@ -34,13 +34,13 @@
enum EncryptMode {
ENCRYPT_MODE_DEFAULT,
- ENCRYPT_MODE_CFB_AES,
+ ENCRYPT_MODE_CFB_AES
// ENCRYPT_MODE_CBC_AES
};
enum AclType {
ACL_TYPE_PUBLIC,
- ACL_TYPE_PRIVATE,
+ ACL_TYPE_PRIVATE
};
}
diff --git a/src/util/logging.cpp b/src/util/logging.cpp
index 59c7b2a..0b969a0 100644
--- a/src/util/logging.cpp
+++ b/src/util/logging.cpp
@@ -26,21 +26,21 @@
#include <unistd.h>
void
-INIT_LOGGERS ()
+INIT_LOGGERS()
{
static bool configured = false;
if (configured) return;
- if (access ("log4cxx.properties", R_OK)==0)
- PropertyConfigurator::configureAndWatch ("log4cxx.properties");
+ if (access("log4cxx.properties", R_OK)==0)
+ PropertyConfigurator::configureAndWatch("log4cxx.properties");
else
{
- PatternLayoutPtr layout (new PatternLayout ("%d{HH:mm:ss} %p %c{1} - %m%n"));
- ConsoleAppenderPtr appender (new ConsoleAppender (layout));
+ PatternLayoutPtr layout (new PatternLayout("%d{HH:mm:ss} %p %c{1} - %m%n"));
+ ConsoleAppenderPtr appender(new ConsoleAppender(layout));
BasicConfigurator::configure( appender );
- Logger::getRootLogger()->setLevel (log4cxx::Level::getInfo ());
+ Logger::getRootLogger()->setLevel(log4cxx::Level::getInfo());
}
configured = true;
diff --git a/src/util/logging.hpp b/src/util/logging.hpp
index 3fc1c0a..9370af0 100644
--- a/src/util/logging.hpp
+++ b/src/util/logging.hpp
@@ -16,28 +16,28 @@
#include <log4cxx/logger.h>
#define MEMBER_LOGGER \
- static log4cxx::LoggerPtr staticModuleLogger;
+ static log4cxx::LoggerPtr staticModuleLogger
#define INIT_MEMBER_LOGGER(className,name) \
- log4cxx::LoggerPtr className::staticModuleLogger = log4cxx::Logger::getLogger (name);
+ log4cxx::LoggerPtr className::staticModuleLogger = log4cxx::Logger::getLogger(name)
#define INIT_LOGGER(name) \
- static log4cxx::LoggerPtr staticModuleLogger = log4cxx::Logger::getLogger (name);
+ static log4cxx::LoggerPtr staticModuleLogger = log4cxx::Logger::getLogger(name)
#define _LOG_DEBUG(x) \
- LOG4CXX_DEBUG(staticModuleLogger, x);
+ LOG4CXX_DEBUG(staticModuleLogger, x)
#define _LOG_TRACE(x) \
- LOG4CXX_TRACE(staticModuleLogger, x);
+ LOG4CXX_TRACE(staticModuleLogger, x)
#define _LOG_FUNCTION(x) \
- LOG4CXX_TRACE(staticModuleLogger, __FUNCTION__ << "(" << x << ")");
+ LOG4CXX_TRACE(staticModuleLogger, __FUNCTION__ << "(" << x << ")")
#define _LOG_FUNCTION_NOARGS \
- LOG4CXX_TRACE(staticModuleLogger, __FUNCTION__ << "()");
+ LOG4CXX_TRACE(staticModuleLogger, __FUNCTION__ << "()")
#define _LOG_ERROR(x) \
- LOG4CXX_ERROR(staticModuleLogger, x);
+ LOG4CXX_ERROR(staticModuleLogger, x)
#define _LOG_ERROR_COND(cond,x) \
if (cond) { _LOG_ERROR(x) }
@@ -46,11 +46,11 @@
if (cond) { _LOG_DEBUG(x) }
void
-INIT_LOGGERS ();
+INIT_LOGGERS()
#else // else NDN_CPP_HAVE_LOG4CXX
-#define INIT_LOGGER(name)
+#define INIT_LOGGER(name) struct LOGGING_DISABLED
#define _LOG_FUNCTION(x)
#define _LOG_FUNCTION_NOARGS
#define _LOG_TRACE(x)
diff --git a/tests/security/identity-fixture.cpp b/tests/security/identity-fixture.cpp
index a39ecbe..420b15f 100644
--- a/tests/security/identity-fixture.cpp
+++ b/tests/security/identity-fixture.cpp
@@ -59,6 +59,6 @@
Name m_newIdentity;
};
-BOOST_GLOBAL_FIXTURE(IdentityFixture);
+BOOST_GLOBAL_FIXTURE(IdentityFixture)
} // namespace ndn
diff --git a/wscript b/wscript
index 4198fa3..b920afc 100644
--- a/wscript
+++ b/wscript
@@ -94,14 +94,12 @@
conf.check_cryptopp(path=conf.options.cryptopp_dir, mandatory=True)
if conf.options.use_cxx11:
- conf.add_supported_cxxflags(cxxflags=['-std=c++11', '-std=c++0x'])
-
conf.check(msg='Checking for type std::shared_ptr',
type_name="std::shared_ptr<int>", header_name="memory",
- define_name='HAVE_STD_SHARED_PTR')
+ define_name='HAVE_STD_SHARED_PTR', mandatory=True)
conf.check(msg='Checking for type std::function',
type_name="std::function<void()>", header_name="functional",
- define_name='HAVE_STD_FUNCTION')
+ define_name='HAVE_STD_FUNCTION', mandatory=True)
conf.define('HAVE_CXX11', 1)
USED_BOOST_LIBS = ['system', 'filesystem', 'date_time', 'iostreams',