0
0
mirror of https://github.com/zeromq/libzmq.git synced 2024-12-27 15:41:05 +08:00

491 Commits

Author SHA1 Message Date
Min RK
5f8488de6d move FindSodium to builds/cmake/Modules
with the rest of the CMake modules
2018-01-13 13:15:51 -08:00
Min RK
f8da0ac721 move cmake ZeroMQConfig.cmake.in to builds/cmake 2018-01-13 13:14:53 -08:00
evoskuil
f41b51ee04 Problem: NuGet packaging versions out of date. 2017-12-14 17:24:38 -08:00
Luca Boccassi
ac552ba448 Problem: accept4 not available on all platforms
Solution: check for availability in CMake and autoconf before using it
2017-11-18 11:33:53 +00:00
f18m
bfbb4ff2e9 Background threads enhancements (#2778)
* Background thread scheduling 

- add ZMQ_THREAD_AFFINITY ctx option; set all thread scheduling options
from the context of the secondary thread instead of using the main
process thread context!
- change ZMQ_THREAD_PRIORITY to support setting NICE of the background
thread when using SCHED_OTHER
2017-10-16 12:29:03 +01:00
Luca Boccassi
9be8cebd21 Merge pull request #2765 from GreatFruitOmsk/issue-2764
Problem: Race condition in IPC sockets
2017-10-06 09:25:33 +01:00
Ilya Kulakov
656cdb959a Problem: Race condition in IPC sockets
Solution: Don't unlink file on close

File may not belong to the socket at that point.
2017-10-05 14:57:10 -07:00
Alexander Dubovik
02c46463d7 fix build for msvc2017 2017-10-05 22:54:12 +03:00
Luca Boccassi
124e04659c Problem: ZMQ_HAVE_O_CLOEXEC not defined by CMake
Solution: add it to CMake's platform.hpp.in
2017-09-01 10:15:42 +01:00
Robin Stacey
83f54d90ad Problem: ZMQ_HAVE_O_CLOEXEC always disabled
Solution: Escape quotes in cmake test.
2017-09-01 16:37:27 +09:00
sigiesec
fc2b7cd5ea Problem: coverage includes tweetnacl, which is not our code
Solution: exclude tweetnacl from coverage
2017-08-23 14:42:52 +02:00
Luca Boccassi
e81a40b8bd Problem: CMake build ignores SO_BINDTODEVICE
Solution: add it to CMake's platform.hpp.in
2017-08-19 12:07:25 +01:00
Luca Boccassi
8ecfee475c Problem: missing files from VS2008 solution
Solution: generate list of sources and headers with:

 ls -1 src/*cpp | sort | sed 's|src/\(.*\)|      <File RelativePath="..\\..\\..\\..\\src\\\1" />|g'
 ls -1 src/*hpp | sort | sed 's|src/\(.*\)|      <File RelativePath="..\\..\\..\\..\\src\\\1" />|g'

and add them.
2017-08-18 12:45:12 +01:00
sigiesec
301f3c70c2 Problem: code duplication between curve_client_t and curve_server_t decode and encode
Solution: extracted common base class curve_mechanism_base_t
2017-08-18 11:34:22 +02:00
Luca Boccassi
9ac244a67c Problem: coverage CI job does not print test errors
Solution: run make check with VERBOSE=1
2017-08-17 17:20:56 +01:00
sigiesec
406af1ef67 Problem: ZAP tests are now generic but placed in test_security_curve.cpp
Solution: Move ZAP tests to own file test_security_zap.cpp, move common code to testutil_security.hpp
2017-08-17 11:45:18 +02:00
sigiesec
6e8a0b31be Problem: ZAP client code is duplicated in all mechanisms
Solution: created a zap_client_t class, extracted first function send_zap_request from curve_server_t
2017-08-16 18:04:30 +02:00
Jake Cobb
0cbdc18817 Problem: CMake build does not allow static linking libsodium
Solution: Pass along SODIUM_STATIC define if set in CMake config
2017-08-10 13:04:15 -04:00
Brian Russell
b963542e8f Add socket option BINDTODEVICE
Linux now supports Virtual Routing and Forwarding (VRF) as per:

https://www.kernel.org/doc/Documentation/networking/vrf.txt

In order for an application to bind or connect to a socket with an
address in a VRF, they need to first bind the socket to the VRF device:

    setsockopt(sd, SOL_SOCKET, SO_BINDTODEVICE, dev, strlen(dev)+1);

Note "dev" is the VRF device, eg. VRF "blue", rather than an interface
enslaved to the VRF.

Add a new socket option, ZMQ_BINDTODEVICE, to bind a socket to a device.
In general, if a socket is bound to a device, eg. an interface, only
packets received from that particular device are processed by the socket.

If device is a VRF device, then subsequent binds/connects to that socket
use addresses in the VRF routing table.
2017-07-31 15:31:47 +01:00
Luca Boccassi
fbb6bbdcb8 Problem: reading from /dev/urandom is clunky
Solution: if available use the getrandom function as it doesn't
require any synchronization, state or cleanup
2017-07-28 11:28:19 +01:00
Luca Boccassi
2626fdfa23 Problem: tweetnacl leaks file descriptor on fork+exec
Solution: open with O_CLOEXEC if available or set FD_CLOEXEC if not
2017-07-28 11:27:55 +01:00
Luca Boccassi
86f9f1df7a Problem: CI doesn't build with debugging symbols
Solution: pass -g so that valgrind/asan can print useful backtraces
2017-05-01 22:57:05 +01:00
Luca Boccassi
463c2d75ae Problem: CI builds and test runs not done in parallel
Solution: run make with -j5, as now the tests support it.
2017-05-01 22:57:05 +01:00
Luca Boccassi
48792f8006 Problem: CI runs libsodium tests
Solution: don't, libzmq's CI tests are not responsible for testing
libsodium stable releases. Save some time in the CI.
2017-05-01 22:57:05 +01:00
bbdb68
1d58a00992 Problem: no windows UWP support
* add define for windows/UWP

* prevent issue with COM references

* gettickcount not available on uwp

* add compiler definitions

* add convenitnece cmake file

* brute force uwp compilation

* fix compiler version

* cosmetics
2017-04-04 09:50:33 +01:00
evoskuil
6c1fb4d0b8 Problem: NuGet pacakge out of date. 2017-03-29 10:44:10 -07:00
evoskuil
72714ad297 Problem: no nuget package for 4.2.2 2017-03-24 01:47:22 -07:00
evoskuil
f2d7b2cad8 Problem: curve not enabled by default in Visual Studio. 2017-03-23 22:29:19 -07:00
evoskuil
91a01f447d Problem: libsodium linked by default in Visual Studio projs. 2017-03-23 22:28:45 -07:00
evoskuil
dbb5e72638 Problem: Visual Studio projects intertwined and drifting. 2017-03-23 21:32:48 -07:00
chuggafan
7913e96271 I have added msys building, license stuff (#2387)
(msys building is buggy, please be aware, it fails to compile on my
machine) also I modified the buildall.bat/buildbase.bat to use correct
MSVC versions instead of "visual studio 2017"
2017-03-19 22:38:43 +00:00
mlodew
9091623243 Fixed lib and dll paths in visual studio build (#2375)
Fixed path to lib and dll files.
2017-03-19 16:50:33 +00:00
Luca Boccassi
3ab4796c5a Problem: ZMQ background threads are unnamed
Solution: use pthread API to set the name. For now call every thread
"ZMQ b/g thread". Would be nice to number the I/O threads and name
explicitly the reaper thread, but in reality a bit of internal API
churn would be necessary, so perhaps it's not worth it.
This is useful when debugging a process with many threads.
2017-03-12 00:46:15 +00:00
boringuy
d6f4263ce3 cmake WITH_LIBSODIUM option is broken (#2349)
* cmake WITH_LIBSODIUM option is broken

- Fixed the variable name in platform.hpp.in
- Fixed #if check for randombytes_close() when libsodium is used

* Fixed typo from previous commit

* Reverted compile error fix for randombytes_close()
2017-02-22 22:28:05 +00:00
zstang
3b0dfd528f #2341 fix
the root path name specified in this file cause the #2341 problem, the root path name is not need.
2017-02-21 17:35:36 +08:00
chuggafan
020ff65efa Updated buildbase and buildall to work with visual studio 2017 2017-01-16 14:54:40 -05:00
Luca Boccassi
bbae5d0f9a Problem: dpkg-query might fail in CI build and fail the build
Solution: rework the bash test to avoid build failures as intended
and make it an easier one-liner
2016-12-27 14:45:45 +01:00
Luca Boccassi
822def9b2b Problem: Travis rebuilds libsodium every time
Solution: use packages on Ubuntu and brews on OSX. The packages and
the brews are always kept up to date, so it's no use to rebuild the
libsodium stable branch manually everytime.
2016-12-27 11:48:38 +01:00
Luca Boccassi
f287c7a2aa Problem: eventfd leaks socket on fork+exec
Solution: if available, use eventfd with EFD_CLOEXEC flag to make
the process close the socket on fork+exec
2016-12-26 19:08:27 +01:00
Luca Boccassi
211898d243 Problem: epoll leaks socket on fork+exec
Solution: if available, use epoll_create1 with EPOLL_CLOEXEC flag to
make the process close the socket on fork+exec
2016-12-26 19:08:27 +01:00
Kos
43941052a9 add link libsodium.a 2016-12-22 14:25:00 +08:00
Kos
edad90f770 mingw32 fix 2016-12-22 09:35:49 +08:00
Anass Bouassaba
ad045512b9 Build support for VS2017, Windows SDK 10.0.14393.0, toolset v141 2016-12-09 09:21:11 +01:00
Dmitriy-GH
488cb5a022 MSVC 2015 project for compile libzmq.dll in WinXP compatible mode 2016-11-02 15:51:58 +05:00
Mário Kašuba
3996d4e20d Merge branch 'master' of github.com:zeromq/libzmq
# Conflicts:
#	builds/msvc/vs2012/libsodium.import.props
2016-10-10 11:02:32 +02:00
Bernd Langpap
96c306cc54 Problem: parameter %1 set hard to build target and prevents the skipping of pause
Solution: removed Pause
2016-07-04 12:13:44 +02:00
Bernd Langpap
73631bf1c9 modified build.bat to support non-pausing installation 2016-07-04 11:06:56 +02:00
Bernd Langpap
5de974a036 modified build.bat for msvc to support no-pausing script-based installation
Signed-off-by: Bernd Langpap <Bernd.Langpap@airbus.com>
2016-07-04 10:31:11 +02:00
Sam Lishak
d49e43bbc8 Problem: FD_SETSIZE not set to 16k for all build definitions
Solution: Set FD_SETSIZE to 16k for all other build definitions.
2016-06-13 09:42:54 +01:00
Michael Lutz
7a6ff07a01 Problem: Windows performance is not optimal due to select().
Solution: Provide poll() for Windows as well. This is a build option that
defaults to off as the resulting binary will only run on Windows Vista or
newer.

This is not tested with alternative Winsock service providers like VMCI,
but the documentation for WSAPoll does not mention limitations.

On my local machine, throughput improves by ~10 % (20 simultaneous
remote_thr workes to one local_thr, 10 byte messages), while latency
improves by ~30 % (measured with remote/local_lat).
2016-06-11 19:17:18 +02:00
Luca Boccassi
b4abaad269 Problem: Android CI uses outdated C++ ABI 4.8
Solution: switch to 4.9
2016-06-07 23:56:34 +01:00
Luca Boccassi
b872e7d9f7 Problem: Android CI NDK version out of date
Solution: update CI scripts to use newer r11c from r10e
2016-06-07 23:56:28 +01:00
Luca Boccassi
8be568916e Problem: Android CI script hardcodes ABI version
Solution: use a variable for easier maintenance, in sync with zproject
2016-06-07 23:18:21 +01:00
evoskuil
96a66bab3b Problem: msvc imports missing Rule.Category declarations. 2016-05-25 13:52:49 -07:00
evoskuil
c7f167377c Problem: unresolved dgram externals in msvc builds. 2016-05-18 12:25:51 -07:00
evoskuil
2b798e486a Problem: name conflicts from windows.h, draft API declared in pch. 2016-05-13 20:41:26 -07:00
evoskuil
5e0fb27cc6 Problem: tab characters are poor for source readability. 2016-05-13 03:25:30 -07:00
evoskuil
af524aed6b Problem: msvc dist has redundancies and missing elements. 2016-05-13 03:22:01 -07:00
evoskuil
9e26bb1885 Problem: typo in platform.hpp comment. 2016-05-13 02:30:37 -07:00
evoskuil
1c9d02d700 Problem: mo current nuget package. 2016-05-13 02:24:45 -07:00
evoskuil
7684ce4fcd Problem: incorrect white spacing for standard vcxproj file. 2016-05-13 01:48:08 -07:00
evoskuil
9622a830d0 Problem: inapplicable, redundant and invalid references in msvc pch. 2016-05-13 01:40:14 -07:00
evoskuil
2113feec39 Problem: msvc precompiled header config is a mess, tweetnacl is missing. 2016-05-13 01:04:22 -07:00
evoskuil
0db07394d0 Problem: msvc configuration options are invalid and/or inconsistent. 2016-05-13 01:00:58 -07:00
evoskuil
01ab149b96 Problem: copy of libsodium import props is unnecessary. 2016-05-13 00:56:09 -07:00
evoskuil
7425fcca80 Problem: incorrect include guard symbol. 2016-05-13 00:47:03 -07:00
evoskuil
40d7a4c896 Problem: redundant copies of msvc .props and .xml files. 2016-05-13 00:46:06 -07:00
evoskuil
f25a13bc8a Problem: configure.bat is incomplete and conflicts with MSVC UI. 2016-05-12 15:36:18 -07:00
evoskuil
bce1cf96d9 Problem: vc common props have platform specific conditions. 2016-05-12 03:36:39 -07:00
evoskuil
a3c3bcfe4a Problem: visual c++ invalid ToolsVersion warnings. 2016-05-12 03:31:52 -07:00
evoskuil
9cb7077e3d Problem: inconsistent msvc property sheet display name (vs2012). 2016-05-12 03:15:16 -07:00
evoskuil
b5342bc008 Problem: no tool for maintainers to build all vs solutions. 2016-05-12 03:14:37 -07:00
Doron Somech
fcc80d4ffb add draft option to windows configure 2016-05-03 10:18:46 +03:00
Aaron Linville
a57fd70844 Fix issue with unresolved external symbols for the gather and scatter classes by adding them to the MSVC 2010, 2012, 2013 and 2015 projects. 2016-04-22 19:26:55 -04:00
Luca Boccassi
a117c1f48d Problem: Travis CI CMake build does not run tests
Solution: add make test to the cmake/ci_build.sh script
2016-04-21 11:35:43 +01:00
Luca Boccassi
ea294afd8b Problem: CMake does not check for TIPC support
Solution: add macro in ZMQSourceRunChecks.cmake and optionally
include the TIPC sources if the support is available.
More importantly, only run the TIPC tests if the support is there.
2016-04-21 11:33:20 +01:00
Luca Boccassi
f18463f323 Problem: mkdtemp not available on all platforms
Solution: check for availability in autoconf and cmake, and if not
available fall back to random file name rather than random directory.
2016-04-11 00:18:51 +01:00
Matt Powley
f2018ab317 Fixes for Windows XP compatibility
A Visual Studio build from master (commit id: dac5b45dfb224ff184a7aed39c5859ae5bac3803) using the v140_xp toolset yields a binary that is not XP compatible.

Two libraries contain exports that cannot be found:
 -  IPHLPAPI.DLL : if_nametoindex
 - KERNEL32.DLL : InitializeConditionVariable

The latter export is already dealt with in the file './src/condition_variable.hpp'; however this requires setting the _WIN32_WINNT pre-processor definition.
I am not experienced enough to figure a work around for the 'if_nametoindex' method, so I have created a new pre-processor definition 'ZMQ_HAVE_WINDOWS_TARGET_XP' and removed the calling of the function with the limitation that these builds cannot handle a IPv6 address with an adapter name.

To make it easier for people targeting XP with an MSVC build I have modified the MSBuild property file to add/modify the pre-processor definitions if they are building using a XP targeting tool set; such as v140_xp.
2016-03-31 15:45:00 +01:00
Matt Powley
260860dea1 Add .gitignore for Visual Studio builds in the 'builds/msvc' folder
* Added a new .gitignore file for excluding Visual Studio build output any popular plug-in generated content. (This was copied from the GitHub project https://github.com/github/gitignore).
* Removed the basic ignore settings from the root folder in favour of more precision within the subfolder's .gitignore file
* Added the new VC compiler's experimental Intellisense database file
2016-03-31 14:51:36 +01:00
Matt Powley
0e405a5a77 Use vs2015 MSBuild property sheets in older projects
All the older (vs2010 -> vs2013) projects had copies of the Visual Studio 2015 MSBuild applied to them when running the 'configure.bat' batch file. Any modifications to a property sheet was not applied to the other Visual Studio versions' projects unless the batch file was re-executed.

* Modified the older projects to reference the Visual Studio 2015 property sheets so changes are immediately applied
* Removed the batch file copy steps (which left the repository very dirty after execution)
2016-03-31 14:51:23 +01:00
Pieter Hintjens
396237f871 Problem: MSVC builds instructions aren't entirely clear
Solution: update them.
2016-03-30 14:19:20 +02:00
Luca Boccassi
dc27ad41d2 Problem: coveralls uses wrong path on Trusty
Solution: pass built-root when calling coveralls, to help it find the
right path to the source code.
2016-03-19 21:55:03 +00:00
Luca Boccassi
00e0957640 Problem: false positive on valgrind 3.10
Solution: update builds/valgrind/valgrind.supp to ignore glibc's
__libc_freeres calls. This code runs after the program exits, and
tries to de-allocate memory allocated internally by glibc, so it has
nothing to do with libzmq code. This suppression is added by default
in newer versions of Valgrind, not yet available on older
distributions.
2016-03-19 21:54:52 +00:00
Luca Boccassi
ebc7316069 Problem: CI doesn't run Valgrind
Solution: run Valgrind only on the default Linux build to avoid
increasing the runtime.
2016-03-19 21:54:52 +00:00
Benjamin Henrion
516efa46c0 add some doc for docker android compilation 2016-03-18 13:54:20 +01:00
Luca Boccassi
15fd419f22 Problem: test_large_msg requires 2GB of free RAM
Solution: remove temporarily until proper message limits have been
implemented, then a more granular test case can be added without
such high requirements which are problematic in embedded environment,
build systems, VMs and CI systems
2016-03-16 21:47:58 +00:00
Luca Boccassi
0cd7c0f807 Problem: no code coverage in CI
Solution: add new coverage build, and upload results to coveralls.io
2016-03-13 22:23:56 +00:00
Osiris
a6392b9e74 Problem: Windows PDB not created for RELEASE targets
Solution: Modified projects to create PDB file for RELEASE targets
	- also spread precompiled settings to all DevStudio solution versions

This change affects Windows builds only
2016-03-11 14:48:30 -06:00
Pieter Hintjens
0916c17b3a Merge pull request #1842 from opedroso/PRECOMPILED
Problem: Windows Build not using precompiled headers for all targets
2016-03-05 12:59:51 +02:00
Osiris
224c0670ee Problem: Windows Build not using precompiled headers for all targets
Solution: Enabled precompiled header settings in all targets
Before build time: ~6min 49 secs
Stop  Time: Fri 03/04/2016  8:29:50.13
Start Time: Fri 03/04/2016  8:23:00.28

After build time: ~4min 19 secs
Stop  Time: Fri 03/04/2016 12:12:10.24
Start Time: Fri 03/04/2016 12:07:51.78
2016-03-05 04:47:08 -06:00
Osiris
09d003aac0 Problem: Added "make clean" to Windows build scripts
Solution: Added ability to do equivalent of a "make clean" by executing:

O:\git\libzmq\builds\msvc\build>buildall.bat clean
Start Time: Fri 03/04/2016 14:33:56.50
Cleaning without libsodium
Cleaning ..\vs2013\libzmq.sln... ()
Platform=x86
Configuration=DynDebug
Configuration=DynRelease
Configuration=LtcgDebug
Configuration=LtcgRelease
Configuration=StaticDebug
Configuration=StaticRelease
Platform=x64
Configuration=DynDebug
Configuration=DynRelease
Configuration=LtcgDebug
Configuration=LtcgRelease
Configuration=StaticDebug
Configuration=StaticRelease
Cleaning complete: ..\vs2013\libzmq.sln

Stop  Time: Fri 03/04/2016 14:34:01.84
Start Time: Fri 03/04/2016 14:33:56.50

A clean takes ~5 secs to complete.
2016-03-05 04:37:01 -06:00
Daniel Lupu
3190de8045 update Makefile.mingw32 2016-02-28 06:26:35 +02:00
Luca Boccassi
f3686e34ff Problem: make dist broken due to builds/msvc
Solution: change builds/msvc/Makefile.am to reference vcxproj files
instead of props files.
2016-02-22 11:58:36 +00:00
Luca Boccassi
391397571b Problem: make dist broken due to builds/android
Solution: change builds/Makefile.am to reference builds/android
instead of builds/qt-android.
2016-02-22 11:58:00 +00:00
Luca Boccassi
8d811474d4 Problem: make dist broken due to builds/cmake
Solution: remove references to builds/cmake/Makefile* since they no
longer exist.
2016-02-22 11:57:09 +00:00
Osiris
b3d5fa63a0 Problem: Several problems found by Coverity Static Analyzer
Solution: The Coverity Static Code Analyzer was used on libzmq code and found
many issues with uninitialized member variables, some redefinition of variables
hidding previous instances of same variable name and a couple of functions
where return values were not checked, even though all other occurrences were
checked (e.g. init_size() return).
2016-02-21 15:49:47 -06:00
Osiris
79538ed651 Problem: Windows build not using precompiled header
Solution: Phase II - made compile using precompiled header
2016-02-18 11:35:35 -06:00
Pieter Hintjens
27fe489843 Problem: VC++ gives warnings on inet_addr
Solution: in project.gyp, define _WINSOCK_DEPRECATED_NO_WARNINGS
2016-02-18 11:46:43 +01:00
Osiris
80024eca8c Problem: Windows build script requires edit for DevStudio version
Solution: Use CMD.EXE environment variable to extract DevStudio version
number and build using it. This even supports machines with multiple
DevStudio versions installed, as long as the build for each version is
done on a separate window with the correct environment.
If multiple version builds are desired from a single CMD.EXE, edit the
buildall.bat file to uncomment the build statements for each specific
version desired.
2016-02-17 09:42:53 -06:00
Pieter Hintjens
3443da216f Problem: node-gyp defaults to -fno-rtti, which breaks libzmq
Solution: override in project.gyp, for Linux and OS/X.
2016-02-17 12:06:45 +01:00
Pieter Hintjens
c78e4f33a3 Problem: if src/platform.hpp still exists, gyp uses this
Gyp needs its own platform.hpp; there is no way to delete this
file automatically.

Solution: copy gyp's platform.hpp into src, so that things build
properly no matter what the starting state. If you build with gyp
and then try to build using autotools' makefile, you'll get an
error from the platform.hpp.
2016-02-17 12:06:45 +01:00
Pieter Hintjens
9bebd4dce9 Problem: local build should do its own .gitignore
Solution: add .gitignore in builds/gyp
2016-02-17 12:06:45 +01:00
Pieter Hintjens
8559770cf3 Problem: in builds/gyp, socket limit is 4K on Windows
Solution: raise to 16K
2016-02-17 12:06:45 +01:00
Pieter Hintjens
bbcc79d188 Problem: tests don't build on Windows
There were numerous small issues with test cases:

- some lacked the right source file header
- some were not portable at all
- some were using internal libzmq APIs (headers)

Solution: fixed and cleaned up.
2016-02-12 15:48:37 +01:00
Pieter Hintjens
d148c3ea5d Problem: no clue how to run gyp on Windows
Solution: offer a build.bat to help the user.
2016-02-12 15:48:37 +01:00
Luca Boccassi
8bee4e2547 Merge pull request #1799 from hintjens/master
Making gyp builds work
2016-02-12 10:40:43 +00:00
Pieter Hintjens
8230c0d396 Problem: gyp does not build tests
Solution: it's a lot of work to define the tests in project.gyp
so I did this using gsl to generate the JSON, from a small XML
list of the test cases.

To keep this, and the hundreds of .mk files, away from the root
directory, I've moved the gyp files into builds/gyp, where you
would run them.

It all seems to work now. Next up, OS/X and Windows :)
2016-02-12 11:31:38 +01:00
Pieter Hintjens
a682f94a32 Problem: tcp_address.cpp won't compile on OS/X w/o ZMQ_HAVE_IFADDRS
This is rather insane since the code knows well enough what systems
support if_nametoindex. I blame this on over-use of autotools early
in libzmq's days.

Anyhow, this breaks gyp builds on OS/X.

Solution: add ZMQ_HAVE_IFADDRS to build/gyp/platform.hpp for OS/X.
2016-02-12 10:49:19 +01:00
Constantin Rack
22e830bece Merge pull request #1798 from hintjens/master
Getting gyp build working
2016-02-12 10:07:14 +01:00
Pieter Hintjens
6bef3fe9ad Problem: can't build libzmq.a using gyp
Solution: add necessary macros into builds/gyp/platform.hpp

Work for Linux now, other platforms to test.
2016-02-12 09:58:44 +01:00
Luca Boccassi
9393f06381 Problem: CI use of sodium or nacl is confusing
Solution: establish a matrix of CI options. On one axis we have the
build system (autotools, cmake, android) and on the other axis we
have the encryption options (tweetnacl, libsodium or none).
2016-02-11 22:39:36 +00:00
Luca Boccassi
01eb580739 Problem: typo in CMake platform.hpp breaks build
Solution: use ZMQ_USE_TWEETNACL as a define as expected instead of
HAVE_TWEETNACL
2016-02-11 21:41:21 +00:00
Pieter Hintjens
fde81d7e07 Problem: can't build using gyp
I'm adding gyp support so that we can easily pull in libzmq
and other C/C++ projects into gyp packages, especially via
node-gyp.

Solution: add gyp definition

This works only for Windows, OS/X, and Linux. We set a single
macro in project.gyp according to the system, and the rest is
done in builds/gyp/platform.hpp. The values in that file are
not dynamic. Your mileage will vary.
2016-02-11 22:41:01 +01:00
Luca Boccassi
0bdc5d0457 Problem: CMake CI build still clones libsodium
Solution: avoid cloning libsodium, default build is tweetnacl
2016-02-11 20:27:06 +00:00
Luca Boccassi
4f5594c2ce Problem: Android CI build uses unstable libsodium
Solution: checkout stable branch before building
2016-02-11 20:25:21 +00:00
Luca Boccassi
3420e6e0dd Problem: CI still thinks libsodium is default
Solution: build by default with tweetnacl, and add sub-build project
to test libsodium
2016-02-11 20:16:17 +00:00
Pieter Hintjens
f8ed793f76 Problem: tweetnacl sources are a mess
- they have no copyright / license statement
- they are in some randomish directory structure
- they are a mix of postable and non-portable files
- they do not conform to conditional compile environment

Overall, it makes it rather more work than needed, in build scripts.

Solution: clean up tweetnacl sauce.

- merged code into single tweetnacl.c and .h
- standard copyright header, DJB to AUTHORS
- moved into src/ along with all other source files
- all system and conditional compilation hidden in these files
- thus, they can be compiled and packaged in all cases
- ZMQ_USE_TWEETNACL is set when we're using built-in tweetnacl
- HAVE_LIBSODIUM is set when we're using external libsodium
2016-02-11 18:06:07 +01:00
Luca Boccassi
c23cc65735 Problem: no CMake Travis CI build
Solution: add builds/cmake/ci_build.sh and call it from travis.yml
2016-02-08 13:30:25 +00:00
Luca Boccassi
84544ca6e2 Problem: no CI build with tweetnacl
Solution: add builds/tweetnacl/ci_build.sh and add it in travis.yml
2016-02-08 12:31:05 +00:00
Pieter Hintjens
e0f02bdfb8 Problem: libzmq uses different build.bat style than zproject
Solution: at least for vs2015, add vs2015/build.bat to work the
same was as zproject.
2016-02-07 10:36:17 +01:00
Pieter Hintjens
0d7e7bfac0 Problem: MSVC project filters were out of date
Solution: update (with correct one from VS2015)
2016-02-06 14:12:43 +01:00
Pieter Hintjens
86aa7bb1bc Problem: commit a464eec7 really broke VS2015 builds
Took me over 8 hours to track down the cause of bizarre link
errors when building with libsodium. The VS project files are
not simple things.

Note to self and other maintainers: when someone is obviously
out of their depth, do not merge their changes to build scripts
without cynical appraisal.

Solution: undo the damage.
2016-02-05 00:25:59 +01:00
Pieter Hintjens
a3d9b46a60 Problem: Android build is slow and noisy
Solution: use --without-docs (changed from --without-documentation)
and also --quiet.
2016-02-04 11:24:25 +01:00
Pieter Hintjens
31d181effb Problem: MSVC build does not detect libsodium
Caused by error in last commit which used HAVE_LIBSODIUM instead
of HAVE_SODIUM.

Solution: use HAVE_LIBSODIUM as we do in other configure scripts.

The project is called 'libsodium' and not 'sodium'.
2016-02-03 23:45:01 +01:00
Pieter Hintjens
6a9af8ed62 Problem: can't build without libsodium from command line (MSVC)
There is an option to enable/disable libsodium via the Visual Studio
UI. This is not practical for command-line usage (via msbuild).

Solution: add configure.bat that searches for libsodium in sibling
directory to libzmq; if it finds it, defines HAVE_LIBSODIUM 1.

This is consistent with zproject, which has the same problem and
is getting the same solution for all dependency resolution on
Windows.

Note that this approach also provides a way to support tweetnacl
via a configure option.

Also, removed duplicate props files and re-copy in configure.bat
as it was an insane nightmare to update these by hand. (and not
clear that they were identical. Now it's forced.)
2016-02-03 22:44:06 +01:00
Pieter Hintjens
d218e03884 Problem: project files have tool version in two places
Leading to extra work when copying between versions of VS.

Solution: remove second unnecessary definition.
2016-02-02 22:49:15 +01:00
Pieter Hintjens
4ce9c7c742 Problem: does not build on VS2015
Solution: add missing project files

(Also, updated FD_SETSIZE to 16K as a bonus.)
2016-02-02 22:31:18 +01:00
Pieter Hintjens
b92055fa56 Problem: not building on VS2015
Solution: fixed project files, and warning in timers.cpp
2016-02-02 22:05:56 +01:00
Pieter Hintjens
44c6b0484e Revert "Revert "Problem: deprecated use and reference of zmq_term"" 2016-02-01 23:00:06 +01:00
Pieter Hintjens
1708bfefb7 Revert "Problem: deprecated use and reference of zmq_term" 2016-02-01 22:41:51 +01:00
Constantin Rack
a26bb743d4 Problem: docs are still referring to deprecated zmq_term
Solution: Replace with `zmq_ctx_term`
2016-02-01 22:00:35 +01:00
Pieter Hintjens
6f94af8cca Problem: various errors in build scripts
- zmq_utils.h was removed
- udp_address.cpp and udp_engine.cpp were added

Solution: patch all affected build scripts
2016-02-01 11:18:08 +01:00
sunkin351
9b01ae826e Restoring zmq_utils.h from previous version
I hope restoring this from a previous version doesn't do any damage, it
is missing in the current version of this repository and is vital for
the lib to compile anywhere.
2016-01-31 20:19:04 -08:00
sunkin351
a464eec7df Added "udp_address" and "udp_engine" to enable windows build
Altered VS2015 files to enable building of the library.
2016-01-31 17:54:31 -08:00
Pieter Hintjens
2ae4c55bf5 Problem: radio/dish class broke Windows builds
Solution: add these new classes to MSVC project files
2016-01-29 11:07:21 +01:00
Constantin Rack
a539b0c6e8 Problem: copyright year is still 2015
Solution: update to 2016
2016-01-28 15:07:31 +01:00
Benjamin Henrion
e19454e388 Problem: OpenWRT Makefile still uses tarballs, now using GIT HEAD master 2016-01-15 11:19:24 +01:00
Pieter Hintjens
055995e535 Problem: builds directory contains packaging scripts
Specifically, the RedHat tools.

Solution: move this into packaging/
2016-01-15 10:25:38 +01:00
Pieter Hintjens
d8d9ee3243 Problem: no support for OpenWRT
Solution: copy ZeroMQ packaging script from
https://github.com/vperron/openwrt-zmq-packages

Note: this is not usable as-such, needs fixing.
2016-01-15 10:10:06 +01:00
Pieter Hintjens
c49eef46ec Problem: Android build is too slow
Solution: use parallel make (-j 4) and don't build man pages.
2016-01-05 17:31:17 +01:00
Pieter Hintjens
6bb0cc1fd5 Problem: still one error in vcxproj files
Solution: fix and try again.

(We could start to think of using zproject to generate these build
scripts as the only difference is C/C++)
2015-12-21 18:57:31 +01:00
Pieter Hintjens
137afd5610 Problem: includes timer.cpp/hpp instead of timers.cpp/hpp
Solution: fix it.
2015-12-21 18:36:49 +01:00
Pieter Hintjens
065fbcdc8f Problem: performance tests don't link on Windows/MSVC
Solution: add Iphlpapi.lib to libraries to link against
2015-12-21 13:07:13 +01:00
Pieter Hintjens
6665bffe11 Problem: MSVC projects don't include timers.cpp/hpp
Solution: add these
2015-12-21 11:09:11 +01:00
Pieter Hintjens
627809568b Problem: on Windows, link fails on missing Iphlpapi.lib
Solution: add to project dependencies
2015-12-21 10:52:40 +01:00
Constantin Rack
33c5985eb2 Problem: build scripts don't need full git history
Solution: add `--depth 1` parameter to `git clone` commands
2015-12-19 13:17:22 +01:00
Benjamin Henrion
8f1810d1e2 Add a Dockerfile to build libzmq for android 2015-12-17 00:11:26 +01:00
Pieter Hintjens
9b45ba7067 Problem: builds/qt-android name is inaccurate
Solution: rename to simple builds/android.
2015-12-14 19:01:13 +01:00
Mário Kašuba
86714959da Merge branch 'master' of github.com:zeromq/libzmq 2015-11-13 03:53:37 +01:00
roalz
5f5fb5e5ad Added solution and project files to build with Microsoft Visual Studio 2015 2015-11-05 16:08:33 +01:00