Commit Graph

74 Commits

Author SHA1 Message Date
Jun Zhang
74a38fc3d8
Fix incorrect CMAKE_SOURCE_DIR usage
When using solidity as a third-party library (include it into our
project using FetchContent), we encountered a strange compilation error.
For some reason, cmake considers the root directory of the project as
the root directory of the dependency (solidity). This is because
solidity is incorrectly using CMAKE_SOURCE_DIR variable, which should be
PROJECT_SOURCE_DIR (The former one refers to the top-level source
directory that contains a CMakeLists.txt, while the latter refers to the
source directory of the most recent project() command)

I've created a repo for demonstration (https://github.com/junaire/test-solidity-fetch-content)

Signed-off-by: Jun Zhang <jun@junz.org>
2023-06-08 19:17:34 +08:00
Nikola Matic
3bec4c09be Disable dangling-reference warning 2023-05-09 19:54:00 +02:00
Nikola Matic
3bab14747e Fix hidden-overload in Types and remove CMake hack 2023-05-09 19:33:23 +02:00
Daniel Kirchner
f2ddc997f0 Temporary workaround for GCC 13 compiler warnings. 2023-05-04 16:30:19 +02:00
Yuvraj Singh
9290ccb908 Added build flag to disable pedantic builds 2022-08-11 15:10:53 +02:00
Alexander Arlt
f7b29d55da cmake/EthCompilerSettings.cmake: generator expression fix for ninja. 2022-02-22 08:26:37 -05:00
Leo Alt
c22f0ef9bb Add comment 2022-02-14 20:28:21 +01:00
a3d4
10a431a18b Enable asserts in MSVC RelWithDebInfo configuration 2022-02-14 20:28:21 +01:00
Daniel Kirchner
3a201ec0f8 Build packed soljson.js. 2022-02-14 16:52:59 +01:00
Daniel Kirchner
e7deedb707 Pass emscripten linker options only when linking. 2021-11-04 15:32:04 +01:00
Bhargava Shastry
b5f5e85a12 cmake: Remove stdlib compile option for Solidity build. 2021-09-13 11:55:58 +02:00
Bhargava Shastry
7b05d3bc70 CMake: Remove unsigned-integer-overflow check from UBSan compiler flags because it is too noisy. 2021-09-01 16:47:06 +02:00
Bhargava Shastry
f57e625a47 UBSan CI: Remove unsigned-shift-base sanitizer flag. 2021-08-28 12:17:19 +02:00
Bhargava Shastry
0b9fc214c7 Add UBSan build + test CI. 2021-08-26 13:14:56 +02:00
Daniel Kirchner
10c742ed0a Update emscripten build to be compatible with new docker image. 2021-01-13 01:09:34 +01:00
chriseth
843e37b6e6 Do not warn about unreachable break. 2020-12-14 14:18:03 +01:00
Alex Beregszaszi
bd641a5206 Enable more C++ compiler warnings 2020-12-10 21:03:58 +00:00
Daniel Kirchner
4cb9a42d9a Verify minimal clang version in cmake. 2020-12-10 17:40:29 +01:00
Daniel Kirchner
7308abc084 Allow loading Z3 dynamically at runtime. 2020-12-10 16:47:47 +01:00
Alex Beregszaszi
7e88ba8da0 Enable the -Wconversion warning 2020-12-08 16:45:24 +00:00
Daniel Kirchner
2e6693c849 Update version checks in cmake to match debian stable and remove some workarounds. 2020-12-07 18:26:51 +01:00
Alex Beregszaszi
1e2bfbd6b2 Enable the -Wextra-semi warning 2020-12-04 17:21:19 +01:00
a3d4
8faa5243b5 Fix MSVC ADL 2020-09-01 00:42:42 +02:00
Djordje Mijovic
3c57e04751 Adding -Wsign-conversion flag to cmake. 2020-07-09 15:07:56 +02:00
Daniel Kirchner
59ee743f6a Switch to upstream docker image for emscripten build. 2020-06-04 16:17:29 +02:00
Alexander Arlt
a7e1ef6a50 [build-system] Add -Wpessimizing-move & -Wredundant-move warnings.
-Wpessimizing-move warns when a call to std::move would prevent copy elision
if the argument was not wrapped in a call.  This happens when moving a local
variable in a return statement when the variable is the same type as the
return type or using a move to create a new object from a temporary object.

-Wredundant-move warns when an implicit move would already be made, so the
std::move call is not needed, such as when moving a local variable in a return
that is different from the return type.
2020-04-02 08:36:47 -05:00
cameel
af7139c19f Enable colorized compiler output when running gcc via cmake 2020-01-30 03:11:28 +01:00
Alex Beregszaszi
eafcb42be7 Enable more compiler warnings in the build system
"-pedantic -Wno-unknown-pragmas -Wimplicit-fallthrough"
2020-01-15 14:33:27 +00:00
Daniel Kirchner
90e494615e Build soljson.js with embedded base64-encoded wasm binary. 2020-01-13 10:51:48 +01:00
Daniel Kirchner
edd80a986d Update emscripten to 1.39.3 2019-11-29 12:55:02 +01:00
Daniel Kirchner
cdbaf067c7 Internal emscripten build cleanup 2019-11-29 10:21:29 +01:00
kcy1019
547cd2eb71 Remove dependency on boost::regex from Whiskers 2019-10-16 21:26:49 +09:00
Daniel Kirchner
c823b3519e Replace build source path in __FILE__ macros. 2019-10-02 17:25:10 +02:00
Daniel Kirchner
5677bedf34 Require gcc >= 5.0. 2019-06-05 11:57:06 +02:00
Bhargava Shastry
9f77d90c0b cmake: Minor refactoring of SANITIZE flag 2019-05-22 11:33:27 +02:00
rocky
b3ef7e2301 Remove clang+osx ld warning
Boost libraries on osx use visibility=hidden to reduce unnecessary DWARF entries.

Unless we match visibility, ld will give a warning message like:

   ld: warning: direct access in function 'boost::filesystem... from file ...
   means the weak symbol cannot be overridden at runtime. This was likely caused by different translation units being compiled with different visibility settings.
2019-04-30 07:38:28 -04:00
rocky
6d5505720d Maximum clang/gcc debugging when debugging desired.
-g3 adds macro information. See https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
Both clang and gdb support this, and I think this preferred over the older -ggdb.
2019-04-16 11:47:06 -04:00
Alex Beregszaszi
62f707610e Run clang tests with ASAN 2019-02-07 18:59:40 +01:00
Shelly Grossman
3b5f446018 Ensuring UTF-8 encoding for MSVC builds 2019-01-26 15:30:17 +02:00
Daniel Kirchner
5baac8470b Use emscripten 1.38.8 on both travis and circle. 2019-01-17 18:31:34 +01:00
Alex Beregszaszi
3f58505c76 Remove obsolete ETH_EMSCRIPTEN option
This was made obsolete by using toolchain files (#2836)
2019-01-17 15:23:21 +00:00
Daniel Kirchner
ecdc00d569 Set emscripten to strict mode (wrt deprecated compiler options). 2019-01-17 15:22:43 +00:00
chriseth
8825533222
Merge pull request #5699 from ethereum/cmake-no-c-dependency
cmake: Do not depend on a C compiler to be present
2018-12-20 11:56:55 +01:00
Christian Parpart
639622c6d7 cmake: Do not depend on a C compiler to be present by explicitly stating that this is a C++ project.
CMake defaults to C *and* C++ toolchain, in case nothing has been specified.
This means that cmake always checks for both, which is more than needed.

This PR cuts off C toolchain requirement from /CMakeLists.txt and ensures that we
don't pass along any `..._C_...` variables in EthCompilerSettings.cake nor jsoncpp.cmake.
2018-12-20 09:02:00 +01:00
Paweł Bylica
b57a36ddae CMake: Use toolchain files 2018-12-19 12:32:15 +00:00
Christian Parpart
5b86e3ec50 Enables C++14 standard (was C++11) within the Solidity compiler project. 2018-12-11 21:28:05 +01:00
Alex Beregszaszi
551343ae3e
Merge pull request #4665 from mattaereal/cmake-patch-solver
cmake option added to make solvers optional
2018-08-08 17:58:01 +01:00
Matías Aereal Aeón
4b20708c49 cmake flags to make solvers optional. Implementation of #4651 2018-08-08 12:43:57 -03:00
Augusto F. Hack
6c3b48ddfc Added guards for unknown pragmas
Removed push/pop if there was no change to the warnings *in the same
file* for a given compiler. This assumes the imported boost headers use
a warning stack themselves.

The pragmas don't seem to be required anymore, but were not removed to
mantain compatibility with older versions of the boost library.

Compiled with
- clang version 6.0.1 (tags/RELEASE_601/final)
- gcc (GCC) 8.1.1 20180531
 against:
- libboost 1.67.0-5
2018-08-05 19:21:33 -03:00
Alex Beregszaszi
f7c96c8dee
Merge pull request #4560 from ethereum/cmake-policy
CMake policies
2018-08-02 13:32:32 +01:00