This is a suggestion to resolve#1780
This change introduces a new cmake flag `RELATIVE_DEBUG_PATHS`.
If this flag is set or FDB is compiled with `-DFDB_RELEASE=ON`,
the resulting binary will have debug information using relative
file paths to source files. This simulates the behavior of the
old build system but might break local debugging (making the
debugger aware of build and source directory will be required).
'--restoring' command line option was introduced to indicate
simulated fdbserver to restore from snapshot and restart the cluster.
As part of this change that option is removed and restore
information is stored in the restartInfo.ini.
- exec operation to go to all the TLogs
- minor bug fix in tlog
- restore implementation for the simulator
- restore snap UID to be stored in restartInfo.ini
- test cases added
- indentation and trace file fixes
This introduces a new USE_LD cached variable which can be set to one of
three values: LD, GOLD, or LLD. In the latter two cases, we propagate
the -fuse-ld={gold,lld} option to the compiler. The default case
defaults to whatever the ordinary system linker is, i.e. it does
nothing.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
dmcs was noted as deprecated in its startup message script many years
ago (2016), and dmcs itself was *actually* deprecated even years before
that -- 'dmcs' itself only executes 'mcs' with the .NET 4.0 SDK enabled
anyway.
Since CMake will be the new primary build system, let's go ahead and
drop support for dmcs entirely in this setup.
Signed-off-by: Austin Seipp <aseipp@pobox.com>
This hopefully fixes a weird msbuild issue where files are generated
more than once. This issue is described here:
https://gitlab.kitware.com/cmake/cmake/issues/16767
This workaround makes coverage_tool not to use the generated options
files, which hopefully will result in msbuild not trying to generate
these files more than once.
When compiling on Linux/MacOS `make packages` will now create
a `lib` and a `bin` directory in the packages directory. In there
it will put stripped versions of all executables and shared
libraries (i.e. the binaries without debug symbols).
If this is run on Linux, it will additionally copy the debug symbols
of all executables into .debug files.
1. We need to set a Windows target to get rid of warnings when compiling
files that include windows.h
2. By default Boost will try to automatically link against boost_system.
In order to prevent this, we define BOOST_ALL_NO_LIB
3. Somehow, I had to include winioctl.h in Platform.cpp. According to
the documentation from MS, this shouldn't be necessary as windows.h
includes this as well. However, for me it didn't compile otherwise.
Up unto here this code is only very rudiemantery tested.
This is a firest attempt of making cpack more user-friendly.
The basic idea is to generate a component for package type so
that we can have different paths depending on whether we build
an RPM, a DEB, a TGZ, or a MacOS installer. The cpack package
config file will then chose the correct components to use.
In a later point this should make it possible to build these
with `make packages` and the ugly iteration with calling cmake
between each package would be obsolete. While this solution is
a bit more bloated, it is also much more flexible and it will be
much easier to use.
Another benefit is, that this will get rid of all warnings during
a cpack run
This changes makes a cmake build check for an existing
versions.h file in the source directory before it builds
anything else. If it finds it it will fail the build.
This is to prevent confusion when someone tries to use cmake
on a source directory where the old build system was used
before (as this is not supported).
CPack can now generate a MSI (needs WIX to be
installed). However, this currently does not include
fdbservice - I need to figure out how to install this
first.
- A set of CMake variables controls whether to keep
the simfdb directory and the traces and whether we
want to aggregate the traces into a single file
- Test labels now contain the directory they are in
so that one can now run `ctest -R fast/`
- A different binary can be used for restart tests. CMake
will automatically look for an installed fdb and use that
by default. If none is found, it will use the built one
but it will also print a warning
- CMake will throw an error if there are any text files in
the tests directory that are not associated with a test.
- Moved testing from fdbserver/CMakeLists.txt to
tests/CMakeLists.txt
- Moved fdb testing functions to its own cmake module
- Moved some larger sections in CMakeLists.txt into separate files
- Fixed an include issue on OS X
- Fixed boost version
- Use PROJECT_VERSION by default instead of using versions.target