kc3-lang/libevent/CMakeLists.txt

Branch :


Log

Author Commit Date CI Message
f602211f 2019-10-29 15:48:53 Parse IPv6 scope IDs. (cherry picked from commit 9fecb59a94ef246088d7f3e0365c2fe80d0df2f4)
1c047618 2019-11-07 18:26:47 cmake: improve package config file (cherry picked from commit dc4be869d5009f38e0ef02ff07dd799f9c2fef2f)
a9d1121d 2019-10-25 21:54:13 cmake: eliminate duplicate installation of public headers (cherry picked from commit 5fe83d7433022e29a401753f64ec78faaf25e0a7)
f4a6152c 2019-09-19 15:24:51 evutil_time: detect and use _gmtime64_s()/_gmtime64() (cherry picked from commit 148d12ad31b03a813f4ffd9df14a85392aa74130)
87c6f735 2019-10-21 10:36:49 append to CMAKE_MODULE_PATH Don't override any -DCMAKE_MODULE_PATH= passed from CLI to eg. test custom Platform/ support. (cherry picked from commit 84affc1837a727640f46eff2723c1364d2cd1695)
e9478640 2019-09-15 21:45:26 https-client: load certificates from the system cert store on Windows (cherry picked from commit 572a565130d40172e1f2b5ac83d0cdffd502105b)
d2871a37 2019-10-16 01:11:51 Do not use sysctl.h on linux (it had been deprecated) It had been deprecated for a long time (AFAIK), but since glibc-2.29.9000-309-g744e829637 it produces a #warning (cherry picked from commit b9b9f19058dc04b7ad4d079a38f6b86c0e7b1072)
50b9be00 2019-10-03 11:40:52 Avoid transforming base C_FLAGS set deliberately The CMAKE_C_FLAGS_DEBUG, CMAKE_C_FLAGS_RELEASE, CMAKE_C_FLAGS_MINSIZEREL and CMAKE_C_FLAGS_RELWITHDEBINFO options are correctly and deliberately toggled to use the libcmt (/MT) flag options in place of the usual msvcrt (/MD) options, but this isn't necessarily desired by the user. The default choice can be overriden with the EVENT__MSVC_STATIC_RUNTIME cmake option. However, the /MD flag that is the choice of CMake only enters into play for the four types of builds above. If the user introduces another CMAKE_BUILD_TYPE, the base CMAKE_C_FLAGS must not be manipulated, as that value (and the CMAKE_C_FLAGS_{custom} value) have been explicitly chosen by the user/developer deploying this library, and the mismatch between these flags in different dependencies results in link errors. The CMake build schema itself doesn't place an /MD flag in CMAKE_BUILD_TYPE so any /M compile option in that variable needs to be retained. Signed-off-by: William Rowe <wrowe@pivotal.io> Signed-off-by: Yechiel Kalmenson <ykalmenson@pivotal.io> (cherry picked from commit af4b07a55cc0ff0298cbd26c87b3f6a08f84c394)
66ec78fd 2019-09-03 00:34:35 arc4random: replace sysctl() with getrandom (on linux) Since sysctl() is deprecated for a long-long time, according to sysctl(2): Since Linux 2.6.24, uses of this system call result in warnings in the kernel log. Fixes: #890 Suggested-by: Pierce Lopez (cherry picked from commit 86f55b0420f864b518475f781ce7a3c619180b12)
7a85300a 2019-08-23 21:48:05 cmake: attach doxygen target into all target v2: Disable non-html generator for doxygen by default v3: convert cmake option to doxygen config (cherry picked from commit 1d1c19091f13b7e19015698a23f454aa85f17ac3)
5b723a66 2019-08-02 00:23:11 Bump version to 2.1.11-stable (with ABI breakage)
305251b9 2019-07-10 00:30:12 cmake: set library names to be the same as with autotools libtool has VERSION_INFO [1], cmake has SOVERSION/VERSION instead (although it has different format). Also libtool has RELEASE [2] while cmake do not have analog yet [3], hence manual symlinks should be created. [1]: https://www.gnu.org/software/libtool/manual/html_node/Libtool-versioning.html [2]: https://www.gnu.org/software/libtool/manual/html_node/Release-numbers.html [3]: https://gitlab.kitware.com/cmake/cmake/issues/17652 Plus osx has compatibility_version/current_version dylib properties and cmake do not have separate properties for them [4], hence manual LINK_FLAGS. And also there INSTALL_NAME_DIR property which should be adjusted too. [4]: https://public.kitware.com/Bug/view.php?id=4383 So after all changes, here is an example before/after for osx and linux: # osx # autotools .libs/libevent_pthreads-2.2.1.dylib .libs/libevent_pthreads.dylib -> libevent_pthreads-2.2.1.dylib /usr/local/lib/libevent_pthreads-2.2.1.dylib (compatibility version 2.0.0, current version 2.0.0) # cmake # before patch lib/libevent_pthreads.2.2.0.dylib lib/libevent_pthreads.dylib -> libevent_pthreads.2.2.0.dylib @rpath/libevent_pthreads.2.2.0.dylib (compatibility version 2.2.0, current version 0.0.0) # after patch lib/libevent_pthreads-2.2.1.dylib lib/libevent_pthreads.dylib -> libevent_pthreads-2.2.1.dylib /vagrant/.cmake/inst/lib/libevent_pthreads-2.2.1.dylib (compatibility version 2.0.0, current version 2.0.0) # linux # autotools .libs/libevent_pthreads-2.2.so.1 -> libevent_pthreads-2.2.so.1.0.0 .libs/libevent_pthreads-2.2.so.1.0.0 .libs/libevent_pthreads.so -> libevent_pthreads-2.2.so.1.0.0 # cmake # before patch lib/libevent_pthreads.so -> libevent_pthreads.so.2.2.0 lib/libevent_pthreads.so.2.2.0 # after patch lib/libevent_pthreads-2.2.so -> libevent_pthreads-2.2.so.1 lib/libevent_pthreads-2.2.so.1 -> libevent_pthreads-2.2.so.1.0.0 lib/libevent_pthreads-2.2.so.1.0.0 lib/libevent_pthreads.so -> libevent_pthreads-2.2.so.1.0.0 Closes: #838 (cherry-picked) Closes: #760 (cherry picked from commit 669a53f341e192657140952cfe025c260da2b1c1)
f013fc7d 2019-07-08 14:06:55 Enable _GNU_SOURCE for Android When targeting the Android NDK _GNU_SOURCE is not enabled by default: ``` /* * With bionic, you always get all C and POSIX API. * * If you want BSD and/or GNU extensions, _BSD_SOURCE and/or _GNU_SOURCE are * expected to be defined by callers before *any* standard header file is * included. * * In our header files we test against __USE_BSD and __USE_GNU. */ #if defined(_GNU_SOURCE) # define __USE_BSD 1 # define __USE_GNU 1 #endif ``` Because of this `pipe2` is not available: ``` #if defined(__USE_GNU) int pipe2(int __fds[2], int __flags) __INTRODUCED_IN(9); #endif ``` The function used to check if it does exist: ``` CHECK_FUNCTION_EXISTS_EX(pipe2 EVENT__HAVE_PIPE2) ``` Just check that the _linking_ succeeds, which it does, it's just not visible in the import, leading to a warning (or error): ``` evutil.c:2637:6: error: implicit declaration of function 'pipe2' is invalid in C99 [-Werror,-Wimplicit-function-declaration] if (pipe2(fd, O_NONBLOCK|O_CLOEXEC) == 0) ^ ``` When targeting the NDK it should be safe to always opt into this. Clang would pass the right flag for us automatically _if_ the source was C++ instead of C. (cherry picked from commit 41c95abb9930b0c13c238e110b857acb810ad7b9)
3aa68a82 2019-07-02 10:47:47 Enable kqueue for APPLE targets The CMAKE_CROSSCOMPILING variable is not set for Apple targets seemingly because of cmake implementation details (more info https://cmake.org/cmake/help/latest/variable/CMAKE_CROSSCOMPILING.html). Since Apple targets have working kqueue implementations this check makes sure we enable it always when those are the targets, without users having to explicitly set EVENT__HAVE_WORKING_KQUEUE (cherry picked from commit 0d7d85c2083f7a4c9efe01c061486f332b576d28)
c9ce638c 2019-06-26 01:27:20 cmake: link against shell32.lib/advapi32.lib Fixes: #844 Refs: #760 (cmake-vs-autotools) (cherry picked from commit 69466cde0382ab3df12e3a011720f87af3998081)
2d65071c 2019-06-09 20:15:37 cmake: add missing autotools targets (doxygen, uninstall, event_rpcgen.py) Close: #832 (cherry-picked) (cherry picked from commit 7201062f3ef505a77baa6ccaf1cf73812462308a)
f5bfd721 2019-05-25 22:33:45 Bump version to 2.1.10-stable everywhere
3da21a94 2019-05-25 17:28:53 cmake: add -Wmissing-prototypes (like autotools has) (cherry picked from commit 49a367e6cfb9b9bc8d1b04cbfb834ec3e0c1d84d)
7c4da937 2019-05-12 19:06:43 Merge branch 'issue-807-accept4-getnameinfo-AF_UNIX' * issue-807-accept4-getnameinfo-AF_UNIX: http-server: add usage/help dialog http: avoid use of uninitialized value for AF_UNIX/AF_LOCAL sockaddr http-server: add ability to bind to unix-socket build: struct sockaddr_un detection (sys/un.h, afunix.h) Fixes: #807 (cherry picked from commit 76eded24d3b0c3fc48c5a888906cc9043223101b)
b062bf0a 2019-03-13 00:02:39 cmake: sync warnings with autotools v2 By some reason gcc reports next error: ../http.c:3330:11: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers] value = ""; Only under -Wwrite-strings, well this is logical, but this information does not reflected in any documentation. Follow-up: 8348b413 ("cmake: add various warning flags like autotools has") f (cherry picked from commit 42d5a36bd8076c137545759d34500401627a649b)
00ba9fa2 2019-02-25 11:59:15 Define `_GNU_SOURCE` properly/consistently per autoconf Although `_GNU_SOURCE` can be defined as an arbitrary #define per the glibc docs [1], it's best to define it in a manner consistent with the way that autoconf defines it, i.e., `1`. While this shouldn't matter in most cases, it does when the headers from other projects follow the poorly defined GNU convention implemented by autoconf and are included after the libevent's util.h header. An example failure with clang, similar to the failure I encountered, is as follows: ``` $ printf "#define _GNU_SOURCE\n#define _GNU_SOURCE 1" | clang -c -x c - <stdin>:2:9: warning: '_GNU_SOURCE' macro redefined [-Wmacro-redefined] ^ <stdin>:1:9: note: previous definition is here ^ 1 warning generated. ``` This happened when compiling python [2] with a stale homebrew util.h file from libevent (which admittedly would not happen in a correct libevent install, as the header should be installed under /usr/local/include/event2/util.h). However, if both headers had been combined (which is more likely), it would have failed as shown above. Removing the ad hoc definition unbreaks compiling python's pyconfig.h.in header when included after util.h from libevent. 1. http://www.gnu.org/software/libc/manual/html_node/Feature-Test-Macros.html 2. https://github.com/python/cpython/blob/master/configure.ac#L126 Closes: #773 (cherry-picked) Signed-off-by: Enji Cooper <yaneurabeya@gmail.com> (cherry picked from commit 5f87be42f0ae0126938624a1419a572607078217)
900f5c45 2019-02-03 19:19:46 Bump version to 2.1.9-beta everywhere
7f161902 2019-02-04 22:18:45 cmake: fix checking of devpoll backend (like in autotools, by devpoll.h existence) (cherry picked from commit 8e87de3c24cad940516f49aa0466cfe53fa042bf)
c8b3ec17 2018-12-17 21:31:54 cmake: support static runtime (MSVC) Fixes: #737 (cherry picked from commit 246f44041e0782f728fa5ff2d39113005a1ab02d)
c264028c 2018-12-15 12:54:31 cmake: Fix some typos in option descriptions (cherry picked from commit f33c2ce5f89bc334230867f37d07dbfd5e3921bd)
bc7f2fd9 2018-11-23 00:29:55 cmake: do not build both (SHARED and STATIC) for MSVC/win32 MSVC does not support SHARED and STATIC libraries with the same name, so let's just build SHARED libraries by default instead (yes we can add prefix but let's stick with this). The reason for this is that in windows shared libraries requires .lib file too, but this is not static library it is imported library for shared (doh...), for more info [1] and [2]. [1]: https://docs.microsoft.com/en-us/windows/desktop/dlls/dynamic-link-library-creation [2]: https://blogs.msdn.microsoft.com/oldnewthing/20091013-00/?p=16403 And when we build both static library can and will override shared library imported part, let's take a look at event_extra.lib: - before patch [3]: $ less libevent-fail/lib/Debug/event_extra.lib | head ==> use library:contained_file to view a file in the archive rw-rw-rw- 100666/100666 59568 Nov 21 23:55 2018 event_extra_static.dir/Debug/evrpc.obj rw-rw-rw- 100666/100666 252219 Nov 21 23:55 2018 event_extra_static.dir/Debug/evdns.obj rw-rw-rw- 100666/100666 203850 Nov 21 23:55 2018 event_extra_static.dir/Debug/http.obj rw-rw-rw- 100666/100666 25907 Nov 21 23:55 2018 event_extra_static.dir/Debug/event_tagging.obj [3]: https://ci.appveyor.com/project/azat/libevent/builds/20472024/job/t0o93v042jai0dj7 - "after patch" [4] (not after but the same effect): $ less libevent-ok/lib/Debug/event_extra.lib | head ==> use library:contained_file to view a file in the archive --------- 0/0 509 Nov 21 23:38 2018 event_extra.dll ... [4]: https://ci.appveyor.com/project/azat/libevent/builds/20478998/job/ca9k3c76amc4qr76 Refs: #691 (cherry picked from commit 90d80ef4167d97b11e01e80fcc4eaa447712e92f)
eb10a738 2018-11-22 23:00:11 cmake: introduce EVENT__LIBRARY_TYPE option Long time ago in [1] cmake build was forced to compile both libraries (SHARED and STATIC), since this is how our autotools build works. [1]: 7182c2f561570cd9ceb704623ebe9ae3608c7b43 ("cmake: build SHARED and STATIC libraries (like autoconf does)") And there is no way to configure this (and indeed you need to do this for MSVC for example), so let's introduce option for this -- EVENT__LIBRARY_TYPE. Plus now we have INTERFACE libraries, that we can use internally in libevent's cmake rules to avoid strict to _shared/_static variant of the libraries to link with samples/tests (we prefer SHARED over STATIC for linking). Also bump minimal cmake required version to 3.1 by the following reasons: - 3.1 is required for RPATH configuration under APPLE - 3.0 is required for add_library(INTERFACE) (did not found it in 2.8.x documentation) - remove extra conditions (anyway 3.1 was release 4 years ago, so I guess that most of the systems will have it) (cherry picked from commit c9a073eae8f86a74fbbb125db34b881ef40108b7)
a28c8346 2018-11-21 07:31:57 cmake: drop redundant add_dependencies() (cherry picked from commit d705e8c0e924d3b815697a075c27a36298f04078)
b6309bcc 2018-11-13 11:10:25 Merge branch 'sample-http-server' Some improvements for http-server sample: - getopt - persistent port via -p option - IOCP for win32 via -I - disable buffering - enable debug logging via -v/EVENT_DEBUG_LOGGING_ALL - cleanup (by signal and separate error path on errors) * sample-http-server: s/http-server: graceful cleanup s/http-server: enable debug logging if EVENT_DEBUG_LOGGING_ALL env isset s/http-server: turn off buffering (otherwise do output on win32) s/http-server: add an option to use IOCP s/http-server: add options (for persistent port) Refs: #709 (cherry picked from commit 9a4b8ec1b64fab27544f154076261afdf1efac07)
5e5de36f 2018-11-05 18:30:38 cmake: set CMP0075 to NEW (for ws2_32.lib in win32) Otherwise cmake complains: Policy CMP0075 is not set: Include file check macros honor CMAKE_REQUIRED_LIBRARIES. Run "cmake --help-policy CMP0075" for policy details. Use the cmake_policy command to set the policy and suppress this warning. CMAKE_REQUIRED_LIBRARIES is set to: ws2_32.lib For compatibility with CMake 3.11 and below this check is ignoring it. (cherry picked from commit 6d3a53966bc822fd580a6a02301838aca601391b)
3d3d1e05 2018-11-05 18:23:31 cmake: set CMP0074 to NEW (for OPENSSL_ROOT in appveyor) We have $env:OPENSSL_ROOT (env) equals to -DOPENSSL_ROOT (cmake variable) anyway. cmake complains: Policy CMP0074 is not set: find_package uses <PackageName>_ROOT variables. Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy command to set the policy and suppress this warning. Environment variable OpenSSL_ROOT is set to: C:/OpenSSL-Win64/bin For compatibility, CMake is ignoring the variable. This warning is for project developers. Use -Wno-dev to suppress it. (cherry picked from commit 65904773f2bf965e2050d4d7c91e30d4f123a787)
b52c6498 2018-11-04 19:48:11 cmake: do not detect _GNU_SOURCE/__GNU_LIBRARY__ if it is cached (cherry picked from commit 3ed93997387296e374d8a2dd770e43ddfa3328e9)
acf4821d 2018-10-27 14:58:30 cmake: add various warning flags like autotools has This is mostly to match autotools and reduce amount mixiing declarations and code. Added: - -Wextra (the same as -W), -Wno-unused-parameter -Wstrict-aliasing - -fno-strict-aliasing (gcc 2.9.5+) - -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement (4.0+) - -Waddress -Wno-unused-function -Wnormalized=id -Woverride-init (4.2+) - -Wlogical-op (4.5+) Removed: - -Wformat (include in -Wall) Plus use CMAKE_C_COMPILER_ID over CMAKE_COMPILER_IS_GNUCC, as cmake-variables(7) suggesting, and add common GNUC/CLANG variables. v2: drop checks for flags, since add_compiler_flags() will check if such flags exists anyway (but just to note, gcc ignores non existing warning flags by default). (cherry picked from commit 8348b41308a7126d009bb6e0b33aa5f465e1dc33)
2594a96f 2018-10-17 11:14:48 Add -fdiagnostics-color=always for Ninja (cherry picked from commit cec4a37120b7fe07525018e4415db8adcfba9299)
b3af7bdd 2018-06-19 10:15:08 Cleanup __func__ detection First of all __func__ is not a macro, it is char[] array, so the code that we had before in cmake, was incorrect, i.e.: #if defined (__func__) #define EVENT____func__ __func__ #elif defined(__FUNCTION__) #define EVENT____func__ __FUNCTION__ #else #define EVENT____func__ __FILE__ #endif So just detect do we have __func__/__FUNCTION__ in configure/cmake before build and define EVENT__HAVE___func__/EVENT__HAVE___FUNCTION__ to use the later to choose which should be used as a __func__ (if it is not presented). Closes: #644 (cherry picked from commit e85818d24850540d220e6d7bc0a30653ba2135f2)
8ab60087 2018-06-16 16:44:06 Get rid of macros which are never used There are no expansions of these macros or tests for their existence. Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com> (cherry picked from commit 755896efe25e5caecd498c08cce072c713720783)
3375750a 2017-12-16 23:28:41 Fix typo in cmake because of which EVENT__SIZEOF_SIZE_T was wrong Fixes: #580 (cherry picked from commit 6e5c15d095d37036553d491b52d27fbbda08e7f2)
7fa08c4b 2017-11-29 11:13:51 Fix generation of LibeventConfig.cmake for the installation tree 'LIBEVENT_INCLUDE_DIRS' is properly initialized in 'LibeventConfig.cmake' as 'LibeventConfig.cmake.in' contains usage of 'LIBEVENT_CMAKE_DIR' and 'EVENT_INSTALL_INCLUDE_DIR' variables but not 'EVENT_CMAKE_DIR' and 'EVENT__INCLUDE_DIRS'. Related typos are fixed. (cherry picked from commit 6ee73ea9b0b15a9f4909c51e171b7799210ec26c)
4a2373ee 2017-11-02 14:58:17 cmake doesn't has POLICY CMP0054 in low version (cherry picked from commit 3f19c5eb8335500ca6f0dd3b62c32d06103757d0)
532a8cc3 2017-09-14 17:39:20 Port `event_rpcgen.py` and `test/check-dumpevents.py` to Python 3. These scripts remain compatible with Python 2. (cherry picked from commit 8b0aa7b36a3250fad4953f194c8a94ab25032583)
8983e511 2017-09-01 15:50:36 test: fix 32bit linux regress (cherry picked from commit 63c4bf78d6af3c6ff46d2e8e4b53dd9f577a9ca9)
6f749540 2017-05-29 18:48:48 cmake: set CMP0054 to NEW to avoid variables over expansion (since cmake 3.8) ==> win: CMake Warning (dev) at CMakeLists.txt:782 (elseif): ==> win: Policy CMP0054 is not set: Only interpret if() arguments as variables or ==> win: keywords when unquoted. Run "cmake --help-policy CMP0054" for policy ==> win: details. Use the cmake_policy command to set the policy and suppress this ==> win: warning. ==> win: ==> win: Quoted variables like "MSVC" will no longer be dereferenced when the policy ==> win: is set to NEW. Since the policy is not set the OLD behavior will be used. ==> win: This warning is for project developers. Use -Wno-dev to suppress it. (cherry picked from commit 2773a5ed5e75540d43500e054581ea1fab2132ac)
3e690290 2017-05-29 16:36:24 cmake: fix building bench/bench_cascade under win32 (missing getopt) Because of typo in cmake, now rewrote to make it less error prone (since even for non-win32 there are variables overlap). (cherry picked from commit 8b29b136793f3bfdb22fba117527763434363a3f)
d2a41a50 2017-05-29 16:32:30 cmake: avoid requiring cmake 3.1 on win32 for dns-example Avoid using target_sources() from cmake 3.1, just pass needable sources as list. (cherry picked from commit 346f8e17080f4649986e0d48176c0a0a5618ea98)
ebd12e6d 2017-03-14 13:31:02 Merge branch 'win32-fixes' This patchset fixes win32 builds after some previous patches (referenced in particular commits), and also removes some quirks for win32. * win32-fixes: test: do not return void log/win32: fix exporting extern variable log-internal: missing extern "C" log: remove USE_GLOBAL_FOR_DEBUG_LOGGING cmake: Export missing symbols for win32 cmake: eliminate EVENT_BUILDING_REGRESS_TEST, since we link with shared libs test: windows doesn't have WNOWAIT cmake: clean not used #defines from event-config.h cmake: add <pthread.h> only for non-win32 (cherry picked from commit d84f0205453941235b0e04729098d4329c189bba)
9806b126 2017-03-13 21:05:32 Merge branch 'cmake-missing-bits' This patchset adds next missing things (in compare to autotools): - pkgconfig - event_pthreads/event_openssl - compile shared/static libraries always And some fixes, because it will not build after fixing other things: - export missing symbols for cmake (-fvisibility=hidden) * cmake-missing-bits: cmake: support visibility for AppleClang too cmake: fix export absolute path and relative path and cleanup a bit cmake: generate and install pkgconfig files cmake: build SHARED and STATIC libraries (like autoconf does) cmake: add missing event_openssl/event_pthreads libraries Export symbols for -fvisibility=hidden (under cmake) Refs: #246 (cherry picked from commit 489991a2b2628ba1ff4e6879b9f67ec35d224c38)
e50af331 2017-03-12 01:00:41 Fix detection of timerfd_create() in CMake. (cherry picked from commit 65870949e7ce8110cb987cdeaa432c482cd9aabc)
cea61de6 2017-03-08 23:15:33 Do not add epoll_sub (syscall wrappers) for epoll in cmake Nowadays mostly all supported OS'es has this wrappers, and some of them (like SmartOS) has wrappers but doesn't have __NR_epoll* defines for syscall numbers, so just drop them (instead of adding yet another check int cmake like autotools has, since this will break building in cross-compile environment). Also one minor note, configure doesn't added epoll_sub.c either, since it check epoll_create() in runtime. And I tested it in SmartOS and it even works (`make verify`). Fixes: #463 (cherry picked from commit 819d04937729b7f8b7c84d6c5c40c5fcd6d68dfd)
a0bfe2c4 2017-03-08 17:58:26 Merge branch 'cmake-configure-fixes-v2' Fixes in cmake, to make it more like configure and support some cross-compiling. * cmake-configure-fixes-v2: cmake: fix extracting of the version from git (check for number of matches) Detect arch4random_addrandom() existence Use off_t instead of ev_off_t for sendfile() (fixes android build) cmake: detect _GNU_SOURCE not by __GNU_LIBRARY__ only (fallback to _GNU_SOURCE) Check for WNOWAIT in waitpid() in runtime (not in cmake/configure) cmake: add <pthread.h> into CMAKE_REQUIRED_INCLUDES for sizeof(pthread_t) cmake: fix values for #cmakedefine cmake: drop duplicates from event-config template cmake: add value for the #cmakedefine macros (like autoconf) cmake: Fix checking of enum values from sysctl.h (cherry picked from commit 5aade2d30b6c5eff226cbf7b63fda5a01987ba4f)
e7bd9e03 2017-03-06 02:46:23 Merge branch 'fix-openssl-linking' * fix-openssl-linking: sample/https-client: use ERR_remove_*state() when we have them Do not check for ERR_remove_thread_state() (do not link ssl into every library) Closes: #476 (cherry picked from commit 98faf19895bd6aa41c68f7da050179e207f05ae1)
45b1f379 2017-02-21 12:54:02 Fix RPATH for APPLE By setting the CMake minimum version to 3.1 CMake automatically adds the correct magic to make the library relocatable on the filesystem (instead of burning the location of the library at link time into the binary). ex: otool -L bin/http-connect bin/http-connect: @rpath/libevent_extra.2.2.0.dylib (compatibility version 2.2.0, current version 0.0.0) /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.8) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0) Fixes: #468 (cherry-picked) (cherry picked from commit cc0e04d798643b76ce1874213cb6cc3b2c6b5ac4)
8567f2f5 2017-01-29 23:07:40 Merge branch 'fix-struct-linger' @jbech "Accidentally disabled by 0dda56a due to confusion between struct linger vs. SO_LINGER and #define vs. AC_DEFINE. Try adding synthetic #error test to confirm." * fix-struct-linger: cmake: check for 'struct linger' existence test/bench*: prefix event-config.h macros after 0dda56a48e94 test/bench_httpclient: restore SO_LINGER usage after 0dda56a48e94 Fixes: #444 (original pull-request) (cherry picked from commit 9d5a4bdc5cfbf2385efc7c58103161b3512c4500)
d9d11cb2 2017-01-29 20:19:06 Make EVENT_STAGE_NAME non cached It did not work before correctly anyway, since cmake do not reset cache entries by default, so that reset to "beta" didn't work. But I don't think that making this variable cached is useful, so let's remove this. (cherry picked from commit fe2c2622c389d7e9529b3c2fa828fb69cc985a1e)
9b63b5d4 2017-01-22 18:21:57 Bump version to 2.1.8-stable everywhere P.S. in referenced commit I made a mistake and instead of *-rc* I wrote *-beta*. See-also: f4489b8323cda0bf8eed7c1353911a852d7a947c ("Bump version to 2.1.7-beta everywhere")
f4489b83 2016-11-02 00:31:31 Bump version to 2.1.7-beta everywhere - cmake basic - cmake detecting from git -- event_fuzzy_version_from_git() - autotools - win32 - appveyor
40fbffc0 2016-11-01 23:33:11 Fix cmake -DEVENT__COVERAGE=ON - do not use compiler check from the root cmake rules with syntax error, let CodeCoverage check it - fix CodeCoverage to check C compiler not CXX - case insensitive checking of CMAKE_BUILD_TYPE - replace flags with --coverage, and fix flags with linking with --coverate, otherwise it will not compile during checking flags and fails.
3453c081 2016-10-30 11:19:43 cmake: fix finding python2, and check that it is really 2 python version check removed in a4d044c0cd97f68b4b3dde414b83d609719d33d7 ("cmake: use PYTHON_EXECUTABLE to find python2"), but in bcb990ab7cf4921c2c30a1aa4fcb4c0131fffe94 ("cmake/win32: fix running regress, but fixing finding python2 interpreter") we set PYTHON_EXECUTABLE only if it exists.
dc624adf 2016-08-24 16:19:01 cmake: cleanup - Remove a redundant check on netdb.h (EVENT__HAVE_NETDB_H). - Properly setup EVENT__SIZEOF_SSIZE_T for the case where "ssize_t" is not "int". - Remove unused EVENT__HAVE_PTHREAD. - Set EVENT__HAVE_LIBZ instead of EVENT__HAVE_ZLIB (and remove the latter). Closes: #391 (cherry-picked from PR)
bcb990ab 2016-10-26 00:51:56 cmake/win32: fix running regress, but fixing finding python2 interpreter Could not find executable C:/projects/libevent/build/bin/regress Looked in the following places: C:/projects/libevent/build/bin/regress C:/projects/libevent/build/bin/regress.exe ... 9/13 Test #9: regress__WIN32_debug ................***Not Run 0.00 sec Link: https://ci.appveyor.com/project/nmathewson/libevent/build/2.1.6.271/job/wvy2jp7uojcut5cx#L1256 Fixes: #411
a4d044c0 2016-10-04 23:21:37 cmake: use PYTHON_EXECUTABLE to find python2 Since most of the distros have symlinks for this.
91559607 2016-10-03 03:17:18 Add -DEVENT__DISABLE_CLOCK_GETTIME switch for cmake See-also: adc402ba5f0e15f4c77505852507f33b50f37ab6 ("Adding option to ignore clock_gettime: --disable-clock-gettime")
51019e94 2016-07-13 17:40:48 Bump version to 2.1.6-beta everywhere - cmake basic - cmake detecting from git -- event_fuzzy_version_from_git() - autotools - win32 - appveyor
43eb56c7 2016-08-11 16:15:45 tests: use waitpid(..., WNOWAIT) to fix failing of main/fork under solaris According to solaris docs: "One instance of a SIGCHLD signal is queued for each child process whose status has changed. If waitpid() returns because the status of a child process is available, and WNOWAIT was not specified in options, any pending SIGCHLD signal associated with the process ID of that child process is discarded. Any other pending SIGCHLD signals remain pending." And interesting thing that it works if you add sleep(1) before waitpid(), and also if you run with --verbose (some race or what). But linux doesn't support WNOWAIT in waitpid() so add detection into cmake/autotools. Fixes: #387 Link: https://bugzilla.redhat.com/show_bug.cgi?id=840782
dc95823c 2016-08-10 00:27:59 cmake/solaris: set CMAKE_REQUIRED_LIBRARIES to fix functions detections Otherwise we will not detect next functions for instance: - gethostbyname_r # and related And now both autotools/cmake builds passes all regress tests in basic env (on solaris of course). Fixes: dns/client_fail_requests_getaddrinfo
050bfc7f 2016-08-10 00:16:48 cmake/solaris: fix building (link with socket,nsl)
c4dfb93f 2016-08-09 10:56:34 cmake: check for ZLIB_INCLUDE_DIR, since we can have only library without headers
de0c1965 2016-08-08 15:50:46 cmake/win32: do not compile regress_thread on -DEVENT__DISABLE_THREAD_SUPPORT=ON
ecb0ec82 2016-08-08 15:45:29 cmake/win32: do not compile evthread_win32 on -DEVENT__DISABLE_THREAD_SUPPORT=ON There is duplicated "evthread_win32.c" appending to ${SRC_CORE} list, leave only one that under if EVENT__DISABLE_THREAD_SUPPORT Fixes: https://ci.appveyor.com/project/azat/libevent/build/2.1.5.96/job/44q3rgifasny7gek
e35f2241 2016-08-07 23:46:26 cmake: fix -DEVENT__ENABLE_VERBOSE_DEBUG (typo on -DUSE_DEBUG) Fixes: 8b228e27f57300be61b57a41a2ec8666b726dc34 ("Lot's of cmake updates")
38716c65 2016-08-07 23:07:44 cmake: do not use stderr for notifications/version-info For all except "STATUS" message() will write to stderr, and this also includes case when you does not have <mode> at all. Plus for every message in stderr powershell generates exception and make appveyor fails. Fixes: https://ci.appveyor.com/project/azat/libevent/build/2.1.5.85/job/i10k7m0t80330mtr
30316177 2016-06-28 10:37:24 [#372] check for errno.h
87f7238f 2016-03-10 01:50:12 cmake: require 3.1 only for win32 to make it work under ubunty precise Also I [TRIED] wily but ubuntu can't upgrade transparently. TRIED: https://travis-ci.org/azat/libevent/jobs/114924723 Fixes: https://travis-ci.org/libevent/libevent/jobs/114917275
c46ead5d 2016-03-10 01:07:54 cmake: require at least 3.1 for target_sources()
36588e16 2016-03-10 00:33:04 cmake: fix adding of compiler flags, and now it will - add_compiler_flags() must accept array IOW just ARGN will be enoough - add_compiler_flags() called with variable name instead of it's value P.S. and fix some alignments issues P.P.S. more cmake issues expected since now CFLAGS actually works P.P.P.S. some issues with cmake cache is possible, so just reset it
f29f59e8 2016-03-10 00:25:09 Replace -Wswitch-enum with -Wswitch, and add it into cmake rules too According to https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html: -Wswitch-enum Warn whenever a switch statement has an index of enumerated type and lacks a case for one or more of the named codes of that enumeration. case labels outside the enumeration range also provoke warnings when this option is used. The only difference between -Wswitch and this option is that this option gives a warning about an omitted enumeration code even if there is a *default label*.
a1609a87 2016-01-12 01:57:07 cmake: fix building dns-example under win32 (missing getopt)
7707f6b0 2016-01-07 17:51:40 cmake: Fix detection of ssize_t/SSIZE_T Since ssize_it is POSIX, windows/VS also have this but with BaseTsd.h, plus the logic prefers "ssize_t" (lower) instead of "SSIZE_T" (upper) when the latest only available -- fix this too. Refs: #311
d56efd94 2015-12-21 17:43:00 Fixed issue with cmake version generation
7f9646d2 2015-12-21 04:36:24 Cmake is now officially working. Though I am currently breaking out things that seem to be repetitive, and a cooler version macro and changelog updater. More to come.
49a53811 2015-12-20 21:44:04 More cmake updates, lot's of missing definitions
a9db46ae 2015-12-20 00:43:46 CMAKE CMAKE CMAKE CLEANUPS It's almost useful.
8b228e27 2015-12-19 01:47:49 Lot's of cmake updates This is still not done, cmake here was a horrid mess, but we're getting our act together now.
c4e9d9bd 2015-11-23 18:44:03 sample/https-client: check for ERR_remove_thread_state() existence Fixes: freebsd 9.2 build
cf2cf2a0 2015-09-02 11:51:00 test: run regress with EVENT_DEBUG_MODE=1 and without This could show some bugs like "event_assign called on an already added event", and some others that debugging mode could track.
1d34498e 2015-08-18 12:18:31 sample: add HTTP CONNECT tunnelling example using libevent http layer
19ba4543 2015-02-05 00:56:58 This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230 CMake configuration files are intended to be used by other projects to find the library. Specifically the CMake find_package command can use it to find all files related to the project. The idea is to support 2 different CMake configuration files for Libevent. One if you simply build libevent that is generated for the build tree. And a second one that is generated for an install target that will be installed on the system and point to where on the system the lib files and such can be find. So for instance, in the build tree the config would set the cmake variable `LIBEVENT_INCLUDE_DIRS` to `/path/to/libevent/build/include`. And for the system config it would be set to `/usr/local/include` (or whatever target the user chose when running cmake). 27bd9faf498b91923296cc91643e03ec4055c230 changed this behavior so that both configs would point to the system wide path `/usr/local/include` This meant that projects just wanting to import directly for the build tree would fail.
683f5568 2015-01-05 09:16:12 Increment version to 2.1.5-beta
e69d9109 2015-01-03 02:22:31 Fix CMake shared library build This fixes following problems in shared library build: * visibility=hidden was not enabled for gcc because of incorrect variable name * test programs that need internal APIs caused link errors
5c7282f7 2014-09-24 13:46:09 Fix compilation for older OpenSSL versions. For instance OpenSSL 0.9.7 does not have SSL_set_tlsext_host_name. Also add the missing EVENT__DISABLE_SAMPLES CMake option.
27bd9faf 2014-09-02 18:25:52 updates in cmake build
15d90cce 2014-03-24 15:01:02 Add missing headerfile for cmake
de268feb 2014-03-21 13:20:34 Increment version to 2.1.4-alpha-dev
73474042 2014-03-21 12:12:10 Fixup make install for cmake projects Install all of the public headers and put the dll's in the same directory as the binaries.
d08273ec 2014-03-16 12:09:24 Increment version to 2.1.4-alpha
8896a92b 2014-03-03 13:47:21 Merge remote-tracking branch 'origin/pr/110'
4545fa9b 2014-02-19 06:31:27 Add option to build shared library
f665d5cb 2014-02-24 10:32:00 Stop checking for inet_aton; we don't use it. We had cmake and autoconf tests for the inet_aton function... but we never actually use it any more. (The autoconf tests still use the callability of inet_aton to decide whether we need to link against -lresolv) Reported by Harlan Stenn.
a0dd5df2 2014-02-19 06:29:58 Rename event_extras to event_extra The library event_extras is named event_extra when building with GNU autotools
ed99d92c 2014-02-14 08:26:07 Added -Qunused-arguments for clang on macosx The CLang provided through Xcode on Mac OSX emits warnings for all unused include paths making the compilation extremely verbose.
f1715b47 2014-01-22 12:12:51 Guard against EVENT_NOWIN32 being set during testing. On windows all tests will fail if EVENT_NOWIN32 is set, since then there will be no backend available. Question is if we should simply disable the environment variable check on Windows, since there's only one backend available anyway?