Commit Graph

23 Commits

Author SHA1 Message Date
MarkusTeufelberger
0c22e0262d Link Boost statically only when requested
Fixes #2261
2018-01-10 00:12:23 -08:00
Mike Ellery
d61436cca5 add deprecation warning flag (CMake) 2017-12-01 14:15:05 -05:00
Brad Chase
a4a43a4de9 Improve WorkSSL:
Support Server Name Indication
Ensure windows uses available certificates
2017-11-29 17:39:57 -05:00
Howard Hinnant
74823cb7d1 Enable -Wunused-variable in CMake on macOS 2017-08-10 15:56:50 -07:00
Mike Ellery
65094d9c90 Change common libs for XCode/apple (RIPD-305):
Removes unnecessary common link libs related to openssl, which we link
to explicitly using finder vars now. THis allows the generated XCode
project to link without error. Tested with CMake 3.9.0 and XCode 8.3.3.
2017-08-10 15:56:45 -07:00
Mike Ellery
36423a5f77 Add zlib to libs when finding openssl (RIPD-1496):
if openssl is configured with compression support AND you link
to the static lib, you are going to need to link to zlib.

Fundamentally the CMake finder should take care of this (as
described in https://gitlab.kitware.com/cmake/cmake/issues/16885),
but we work around it here by adding zlib explicitly. Update
beast error test for OpenSSL 1.1.0
2017-08-10 15:56:05 -07:00
seelabs
b23e9c207d Handle build when BOOST_ROOT env var is not set 2017-07-20 18:12:28 -04:00
Edward Hennis
2858661bce Support CMake in Test.py
* scons will remain the default build type.
* New set of command line switches to control CMake.
2017-07-20 14:27:57 -04:00
Mike Ellery
18801b81de Add jemalloc support to cmake build (RIPD-1472):
Enable jemalloc under option. Create additional option that sets flags
appropriate for use with linux perf. Tested with jemalloc on linux and
macos.
2017-07-11 12:54:38 -04:00
Edward Hennis
6f10fe8502 Tidy up MSVC CMake configuration 2017-05-17 04:06:22 -07:00
Edward Hennis
d471e533b7 Group CMake sources from arbitrary folder:
* Instead of default PROJECT_SOURCE_DIR
* Useful when called for submodules
2017-05-17 04:06:22 -07:00
Edward Hennis
fab3ec0b56 CMake: build consistently with default (unspecified) target 2017-03-31 12:05:47 -07:00
seelabs
bb61b398a6 Use gnu gold or clang lld linkers if available 2017-03-01 13:18:30 -05:00
Edward Hennis
2c2b0eb2f1 Fix CMake ordering to find correct compiler:
* `CMAKE_C_COMPILER` and `CMAKE_CXX_COMPILER` must be defined
  before `project`. However, it will clear `CMAKE_BUILD_TYPE`.
  Use `CACHE` variables and reorder some code to work around
  these constraints.
* Also correct a couple of copy paste errors.
2017-03-01 13:18:29 -05:00
Scott Schurr
ce9238b389 Remove beast::Thread (RIPD-1189):
All uses of beast::Thread were previously removed from the code
base, so beast::Thread is removed.  One piece of beast::Thread
needed to be preserved: the ability to set the current thread's
name.  So there's now a beast::CurrentThreadName that allows the
current thread's name to be set and returned.

Thread naming is also cleaned up a bit.  ThreadName.h and .cpp
are removed since beast::CurrentThreadName does a better job.
ThreadEntry is also removed, but its terminateHandler() is
preserved in TerminateHandler.cpp.  The revised terminateHandler()
uses beast::CurrentThreadName to recover the name of the running
thread.

Finally, the NO_LOG_UNHANDLED_EXCEPTIONS #define is removed since
it was discovered that the MacOS debugger preserves the stack
of the original throw even if the terminateHandler() rethrows.
2017-03-01 11:43:59 -05:00
Edward Hennis
232ec62c75 CMake -Dassert=true properly enables asserts in Release:
* CMake defaults CMAKE_CXX_FLAGS_RELEASE, etc. to include defining
  NDEBUG, regardless of other options set elsewhere, for most or all
  generators. This change explicitly removes that flag from the relevant
  variables.
* Also move the project command earlier, since it wipes out some local
  changes.
2017-02-01 11:42:32 -08:00
Edward Hennis
a1c0d15a1f Provide BOOST_ROOT to CMake docs target (RIPD-1364):
* Should make building docs with CMake incrementally easier and more
reliable.
* Wrap makeqbk in explicit bash shell (if available).
2016-12-29 13:50:57 -05:00
Edward Hennis
fd901f8081 Support parallel 64- and 32-bit boost binaries (RIPD-1317):
* CMake and scons
* Update Visual Studio build docs
* Cache Appveyor PIP downloads for scons builds
* Rename the CMakeFuncs `find_` functions to `use_`
2016-11-18 12:17:29 -08:00
seelabs
810a6b0f30 Add pthread flag 2016-11-09 13:58:04 -08:00
Edward Hennis
361917e902 CMake unity and nonunity builds per project (RIPD-1326):
* Still respects "-Dtarget" unity/nonunity selection. Still defaults to
  unity.
* Adds a new target (rippled_classic or rippled_unity) depending on
  unity/nonunity selection.
* New target does not build by default.
  eg. Use `cmake --build . -target rippled_classic`
* Copy all config variables (Debug/Release to DebugClassic/ReleaseClassic) for nonunity builds
* CI uses the more generic "cmake --build" command
2016-11-09 13:58:04 -08:00
Edward Hennis
f37aa1d6c8 Improve CMake find_boost compatibility:
* Put all the relevant calls together.
* Sensibly handle stage vs. stage64 lib directories.
* Unable to move target_link_libraries acur_project not defined in new location, so breaks non-win builds
2016-10-27 15:17:21 -04:00
seelabs
cdaafeb4b6 Improve openssl directory finding 2016-10-18 14:18:41 -04:00
Edward Hennis
2963e91752 Improve CI / cmake for ripple-libpp support (RIPD-1255):
* Simplify Travis APT config.
* Automatically retry Travis build and test script. Will result in fewer
  false negatives.
* Travis install scripts use absolute paths.
* Build a library of cmake functions for reuse.
* Disallow cmake builds in project root.
* Disallow cmake default 32-bit Visual Studio builds.
* Add several missing nonunity / header files, including all unit tests to
  cmake.
* Change gcc.debug.nounity Travis build to use cmake, instead of adding
  builds.
* Change Appveyor build to cmake. Eliminates most spurious failures, which
  are caused by python or scons failing to download.
2016-10-03 12:04:46 -04:00