summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
...
* Add BUILD_TESTS CMake option (#4536)Thomas Lively2022-03-211-2/+7
| | | | Turning it off removes the build dependency on the third-party googletest library.
* Fix errors when building in C++20 mode (#4528)Jakub Szewczyk2022-03-181-10/+10
| | | | | | | * use [[noreturn]] available since C++11 instead of compiler-specific attributes * replace deprecated std::is_pod with is_trivial&&is_standard_layout (also available since C++11/14) * explicitly capture this in [=] lambdas * extra const functions in FeatureSet, fix implicit cast warning by using the features field directly * Use CMAKE_CXX_STANDARD to ensure the C++ standard parameter is set on all targets, remove manual compiler flag workaround.
* Version 106 (#4533)Alon Zakai2022-03-181-1/+1
|
* Introduce gtest (#4466)Thomas Lively2022-01-201-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | Add gtest as a git submodule in third_party and integrate it into the build the same way WABT does. Adds a new executable, `binaryen-unittests`, to execute `gtest_main`. As a nontrivial example test, port one of the `TypeBuilder` tests from example/ to gtest/. Using gtest has a number of advantages over the current example tests: - Tests are compiled and linked at build time rather than runtime, surfacing errors earlier and speeding up test execution. - Tests are all built into a single binary, reducing overall link time and further reducing test overhead. - Tests are built from the same CMake project as the rest of Binaryen, so compiler settings (e.g. sanitizers) are applied uniformly rather than having to be separately set via the COMPILER_FLAGS environment variable. - Using the industry-standard gtest rather than our own script reduces our maintenance burden. Using gtest will lower the barrier to writing C++ tests and will hopefully lead to us having more proper unit tests.
* Version 105 (#4449)Derek Schuff2022-01-121-1/+1
|
* Version 104 (#4400)Sam Clegg2021-12-161-1/+1
|
* Version 103 (#4364)Sam Clegg2021-12-011-1/+1
|
* [CMake] Use -O2 for all targets in compile step (#4360)Max Graey2021-11-291-6/+1
| | | | | | | Previously Emscripten used -Oz. That does reduce code size, but it turns out to make binaryen.js significantly slower (3x or more) than it could be, which seems like the wrong tradeoff. Fixes #4359
* Modernize code to C++17 (#3104)Max Graey2021-11-221-1/+1
|
* Set CMAKE_OSX_DEPLOYMENT_TARGET (#4300)Sam Clegg2021-11-011-0/+6
| | | | This version represents that current reality although we would like to lower this for increased compatibility. See: #4299
* Switch binaryen.js/wasm to ESM (#4280)dcode2021-10-281-4/+4
|
* Update to C++17 and use std::optional for getSuperType (#4203)Derek Schuff2021-10-181-1/+1
| | | This sets the C++ standard variable in the build to C++17, and makes use of std::optional (a C++17 library feature) in one place, to test that it's working.
* Clean up compile warnings on clang-cl (#4217)Derek Schuff2021-10-061-5/+7
|
* Limit to 2 parallel link jobs when using LTO (#4214)Derek Schuff2021-10-061-0/+2
| | | | The thinLTO backend is already multithreaded, so combining with build system-level parallelism can bog a machine down.
* Version 102 (#4143)Alon Zakai2021-09-101-1/+1
|
* [NFC] Split wasm-split into multiple files (#4119)Thomas Lively2021-09-031-23/+2
| | | | | As wasm-split has gained new functionality, its implementation file has become large. In preparation for adding even more functionality, split the existing implementation across multiple files in a new tools/wasm-split subdirectory.
* Clean up warnings on MSVC (#4060)Wouter van Oortmerssen2021-08-051-0/+2
|
* Revert accidental debugging changes from #3935 (#3950)Thomas Lively2021-06-221-4/+0
|
* Preserve function heap types during text parsing (#3935)Thomas Lively2021-06-221-0/+4
| | | | | | | | | | | | | | Previously, ref.func instructions would be assigned the canonical (i.e. first parsed) heap type for the referenced function signature rather than the HeapType actually specified in the type definition. In nominal mode, this could cause validation failures because the types assigned to ref.func instructions would not be correct. Fix the problem by tracking function HeapTypes rather than function Signatures when parsing the text format. There can still be validation failures when round-tripping modules because function HeapTypes are not properly preserved after parsing, but that will be addressed in a follow-up PR.
* Rename wasm-delegations[-fields].h to def files (NFC) (#3941)Heejin Ahn2021-06-181-1/+1
| | | | | | | | | | | These files are special in that they use define symbols that are not defined within those files or other files included in those files; they are supposed to be defined in source files that include these headers. This has caused clang-tidy to fail every time these files have changed because they are not compilable per se. This PR solves the problem by changing their extension to `def`, which is also used in LLVM codebase. LLVM has dozens of files like this whose extension is `def`, which makes these not checked by clang-tidy.
* Release 101 (#3812)Sam Clegg2021-04-161-1/+1
|
* Add a CMake option to install only the tools (#3654)Derek Schuff2021-03-041-6/+9
| | | | | | | This option will avoid installing the static library and headers, for distributions that want to be as small as possible, and don't need to support development with libbinaryen (such as emsdk). It still installs the dynamic library since that's needed by the tools.
* Release 100 (#3645)Sam Clegg2021-03-021-1/+1
| | | Fixes: #3459
* Fix VS2017 builds with /std:c++17 (#3620)MaulingMonkey2021-02-261-0/+1
|
* cleanup to allow binaryen to be built in more strict environments (#3566)walkingeyerobot2021-02-161-0/+3
|
* Revert cmake version requirement bump (#3515)Sam Clegg2021-01-251-1/+3
| | | | | | | | This was originally landed as part of #3484 but this broke the emsdk CI because we build binaryen on bionic there which is stuck on 3.10.2: https://packages.ubuntu.com/bionic/cmake We do use `add_link_options` but only when EMSCRIPTEN is defined which doesn't effect normal desktop builds.
* Consistent lowercase keyword/methods in CMakeLists.txt (#3514)Sam Clegg2021-01-251-20/+20
| | | Followup on original conversion done in #2495.
* Enable LTO on the Linux Clang build on CI (#3491)Derek Schuff2021-01-141-1/+1
| | | Also adjust the check for Clang to also match AppleClang
* Add support for building with thinLTO (#3484)Derek Schuff2021-01-141-2/+13
| | | | | Supports Clang, on win/mac/linux. Uses lld on Linux and Windows. I haven't tested yet on Mac, but in theory it should work.
* Fix #3481 (#3482)Cheng Shao2021-01-111-1/+1
|
* version_99 (#3478)Alon Zakai2021-01-091-1/+1
|
* Improve lit support (#3426)Sam Clegg2020-12-091-0/+2
| | | | | | | | This uses the same technique used in llvm-lit to enable running on in-tree tests with out-of-tree builds. So you can run something like this: ../binaryen-out/bin/binaryen-lit test/lit/
* Initial wasm-split tool (#3359)Thomas Lively2020-11-191-0/+1
| | | | | | | | | | | | | Implement an initial version of the wasm-split tool, which splits modules into a primary module and a secondary module that can be instantiated after the primary module. Eventually, this tool will be able to not only split modules, but also instrument modules to collect profiles that will be able to guide later splitting. In this initial version, however, wasm-split can neither perform instrumentation nor consume any kind of profile data. Despite those shortcomings, this initial version of the tool is already able to perform module splitting according to function lists manually provided by the user via the command line. Follow-up PRs will implement the stubbed out instrumentation and profile consumption functionality.
* Introduce lit/FileCheck tests (#3367)Thomas Lively2020-11-181-0/+3
| | | | | | | | | | | | | | | lit and FileCheck are the tools used to run the majority of tests in LLVM. Each lit test file contains the commands to be run for that test, so lit tests are much more flexible and can be more precise than our current ad hoc testing system. FileCheck reads expected test output from comments, so it allows test output to be written alongside and interspersed with test input, making tests more readable and precise than in our current system. This PR adds a new suite to check.py that runs lit tests in the test/lit directory. A few tests have been ported to demonstrate the features of the new test runner. This change is motivated by a need for greater flexibility in testing wasm-split. See #3359.
* build/linux: more correct rpath handling (#3331)Andrei Alexeyev2020-11-121-1/+1
| | | | | Don't hardcode `lib`, it's incorrect for many systems (e.g. `lib64` is common on some x86_64 distros like openSUSE). Use CMAKE_INSTALL_LIBDIR instead.
* Fix MinGW build & add to GitHub Actions (#3287)Blaine Bublitz2020-10-261-0/+1
| | | | - Add a MinGW CI build - Add compiler flag to successfully build on MinGW
* Build without RTTI (#3280)Max Graey2020-10-231-0/+1
| | | This improves binary size, for example shrinking binaryen.dylib on MacOS by half a megabyte.
* Release 98 (#3234)Sam Clegg2020-10-131-1/+1
|
* Restore minification in emscripten builds (#3173)Alon Zakai2020-09-281-5/+4
| | | The emscripten bug has been fixed in emscripten-core/emscripten#12329
* Fix emcc lto flags (#3166)Sam Clegg2020-09-241-11/+4
|
* Stop minifying wasm2js temporarily until we fix the minification (#3165)Alon Zakai2020-09-231-4/+5
|
* Improve testing on Windows (#3142)Wouter van Oortmerssen2020-09-171-0/+8
| | | | | | This PR contains: - Changes that enable/disable tests on Windows to allow for better local testing. - Also changes many abort() into Fatal() when it is really just exiting on error. This is because abort() generates a dialog window on Windows which is not great in automated scripts. - Improvements to CMake to better work with the project in IDEs (VS).
* Release 97 (#3140)Sam Clegg2020-09-171-1/+1
|
* Stay on C++14 for now (#3108)Daniel Wirtz2020-09-081-1/+1
| | | | | Switch us back to C++ standard support to 14 (for now), so we can easily upgrade again once the autoroller issues are resolved (atm the chromium roller does not have a libc++ with c++17 support).
* Upgrade to C++17 (#3103)Daniel Wirtz2020-09-061-4/+8
|
* Remove test code from CMakeLists.txt (#3056)Alon Zakai2020-08-181-15/+0
| | | | | | It was apparently not being run anymore since it referred to a file that was removed with asm2wasm. I suspect when we changed CI we didn't keep running these. Anyhow they were just useful for windows, which we have a lot more testing for now.
* Remove asm2wasm (#3042)Alon Zakai2020-08-171-1/+0
| | | | | | | Now that fastcomp has been removed from Emscripten, there is no need for the asm2wasm tool which it used to compile fastcomp's asm.js output to wasm. See emscripten-core/emscripten#11860
* Release 96 (#3040)Alon Zakai2020-08-131-1/+1
|
* binaryen.js: use ECMASCRIPT6 for Closure Compiler (#2990)Max Graey2020-07-291-1/+3
|
* Version 95 (#2967)Sam Clegg2020-07-201-1/+1
|