retdec/.travis.yml

65 lines
1.8 KiB
YAML
Raw Normal View History

2018-01-26 15:09:07 +00:00
language: cpp
cache: ccache
matrix:
fast_finish: true
include:
- os: linux
Fix issue #650 (#679) * CMakeLists.txt: bump C++ standard from 14 to 17 * .travis.yml: bump xcode from 8.3 to 11.2 * .appveyor.yml: bump Visual Studio from 2015 to 2017 * README.md: bump various versions related to #650 * CHANGELOG.md: fix #650, add entry for #650. * deps/llvm: do not use LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN This was necessary only for builds on older MS Visual Studios (e.g. 2015). These are no longer supported by RetDec - Visual Studio 2017 is minimum. * appveyor+travis: temporarily enable builds of this branch * src: remove use of std::ptr_fun and std::not1. These were either deprecated or removed in C++17. * .travis.yml: do not upgrade python3 It is already installed and upgraded in the used xcode 11.2. * depspelib: update reference to the c++17 PeLib version. * deps/pelib: update reference to the latest commit in c++17 * deps/pelib: update reference to the latest c++178 fix * deps/yaramod: update reference to v2.12.0 * deps/variant: replace with std::variant and remove * deps/pelib: update reference to the latest master * deps/yaramod: update reference to v2.12.1 * replace Maybe implementations with C++17 std::optional * utils/filesystem_path: remove utils/value include * add missing <optional> includes * tests/capstone2llvmir: replace deprecated macros with new ones replace INSTANTIATE_TEST_CASE_P with INSTANTIATE_TEST_SUITE_P * tests/llvmir2hll: fix "assign to itself" warnings * llvmir2hll/graphs: replace deprecated use of std::iterator * .travis.yml: move from Ubuntu Xenial to Bionic * deps/rapidjson: define RAPIDJSON_NOMEMBERITERATORCLASS
2019-11-19 16:59:02 +00:00
dist: bionic
2018-01-26 15:09:07 +00:00
addons:
apt:
packages:
- build-essential
- gcc-multilib
2018-01-26 15:09:07 +00:00
- autoconf
- automake
- libtool
- pkg-config
- m4
- zlib1g-dev
- openssl
env:
- MATRIX_EVAL="NPROC=$(nproc)"
2018-01-26 15:09:07 +00:00
# We need this so that ccache does not cause compilation errors.
# e.g. retdec/tests/utils/string_tests.cpp:276:2: error: stray '\' in program
- CCACHE_CPP2=true
before_script:
- eval "${MATRIX_EVAL}"
script:
- mkdir build && cd build
# We use "-O0" to speed up the build.
# "-O0" causes segfaults in LLVM if we do not use "-DNDEBUG" as well.
- cmake -DCMAKE_CXX_FLAGS_RELEASE="-O0 -DNDEBUG" -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX="$(pwd)/install" -DRETDEC_COMPILE_YARA=OFF ..
- if [ "$TRAVIS_OS_NAME" = "linux" ]; then cmake -DCMAKE_LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/7/ .. ; fi
- time make install -j $NPROC
# Check that install is movable and that it does not need the build directory.
- mv install ../retdec-install
- cd ..
- rm -rf build
# Run the decompilation script.
Retdec is a library now (#779) * llvmir-emul: do not include llvm/Support/PluginLoader.h This must not be included in a library. * bin2llvmirtool: simplify * llvmir2hlltool: do not include llvm/Support/PluginLoader.h It is not needed and it is dangerous because it contains "load" option which can be included only once. * bin2llvmir/providers/config: use params output file to generate config * config/parameters: add more params * bin2llvmir: add config-generator pass * retdec/retdec: add super ugly decompilation API * stacofin: stricter signature filtering This is still very shitty. A better solution would be using some metadata in signature files - not the current signature-file-path-based filtering. * progress: all test from "integration.ack" work * progress * progress * do not manually create passes in code, use just the pass list * create LlvmIr2Hll pass in llvmir2hll lib * progress * add decompiler-config.json * aggregate LLVM passes * add -k option * bin2llvmir/config: fix Config::empty() * bin2llvmir/unreahable_funcs: use params to disable opt * retdec-decompiler: add more command line options * progress * all regression tests pass * src/configtool: remove, not needed anymore * config: remove isFromIda flag * config: remove unused exceptions * configL fix exceptions * config: remove frontend version entry * config: remove some duplicate values * config: refactor * config: refactor * bin2llvmir: fix #301, fix #750, proper removal of artificial undef functions * deps/llvm: update ref to fix gcc 10 compilation error * deps/llvm: enable exeptions and RTTI * progress * remove debug msgs * tests/debugformat_tests: fix compilation * replace retdec-decompiler.py with retdec-decompiler * retdec-decompiler: return decompilation error code * tests/bin2llvmir/unreachable_funcs: fix JSON configs * progress * llvmir2hll: remove code specific for Python output HLL * llvmir2hll: fix JSON output generation * progress * progress * progress * remove bin2llvmirtool and llvmir2hlltool * refactor * tests/bin2llvmir/x87_fpu: fix compilation * unpackertool: do not build unpaker plugins separatelly * scripts: return retdec-fileinfo.py back, some reg tests need it * bin2llvmir: fix doxygen warnings * set CMAKE_POSITION_INDEPENDENT_CODE and propagate it to deps * Win: macOS: link llvmir2hll to decompiler target * bin2llvmir/lti: fix pat filtering on windows * retdec-decompiler: increase windows stack size Co-authored-by: Peter Kubov <peter.kubov@avast.com>
2020-06-05 05:42:46 +00:00
- retdec-install/bin/retdec-decompiler --help
# Run a simple decompilation.
- echo -e '#include <stdio.h>\n#include <stdlib.h>\nint main()\n{\n printf("hello world\\n");\n return 0;\n}\n' > hello-orig.c
- cat hello-orig.c
- gcc -o hello hello-orig.c
- ./hello
Retdec is a library now (#779) * llvmir-emul: do not include llvm/Support/PluginLoader.h This must not be included in a library. * bin2llvmirtool: simplify * llvmir2hlltool: do not include llvm/Support/PluginLoader.h It is not needed and it is dangerous because it contains "load" option which can be included only once. * bin2llvmir/providers/config: use params output file to generate config * config/parameters: add more params * bin2llvmir: add config-generator pass * retdec/retdec: add super ugly decompilation API * stacofin: stricter signature filtering This is still very shitty. A better solution would be using some metadata in signature files - not the current signature-file-path-based filtering. * progress: all test from "integration.ack" work * progress * progress * do not manually create passes in code, use just the pass list * create LlvmIr2Hll pass in llvmir2hll lib * progress * add decompiler-config.json * aggregate LLVM passes * add -k option * bin2llvmir/config: fix Config::empty() * bin2llvmir/unreahable_funcs: use params to disable opt * retdec-decompiler: add more command line options * progress * all regression tests pass * src/configtool: remove, not needed anymore * config: remove isFromIda flag * config: remove unused exceptions * configL fix exceptions * config: remove frontend version entry * config: remove some duplicate values * config: refactor * config: refactor * bin2llvmir: fix #301, fix #750, proper removal of artificial undef functions * deps/llvm: update ref to fix gcc 10 compilation error * deps/llvm: enable exeptions and RTTI * progress * remove debug msgs * tests/debugformat_tests: fix compilation * replace retdec-decompiler.py with retdec-decompiler * retdec-decompiler: return decompilation error code * tests/bin2llvmir/unreachable_funcs: fix JSON configs * progress * llvmir2hll: remove code specific for Python output HLL * llvmir2hll: fix JSON output generation * progress * progress * progress * remove bin2llvmirtool and llvmir2hlltool * refactor * tests/bin2llvmir/x87_fpu: fix compilation * unpackertool: do not build unpaker plugins separatelly * scripts: return retdec-fileinfo.py back, some reg tests need it * bin2llvmir: fix doxygen warnings * set CMAKE_POSITION_INDEPENDENT_CODE and propagate it to deps * Win: macOS: link llvmir2hll to decompiler target * bin2llvmir/lti: fix pat filtering on windows * retdec-decompiler: increase windows stack size Co-authored-by: Peter Kubov <peter.kubov@avast.com>
2020-06-05 05:42:46 +00:00
- retdec-install/bin/retdec-decompiler hello
- cat hello.c
- grep "int main(int argc, char \*\* argv)" hello.c
2018-01-26 15:09:07 +00:00
branches:
only:
# Pushes and PRs to the master branch.
- master
# Version tags.
- /^v?\d+\.\d+.*$/
Fix issue #650 (#679) * CMakeLists.txt: bump C++ standard from 14 to 17 * .travis.yml: bump xcode from 8.3 to 11.2 * .appveyor.yml: bump Visual Studio from 2015 to 2017 * README.md: bump various versions related to #650 * CHANGELOG.md: fix #650, add entry for #650. * deps/llvm: do not use LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN This was necessary only for builds on older MS Visual Studios (e.g. 2015). These are no longer supported by RetDec - Visual Studio 2017 is minimum. * appveyor+travis: temporarily enable builds of this branch * src: remove use of std::ptr_fun and std::not1. These were either deprecated or removed in C++17. * .travis.yml: do not upgrade python3 It is already installed and upgraded in the used xcode 11.2. * depspelib: update reference to the c++17 PeLib version. * deps/pelib: update reference to the latest commit in c++17 * deps/pelib: update reference to the latest c++178 fix * deps/yaramod: update reference to v2.12.0 * deps/variant: replace with std::variant and remove * deps/pelib: update reference to the latest master * deps/yaramod: update reference to v2.12.1 * replace Maybe implementations with C++17 std::optional * utils/filesystem_path: remove utils/value include * add missing <optional> includes * tests/capstone2llvmir: replace deprecated macros with new ones replace INSTANTIATE_TEST_CASE_P with INSTANTIATE_TEST_SUITE_P * tests/llvmir2hll: fix "assign to itself" warnings * llvmir2hll/graphs: replace deprecated use of std::iterator * .travis.yml: move from Ubuntu Xenial to Bionic * deps/rapidjson: define RAPIDJSON_NOMEMBERITERATORCLASS
2019-11-19 16:59:02 +00:00
# Temporarily enable build of this branch.
- issue-650
2018-01-26 15:09:07 +00:00
notifications:
email:
on_success: never