Skip to content

Commit 977ad19

Browse files
authored
Merge pull request #180 from pmienk/warn/master
Update flags, hide warnings from dependencies
2 parents 7c879ba + f9cd47f commit 977ad19

File tree

11 files changed

+107
-31
lines changed

11 files changed

+107
-31
lines changed

.travis.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -81,12 +81,12 @@ install:
8181
script:
8282

8383
# Download and build libbitcoin-protocol and all dependencies.
84-
- if [[ $OSX && $CLANG && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --disable-shared --build-boost --build-zmq --prefix=$TRAVIS_BUILD_DIR/my-prefix; fi
85-
- if [[ $LINUX && $CLANG && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --disable-shared --build-boost --build-zmq --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os' CXXFLAGS='-Os'; fi
86-
- if [[ $LINUX && $GCC && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --build-boost --build-zmq --disable-shared --build-dir=my-build --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Og -g --coverage' CXXFLAGS='-Og -g --coverage'; fi
87-
- if [[ $OSX && $CLANG && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --build-zmq --disable-static; fi
88-
- if [[ $LINUX && $CLANG && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --build-boost --build-zmq --disable-ndebug --disable-static --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os' CXXFLAGS='-Os'; fi
89-
- if [[ $LINUX && $GCC && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --disable-static --build-boost --build-zmq --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os -s' CXXFLAGS='-Os -s'; fi
84+
- if [[ $OSX && $CLANG && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --disable-shared --build-boost --build-zmq --prefix=$TRAVIS_BUILD_DIR/my-prefix; fi
85+
- if [[ $LINUX && $CLANG && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --disable-shared --build-boost --build-zmq --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os' CXXFLAGS='-Os'; fi
86+
- if [[ $LINUX && $GCC && $STATIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-boost --build-zmq --disable-shared --build-dir=my-build --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Og -g --coverage' CXXFLAGS='-Og -g --coverage'; fi
87+
- if [[ $OSX && $CLANG && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-zmq --disable-static; fi
88+
- if [[ $LINUX && $CLANG && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --build-boost --build-zmq --disable-ndebug --disable-static --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os' CXXFLAGS='-Os'; fi
89+
- if [[ $LINUX && $GCC && $DYNAMIC ]]; then CC=$CC CXX=$CXX ./install.sh --enable-isystem --disable-static --build-boost --build-zmq --prefix=$TRAVIS_BUILD_DIR/my-prefix CFLAGS='-Os -s' CXXFLAGS='-Os -s'; fi
9090

9191
after_success:
9292

Makefile.am

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ doc_DATA = \
3232
# src/libbitcoin-protocol.la => ${libdir}
3333
#------------------------------------------------------------------------------
3434
lib_LTLIBRARIES = src/libbitcoin-protocol.la
35-
src_libbitcoin_protocol_la_CPPFLAGS = -I${srcdir}/include ${zmq_CPPFLAGS} ${bitcoin_CPPFLAGS}
35+
src_libbitcoin_protocol_la_CPPFLAGS = -I${srcdir}/include ${zmq_BUILD_CPPFLAGS} ${bitcoin_BUILD_CPPFLAGS}
3636
src_libbitcoin_protocol_la_LIBADD = ${zmq_LIBS} ${bitcoin_LIBS}
3737
src_libbitcoin_protocol_la_SOURCES = \
3838
src/settings.cpp \
@@ -54,7 +54,7 @@ if WITH_TESTS
5454
TESTS = libbitcoin-protocol-test_runner.sh
5555

5656
check_PROGRAMS = test/libbitcoin-protocol-test
57-
test_libbitcoin_protocol_test_CPPFLAGS = -I${srcdir}/include ${zmq_CPPFLAGS} ${bitcoin_CPPFLAGS}
57+
test_libbitcoin_protocol_test_CPPFLAGS = -I${srcdir}/include ${zmq_BUILD_CPPFLAGS} ${bitcoin_BUILD_CPPFLAGS}
5858
test_libbitcoin_protocol_test_LDADD = src/libbitcoin-protocol.la ${boost_unit_test_framework_LIBS} ${zmq_LIBS} ${bitcoin_LIBS}
5959
test_libbitcoin_protocol_test_SOURCES = \
6060
test/converter.cpp \

configure.ac

Lines changed: 90 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ AC_PROG_CXX
4444
# Enable shared libraries if available, and static if they don't conflict.
4545
AC_PROG_LIBTOOL
4646

47+
# Enable sed for substitution.
48+
AC_PROG_SED
49+
4750
# Compute the canonical host-system type variable host, including host_os.
4851
AC_CANONICAL_HOST
4952

@@ -52,6 +55,9 @@ m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
5255

5356
# Check for pkg-config.
5457
PKG_PROG_PKG_CONFIG
58+
AS_IF([test -n "$PKG_CONFIG"], [],
59+
[AC_MSG_ERROR([pkg-config is required but was not found.])])
60+
5561

5662
# Declare environment variables that affect the build.
5763
#------------------------------------------------------------------------------
@@ -103,6 +109,16 @@ AS_CASE([${enable_ndebug}], [yes], AC_DEFINE([NDEBUG]))
103109
#------------------------------------------------------------------------------
104110
AS_CASE([${enable_shared}], [yes], AC_DEFINE([BOOST_ALL_DYN_LINK]))
105111

112+
# Implement --enable-isystem.
113+
#------------------------------------------------------------------------------
114+
AC_MSG_CHECKING([--enable-isystem option])
115+
AC_ARG_ENABLE([isystem],
116+
AS_HELP_STRING([--enable-isystem],
117+
[Substitute -isystem for -I in dependencies. @<:@default=no@:>@]),
118+
[enable_isystem=$enableval],
119+
[enable_isystem=no])
120+
AC_MSG_RESULT([$enable_isystem])
121+
106122

107123
# Check dependencies.
108124
#==============================================================================
@@ -111,11 +127,19 @@ AS_CASE([${enable_shared}], [yes], AC_DEFINE([BOOST_ALL_DYN_LINK]))
111127
AS_CASE([${CC}], [*],
112128
[AX_BOOST_BASE([1.62.0],
113129
[AC_SUBST([boost_CPPFLAGS], [${BOOST_CPPFLAGS}])
130+
AC_SUBST([boost_ISYS_CPPFLAGS], [`echo ${BOOST_CPPFLAGS} | $SED s/^-I/-isystem/g | $SED s/' -I'/' -isystem'/g`])
114131
AC_SUBST([boost_LDFLAGS], [${BOOST_LDFLAGS}])
115132
AC_MSG_NOTICE([boost_CPPFLAGS : ${boost_CPPFLAGS}])
133+
AC_MSG_NOTICE([boost_ISYS_CPPFLAGS : ${boost_ISYS_CPPFLAGS}])
116134
AC_MSG_NOTICE([boost_LDFLAGS : ${boost_LDFLAGS}])],
117135
[AC_MSG_ERROR([Boost 1.62.0 or later is required but was not found.])])])
118136

137+
AS_CASE([${enable_isystem}],[yes],
138+
[AC_SUBST([boost_BUILD_CPPFLAGS], [${boost_ISYS_CPPFLAGS}])],
139+
[AC_SUBST([boost_BUILD_CPPFLAGS], [${boost_CPPFLAGS}])])
140+
141+
AC_MSG_NOTICE([boost_BUILD_CPPFLAGS : ${boost_BUILD_CPPFLAGS}])
142+
119143
AS_CASE([${with_tests}], [yes],
120144
[AX_BOOST_UNIT_TEST_FRAMEWORK
121145
AC_SUBST([boost_unit_test_framework_LIBS], [${BOOST_UNIT_TEST_FRAMEWORK_LIB}])
@@ -124,20 +148,52 @@ AS_CASE([${with_tests}], [yes],
124148

125149
# Require zmq of at least version 4.2.0 and output ${zmq_CPPFLAGS/LIBS/PKG}.
126150
#------------------------------------------------------------------------------
127-
PKG_CHECK_MODULES([zmq], [libzmq >= 4.2.0])
151+
PKG_CHECK_MODULES([zmq], [libzmq >= 4.2.0],
152+
[zmq_INCLUDEDIR="`$PKG_CONFIG --variable=includedir "libzmq >= 4.2.0" 2>/dev/null`"
153+
zmq_OTHER_CFLAGS="`$PKG_CONFIG --cflags-only-other "libzmq >= 4.2.0" 2>/dev/null`"],
154+
[zmq_INCLUDEDIR=""
155+
zmq_OTHER_CFLAGS=""])
128156
AC_SUBST([zmq_PKG], ['libzmq >= 4.2.0'])
129157
AC_SUBST([zmq_CPPFLAGS], [${zmq_CFLAGS}])
158+
AS_IF([test x${zmq_INCLUDEDIR} != "x"],
159+
[AC_SUBST([zmq_ISYS_CPPFLAGS], ["-isystem${zmq_INCLUDEDIR} ${zmq_OTHER_CFLAGS}"])],
160+
[AC_SUBST([zmq_ISYS_CPPFLAGS], [${zmq_OTHER_CFLAGS}])])
130161
AC_MSG_NOTICE([zmq_CPPFLAGS : ${zmq_CPPFLAGS}])
162+
AC_MSG_NOTICE([zmq_ISYS_CPPFLAGS : ${zmq_ISYS_CPPFLAGS}])
163+
AC_MSG_NOTICE([zmq_OTHER_CFLAGS : ${zmq_OTHER_CFLAGS}])
164+
AC_MSG_NOTICE([zmq_INCLUDEDIR : ${zmq_INCLUDEDIR}])
131165
AC_MSG_NOTICE([zmq_LIBS : ${zmq_LIBS}])
132166

167+
AS_CASE([${enable_isystem}],[yes],
168+
[AC_SUBST([zmq_BUILD_CPPFLAGS], [${zmq_ISYS_CPPFLAGS}])],
169+
[AC_SUBST([zmq_BUILD_CPPFLAGS], [${zmq_CPPFLAGS}])])
170+
171+
AC_MSG_NOTICE([zmq_BUILD_CPPFLAGS : ${zmq_BUILD_CPPFLAGS}])
172+
133173
# Require bitcoin of at least version 4.0.0 and output ${bitcoin_CPPFLAGS/LIBS/PKG}.
134174
#------------------------------------------------------------------------------
135-
PKG_CHECK_MODULES([bitcoin], [libbitcoin >= 4.0.0])
175+
PKG_CHECK_MODULES([bitcoin], [libbitcoin >= 4.0.0],
176+
[bitcoin_INCLUDEDIR="`$PKG_CONFIG --variable=includedir "libbitcoin >= 4.0.0" 2>/dev/null`"
177+
bitcoin_OTHER_CFLAGS="`$PKG_CONFIG --cflags-only-other "libbitcoin >= 4.0.0" 2>/dev/null`"],
178+
[bitcoin_INCLUDEDIR=""
179+
bitcoin_OTHER_CFLAGS=""])
136180
AC_SUBST([bitcoin_PKG], ['libbitcoin >= 4.0.0'])
137181
AC_SUBST([bitcoin_CPPFLAGS], [${bitcoin_CFLAGS}])
182+
AS_IF([test x${bitcoin_INCLUDEDIR} != "x"],
183+
[AC_SUBST([bitcoin_ISYS_CPPFLAGS], ["-isystem${bitcoin_INCLUDEDIR} ${bitcoin_OTHER_CFLAGS}"])],
184+
[AC_SUBST([bitcoin_ISYS_CPPFLAGS], [${bitcoin_OTHER_CFLAGS}])])
138185
AC_MSG_NOTICE([bitcoin_CPPFLAGS : ${bitcoin_CPPFLAGS}])
186+
AC_MSG_NOTICE([bitcoin_ISYS_CPPFLAGS : ${bitcoin_ISYS_CPPFLAGS}])
187+
AC_MSG_NOTICE([bitcoin_OTHER_CFLAGS : ${bitcoin_OTHER_CFLAGS}])
188+
AC_MSG_NOTICE([bitcoin_INCLUDEDIR : ${bitcoin_INCLUDEDIR}])
139189
AC_MSG_NOTICE([bitcoin_LIBS : ${bitcoin_LIBS}])
140190

191+
AS_CASE([${enable_isystem}],[yes],
192+
[AC_SUBST([bitcoin_BUILD_CPPFLAGS], [${bitcoin_ISYS_CPPFLAGS}])],
193+
[AC_SUBST([bitcoin_BUILD_CPPFLAGS], [${bitcoin_CPPFLAGS}])])
194+
195+
AC_MSG_NOTICE([bitcoin_BUILD_CPPFLAGS : ${bitcoin_BUILD_CPPFLAGS}])
196+
141197

142198
# Set flags.
143199
#==============================================================================
@@ -153,12 +209,24 @@ AS_CASE([${CC}], [*],
153209
[AX_CHECK_COMPILE_FLAG([-Wall],
154210
[CFLAGS="$CFLAGS -Wall"])])
155211

212+
# Warn on all stuff.
213+
#------------------------------------------------------------------------------
214+
AS_CASE([${CC}], [*],
215+
[AX_CHECK_COMPILE_FLAG([-Wall],
216+
[CXXFLAGS="$CXXFLAGS -Wall"])])
217+
156218
# Warn on extra stuff.
157219
#------------------------------------------------------------------------------
158220
AS_CASE([${CC}], [*],
159221
[AX_CHECK_COMPILE_FLAG([-Wextra],
160222
[CFLAGS="$CFLAGS -Wextra"])])
161223

224+
# Warn on extra stuff.
225+
#------------------------------------------------------------------------------
226+
AS_CASE([${CC}], [*],
227+
[AX_CHECK_COMPILE_FLAG([-Wextra],
228+
[CXXFLAGS="$CXXFLAGS -Wextra"])])
229+
162230
# Be really annoying.
163231
#------------------------------------------------------------------------------
164232
AS_CASE([${CC}], [*],
@@ -167,6 +235,26 @@ AS_CASE([${CC}], [*],
167235
[AX_CHECK_COMPILE_FLAG([-pedantic],
168236
[CFLAGS="$CFLAGS -pedantic"])])])
169237

238+
# Be really annoying.
239+
#------------------------------------------------------------------------------
240+
AS_CASE([${CC}], [*],
241+
[AX_CHECK_COMPILE_FLAG([-Wpedantic],
242+
[CXXFLAGS="$CXXFLAGS -Wpedantic"],
243+
[AX_CHECK_COMPILE_FLAG([-pedantic],
244+
[CXXFLAGS="$CXXFLAGS -pedantic"])])])
245+
246+
# Disallow warning on style order of declarations.
247+
#------------------------------------------------------------------------------
248+
AS_CASE([${CC}], [*],
249+
[AX_CHECK_COMPILE_FLAG([-Wno-reorder],
250+
[CXXFLAGS="$CXXFLAGS -Wno-reorder"])])
251+
252+
# Suppress warning for incomplete field initialization.
253+
#------------------------------------------------------------------------------
254+
AS_CASE([${CC}], [*],
255+
[AX_CHECK_COMPILE_FLAG([-Wno-missing-field-initializers],
256+
[CXXFLAGS="$CXXFLAGS -Wno-missing-field-initializers"])])
257+
170258
# Conform to style.
171259
#------------------------------------------------------------------------------
172260
AS_CASE([${CC}], [*],
@@ -179,12 +267,6 @@ AS_CASE([${CC}], [*clang*],
179267
[AX_CHECK_COMPILE_FLAG([-Wno-mismatched-tags],
180268
[CXXFLAGS="$CXXFLAGS -Wno-mismatched-tags"])])
181269

182-
# Clean up boost 1.55 headers. Enabled in gcc only.
183-
#------------------------------------------------------------------------------
184-
AS_CASE([${CC}], [*gcc*],
185-
[AX_CHECK_COMPILE_FLAG([-Wno-deprecated-declarations],
186-
[CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"])])
187-
188270
# Protect stack.
189271
#------------------------------------------------------------------------------
190272
AS_CASE([${CC}], [*],
@@ -197,12 +279,6 @@ AS_CASE([${CC}], [*],
197279
[AX_CHECK_LINK_FLAG([-fstack-protector-all],
198280
[LDFLAGS="$LDFLAGS -fstack-protector-all"])])
199281

200-
# Hide internal functions from external libs. Enabled in gcc only.
201-
#------------------------------------------------------------------------------
202-
AS_CASE([${CC}], [*gcc*],
203-
[AX_CHECK_COMPILE_FLAG([-fvisibility-hidden],
204-
[CXXFLAGS="$CXXFLAGS -fvisibility-hidden"])])
205-
206282
# Hide inlines from external libs. Enabled in gcc only.
207283
#------------------------------------------------------------------------------
208284
AS_CASE([${CC}], [*gcc*],

include/bitcoin/protocol/zmq/certificate.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class BCP_API certificate
4343
certificate(const config::sodium& private_key);
4444

4545
/// True if the certificate is valid.
46-
operator const bool() const;
46+
operator bool() const;
4747

4848
/// The public key base85 text.
4949
const config::sodium& public_key() const;

include/bitcoin/protocol/zmq/context.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class BCP_API context
4545
virtual ~context();
4646

4747
/// True if the context is valid and started.
48-
operator const bool() const;
48+
operator bool() const;
4949

5050
/// The underlying zeromq context.
5151
void* self();

include/bitcoin/protocol/zmq/frame.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ class BCP_API frame
4747
virtual ~frame();
4848

4949
/// True if the construction was successful.
50-
operator const bool() const;
50+
operator bool() const;
5151

5252
/// True if there is more data to receive.
5353
bool more() const;

include/bitcoin/protocol/zmq/socket.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ class BCP_API socket
8080
virtual bool stop();
8181

8282
/// True if the socket is valid.
83-
operator const bool() const;
83+
operator bool() const;
8484

8585
/// The underlying zeromq socket.
8686
void* self();

src/zmq/certificate.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ bool certificate::derive(config::sodium& out_public,
7070
static inline bool ok_setting(const std::string& key)
7171
{
7272
return key.find_first_of('#') == std::string::npos;
73-
};
73+
}
7474

7575
bool certificate::create(config::sodium& out_public,
7676
config::sodium& out_private, bool setting)
@@ -97,7 +97,7 @@ bool certificate::create(config::sodium& out_public,
9797
return false;
9898
}
9999

100-
certificate::operator const bool() const
100+
certificate::operator bool() const
101101
{
102102
return public_;
103103
}

src/zmq/context.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ bool context::stop()
7474
///////////////////////////////////////////////////////////////////////////
7575
}
7676

77-
context::operator const bool() const
77+
context::operator bool() const
7878
{
7979
return self_ != nullptr;
8080
}

src/zmq/frame.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ bool frame::initialize(const data_chunk& data)
6767
return true;
6868
}
6969

70-
frame::operator const bool() const
70+
frame::operator bool() const
7171
{
7272
return valid_;
7373
}

0 commit comments

Comments
 (0)