89 Commits
Author SHA1 Message Date
Davide Pesavento 2f46d6543e Avoid deprecated Boost.Asio interfaces
Change-Id: I00d285893ff61619f49dff8a8a55d0d0e2c309a7
2023-11-10 17:40:43 -05:00
Davide Pesavento 03fdfb17a1 build: enable a few more compiler warnings
Refactor default-compiler-flags.py to reduce duplication

Change-Id: I059d4857ea6744ac791592c50d41a6ef8b8d60cc
2023-08-18 18:55:54 -04:00
Davide Pesavento 12b8aaa9f2 build: decrease level of debug information produced by default
Refs: #5279
Change-Id: I5c96d3e58d507c5ab01e0ae79348be15e078ac9a
2023-08-06 19:18:51 -04:00
Davide Pesavento 869d1a3c36 util: remove obsolete backport of std::to_string
Change-Id: Ib2ba051b84032b227ce75f41e242af20b4a43c3c
2023-03-14 23:55:02 -04:00
Davide Pesavento fcd3e44028 build: switch to C++17
Change-Id: I92039300ce845de0312dceccb94c128229ed60c4
2023-03-10 18:44:11 -05:00
Davide Pesavento 762548b15e build: drop official support for Ubuntu 18.04 and macOS 10.15
Increase the minimum required version of clang on linux to 7.0 because
older versions fail to compile libstdc++'s implementation of std::variant

Change-Id: Id17d95c2869634622fc8775e085b74801a486e90
2023-03-07 14:40:22 -05:00
Davide Pesavento 81de5d98e9 Prepare release 0.8.1
Refs: #5250
Change-Id: I99931c1300cd752554aea764e9688d027b5de29e
2022-12-31 01:50:11 -05:00
Davide Pesavento ea5ce49651 build: link with lld if available
Change-Id: Iaf1e7110e629fa1fa16bbd8b8cc1418fafd2408b
2022-10-05 01:46:24 -04:00
Davide Pesavento f662500858 build+ci: support macOS on arm64
Refs: #5135
Change-Id: Ifac57bf18dea805dc9eab06039806858bb3b6f20
2022-08-10 20:40:52 -04:00
Davide Pesavento 541a822ae6 build: raise minimum build requirements
* Make gcc 7.4 and boost 1.65.1 hard dependencies, both are
   available out-of-the-box on Ubuntu 18.04
 * Require Xcode 10 on macOS but recommend 11.3 or later
 * If using clang on non-Apple platforms, the minimum supported
   version is now 6.0

Change-Id: I79c84a266741c9a66655da4fd467fe0d8218e8f0
2022-03-08 21:09:01 -05:00
Davide Pesavento 2b47ac0a6f build: fix detection of openssl 3.0
Refs: #5154
Change-Id: I93ccd3d3ac0f9b8940cda76e7a6df02a65999c90
2021-09-08 22:38:08 -04:00
Alexander Afanasyev 39535f4493 util: Out-of-the-box support for Android logging
Refs: #4970
Change-Id: I01cbb59faf505046c792393eb2e8df347212abcb
2021-04-07 11:10:23 -04:00
Davide Pesavento 71c622bb68 build: require clang >= 4.0, Xcode >= 9.0
Also, recommend using gcc 7.4.0 or later, and silence
an ABI-related diagnostic message from gcc on armv7

Refs: #5087, #5106
Change-Id: I4d9841bea9df19cbb9ba3b0865949b1d66e6ec3e
2020-04-27 20:02:56 -04:00
Davide Pesavento b310efbdaa docs+ndnsec: improve description and parsing of command options, rewrite man pages
Replace custom redmine_issue extension with sphinx.ext.extlinks

Refs: #4907
Change-Id: Ib0cb94156ae4fc80cdcaf4c70d7c8d55c16fcbc3
2019-04-14 16:50:19 -04:00
Davide Pesavento 77f1c7665e build: do not look for unneeded libraries
Change-Id: Ifcf45442b947bf23355e270f1f9bda298792d4a2
2019-02-19 15:06:16 -05:00
Davide Pesavento fd674016ab util: introduce NDN_THROW
Refs: #4834
Change-Id: I35ff77a1d4e96caa17523cbdbb6f169390975d1b
2019-02-10 19:32:18 -05:00
Davide Pesavento 64ae55d781 build: ensure /usr/local/include is treated as system include path on FreeBSD
Also use the LLD linker by default on FreeBSD.

Change-Id: I42fc1b3688008e6fa40ee5f399501e54dba25a83
Refs: #4790
2018-12-26 10:03:05 -08:00
Davide Pesavento 4b8eab72f3 build: drop dependency on unused CoreServices framework
Change-Id: I91df33fafbcf275f7b41394112f8c002bc98af97
2018-09-02 12:38:25 -04:00
Davide Pesavento 52bc4e918c build: disable -Wmissing-braces with clang < 6.0
Also remove some -Wno-error= flags that are no longer needed.

Change-Id: I0e0ad52c69fd42b815f5b20f45311d0c9b8cdef3
Refs: #4721
2018-08-24 12:32:41 -07:00
Davide Pesavento ca660f116a build: require clang >= 3.6
3.5 fails with "error: debug information for auto is not yet supported"

Change-Id: I77ac4a064959b26796a4bf3f1dea7c3c08ea60a3
2018-06-18 08:37:00 -07:00
Davide Pesavento 1fd00240e0 build: switch to C++14
Replace our homegrown implementation of optional (based
on Boost.Optional) with optional-lite by Martin Moene.

Change-Id: I4632cbc7c705a94af0b85a335515e3430bf3cb1f
Refs: #3076
2018-05-24 21:41:56 -04:00
Davide Pesavento 844b09331b build: require gcc >= 5.3, boost >= 1.58, openssl >= 1.0.2
This effectively drops support for all versions of Ubuntu older than 16.04

Change-Id: Ie3ab7df9147e97f6467658a6399a4f9379f089c1
Refs: #4462
2018-05-08 21:00:00 -04:00
Eric Newberry 25038f3034 build: find Boost lib architecture automatically
refs #4573

Change-Id: Id28188a98d710c15f06391d89d13fed91e0ad73f
2018-04-07 16:35:37 -07:00
Alexander Afanasyev 5560fd40ae build: update waf to version 2.0.6
Cleanup in most build scripts

Change-Id: Ib024e95fb6f80e72b0c00e1dc8bb9300d6c5f191
2018-03-08 21:49:25 -05:00
Alexander Afanasyev b82d8c3a1b build: Add -isystem and set specialized flags as a last configuration step
This change prevents global flags from interacting with library/feature
detection scripts.

Change-Id: Ic0dba06a9afd66a810172d4a512f35f6df6b25b6
Refs: #4296
2017-09-22 12:30:57 -04:00
Alexander Afanasyev adc71845c5 security: Remove old security framework
This commit also finalizes removal of CryptoPP dependency.

Change-Id: Ia670cbeaf21b28d3b93fd36bb3781da3ac822662
Refs: #4246, #3946
2017-08-24 09:30:24 -07:00
Davide Pesavento 88a0d816b8 Add -Wextra-semi -Wundefined-func-template to the default CXXFLAGS
And fix the resulting compilation errors.

Change-Id: I16f679836a0cf2a3ff5dfcf6f6b67bfbfe4cdbd7
Refs: #4248
2017-08-23 22:50:43 -04:00
Davide Pesavento 724d65ae2f build: explicitly require clang >= 3.4
Change-Id: I4647163a4e20a9684c698a1d94ae576cd7cb63bf
2017-06-23 17:14:08 -04:00
Davide Pesavento 37271c5b48 build: use gold linker and enable linker optimizations
On Linux, gold is more than 2x faster than traditional bfd-based ld

Change-Id: I8b1c3275b542d60e976bad05dac522ca49e921cb
2017-06-23 15:43:14 -04:00
Alexander Afanasyev 5bcee10c84 util: Add detection whether WiFi interface is ad hoc on macOS
This commit only introduces framework to detect WiFi interface type.
This function is not yet integrated in any other code.

Change-Id: I072d654f7fdbd89fe5fee00b0400133d5cea19cf
Refs: #4019
2017-06-20 17:47:02 -07:00
Alexander Afanasyev 7cd43abee3 build: Allow Objective-C++ code to be used
Change-Id: I63e5d866dd1dd04987572941d1c842e09c4494b4
2017-06-20 17:47:02 -07:00
Alexander Afanasyev 3b3355cc07 util: NetworkMonitor: macOS version of fine-grained signals on interface state changes
Change-Id: I6da12356baa0038d08ff256d0d3ff726023d804b
Refs: #3817
2017-06-20 17:47:02 -07:00
Alexander Afanasyev 0cf887df3d build: Change HAVE_OSX_SECURITY to a more general HAVE_OSX_FRAMEWORKS
We are starting to use more macOS frameworks and define/build
environment constant name needs to be more general.

Change-Id: I893d436a34c3370a7f12ac681d1796ef5631cc0e
2017-06-20 17:47:02 -07:00
Davide Pesavento f714c1fd88 build: use -Og with clang as well
It is supported since 4.0

Change-Id: Ib454927e4052720fa21d004f64fa4d3699e72d73
2017-04-12 23:53:40 -04:00
Davide Pesavento 7f20d6ec6c build+src: mark destructor virtual in classes with virtual functions
And to prevent similar mistakes in the future, add -Wnon-virtual-dtor
to the default build flags.

Change-Id: I28e2361341abab29fca134309288cd259736d67a
2017-01-16 14:48:06 -05:00
Alexander Afanasyev 465c973274 build: Do not fail the build in debug mode when using deprecated declarations
The original motivation of this change was to avoid compilation failure
in debug mode on macOS 10.12.

Change-Id: I032b8d98d3aaf5602e10142a4d38e0b61b24b44e
Refs: #3795
2016-10-12 09:22:46 -07:00
Alexander Afanasyev 2fa5939375 security: Reorganizing source code to prepare for support of two version of NDN certificates
This commit also removes unused ndn_digestSha256 function and deprecates
crypto::sha256 in favor of crypto::computeSha256Digest in util/crypto.hpp.

Change-Id: I24ee50ff073a96b868633bdf2cfade412d3605f3
Refs: #3098
2016-08-25 18:28:29 -07:00
Davide Pesavento 1349d2d72e build: add waf-tool to simplify building with AddressSanitizer & friends
Change-Id: I368fe5bbbe3a92a7e82c22f56f6784761d94118d
Refs: #2589
2016-08-10 21:13:23 -07:00
Alexander Afanasyev 750472b63d build: Fix detection of OpenSSL on OS X with HomeBrew
Change-Id: Ibcbc9516cf3b47eaab446bd51eb70917226c8104
Refs: #3697
2016-08-05 12:08:01 -07:00
Junxiao Shi 7d05427cc1 util: logging facility
refs #3562

Change-Id: I61d934c5306e1a73b41c81aeb3524d6bf581af3c
2016-08-04 17:00:41 +00:00
Yingdi Yu b3015bdfb7 build: require minimum version of OpenSSL to be 1.0.1
Change-Id: I5d3fe907a7ab3159955e80a60cf0f011fd2b3154
Refs: #3007, #2949, #3089
2016-08-03 11:54:53 -07:00
Alexander Afanasyev 224044fc30 build: Force linking against the locally compiled ndn-cxx library
When ndn-cxx is configured to be linked against static libraries (e.g.,
a static version of boost libraries) while ndn-cxx library is being
compiled as a shared library, waf adds '-L<static/path>' before '-L.'.
This can result in compilation failure when the system has a different
version of the ndn-cxx library installed.

This commit also makes a minor improvement for cryptopp library
detection.

Change-Id: Ia42a21b51a51a867a1b455a95d1cf5de6b21881f
2016-08-03 11:48:27 -07:00
Junxiao Shi d4919b4311 waf-tools: remove FRIEND_TYPENAME check
It becomes unnecessary after dropping Ubuntu 12.04 build support.

refs #3599

Change-Id: I2b2ed8b38b8b7f5ec28dc32cb81bd04adfad4f88
2016-07-17 16:28:40 +00:00
Davide Pesavento aa82eb6adc common: remove NDN_CXX_DECL_FINAL/OVERRIDE macros; use C++11 keywords directly
Change-Id: I8a6bc25a17574093addb144e6cdcc21dd24bbce4
Refs: #3599
2016-04-22 19:08:40 +02:00
Davide Pesavento e6e6fde5bd build: require gcc >= 4.8.2 and boost >= 1.54.0
Change-Id: I230ac74f3fd1e7912c1645f36383913ff5bd3d2c
Refs: #3599
2016-04-22 02:16:27 +02:00
Alexander Afanasyev 8c6880f58e build: Fix compatibility with Python 3
Change-Id: I6e38315945a683a87bbeb4b4a352de3c7122ef7c
Refs: #3493
2016-03-03 10:50:19 -08:00
Alexander Afanasyev 3b5f4eae19 build: Improve cryptopp version detection
Change-Id: Ice7f69d0668e1943d2f27b5f15c0384854456d1a
2015-12-23 22:48:17 -08:00
Alexander Afanasyev efa22d6722 build: Do not fail build when -Winfinite-recursion warning is generated
Change-Id: I4f2a249073d050041f636b339ef0e3ba50ce9c07
Refs: #3358
2015-12-07 15:21:22 -07:00
Davide Pesavento 7c02b472c2 build: enable -Wextra by default
Also delete redundant 'return 0' from configure code snippets.

Change-Id: Ie3618db4abece6fb2d8ec8b52b88e84b4eb3a5b0
Refs: #3293
2015-11-01 20:28:48 +01:00
Junxiao Shi b1ba3e0661 build: downgrade keyword-macro from an error to a warning with clang
refs #3235

Change-Id: If687229c721d41d7a06b9014c1d9130b798bca64
2015-10-05 16:42:14 -07:00