Commit Graph

46 Commits

Author SHA1 Message Date
Markus Pilman 1de37afd52
Make TEST macros C++ only (#7558)
* proof of concept

* use code-probe instead of test

* code probe working on gcc

* code probe implemented

* renamed TestProbe to CodeProbe

* fixed refactoring typo

* support filtered output

* print probes at end of simulation

* fix missed probes print

* fix deduplication

* Fix refactoring issues

* revert bad refactor

* make sure file paths are relative

* fix more wrong refactor changes
2022-07-19 13:15:51 -07:00
Lukas Joswiak 618f8455c4 Add test executables to catch missing symbols
Currently, we have code in different folders like `flow/` and `fdbrpc/`
that should remain isolated. For example, `flow/` files should not
include functionality from any other modules. `fdbrpc/` files should
only be able to include functionality from itself and from `flow/`.
However, when creating a shared library, the linker doesn't complain
about undefined symbols -- this only happens when creating an
executable. Thus, for example, it is possible to forward declare an
`fdbclient` function in an `fdbrpc` file and then use it, and nothing
will break (when it should, because this is illegal).

This change adds dummy executables for a few modules (`flow`, `fdbrpc`,
`fdbclient`) that will cause a linker error if there are included
symbols which the linker can't resolve.
2022-07-06 14:49:33 -07:00
Markus Pilman d31fb30f57 fdbclient compiling 2022-06-27 18:31:05 -06:00
Markus Pilman 88af6b403f fdbrpc compiling 2022-06-27 18:11:55 -06:00
Markus Pilman 03d913a1de Flow compiling 2022-06-27 17:05:55 -06:00
Markus Pilman a47ed89018 Linux fixes and addressed review comments 2022-06-23 20:52:13 -06:00
Markus Pilman 38e100ebc5 flow bindings are compiling 2022-06-23 19:06:05 -06:00
Markus Pilman d35445a868 enforce include modularization in cmake 2022-06-23 14:37:35 -06:00
Alex Miller 78d644f673
Merge branch 'master' into bugfixes/cmake-includes 2020-05-04 02:11:46 -07:00
Andrew Noyes a4434de4e8 Depend on actorcompiler.exe
Fixes #2985

This was originally done in 0443cf89ea,
and removed in 75f692b931, but I'm
not sure why it was removed. I'm guessing it was a botched merge
2020-04-22 12:12:48 -07:00
Markus Pilman 4b5fdef976 fix correctness dependencies 2020-04-10 18:16:52 -07:00
Markus Pilman 8b5780c36c don't include source and binary dir
This forces users to use include paths from the sources root.

So `#include "Arena.h"` won't work anymore, only
`#include "flow/Arena.h"` will.
2020-04-06 10:13:49 -07:00
Markus Pilman ac9f79116e Build bindingtester 2020-03-26 16:01:58 -07:00
Markus Pilman e8c41e3f82 fixed strip_target dependencies 2020-03-26 13:45:22 -07:00
mpilman 5a9d420cb7 Merge remote-tracking branch 'upstream/release-6.2' into release-merges/20200210 2020-02-10 10:02:05 -08:00
mpilman 5c294e2646 Several build improvements - enables parallel builds on Windows (again) 2020-02-09 08:34:14 -08:00
A.J. Beamon 62fc3bf084
Merge pull request #2558 from apple/release-6.2
Merge Release Into Master
2020-01-17 10:39:03 -08:00
Evan Tschannen 3f9d9d8b84 Merge branch 'release-6.2'
# Conflicts:
#	CMakeLists.txt
#	cmake/FlowCommands.cmake
#	documentation/sphinx/source/release-notes.rst
#	fdbclient/StorageServerInterface.h
#	fdbserver/DataDistributionTracker.actor.cpp
#	fdbserver/MasterProxyServer.actor.cpp
#	fdbserver/fdbserver.actor.cpp
#	flow/Knobs.h
#	flow/Platform.cpp
#	versions.target
2020-01-16 18:37:47 -08:00
mpilman 9095a8b151 make dependencies explicit 2020-01-16 14:40:29 -08:00
Alvin Moore 0ed6875f0e Removed debug file 2020-01-15 06:43:48 -08:00
Alvin Moore ae7e8cbcba Fixed syntax 2020-01-15 02:51:16 -08:00
Alvin Moore 76c8a93cac Add check for file existence before stripping
Added storing of debug infomratio
2020-01-15 02:29:34 -08:00
Markus Pilman d0d036b3a7 Add cmake command to package tests 2019-11-08 21:39:21 +00:00
Andrew Noyes ea89f75446 Depend on both custom_target and generated file
https://samthursfield.wordpress.com/2015/11/21/cmake-dependencies-between-targets-and-files-and-custom-commands/
sheds some light.
2019-09-12 14:03:14 -07:00
Andrew Noyes 0443cf89ea Depend on actorcompiler.exe, rather than target
Before, changing the actor compiler would not cause actor
files to get recompiled. Fix that.
2019-09-12 07:43:26 -07:00
Andrew Noyes 1a0ab7854e Omit ActorFuzz etc from OPEN_FOR_IDE build 2019-08-16 09:24:57 -07:00
Andrew Noyes a8cdcff0c2 Change --disable-actor-without-wait-warning to --disable-diagnostics
We probably just want to disable all actor diagnostics for the flow test
files.

Also add --generate-probes to the help text
2019-08-16 09:24:57 -07:00
mpilman 058f21b0fc fixed merge conflicts 2019-07-30 18:36:10 -07:00
mpilman b7df7f3549 compatability with older cmake versions 2019-07-30 18:36:10 -07:00
mpilman 4dd219f55b made probes follow c naming rules 2019-07-30 18:36:10 -07:00
mpilman 9b96d8c166 a step further to uniqueness 2019-07-30 18:36:10 -07:00
mpilman 8eb06f7ab4 Only generate probes where it is supported 2019-07-30 18:36:10 -07:00
Andrew Noyes 3d2f35eec6 Fix a cmake typo
This allows a few more files to get type checked during an OPEN_FOR_IDE
build
2019-07-23 15:12:47 -07:00
Jingyu Zhou e2d7929b73 Remove redundant actor compiler flags. 2019-06-30 08:25:53 -07:00
Austin Seipp 8f98104f92 cmake: echo versions.h target command if VERBOSE=1
Signed-off-by: Austin Seipp <aseipp@pobox.com>
2019-05-07 16:54:05 -10:00
mpilman 8ef453eb2e Don't pass options file to coverage tool
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.
2019-04-17 12:10:51 -07:00
mpilman 48f3e65bdf Strip debug symbols with `make packages`
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.
2019-03-20 20:27:10 -07:00
mpilman 4a4af6fb2c Make cmake build fail if old build system was used
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).
2019-03-06 13:48:18 -08:00
mpilman 9b14aeb156 Tell cmake not to link/install on ide build 2019-02-19 15:16:59 -08:00
mpilman 0d7d1a2b63 added IDE support for cmake 2019-02-15 00:01:42 -08:00
mpilman cd6b72b492 generate coverage.target.xml files 2019-02-15 00:01:42 -08:00
mpilman 75f692b931 simplify actorcompiler and target to compile coveragetool 2019-02-15 00:01:42 -08:00
Andrew Noyes 1ea58c1e5e Actually change name of flag 2019-02-13 10:44:58 -08:00
Andrew Noyes 3a38bff8ee Use DISABLE_ACTOR_WITHOUT_WAIT_WARNING consistently 2019-02-13 10:30:35 -08:00
mpilman 7a858b902d Most of FDB compiling on Windows with cmake 2019-02-07 15:37:04 -08:00
mpilman a31df1b0a6 Addressed comments from pull requests
- 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
2019-01-02 13:32:26 -08:00