Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
N
nghttp2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
nghttp2
Commits
2b639807
Commit
2b639807
authored
Feb 11, 2016
by
Peter Wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmake: more dependency checks
parent
65d33c55
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
96 additions
and
183 deletions
+96
-183
CMakeLists.txt
CMakeLists.txt
+48
-183
cmake/FindJemalloc.cmake
cmake/FindJemalloc.cmake
+19
-0
cmake/FindLibev.cmake
cmake/FindLibev.cmake
+23
-0
cmakeconfig.h.in
cmakeconfig.h.in
+6
-0
No files found.
CMakeLists.txt
View file @
2b639807
...
...
@@ -99,9 +99,10 @@ else()
endif
()
include
(
CheckCXXCompilerFlag
)
foreach
(
_cxx1x_flag
"-std=gnu++11"
"-std=gnu++0x"
)
CHECK_CXX_COMPILER_FLAG
(
${
_cxx1x_flag
}
_cxx1x_flag_supported
)
if
(
_cxx1x_flag_supported
)
foreach
(
_std gnu++11 gnu++0x
)
set
(
_cxx1x_flag -std=
${
_std
}
)
CHECK_CXX_COMPILER_FLAG
(
${
_cxx1x_flag
}
CXX_STD_
${
_std
}
)
if
(
CXX_STD_
${
_std
}
)
set
(
CXX1XCXXFLAGS
${
_cxx1x_flag
}
)
break
()
endif
()
...
...
@@ -186,21 +187,8 @@ pkg_check_modules(CUNIT cunit>=2.1)
#
# AM_CONDITIONAL([HAVE_CUNIT], [ test "x${have_cunit}" = "xyes" ])
# # libev (for src)
# # libev does not have pkg-config file. Check it in an old way.
# save_LIBS=$LIBS
# # android requires -lm for floor
# AC_CHECK_LIB([ev], [ev_time], [have_libev=yes], [have_libev=no], [-lm])
# if test "x${have_libev}" = "xyes"; then
# AC_CHECK_HEADER([ev.h], [have_libev=yes], [have_libev=no])
# if test "x${have_libev}" = "xyes"; then
# LIBEV_LIBS=-lev
# LIBEV_CFLAGS=
# AC_SUBST([LIBEV_LIBS])
# AC_SUBST([LIBEV_CFLAGS])
# fi
# fi
# LIBS=$save_LIBS
# libev (for src)
find_package
(
Libev
)
# openssl (for src)
pkg_check_modules
(
OPENSSL openssl>=1.0.1
)
...
...
@@ -223,38 +211,10 @@ endif()
# jemalloc
if
(
WITH_JEMALLOC
)
# FIXME
# have_jemalloc=no
# if test "x${request_jemalloc}" != "xno"; then
# save_LIBS=$LIBS
# AC_SEARCH_LIBS([malloc_stats_print], [jemalloc], [have_jemalloc=yes], [],
# [$PTHREAD_LDFLAGS])
#
# if test "x${have_jemalloc}" = "xyes"; then
# jemalloc_libs=${ac_cv_search_malloc_stats_print}
# else
# # On Darwin, malloc_stats_print is je_malloc_stats_print
# AC_SEARCH_LIBS([je_malloc_stats_print], [jemalloc], [have_jemalloc=yes], [],
# [$PTHREAD_LDFLAGS])
#
# if test "x${have_jemalloc}" = "xyes"; then
# jemalloc_libs=${ac_cv_search_je_malloc_stats_print}
# fi
# fi
#
# LIBS=$save_LIBS
#
# if test "x${have_jemalloc}" = "xyes" &&
# test "x${jemalloc_libs}" != "xnone required"; then
# JEMALLOC_LIBS=${jemalloc_libs}
# AC_SUBST([JEMALLOC_LIBS])
# fi
# fi
#
# if test "x${request_jemalloc}" = "xyes" &&
# test "x${have_jemalloc}" != "xyes"; then
# AC_MSG_ERROR([jemalloc was requested (--with-jemalloc) but not found])
# fi
pkg_check_modules
(
JEMALLOC jemalloc
)
if
(
NOT JEMALLOC_FOUND
)
find_package
(
jemalloc REQUIRED
)
endif
()
endif
()
# spdylay (for src/nghttpx and src/h2load)
...
...
@@ -268,143 +228,48 @@ if(WITH_SPDYLAY)
# XXX fail if WITH_SPDYLAY=ON
endif
()
# # Check Boost Asio library
# have_asio_lib=no
#
# if test "x${request_asio_lib}" = "xyes"; then
# AX_BOOST_BASE([1.54.0], [have_boost_base=yes], [have_boost_base=no])
#
# if test "x${have_boost_base}" = "xyes"; then
# AX_BOOST_ASIO()
# AX_BOOST_SYSTEM()
# AX_BOOST_THREAD()
#
# if test "x${ax_cv_boost_asio}" = "xyes" &&
# test "x${ax_cv_boost_system}" = "xyes" &&
# test "x${ax_cv_boost_thread}" = "xyes"; then
# have_asio_lib=yes
# fi
# fi
# fi
#
# # The nghttp, nghttpd and nghttpx under src depend on zlib, OpenSSL
# # and libev
# enable_app=no
# if test "x${request_app}" != "xno" &&
# test "x${have_zlib}" = "xyes" &&
# test "x${have_openssl}" = "xyes" &&
# test "x${have_libev}" = "xyes"; then
# enable_app=yes
# fi
#
# if test "x${request_app}" = "xyes" &&
# test "x${enable_app}" != "xyes"; then
# AC_MSG_ERROR([applications were requested (--enable-app) but dependencies are not met.])
# fi
#
# AM_CONDITIONAL([ENABLE_APP], [ test "x${enable_app}" = "xyes" ])
#
# enable_hpack_tools=no
# # HPACK tools requires jansson
# if test "x${request_hpack_tools}" != "xno" &&
# test "x${have_jansson}" = "xyes"; then
# enable_hpack_tools=yes
# fi
#
# if test "x${request_hpack_tools}" = "xyes" &&
# test "x${enable_hpack_tools}" != "xyes"; then
# AC_MSG_ERROR([HPACK tools were requested (--enable-hpack-tools) but dependencies are not met.])
# fi
#
# AM_CONDITIONAL([ENABLE_HPACK_TOOLS], [ test "x${enable_hpack_tools}" = "xyes" ])
#
# # C++ library libnghttp2_asio
#
# enable_asio_lib=no
# if test "x${request_asio_lib}" != "xno" &&
# test "x${have_asio_lib}" = "xyes"; then
# enable_asio_lib=yes
# fi
#
# AM_CONDITIONAL([ENABLE_ASIO_LIB], [ test "x${enable_asio_lib}" = "xyes" ])
#
# # The example programs depend on OpenSSL and libevent_openssl
# enable_examples=no
# if test "x${request_examples}" != "xno" &&
# test "x${have_openssl}" = "xyes" &&
# test "x${have_libevent_openssl}" = "xyes"; then
# enable_examples=yes
# fi
#
# if test "x${request_examples}" = "xyes" &&
# test "x${enable_examples}" != "xyes"; then
# AC_MSG_ERROR([examples were requested (--enable-examples) but dependencies are not met.])
# fi
#
# AM_CONDITIONAL([ENABLE_EXAMPLES], [ test "x${enable_examples}" = "xyes" ])
#
# # third-party only be built when needed
#
# enable_third_party=no
# have_mruby=no
# have_neverbleed=no
# if test "x${enable_examples}" = "xyes" ||
# test "x${enable_app}" = "xyes" ||
# test "x${enable_hpack_tools}" = "xyes" ||
# test "x${enable_asio_lib}" = "xyes"; then
# enable_third_party=yes
#
# # mruby (for src/nghttpx)
# if test "x${request_mruby}" = "xyes"; then
# # We are going to build mruby
# have_mruby=yes
# AC_DEFINE([HAVE_MRUBY], [1], [Define to 1 if you have `mruby` library.])
# LIBMRUBY_LIBS="-lmruby -lm"
# LIBMRUBY_CFLAGS=
# AC_SUBST([LIBMRUBY_LIBS])
# AC_SUBST([LIBMRUBY_CFLAGS])
# fi
#
# # neverbleed (for src/nghttpx)
# if test "x${request_neverbleed}" = "xyes"; then
# have_neverbleed=yes
# AC_DEFINE([HAVE_NEVERBLEED], [1], [Define to 1 if you have `neverbleed` library.])
# fi
# fi
#
# AM_CONDITIONAL([ENABLE_THIRD_PARTY], [ test "x${enable_third_party}" = "xyes" ])
# AM_CONDITIONAL([HAVE_MRUBY], [test "x${have_mruby}" = "xyes"])
# AM_CONDITIONAL([HAVE_NEVERBLEED], [test "x${have_neverbleed}" = "xyes"])
#
# # Python bindings
# enable_python_bindings=no
if
(
ENABLE_ASIO_LIB
)
find_package
(
Boost 1.54.0 REQUIRED system thread
)
endif
()
# The nghttp, nghttpd and nghttpx under src depend on zlib, OpenSSL and libev
if
(
ENABLE_APP AND
NOT
(
ZLIB_FOUND AND OPENSSL_FOUND AND LIBEV_FOUND
))
message
(
FATAL_ERROR
"Applications were requested (ENABLE_APP=1) but dependencies are not met."
)
endif
()
# HPACK tools requires jansson
if
(
ENABLE_HPACK_TOOLS AND NOT HAVE_JANSSON
)
message
(
FATAL_ERROR
"HPACK tools were requested (ENABLE_HPACK_TOOLS=1) but dependencies are not met."
)
endif
()
# C++ library libnghttp2_asio
if
(
ENABLE_EXAMPLES AND
NOT
(
OPENSSL_FOUND AND LIBEVENT_OPENSSL_FOUND
))
message
(
FATAL_ERROR
"examples were requested (--enable-examples) but dependencies are not met."
)
endif
()
# third-party http-parser only be built when needed
if
(
ENABLE_EXAMPLES OR ENABLE_APP OR ENABLE_HPACK_TOOLS OR ENABLE_ASIO_LIB
)
set
(
ENABLE_THIRD_PARTY 1
)
# mruby (for src/nghttpx)
if
(
WITH_MRUBY
)
set
(
HAVE_MRUBY 1
)
# XXX add -lmruby and -lm libs
endif
()
if
(
WITH_NEVERBLEED
)
set
(
HAVE_NEVERBLEED 1
)
endif
()
endif
()
# Python bindings
if
(
ENABLE_PYTHON_BINDINGS AND NOT CYTHON AND NOT PYTHONLIBS_FOUND
)
# XXX PythonInterp and PythonLibs are looked up before, unreachable check?
# if test "x${request_python_bindings}" != "xno" &&
# test "x${CYTHON}" != "x" &&
# test "x${PYTHON}" != "x:" &&
# test "x${have_python_dev}" = "xyes"; then
# enable_python_bindings=yes
# fi
#
# if test "x${request_python_bindings}" = "xyes" &&
# test "x${enable_python_bindings}" != "xyes"; then
# AC_MSG_ERROR([python bindings were requested (--enable-python-bindings) but dependencies are not met.])
# fi
#
# AM_CONDITIONAL([ENABLE_PYTHON_BINDINGS],
# [test "x${enable_python_bindings}" = "xyes"])
#
# # Produce cython conditional, so that we can distribute generated C
# # source
# AM_CONDITIONAL([HAVE_CYTHON], [test "x${CYTHON}" != "x"])
#
# # failmalloc tests
# enable_failmalloc=no
# if test "x${request_failmalloc}" = "xyes"; then
# enable_failmalloc=yes
# fi
#
# AM_CONDITIONAL([ENABLE_FAILMALLOC], [ test "x${enable_failmalloc}" = "xyes" ])
#
message
(
FATAL_ERROR
"python bindings were requested (ENABLE_PYTHON_BINDINGS=1) but dependencies are not met."
)
endif
()
# # Checks for header files.
# AC_HEADER_ASSERT
# AC_CHECK_HEADERS([ \
...
...
cmake/FindJemalloc.cmake
0 → 100644
View file @
2b639807
# - Try to find jemalloc
# Once done this will define
# JEMALLOC_FOUND - System has jemalloc
# JEMALLOC_INCLUDE_DIRS - The jemalloc include directories
# JEMALLOC_LIBRARIES - The libraries needed to use jemalloc
find_path
(
JEMALLOC_INCLUDE_DIR jemalloc/jemalloc.h
)
find_library
(
JEMALLOC_LIBRARY NAMES jemalloc
)
set
(
JEMALLOC_LIBRARIES
${
JEMALLOC_LIBRARY
}
)
set
(
JEMALLOC_INCLUDE_DIRS
${
JEMALLOC_INCLUDE_DIR
}
)
include
(
FindPackageHandleStandardArgs
)
# handle the QUIETLY and REQUIRED arguments and set JEMALLOC_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args
(
jemalloc DEFAULT_MSG
JEMALLOC_LIBRARY JEMALLOC_INCLUDE_DIR
)
mark_as_advanced
(
JEMALLOC_INCLUDE_DIR JEMALLOC_LIBRARY
)
cmake/FindLibev.cmake
0 → 100644
View file @
2b639807
# - Try to find libev
# Once done this will define
# LIBEV_FOUND - System has libev
# LIBEV_INCLUDE_DIRS - The libev include directories
# LIBEV_LIBRARIES - The libraries needed to use libev
find_path
(
LIBEV_INCLUDE_DIR ev.h
)
find_library
(
LIBEV_LIBRARY NAMES ev
)
# Assume that the discovered "ev" library contains ev_time
#include(CheckLibraryExists)
#CHECK_LIBRARY_EXISTS(ev ev_time "" HAVE_LIBEV)
set
(
LIBEV_LIBRARIES
${
LIBEV_LIBRARY
}
)
set
(
LIBEV_INCLUDE_DIRS
${
LIBEV_INCLUDE_DIR
}
)
include
(
FindPackageHandleStandardArgs
)
# handle the QUIETLY and REQUIRED arguments and set LIBEV_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args
(
Libev DEFAULT_MSG
LIBEV_LIBRARY LIBEV_INCLUDE_DIR
)
mark_as_advanced
(
LIBEV_INCLUDE_DIR LIBEV_LIBRARY
)
cmakeconfig.h.in
View file @
2b639807
...
...
@@ -10,3 +10,9 @@
/* Define to 1 if you have `spdylay` library. */
#cmakedefine HAVE_SPDYLAY 1
/* Define to 1 if you have `mruby` library. */
#cmakedefine HAVE_MRUBY 1
/* Define to 1 if you have `neverbleed` library. */
#cmakedefine HAVE_NEVERBLEED 1
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment