From 8fea90b2f7c3facc589e97330393d443ea37c812 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Sun, 5 Apr 2020 16:50:56 +0200 Subject: [PATCH] New build system (#730) * something working * progress * progress * progress * cmake: fix common and add ctypes * src/serdes: new build system * new build system for pdbparser * new build system for yaracpp * new build system for crypto component * new build system for config * refactor cmake for retdec-configtool * new build system for idr2pat * new build system for ar-extractor and its LLVM dependency * refactor the new build system * new build for ar-extractortool * new build system for macho-extractor and macho-extractortool * new build for ctypesparser, demangler, and demanglertool * new build for llvm-support and llvmir-emul * new build for capstone2llvmir and capstone2llvmirtool * new build for fileformat, loader, cpdetect, fileinfo * new build for most remaining modules * cmake/options.cmake: fix debugformat enable settings * some build system fixes * cmake/options.cmake: make RETDEC_ENABLE_ALL into option this allows us to set it to ODD and build only documentation * tests: new build system for unit tests * pelib: fix doxygen comment * retdec/retdec: remove unused include of llvm-support/diagnostics.h * fileformat: do not include openssl in headers * cmake: make install paths relative. When they are absolute, then all the paths in instaled cmake scripts are absolute - install dir could not be moved. * deps/yara: refactor cmake to properly install libs * deps/yara: small cosmetic changes * deps/llvm: refactor cmake to properly install libs * deps/capstone: refactor cmake to properly install libs * deps: refactor cmake files * deps: refactor cmake files * deps/yaramod: refactor cmake to properly install libs * CMakeLists.txt: fix files installation * config/retdec-config-config.cmake: fix required component order Looks like this may matter (on some machines or cmake version). * deps/llvm: fix include installation * fileformat/cmake: do not use openssl-crypto For some reasons, this can cause linking problems on some machines. * deps/yaramod: fix link library order * deps/googletests: fix target link library order * rtti-finder: make deps PUBLIC. I have no idea why it doesn't work with PRIVATE. * deps/yaramod: fix formatting * cmake: more refactorization... 1. Protect against including the same target file multiple times. It looks like this was not a problem, but who knows. 2. Use find_package() instead of find_dependency(). It looks like the later does not work correctly for components on some CMake versions. * cmake: do not create version files for all components Only the main RetDec version file is needed. * cmake: propagate current project version to package config files It is used to find the same version retdec components. * CMakeLists.txt: replace AnyNewerVersion -> ExactVersion in compatibility settings Since we probably will make breaking changes, make retdec installation compatible only with the same version. * cmake: remove all COMPONENT options, these are not really needed * cmake: move dependency finders inside double target protection conditions * cmake: prefix all deps targets with retdec::deps:: * fileinfo: add openssl-crypto dep * Revert "fileinfo: add openssl-crypto dep" This reverts commit e1645d7fd5e81d1606c96752da3ac633c38a63e1. * remove RETDEC_FORCE_OPENSSL_BUILD option, always build OpenSSL * cmake: refactorization * deps/whereami: fix include paths * deps/tinyxml+whereami: fix included dirs * deps/yaramod: fix pog_fmt lib installation * deps/whereami: properly install target, not as part of utils. Previous version should work, but there is a CMake bug in older versions which screws it up on Windows and macOS. * crypto: link retdec::deps::openssl-crypto as PUBLIC * bin2llvmir/providers/debugformat: fix segfault Co-authored-by: Peter Matula --- CMakeLists.txt | 69 +++++- README.md | 2 - cmake/options.cmake | 21 +- deps/CMakeLists.txt | 16 +- deps/capstone/CMakeLists.txt | 84 +++++-- deps/capstone/retdec-capstone-config.cmake | 12 + deps/elfio/CMakeLists.txt | 35 ++- deps/elfio/retdec-elfio-config.cmake | 4 + deps/googletest/CMakeLists.txt | 88 +++++--- deps/keystone/CMakeLists.txt | 26 ++- deps/llvm/CMakeLists.txt | 122 +++++++--- deps/llvm/retdec-llvm-config.cmake | 20 ++ deps/openssl/CMakeLists.txt | 106 ++++++--- .../retdec-openssl-crypto-config.cmake | 13 ++ deps/rapidjson/CMakeLists.txt | 39 +++- deps/rapidjson/retdec-rapidjson-config.cmake | 4 + deps/tinyxml2/CMakeLists.txt | 42 +++- .../{ => include/tinyxml2}/tinyxml2.h | 0 deps/tinyxml2/retdec-tinyxml2-config.cmake | 4 + deps/whereami/CMakeLists.txt | 41 +++- .../{ => include/whereami}/whereami.h | 0 deps/whereami/retdec-whereami-config.cmake | 4 + deps/yara/CMakeLists.txt | 213 +++++++++++------- deps/yara/retdec-libyara-config.cmake | 13 ++ deps/yaramod/CMakeLists.txt | 116 +++++++--- deps/yaramod/retdec-yaramod-config.cmake | 15 ++ doc/doxygen/CMakeLists.txt | 12 +- .../retdec/bin2llvmir/providers/debugformat.h | 1 + .../retdec/bin2llvmir/providers/demangler.h | 2 + include/retdec/bin2llvmir/utils/ctypes2llvm.h | 2 +- include/retdec/common/object.h | 17 +- include/retdec/config/parameters.h | 6 +- include/retdec/cpdetect/compiler_factory.h | 5 +- include/retdec/crypto/hash_context.h | 4 +- include/retdec/debugformat/debugformat.h | 6 +- .../ast_ctypes_parser.h | 10 +- .../borland_ast_ctypes_parser.h | 10 +- include/retdec/demangler/borland_ast_parser.h | 2 +- .../itanium_ast_ctypes_parser.h | 10 +- .../ms_ast_ctypes_parser.h | 12 +- .../fileformat/file_format/pe/pe_format.h | 3 + .../types/certificate_table/certificate.h | 3 +- include/retdec/pelib/BoundImportDirectory.h | 4 +- include/retdec/pelib/ComHeaderDirectory.h | 2 +- include/retdec/pelib/DebugDirectory.h | 2 +- include/retdec/pelib/DelayImportDirectory.h | 4 +- include/retdec/pelib/ExportDirectory.h | 2 +- include/retdec/pelib/IatDirectory.h | 4 +- include/retdec/pelib/ImportDirectory.h | 4 +- include/retdec/pelib/MzHeader.h | 2 +- include/retdec/pelib/PeFile.h | 32 +-- include/retdec/pelib/PeHeader.h | 5 +- include/retdec/pelib/PeLib.h | 2 +- include/retdec/pelib/PeLibAux.h | 4 +- include/retdec/pelib/PeLibInc.h | 2 +- include/retdec/pelib/RelocationsDirectory.h | 2 +- include/retdec/pelib/ResourceDirectory.h | 4 +- include/retdec/pelib/SecurityDirectory.h | 2 +- include/retdec/pelib/TlsDirectory.h | 2 +- include/retdec/stacofin/stacofin.h | 1 - include/retdec/utils/binary_path.h | 2 - include/retdec/yaracpp/doxygen.h | 2 +- include/retdec/yaracpp/types/yara_match.h | 5 +- include/retdec/yaracpp/types/yara_meta.h | 5 +- include/retdec/yaracpp/types/yara_rule.h | 5 +- .../yaracpp/yara_detector/yara_detector.h | 11 +- retdec-config.cmake | 5 + scripts/CMakeLists.txt | 43 +++- src/ar-extractor/CMakeLists.txt | 55 ++++- .../retdec-ar-extractor-config.cmake | 12 + src/ar-extractortool/CMakeLists.txt | 23 +- src/bin2llvmir/CMakeLists.txt | 75 ++++-- src/bin2llvmir/providers/debugformat.cpp | 2 +- src/bin2llvmir/providers/demangler.cpp | 5 + src/bin2llvmir/retdec-bin2llvmir-config.cmake | 22 ++ src/bin2llvmirtool/CMakeLists.txt | 52 +++-- src/bin2pat/CMakeLists.txt | 22 +- src/capstone2llvmir/CMakeLists.txt | 58 ++++- .../retdec-capstone2llvmir-config.cmake | 12 + src/capstone2llvmirtool/CMakeLists.txt | 23 +- src/common/CMakeLists.txt | 51 ++++- src/common/retdec-common-config.cmake | 9 + src/config/CMakeLists.txt | 58 ++++- src/config/retdec-config-config.cmake | 13 ++ src/configtool/CMakeLists.txt | 21 +- src/cpdetect/CMakeLists.txt | 61 ++++- .../compiler_detector/compiler_detector.cpp | 2 +- .../heuristics/pe_heuristics.cpp | 2 +- src/cpdetect/compiler_factory.cpp | 4 +- src/cpdetect/retdec-cpdetect-config.cmake | 14 ++ src/crypto/CMakeLists.txt | 54 ++++- src/crypto/hash_context.cpp | 2 + src/crypto/retdec-crypto-config.cmake | 12 + src/ctypes/CMakeLists.txt | 52 ++++- src/ctypes/retdec-ctypes-config.cmake | 10 + src/ctypesparser/CMakeLists.txt | 59 ++++- .../retdec-ctypesparser-config.cmake | 12 + src/debugformat/CMakeLists.txt | 62 ++++- src/debugformat/debugformat.cpp | 7 +- .../retdec-debugformat-config.cmake | 15 ++ src/demangler/CMakeLists.txt | 62 ++++- .../ast_ctypes_parser.cpp | 6 +- .../borland_ast_ctypes_parser.cpp | 10 +- src/demangler/borland_demangler.cpp | 14 +- .../itanium_ast_ctypes_parser.cpp | 10 +- src/demangler/itanium_demangler_adapter.cpp | 12 +- src/demangler/microsoft_demangler_adapter.cpp | 16 +- .../ms_ast_ctypes_parser.cpp | 10 +- src/demangler/retdec-demangler-config.cmake | 11 + src/demanglertool/CMakeLists.txt | 21 +- src/fileformat/CMakeLists.txt | 63 +++++- src/fileformat/retdec-fileformat-config.cmake | 15 ++ .../types/certificate_table/certificate.cpp | 1 + src/fileinfo/CMakeLists.txt | 47 ++-- src/fileinfo/file_detector/coff_detector.cpp | 2 + src/fileinfo/file_detector/coff_detector.h | 2 + .../file_detector/detector_factory.cpp | 2 + src/fileinfo/file_detector/detector_factory.h | 2 + src/fileinfo/file_detector/elf_detector.cpp | 2 + src/fileinfo/file_detector/elf_detector.h | 2 + src/fileinfo/file_detector/file_detector.cpp | 4 +- src/fileinfo/file_detector/file_detector.h | 2 + .../file_detector/intel_hex_detector.cpp | 2 + .../file_detector/intel_hex_detector.h | 2 + src/fileinfo/file_detector/macho_detector.cpp | 2 + src/fileinfo/file_detector/macho_detector.h | 2 + src/fileinfo/file_detector/pe_detector.cpp | 2 + src/fileinfo/file_detector/pe_detector.h | 2 + .../file_detector/raw_data_detector.cpp | 2 + .../file_detector/raw_data_detector.h | 2 + .../file_information/file_information.cpp | 2 + .../file_information/file_information.h | 2 + .../certificate_table.cpp | 2 + .../certificate_table.h | 2 + .../file_information_types/data_directory.cpp | 2 + .../file_information_types/data_directory.h | 2 + .../file_information_types/dotnet_info.cpp | 2 + .../file_information_types/dotnet_info.h | 2 + .../dynamic_section/dynamic_entry.cpp | 2 + .../dynamic_section/dynamic_entry.h | 2 + .../dynamic_section/dynamic_section.cpp | 2 + .../dynamic_section/dynamic_section.h | 2 + .../file_information_types/elf_core.cpp | 2 + .../file_information_types/elf_core.h | 2 + .../file_information_types/elf_notes.cpp | 2 + .../file_information_types/elf_notes.h | 2 + .../file_information_types/export_table.cpp | 2 + .../file_information_types/export_table.h | 2 + .../file_information_types/file_header.cpp | 2 + .../file_information_types/file_header.h | 2 + .../file_information_types/file_section.cpp | 2 + .../file_information_types/file_section.h | 2 + .../file_information_types/file_segment.cpp | 2 + .../file_information_types/file_segment.h | 2 + .../file_information_types/flags.cpp | 2 + .../file_information_types/flags.h | 2 + .../file_information_types/import_table.cpp | 2 + .../file_information_types/import_table.h | 2 + .../file_information_types/loader_info.cpp | 2 + .../file_information_types/loader_info.h | 2 + .../pattern/pattern.cpp | 2 + .../file_information_types/pattern/pattern.h | 2 + .../pattern/pattern_match.cpp | 2 + .../pattern/pattern_match.h | 2 + .../file_information_types/pdb_info.cpp | 2 + .../file_information_types/pdb_info.h | 2 + .../relocation_table/relocation.cpp | 2 + .../relocation_table/relocation.h | 2 + .../relocation_table/relocation_table.cpp | 2 + .../relocation_table/relocation_table.h | 2 + .../resource_table/resource.cpp | 2 + .../resource_table/resource.h | 2 + .../resource_table/resource_table.cpp | 2 + .../resource_table/resource_table.h | 2 + .../file_information_types/rich_header.cpp | 2 + .../file_information_types/rich_header.h | 2 + .../special_information.cpp | 2 + .../special_information.h | 2 + .../file_information_types/strings.cpp | 2 + .../file_information_types/strings.h | 2 + .../symbol_table/symbol.cpp | 2 + .../symbol_table/symbol.h | 2 + .../symbol_table/symbol_table.cpp | 2 + .../symbol_table/symbol_table.h | 2 + .../file_information_types/tls_info.cpp | 2 + .../file_information_types/tls_info.h | 2 + .../type_conversions.cpp | 2 + .../file_information_types/type_conversions.h | 2 + .../visual_basic_info.cpp | 2 + .../visual_basic_info.h | 2 + .../file_presentation/config_presentation.cpp | 2 + .../file_presentation/config_presentation.h | 2 + .../file_presentation/file_presentation.cpp | 2 + .../file_presentation/file_presentation.h | 2 + .../file_presentation/getters/format.cpp | 2 + .../file_presentation/getters/format.h | 2 + .../anomalies_plain_getter.cpp | 2 + .../anomalies_plain_getter.h | 2 + .../data_directory_plain_getter.cpp | 2 + .../data_directory_plain_getter.h | 2 + .../dynamic_sections_plain_getter.cpp | 2 + .../dynamic_sections_plain_getter.h | 2 + .../elf_auxv_plain_getter.cpp | 2 + .../elf_auxv_plain_getter.h | 2 + .../elf_core_map_plain_getter.cpp | 2 + .../elf_core_map_plain_getter.h | 2 + .../elf_notes_plain_getter.cpp | 2 + .../elf_notes_plain_getter.h | 2 + .../export_table_plain_getter.cpp | 2 + .../export_table_plain_getter.h | 2 + .../import_table_plain_getter.cpp | 2 + .../import_table_plain_getter.h | 2 + .../iterative_distribution_getter.cpp | 2 + .../iterative_distribution_getter.h | 2 + .../loader_info_plain_getter.cpp | 2 + .../loader_info_plain_getter.h | 2 + .../missing_deps_plain_getter.cpp | 2 + .../missing_deps_plain_getter.h | 2 + .../pattern_matches_plain_getter.cpp | 2 + .../pattern_matches_plain_getter.h | 2 + .../relocation_tables_plain_getter.cpp | 2 + .../relocation_tables_plain_getter.h | 2 + .../resource_plain_getter.cpp | 2 + .../resource_plain_getter.h | 2 + .../rich_header_plain_getter.cpp | 2 + .../rich_header_plain_getter.h | 2 + .../section_plain_getter.cpp | 2 + .../section_plain_getter.h | 2 + .../segment_plain_getter.cpp | 2 + .../segment_plain_getter.h | 2 + .../strings_plain_getter.cpp | 2 + .../strings_plain_getter.h | 2 + .../symbol_tables_plain_getter.cpp | 2 + .../symbol_tables_plain_getter.h | 2 + .../tls_info_plain_getter.cpp | 2 + .../tls_info_plain_getter.h | 2 + .../typeref_table_plain_getter.cpp | 2 + .../typeref_table_plain_getter.h | 2 + ...rsion_info_language_table_plain_getter.cpp | 2 + ...version_info_language_table_plain_getter.h | 2 + ...version_info_string_table_plain_getter.cpp | 2 + .../version_info_string_table_plain_getter.h | 2 + ...visual_basic_extern_table_plain_getter.cpp | 2 + .../visual_basic_extern_table_plain_getter.h | 2 + .../iterative_getter/iterative_getter.cpp | 2 + .../iterative_getter/iterative_getter.h | 2 + .../certificate_table_plain_getter.cpp | 2 + .../certificate_table_plain_getter.h | 2 + .../iterative_simple_getter.cpp | 2 + .../iterative_simple_getter.h | 2 + .../anomalies_json_getter.cpp | 2 + .../anomalies_json_getter.h | 2 + .../data_directory_json_getter.cpp | 2 + .../data_directory_json_getter.h | 2 + .../dynamic_sections_json_getter.cpp | 2 + .../dynamic_sections_json_getter.h | 2 + .../export_table_json_getter.cpp | 2 + .../export_table_json_getter.h | 2 + .../import_table_json_getter.cpp | 2 + .../import_table_json_getter.h | 2 + .../iterative_subtitle_getter.cpp | 2 + .../iterative_subtitle_getter.h | 2 + .../loader_info_json_getter.cpp | 2 + .../loader_info_json_getter.h | 2 + .../missing_deps_json_getter.cpp | 2 + .../missing_deps_json_getter.h | 2 + .../relocation_tables_json_getter.cpp | 2 + .../relocation_tables_json_getter.h | 2 + .../resource_json_getter.cpp | 2 + .../resource_json_getter.h | 2 + .../rich_header_json_getter.cpp | 2 + .../rich_header_json_getter.h | 2 + .../section_json_getter.cpp | 2 + .../section_json_getter.h | 2 + .../segment_json_getter.cpp | 2 + .../segment_json_getter.h | 2 + .../strings_json_getter.cpp | 2 + .../strings_json_getter.h | 2 + .../symbol_tables_json_getter.cpp | 2 + .../symbol_tables_json_getter.h | 2 + .../typeref_table_json_getter.cpp | 2 + .../typeref_table_json_getter.h | 2 + .../pattern_config_getter.cpp | 2 + .../pattern_config_getter.h | 2 + .../simple_getter/basic_json_getter.cpp | 2 + .../getters/simple_getter/basic_json_getter.h | 2 + .../simple_getter/basic_plain_getter.cpp | 2 + .../simple_getter/basic_plain_getter.h | 2 + .../simple_getter/dotnet_plain_getter.cpp | 2 + .../simple_getter/dotnet_plain_getter.h | 2 + .../simple_getter/entry_point_json_getter.cpp | 2 + .../simple_getter/entry_point_json_getter.h | 2 + .../simple_getter/header_json_getter.cpp | 2 + .../simple_getter/header_json_getter.h | 2 + .../simple_getter/header_plain_getter.cpp | 2 + .../simple_getter/header_plain_getter.h | 2 + .../getters/simple_getter/pdb_json_getter.cpp | 2 + .../getters/simple_getter/pdb_json_getter.h | 2 + .../simple_getter/pdb_plain_getter.cpp | 2 + .../getters/simple_getter/pdb_plain_getter.h | 2 + .../getters/simple_getter/simple_getter.cpp | 2 + .../getters/simple_getter/simple_getter.h | 2 + .../visual_basic_plain_getter.cpp | 2 + .../simple_getter/visual_basic_plain_getter.h | 2 + .../file_presentation/json_presentation.cpp | 2 + .../file_presentation/json_presentation.h | 2 + .../file_presentation/plain_presentation.cpp | 2 + .../file_presentation/plain_presentation.h | 2 + src/fileinfo/file_wrapper/coff_wrapper.cpp | 2 + src/fileinfo/file_wrapper/coff_wrapper.h | 2 + src/fileinfo/file_wrapper/elf_wrapper.cpp | 2 + src/fileinfo/file_wrapper/elf_wrapper.h | 2 + src/fileinfo/file_wrapper/macho_wrapper.cpp | 2 + src/fileinfo/file_wrapper/macho_wrapper.h | 2 + src/fileinfo/file_wrapper/pe/pe_template.h | 2 + src/fileinfo/file_wrapper/pe/pe_wrapper.cpp | 2 + src/fileinfo/file_wrapper/pe/pe_wrapper.h | 2 + .../pe_wrapper_parser/pe_wrapper_parser.cpp | 2 + .../pe/pe_wrapper_parser/pe_wrapper_parser.h | 2 + .../pe_wrapper_parser/pe_wrapper_parser32.cpp | 2 + .../pe_wrapper_parser/pe_wrapper_parser32.h | 2 + .../pe_wrapper_parser/pe_wrapper_parser64.cpp | 2 + .../pe_wrapper_parser/pe_wrapper_parser64.h | 2 + src/fileinfo/fileinfo.cpp | 2 +- .../pattern_detector/pattern_detector.cpp | 4 +- .../pattern_detector/pattern_detector.h | 4 + src/getsig/CMakeLists.txt | 21 +- src/idr2pat/CMakeLists.txt | 21 +- src/llvm-support/CMakeLists.txt | 54 ++++- .../retdec-llvm-support-config.cmake | 11 + src/llvmir-emul/CMakeLists.txt | 52 ++++- .../retdec-llvmir-emul-config.cmake | 10 + src/llvmir2hll/CMakeLists.txt | 65 +++++- src/llvmir2hll/retdec-llvmir2hll-config.cmake | 14 ++ src/llvmir2hlltool/CMakeLists.txt | 58 +++-- src/loader/CMakeLists.txt | 55 ++++- src/loader/retdec-loader-config.cmake | 12 + src/macho-extractor/CMakeLists.txt | 56 ++++- .../retdec-macho-extractor-config.cmake | 12 + src/macho-extractortool/CMakeLists.txt | 23 +- src/pat2yara/CMakeLists.txt | 29 ++- src/patterngen/CMakeLists.txt | 55 ++++- src/patterngen/retdec-patterngen-config.cmake | 12 + src/pdbparser/CMakeLists.txt | 41 +++- src/pdbparser/retdec-pdbparser-config.cmake | 4 + src/pelib/BoundImportDirectory.cpp | 4 +- src/pelib/CMakeLists.txt | 41 +++- src/pelib/CoffSymbolTable.cpp | 4 +- src/pelib/ComHeaderDirectory.cpp | 4 +- src/pelib/DebugDirectory.cpp | 4 +- src/pelib/ExportDirectory.cpp | 4 +- src/pelib/IatDirectory.cpp | 2 +- src/pelib/InputBuffer.cpp | 2 +- src/pelib/MzHeader.cpp | 2 +- src/pelib/OutputBuffer.cpp | 2 +- src/pelib/PeFile.cpp | 2 +- src/pelib/PeHeader.cpp | 4 +- src/pelib/PeLibAux.cpp | 6 +- src/pelib/RelocationsDirectory.cpp | 4 +- src/pelib/ResourceDirectory.cpp | 2 +- src/pelib/RichHeader.cpp | 4 +- src/pelib/SecurityDirectory.cpp | 4 +- src/pelib/retdec-pelib-config.cmake | 4 + src/retdec/CMakeLists.txt | 81 ++++--- src/retdec/retdec-retdec-config.cmake | 14 ++ src/retdec/retdec.cpp | 1 - src/retdectool/CMakeLists.txt | 52 +++-- src/rtti-finder/CMakeLists.txt | 55 ++++- .../retdec-rtti-finder-config.cmake | 12 + src/serdes/CMakeLists.txt | 54 ++++- src/serdes/retdec-serdes-config.cmake | 11 + src/stacofin/CMakeLists.txt | 62 ++++- src/stacofin/retdec-stacofin-config.cmake | 15 ++ src/stacofin/stacofin.cpp | 7 +- src/stacofintool/CMakeLists.txt | 22 +- src/unpacker/CMakeLists.txt | 58 ++++- src/unpacker/retdec-unpacker-config.cmake | 10 + src/unpackertool/CMakeLists.txt | 30 ++- src/unpackertool/plugins/CMakeLists.txt | 2 +- .../plugins/example/CMakeLists.txt | 21 +- .../plugins/mpress/CMakeLists.txt | 21 +- src/unpackertool/plugins/upx/CMakeLists.txt | 22 +- src/unpackertool/unpacker.cpp | 6 +- src/utils/CMakeLists.txt | 54 ++++- src/utils/binary_path.cpp | 2 + src/utils/retdec-utils-config.cmake | 10 + src/yaracpp/CMakeLists.txt | 51 ++++- src/yaracpp/retdec-yaracpp-config.cmake | 10 + src/yaracpp/types/yara_match.cpp | 5 +- src/yaracpp/types/yara_meta.cpp | 5 +- src/yaracpp/types/yara_rule.cpp | 5 +- src/yaracpp/yara_detector/yara_detector.cpp | 7 +- support/CMakeLists.txt | 14 +- support/ordinals/CMakeLists.txt | 1 - tests/CMakeLists.txt | 1 - tests/bin2llvmir/CMakeLists.txt | 26 ++- tests/capstone2llvmir/CMakeLists.txt | 42 ++-- tests/common/CMakeLists.txt | 19 +- tests/config/CMakeLists.txt | 21 +- tests/ctypes/CMakeLists.txt | 19 +- tests/ctypesparser/CMakeLists.txt | 22 +- tests/demangler/CMakeLists.txt | 26 ++- .../borland_ast_to_ctypes_tests.cpp | 8 +- .../itanium_ast_to_ctypes_tests.cpp | 8 +- .../ms_ast_to_ctypes_tests.cpp | 8 +- tests/fileformat/CMakeLists.txt | 26 ++- tests/llvmir-emul/CMakeLists.txt | 26 ++- tests/llvmir2hll/CMakeLists.txt | 26 ++- tests/loader/CMakeLists.txt | 24 +- tests/serdes/CMakeLists.txt | 19 +- tests/unpacker/CMakeLists.txt | 19 +- tests/utils/CMakeLists.txt | 19 +- 412 files changed, 3860 insertions(+), 904 deletions(-) create mode 100644 deps/capstone/retdec-capstone-config.cmake create mode 100644 deps/elfio/retdec-elfio-config.cmake create mode 100644 deps/llvm/retdec-llvm-config.cmake create mode 100644 deps/openssl/retdec-openssl-crypto-config.cmake create mode 100644 deps/rapidjson/retdec-rapidjson-config.cmake rename deps/tinyxml2/{ => include/tinyxml2}/tinyxml2.h (100%) create mode 100644 deps/tinyxml2/retdec-tinyxml2-config.cmake rename deps/whereami/{ => include/whereami}/whereami.h (100%) create mode 100644 deps/whereami/retdec-whereami-config.cmake create mode 100644 deps/yara/retdec-libyara-config.cmake create mode 100644 deps/yaramod/retdec-yaramod-config.cmake rename include/retdec/{ctypesparser => demangler}/ast_ctypes_parser.h (80%) rename include/retdec/{ctypesparser => demangler}/borland_ast_ctypes_parser.h (94%) rename include/retdec/{ctypesparser => demangler}/itanium_ast_ctypes_parser.h (93%) rename include/retdec/{ctypesparser => demangler}/ms_ast_ctypes_parser.h (89%) create mode 100644 retdec-config.cmake create mode 100644 src/ar-extractor/retdec-ar-extractor-config.cmake create mode 100644 src/bin2llvmir/retdec-bin2llvmir-config.cmake create mode 100644 src/capstone2llvmir/retdec-capstone2llvmir-config.cmake create mode 100644 src/common/retdec-common-config.cmake create mode 100644 src/config/retdec-config-config.cmake create mode 100644 src/cpdetect/retdec-cpdetect-config.cmake create mode 100644 src/crypto/retdec-crypto-config.cmake create mode 100644 src/ctypes/retdec-ctypes-config.cmake create mode 100644 src/ctypesparser/retdec-ctypesparser-config.cmake create mode 100644 src/debugformat/retdec-debugformat-config.cmake rename src/{ctypesparser => demangler}/ast_ctypes_parser.cpp (94%) rename src/{ctypesparser => demangler}/borland_ast_ctypes_parser.cpp (98%) rename src/{ctypesparser => demangler}/itanium_ast_ctypes_parser.cpp (98%) rename src/{ctypesparser => demangler}/ms_ast_ctypes_parser.cpp (98%) create mode 100644 src/demangler/retdec-demangler-config.cmake create mode 100644 src/fileformat/retdec-fileformat-config.cmake create mode 100644 src/llvm-support/retdec-llvm-support-config.cmake create mode 100644 src/llvmir-emul/retdec-llvmir-emul-config.cmake create mode 100644 src/llvmir2hll/retdec-llvmir2hll-config.cmake create mode 100644 src/loader/retdec-loader-config.cmake create mode 100644 src/macho-extractor/retdec-macho-extractor-config.cmake create mode 100644 src/patterngen/retdec-patterngen-config.cmake create mode 100644 src/pdbparser/retdec-pdbparser-config.cmake create mode 100644 src/pelib/retdec-pelib-config.cmake create mode 100644 src/retdec/retdec-retdec-config.cmake create mode 100644 src/rtti-finder/retdec-rtti-finder-config.cmake create mode 100644 src/serdes/retdec-serdes-config.cmake create mode 100644 src/stacofin/retdec-stacofin-config.cmake create mode 100644 src/unpacker/retdec-unpacker-config.cmake create mode 100644 src/utils/retdec-utils-config.cmake create mode 100644 src/yaracpp/retdec-yaracpp-config.cmake delete mode 100644 support/ordinals/CMakeLists.txt rename tests/{ctypesparser => demangler}/borland_ast_to_ctypes_tests.cpp (98%) rename tests/{ctypesparser => demangler}/itanium_ast_to_ctypes_tests.cpp (98%) rename tests/{ctypesparser => demangler}/ms_ast_to_ctypes_tests.cpp (98%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2d464ba97..21a69b584 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,15 @@ -cmake_minimum_required(VERSION 3.6) +cmake_minimum_required(VERSION 3.8) -project(retdec C CXX) - -include(GNUInstallDirs) +project(retdec + LANGUAGES C CXX + VERSION 4.0 +) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) -include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/utils.cmake) - # Set the default build type to 'Release'. if(NOT CMAKE_BUILD_TYPE) set(default_build_type "Release") @@ -18,11 +17,46 @@ if(NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE "${default_build_type}" CACHE STRING "Choose the type of build." FORCE) endif() +## Includes. +include(GNUInstallDirs) +include(CMakePackageConfigHelpers) +include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/utils.cmake) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/options.cmake) # RetDec, and some dependencies (e.g. LLVM, Keystone), require Python 3. find_package(PythonInterp 3.4 REQUIRED) +### Variables. + +## Repository directories. +set(RETDEC_CMAKE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/cmake") +set(RETDEC_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps") +set(RETDEC_DOC_DIR "${CMAKE_CURRENT_SOURCE_DIR}/doc") +set(RETDEC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") +set(RETDEC_SCRIPTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/scripts") +set(RETDEC_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") +set(RETDEC_SUPPORT_DIR "${CMAKE_CURRENT_SOURCE_DIR}/support") +set(RETDEC_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") +## Installation directories. +# Bins. +set(RETDEC_INSTALL_BIN_DIR "${CMAKE_INSTALL_BINDIR}") +set(RETDEC_INSTALL_BIN_DIR_ABS "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_BIN_DIR}") +set(RETDEC_INSTALL_TESTS_DIR "${RETDEC_INSTALL_BIN_DIR}") +# Includes. +set(RETDEC_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}") +set(RETDEC_INSTALL_DEPS_INCLUDE_DIR "${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps") +# Libs. +set(RETDEC_INSTALL_LIB_DIR "${CMAKE_INSTALL_LIBDIR}") +set(RETDEC_INSTALL_LIB_DIR_ABS "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}") +set(RETDEC_INSTALL_DEPS_LIB_DIR "${RETDEC_INSTALL_LIB_DIR}/deps") +set(RETDEC_INSTALL_DEPS_LIB_DIR_ABS "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_DEPS_LIB_DIR}") +# Data. +set(RETDEC_INSTALL_DATA_DIR "${CMAKE_INSTALL_DATADIR}/retdec") +set(RETDEC_INSTALL_CMAKE_DIR "${RETDEC_INSTALL_DATA_DIR}/cmake") +set(RETDEC_INSTALL_DOC_DIR "${RETDEC_INSTALL_DATA_DIR}/doc") +set(RETDEC_INSTALL_SUPPORT_DIR "${RETDEC_INSTALL_DATA_DIR}/support") +set(RETDEC_INSTALL_SUPPORT_DIR_ABS "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_SUPPORT_DIR}") + # On Linux and macOS, set RPATH relative to the origin of the installed # executables (i.e. relative to the bin directory). This allows us to move the # installation directory into a different location after installation, which is @@ -111,3 +145,26 @@ cond_add_subdirectory(scripts RETDEC_ENABLE_SCRIPTS) add_subdirectory(src) cond_add_subdirectory(support RETDEC_ENABLE_SUPPORT) add_subdirectory(tests) + +# Create config version file. +write_basic_package_version_file( + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY ExactVersion +) + +# Create main RetDec CMake config file. +configure_file( + "${CMAKE_CURRENT_LIST_DIR}/retdec-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config.cmake" + @ONLY +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/README.md b/README.md index 14efccaf9..5f527f73a 100644 --- a/README.md +++ b/README.md @@ -155,7 +155,6 @@ sudo pacman --needed -S base-devel cmake git perl python3 autoconf automake libt * [CMake](https://cmake.org/) (version >= 3.6) * [Git](https://git-scm.com/) * [Active Perl](https://www.activestate.com/activeperl). It needs to be the first Perl in `PATH`, or it has to be provided to CMake using `CMAKE_PROGRAM_PATH` variable, e.g. `-DCMAKE_PROGRAM_PATH=/c/perl/bin`. Does NOT work with Strawberry Perl or MSYS2 Perl (you would have to install a pre-built version of OpenSSL, see below). - * Alternatively, you can install OpenSSL directly from [here](https://slproweb.com/products/Win32OpenSSL.html). This means OpenSSL won't be built and you don't need to install any Perl. Do not install Light version of OpenSSL as they don't contain development files. * [Python](https://www.python.org/) (version >= 3.4) * Optional: [Doxygen](http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.13-setup.exe) and [Graphviz](https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi) for generating API documentation @@ -238,7 +237,6 @@ You can pass the following additional parameters to `cmake`: * `-DRETDEC_DOC=ON` to build with API documentation (requires Doxygen and Graphviz, disabled by default). * `-DRETDEC_TESTS=ON` to build with tests (disabled by default). * `-DRETDEC_DEV_TOOLS=ON` to build with development tools (disabled by default). -* `-DRETDEC_FORCE_OPENSSL_BUILD=ON` to force OpenSSL build even if it is installed in the system (disabled by default). * `-DRETDEC_COMPILE_YARA=OFF` to disable YARA rules compilation at installation step (enabled by default). * `-DCMAKE_BUILD_TYPE=Debug` to build with debugging information, which is useful during development. By default, the project is built in the `Release` mode. This has no effect on Windows, but the same thing can be achieved by running `cmake --build .` with the `--config Debug` parameter. * `-DCMAKE_PROGRAM_PATH=` to use Perl at `` (probably useful only on Windows). diff --git a/cmake/options.cmake b/cmake/options.cmake index be57221eb..4c5dbdace 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -4,7 +4,6 @@ option(RETDEC_DOC "Build public API documentation (requires Doxygen)." OFF) option(RETDEC_TESTS "Build tests." OFF) option(RETDEC_DEV_TOOLS "Build dev tools." OFF) -option(RETDEC_FORCE_OPENSSL_BUILD "Force OpenSSL build." OFF) option(RETDEC_COMPILE_YARA "Compile YARA rules at installation." ON) option(RETDEC_MSVC_STATIC_RUNTIME "Use a multi-threaded statically-linked runtime library." OFF) @@ -59,7 +58,7 @@ include(${PROJECT_SOURCE_DIR}/cmake/deps.cmake) # Default: ALL build is enabled. # -set(RETDEC_ENABLE_ALL ON) +option(RETDEC_ENABLE_ALL "" ON) # Convert target list in RETDEC_ENABLE to RETDEC_ENABLE_ flags. # @@ -298,20 +297,12 @@ set_if_at_least_one_set(RETDEC_ENABLE_DEBUGFORMAT RETDEC_ENABLE_ALL RETDEC_ENABLE_BIN2LLVMIR) -set_if_at_least_one_set(RETDEC_ENABLE_CTYPESPARSER - RETDEC_ENABLE_ALL - RETDEC_ENABLE_BIN2LLVMIR - RETDEC_ENABLE_DEMANGLER) - set_if_at_least_one_set(RETDEC_ENABLE_DEMANGLER RETDEC_ENABLE_ALL RETDEC_ENABLE_BIN2LLVMIR - RETDEC_ENABLE_CTYPESPARSER RETDEC_ENABLE_DEBUGFORMAT RETDEC_ENABLE_DEMANGLERTOOL) -# TODO: second run because demangler and ctypesparser are cyclically dependent. -# This dependency should be avoided. set_if_at_least_one_set(RETDEC_ENABLE_CTYPESPARSER RETDEC_ENABLE_ALL RETDEC_ENABLE_BIN2LLVMIR @@ -322,12 +313,12 @@ set_if_at_least_one_set(RETDEC_ENABLE_CTYPES RETDEC_ENABLE_CTYPESPARSER) set_if_at_least_one_set(RETDEC_ENABLE_PDBPARSER - RETDEC_ENABLE_CPDETECT RETDEC_ENABLE_DEBUGFORMAT) set_if_at_least_one_set(RETDEC_ENABLE_LOADER RETDEC_ENABLE_ALL RETDEC_ENABLE_BIN2LLVMIR + RETDEC_ENABLE_DEBUGFORMAT RETDEC_ENABLE_FILEINFO RETDEC_ENABLE_RTTI_FINDER RETDEC_ENABLE_STACOFIN @@ -339,6 +330,7 @@ set_if_at_least_one_set(RETDEC_ENABLE_FILEFORMAT RETDEC_ENABLE_ALL RETDEC_ENABLE_BIN2LLVMIR RETDEC_ENABLE_CPDETECT + RETDEC_ENABLE_DEBUGFORMAT RETDEC_ENABLE_FILEINFO RETDEC_ENABLE_GETSIG RETDEC_ENABLE_LOADER @@ -362,7 +354,6 @@ set_if_at_least_one_set(RETDEC_ENABLE_CONFIG RETDEC_ENABLE_ALL RETDEC_ENABLE_BIN2LLVMIR RETDEC_ENABLE_CONFIGTOOL - RETDEC_ENABLE_DEBUGFORMAT RETDEC_ENABLE_FILEINFO RETDEC_ENABLE_LLVMIR2HLL RETDEC_ENABLE_STACOFIN) @@ -391,6 +382,7 @@ set_if_at_least_one_set(RETDEC_ENABLE_UTILS RETDEC_ENABLE_BIN2PAT RETDEC_ENABLE_CAPSTONE2LLVMIRTOOL RETDEC_ENABLE_CONFIG + RETDEC_ENABLE_COMMON RETDEC_ENABLE_CRYPTO RETDEC_ENABLE_CTYPES RETDEC_ENABLE_CTYPESPARSER @@ -402,7 +394,7 @@ set_if_at_least_one_set(RETDEC_ENABLE_UTILS RETDEC_ENABLE_LOADER RETDEC_ENABLE_MACHO_EXTRACTOR RETDEC_ENABLE_MACHO_EXTRACTORTOOL - RETDEC_ENABLE_PRETDEC_ENABLE_CPDETECTAT2YARA + RETDEC_ENABLE_CPDETECT RETDEC_ENABLE_PATTERNGEN RETDEC_ENABLE_RTTI_FINDER RETDEC_ENABLE_STACOFIN @@ -518,7 +510,8 @@ set_if_at_least_one_set(RETDEC_ENABLE_RAPIDJSON set_if_at_least_one_set(RETDEC_ENABLE_TINYXML2 RETDEC_ENABLE_TINYXML2 - RETDEC_ENABLE_FILEINFO) + RETDEC_ENABLE_FILEINFO + RETDEC_ENABLE_CPDETECT) set_if_at_least_one_set(RETDEC_ENABLE_VARIANT RETDEC_ENABLE_UTILS) diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 3336b84a8..cf5d8be50 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -1,6 +1,20 @@ + +include(ExternalProject) + +include(ProcessorCount) +ProcessorCount(CPUS) + +if(CMAKE_C_COMPILER) + set(CMAKE_C_COMPILER_OPTION "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") +endif() +if(CMAKE_CXX_COMPILER) + set(CMAKE_CXX_COMPILER_OPTION "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") +endif() + if(MSVC) - set(DEBUG_DIR "Debug/") set(RELEASE_DIR "Release/") + set(DEBUG_DIR "Debug/") + set(DEBUG_LIB_SUFFIX "d") endif() cond_add_subdirectory(capstone RETDEC_ENABLE_CAPSTONE) diff --git a/deps/capstone/CMakeLists.txt b/deps/capstone/CMakeLists.txt index 31dfcaa5d..3ae280dae 100644 --- a/deps/capstone/CMakeLists.txt +++ b/deps/capstone/CMakeLists.txt @@ -1,11 +1,3 @@ -include(ExternalProject) - -if(CMAKE_C_COMPILER) - set(CMAKE_C_COMPILER_OPTION "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") -endif() -if(CMAKE_CXX_COMPILER) - set(CMAKE_CXX_COMPILER_OPTION "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") -endif() if(CAPSTONE_LOCAL_DIR) message(STATUS "Capstone: using local Capstone directory.") @@ -104,10 +96,76 @@ endif() ExternalProject_Get_Property(capstone-project source_dir) ExternalProject_Get_Property(capstone-project binary_dir) -# Add libraries. +set(CAPSTONE_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}capstone${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(CAPSTONE_LIB_DEBUG ${binary_dir}/${DEBUG_DIR}${CAPSTONE_LIB_NAME}) +set(CAPSTONE_LIB_OPT ${binary_dir}/${RELEASE_DIR}${CAPSTONE_LIB_NAME}) + +# Create target. add_library(capstone INTERFACE) +add_library(retdec::deps::capstone ALIAS capstone) add_dependencies(capstone capstone-project) -target_include_directories(capstone SYSTEM INTERFACE ${source_dir}/include) -target_include_directories(capstone SYSTEM INTERFACE ${source_dir}/arch) -target_link_libraries(capstone INTERFACE debug ${binary_dir}/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}capstone${CMAKE_STATIC_LIBRARY_SUFFIX}) -target_link_libraries(capstone INTERFACE optimized ${binary_dir}/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}capstone${CMAKE_STATIC_LIBRARY_SUFFIX}) + +target_include_directories(capstone + SYSTEM INTERFACE + $ + $ + $ +) + +target_link_libraries(capstone INTERFACE + $ + debug + $ + optimized + $ +) + +# Install includes. +install( + DIRECTORY + ${source_dir}/include/ + DESTINATION + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) + +# Install libs. +# Install both Release and Debug variant to the same location. +# We assume that only one variant will be present at the time. +install( + FILES + ${CAPSTONE_LIB_DEBUG} + ${CAPSTONE_LIB_OPT} + DESTINATION + ${RETDEC_INSTALL_DEPS_LIB_DIR} + OPTIONAL +) + +# Install targets. +install(TARGETS capstone + EXPORT capstone-targets +) + +# Export targets. +install(EXPORT capstone-targets + FILE "retdec-capstone-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Configure config file. +set(CAPSTONE_LIB_INSTALLED "${RETDEC_INSTALL_DEPS_LIB_DIR_ABS}/${CAPSTONE_LIB_NAME}") +configure_package_config_file( + "retdec-capstone-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-capstone-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + CAPSTONE_LIB_INSTALLED +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-capstone-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/deps/capstone/retdec-capstone-config.cmake b/deps/capstone/retdec-capstone-config.cmake new file mode 100644 index 000000000..f8bef78f4 --- /dev/null +++ b/deps/capstone/retdec-capstone-config.cmake @@ -0,0 +1,12 @@ +@PACKAGE_INIT@ + +if(NOT TARGET retdec::deps::capstone-libs) + add_library(retdec::deps::capstone-libs STATIC IMPORTED) + set_target_properties(retdec::deps::capstone-libs PROPERTIES + IMPORTED_LOCATION @PACKAGE_CAPSTONE_LIB_INSTALLED@ + ) +endif() + +if(NOT TARGET retdec::deps::capstone) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone-targets.cmake) +endif() diff --git a/deps/elfio/CMakeLists.txt b/deps/elfio/CMakeLists.txt index 099db0e51..912834fb1 100644 --- a/deps/elfio/CMakeLists.txt +++ b/deps/elfio/CMakeLists.txt @@ -1,3 +1,36 @@ add_library(elfio INTERFACE) -target_include_directories(elfio SYSTEM INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include) +add_library(retdec::deps::elfio ALIAS elfio) + +target_include_directories(elfio + SYSTEM INTERFACE + $ + $ +) + +# Install includes. +install( + DIRECTORY ${RETDEC_DEPS_DIR}/elfio/include/ + DESTINATION ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) + +# Install targets. +install(TARGETS elfio + EXPORT elfio-targets + # Header only -> there are no actual libs to install to destination. +) + +# Export targets. +install(EXPORT elfio-targets + FILE "retdec-elfio-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-elfio-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/deps/elfio/retdec-elfio-config.cmake b/deps/elfio/retdec-elfio-config.cmake new file mode 100644 index 000000000..16f3b4239 --- /dev/null +++ b/deps/elfio/retdec-elfio-config.cmake @@ -0,0 +1,4 @@ + +if(NOT TARGET retdec::deps::elfio) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-elfio-targets.cmake) +endif() diff --git a/deps/googletest/CMakeLists.txt b/deps/googletest/CMakeLists.txt index 48bc30217..5e10de499 100644 --- a/deps/googletest/CMakeLists.txt +++ b/deps/googletest/CMakeLists.txt @@ -1,13 +1,5 @@ -find_package(Threads REQUIRED) - -include(ExternalProject) -if(CMAKE_C_COMPILER) - set(CMAKE_C_COMPILER_OPTION "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") -endif() -if(CMAKE_CXX_COMPILER) - set(CMAKE_CXX_COMPILER_OPTION "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") -endif() +find_package(Threads REQUIRED) if(RETDEC_MSVC_STATIC_RUNTIME) set(FORCE_SHARED_RUNTIME OFF) @@ -75,43 +67,67 @@ if(CHANGED) clean_cmake_files(${binary_dir}) endif() -# Set include directories. ExternalProject_Get_Property(googletest source_dir) +ExternalProject_Get_Property(googletest binary_dir) + set(GTEST_INCLUDE_DIR ${source_dir}/googletest/include) set(GMOCK_INCLUDE_DIR ${source_dir}/googlemock/include) -# Add libraries. -ExternalProject_Get_Property(googletest binary_dir) - -if(MSVC) - set(DEBUG_DIR "Debug/") - set(RELEASE_DIR "Release/") - set(DEBUG_LIB_SUFFIX "d") -endif() +# Create targets. +# gtest add_library(gtest INTERFACE) -target_link_libraries(gtest INTERFACE debug ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} Threads::Threads) -target_link_libraries(gtest INTERFACE optimized ${binary_dir}/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} Threads::Threads) -target_include_directories(gtest SYSTEM INTERFACE ${GTEST_INCLUDE_DIR}) +add_library(retdec::deps::gtest ALIAS gtest) add_dependencies(gtest googletest) +target_link_libraries(gtest INTERFACE + debug + ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} + optimized + ${binary_dir}/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX} + general + Threads::Threads +) +target_include_directories(gtest + SYSTEM INTERFACE + $ +) +# gtest_main add_library(gtest_main INTERFACE) -target_link_libraries(gtest_main INTERFACE debug ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} Threads::Threads) -target_link_libraries(gtest_main INTERFACE optimized ${binary_dir}/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX} Threads::Threads) -target_link_libraries(gtest_main INTERFACE gtest) -target_include_directories(gtest_main SYSTEM INTERFACE ${GTEST_INCLUDE_DIR}) -add_dependencies(gtest_main googletest) +add_library(retdec::deps::gtest_main ALIAS gtest_main) +target_link_libraries(gtest_main INTERFACE + debug + ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} + optimized + ${binary_dir}/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX} + general + gtest +) +# gmock add_library(gmock INTERFACE) -target_link_libraries(gmock INTERFACE debug ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} Threads::Threads) -target_link_libraries(gmock INTERFACE optimized ${binary_dir}/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX} Threads::Threads) -target_link_libraries(gmock INTERFACE gtest) -target_include_directories(gmock SYSTEM INTERFACE ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR}) -add_dependencies(gmock googletest) +add_library(retdec::deps::gmock ALIAS gmock) +target_link_libraries(gmock INTERFACE + debug + ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} + optimized + ${binary_dir}/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX} + general + gtest +) +target_include_directories(gmock + SYSTEM INTERFACE + $ +) +# gmock_main add_library(gmock_main INTERFACE) -target_link_libraries(gmock_main INTERFACE debug ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} Threads::Threads) -target_link_libraries(gmock_main INTERFACE optimized ${binary_dir}/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX} Threads::Threads) -target_link_libraries(gmock_main INTERFACE gmock) -target_include_directories(gmock_main SYSTEM INTERFACE ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR}) -add_dependencies(gmock_main googletest) +add_library(retdec::deps::gmock_main ALIAS gmock_main) +target_link_libraries(gmock_main INTERFACE + debug + ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} + optimized + ${binary_dir}/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX} + general + gmock +) diff --git a/deps/keystone/CMakeLists.txt b/deps/keystone/CMakeLists.txt index 6adb0f920..da33f8cbb 100644 --- a/deps/keystone/CMakeLists.txt +++ b/deps/keystone/CMakeLists.txt @@ -1,11 +1,3 @@ -include(ExternalProject) - -if(CMAKE_C_COMPILER) - set(CMAKE_C_COMPILER_OPTION "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") -endif() -if(CMAKE_CXX_COMPILER) - set(CMAKE_CXX_COMPILER_OPTION "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") -endif() if(KEYSTONE_LOCAL_DIR) message(STATUS "Keystone: using local Keystone directory.") @@ -72,9 +64,19 @@ endif() ExternalProject_Get_Property(keystone-project source_dir) ExternalProject_Get_Property(keystone-project binary_dir) -# Add libraries. +# Create target. add_library(keystone INTERFACE) +add_library(retdec::deps::keystone ALIAS keystone) add_dependencies(keystone keystone-project) -target_include_directories(keystone SYSTEM INTERFACE ${source_dir}/include) -target_link_libraries(keystone INTERFACE debug ${binary_dir}/llvm/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX}) -target_link_libraries(keystone INTERFACE optimized ${binary_dir}/llvm/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX}) + +target_include_directories(keystone + SYSTEM INTERFACE + $ +) + +target_link_libraries(keystone INTERFACE + debug + ${binary_dir}/llvm/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX} + optimized + ${binary_dir}/llvm/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX} +) diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index cb752704b..46d9fa852 100644 --- a/deps/llvm/CMakeLists.txt +++ b/deps/llvm/CMakeLists.txt @@ -1,15 +1,9 @@ + find_package(Threads REQUIRED) if(UNIX OR MINGW) find_package(ZLIB REQUIRED) endif() -if(CMAKE_C_COMPILER) - set(CMAKE_C_COMPILER_OPTION "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") -endif() -if(CMAKE_CXX_COMPILER) - set(CMAKE_CXX_COMPILER_OPTION "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") -endif() - # Set the default build type to 'Release' if(NOT CMAKE_BUILD_TYPE) set(default_build_type "Release") @@ -29,10 +23,6 @@ else() set(RT_TYPE "MD") endif() -# Use the ExternalProject module instead of just CMake because we want to build and -# install only some tools from LLVM, not all the libraries and tools. -include(ExternalProject) - if(LLVM_LOCAL_DIR) message(STATUS "LLVM: using local LLVM directory.") @@ -178,12 +168,6 @@ if(CHANGED) clean_cmake_files(${binary_dir}) endif() -# Add libraries. -ExternalProject_Get_Property(llvm-project binary_dir) - -add_library(llvm INTERFACE) -add_dependencies(llvm llvm-project) - set(LLVM_LIB_LIST LLVMDebugInfoDWARF LLVMBitWriter @@ -208,32 +192,104 @@ set(LLVM_LIB_LIST LLVMPasses ) -if(MSVC) - set(DEBUG_DIR "Debug/") - set(RELEASE_DIR "Release/") -endif() +ExternalProject_Get_Property(llvm-project binary_dir) +ExternalProject_Get_Property(llvm-project source_dir) + +# Create target. + +add_library(llvm INTERFACE) +add_library(retdec::deps::llvm ALIAS llvm) +add_dependencies(llvm llvm-project) + +target_include_directories(llvm + SYSTEM INTERFACE + $ + $ + $ +) foreach(LLVM_LIB ${LLVM_LIB_LIST}) - target_link_libraries(llvm INTERFACE debug ${binary_dir}/${DEBUG_DIR}lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX}) - target_link_libraries(llvm INTERFACE optimized ${binary_dir}/${RELEASE_DIR}lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX}) + set(LLVM_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX}) + set(LLVM_LIB_OPT ${binary_dir}/${RELEASE_DIR}lib/${LLVM_LIB_NAME}) + set(LLVM_LIB_DEBUG ${binary_dir}/${DEBUG_DIR}lib/${LLVM_LIB_NAME}) + + target_link_libraries(llvm INTERFACE + optimized + $ + debug + $ + ) + + # Install libs. + # Install both Release and Debug variant to the same location. + # We assume that only one variant will be present at the time. + install( + FILES + ${LLVM_LIB_DEBUG} + ${LLVM_LIB_OPT} + DESTINATION + ${RETDEC_INSTALL_DEPS_LIB_DIR} + OPTIONAL + ) + + list(APPEND LLVM_LIBS_PATHS "${RETDEC_INSTALL_DEPS_LIB_DIR_ABS}/${LLVM_LIB_NAME}") endforeach(LLVM_LIB) -target_link_libraries(llvm INTERFACE debug Threads::Threads) -target_link_libraries(llvm INTERFACE optimized Threads::Threads) +target_link_libraries(llvm + INTERFACE + $ + Threads::Threads +) if(UNIX) set(EXECINFO "") if (${CMAKE_SYSTEM_NAME} MATCHES "BSD") set(EXECINFO "execinfo") endif() - target_link_libraries(llvm INTERFACE debug ${ZLIB_LIBRARIES} ${CMAKE_DL_LIBS} ${EXECINFO}) - target_link_libraries(llvm INTERFACE optimized ${ZLIB_LIBRARIES} ${CMAKE_DL_LIBS} ${EXECINFO}) + target_link_libraries(llvm + INTERFACE + ${ZLIB_LIBRARIES} + ${CMAKE_DL_LIBS} + ${EXECINFO} + ) elseif(MINGW) - target_link_libraries(llvm INTERFACE debug ${ZLIB_LIBRARIES}) - target_link_libraries(llvm INTERFACE optimized ${ZLIB_LIBRARIES}) + target_link_libraries(llvm INTERFACE ${ZLIB_LIBRARIES}) endif() -# Set include directories. -ExternalProject_Get_Property(llvm-project source_dir) -target_include_directories(llvm SYSTEM INTERFACE ${source_dir}/include) -target_include_directories(llvm SYSTEM INTERFACE ${binary_dir}/include) +# Install includes. +install( + DIRECTORY + ${source_dir}/include/ + ${binary_dir}/include/ + DESTINATION + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) + +# Install targets. +install(TARGETS llvm + EXPORT llvm-targets +) + +# Export targets. +install(EXPORT llvm-targets + FILE "retdec-llvm-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Configure config file. +configure_package_config_file( + "retdec-llvm-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvm-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + LLVM_LIBS_PATHS +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvm-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/deps/llvm/retdec-llvm-config.cmake b/deps/llvm/retdec-llvm-config.cmake new file mode 100644 index 000000000..159bab189 --- /dev/null +++ b/deps/llvm/retdec-llvm-config.cmake @@ -0,0 +1,20 @@ +@PACKAGE_INIT@ + +if(NOT TARGET llvm-libs) + add_library(llvm-libs INTERFACE) + add_library(retdec::deps::llvm-libs ALIAS llvm-libs) + foreach(LLVM_LIB @PACKAGE_LLVM_LIBS_PATHS@) + target_link_libraries(llvm-libs INTERFACE + ${LLVM_LIB} + ) + endforeach(LLVM_LIB) +endif() + +if(NOT TARGET retdec::deps::llvm) + find_package(Threads REQUIRED) + if(UNIX OR MINGW) + find_package(ZLIB REQUIRED) + endif() + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-targets.cmake) +endif() diff --git a/deps/openssl/CMakeLists.txt b/deps/openssl/CMakeLists.txt index bfd557ea6..0acc00e92 100644 --- a/deps/openssl/CMakeLists.txt +++ b/deps/openssl/CMakeLists.txt @@ -1,23 +1,7 @@ -if(NOT RETDEC_FORCE_OPENSSL_BUILD) - set(OPENSSL_MSVC_STATIC_RT ${RETDEC_MSVC_STATIC_RUNTIME}) - find_package(OpenSSL 1.0.1) - if(OPENSSL_FOUND) - add_library(openssl-crypto INTERFACE) - target_link_libraries(openssl-crypto INTERFACE OpenSSL::Crypto) - return() - endif() -endif() -message(STATUS " --> OpenSSL will be built as an external project") - find_package(Perl REQUIRED) find_package(Threads REQUIRED) -include(ExternalProject) -include(ProcessorCount) - -ProcessorCount(CPUS) - # Detect architecture. if("${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" OR "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "AMD64") set(ARCH_X64 1) @@ -159,24 +143,84 @@ ExternalProject_Add(openssl LOG_INSTALL 1 ) -set(OPENSSL_INCLUDES - "${OPENSSL_INSTALL_DIR}/include" - PARENT_SCOPE -) +set(OPENSSL_CRYPTO_LIB_NAME libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(OPENSSL_CRYPTO_LIB ${OPENSSL_INSTALL_DIR}/lib/${OPENSSL_CRYPTO_LIB_NAME}) -set(OPENSSL_LIBRARIES - "${OPENSSL_INSTALL_DIR}/lib/libssl${CMAKE_STATIC_LIBRARY_SUFFIX}" - "${OPENSSL_INSTALL_DIR}/lib/libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}" - PARENT_SCOPE +# Create target. +add_library(openssl-crypto INTERFACE) +add_library(retdec::deps::openssl-crypto ALIAS openssl-crypto) +add_dependencies(openssl-crypto openssl) + +target_include_directories(openssl-crypto + SYSTEM INTERFACE + $ + $ ) -add_library(openssl-crypto INTERFACE) -target_include_directories(openssl-crypto SYSTEM INTERFACE "${OPENSSL_INSTALL_DIR}/include") -target_link_libraries(openssl-crypto INTERFACE "${OPENSSL_INSTALL_DIR}/lib/libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}") -target_link_libraries(openssl-crypto INTERFACE Threads::Threads) +target_link_libraries(openssl-crypto + INTERFACE + $ + $ + Threads::Threads +) if(MSVC) - target_link_libraries(openssl-crypto INTERFACE ws2_32 gdi32 advapi32 crypt32 user32) + target_link_libraries(openssl-crypto + INTERFACE + ws2_32 + gdi32 + advapi32 + crypt32 + user32 + ) elseif(UNIX) - target_link_libraries(openssl-crypto INTERFACE ${CMAKE_DL_LIBS}) + target_link_libraries(openssl-crypto + INTERFACE + ${CMAKE_DL_LIBS} + ) endif() -add_dependencies(openssl-crypto openssl) + +# Install includes. +install( + DIRECTORY + ${OPENSSL_INSTALL_DIR}/include/ + DESTINATION + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) + +# Install libs. +install( + FILES + ${OPENSSL_CRYPTO_LIB} + DESTINATION + ${RETDEC_INSTALL_DEPS_LIB_DIR} +) + +# Install targets. +install(TARGETS openssl-crypto + EXPORT openssl-crypto-targets +) + +# Export targets. +install(EXPORT openssl-crypto-targets + FILE "retdec-openssl-crypto-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Configure config file. +set(OPENSSL_CRYPTO_LIB_INSTALLED "${RETDEC_INSTALL_DEPS_LIB_DIR_ABS}/${OPENSSL_CRYPTO_LIB_NAME}") +configure_package_config_file( + "retdec-openssl-crypto-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-openssl-crypto-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + OPENSSL_CRYPTO_LIB_INSTALLED +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-openssl-crypto-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/deps/openssl/retdec-openssl-crypto-config.cmake b/deps/openssl/retdec-openssl-crypto-config.cmake new file mode 100644 index 000000000..1417a3b79 --- /dev/null +++ b/deps/openssl/retdec-openssl-crypto-config.cmake @@ -0,0 +1,13 @@ +@PACKAGE_INIT@ + +if(NOT TARGET retdec::deps::openssl-crypto-libs) + add_library(retdec::deps::openssl-crypto-libs STATIC IMPORTED) + set_target_properties(retdec::deps::openssl-crypto-libs PROPERTIES + IMPORTED_LOCATION @PACKAGE_OPENSSL_CRYPTO_LIB_INSTALLED@ + ) +endif() + +if(NOT TARGET retdec::deps::openssl-crypto) + find_package(Threads REQUIRED) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-openssl-crypto-targets.cmake) +endif() diff --git a/deps/rapidjson/CMakeLists.txt b/deps/rapidjson/CMakeLists.txt index 0e4205425..5e15c5277 100644 --- a/deps/rapidjson/CMakeLists.txt +++ b/deps/rapidjson/CMakeLists.txt @@ -1,11 +1,42 @@ add_library(rapidjson INTERFACE) -target_include_directories(rapidjson - SYSTEM INTERFACE - ${CMAKE_CURRENT_LIST_DIR}/include -) +add_library(retdec::deps::rapidjson ALIAS rapidjson) + target_compile_definitions(rapidjson INTERFACE RAPIDJSON_HAS_STDSTRING=1 RAPIDJSON_HAS_CXX11_RVALUE_REFS=1 ) + +target_include_directories(rapidjson + SYSTEM INTERFACE + $ + $ +) + +# Install includes. +install( + DIRECTORY ${RETDEC_DEPS_DIR}/rapidjson/include/ + DESTINATION ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) + +# Install targets. +install(TARGETS rapidjson + EXPORT rapidjson-targets + # Header only -> there are no actual libs to install to destination. +) + +# Export targets. +install(EXPORT rapidjson-targets + FILE "retdec-rapidjson-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-rapidjson-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/deps/rapidjson/retdec-rapidjson-config.cmake b/deps/rapidjson/retdec-rapidjson-config.cmake new file mode 100644 index 000000000..f01083db4 --- /dev/null +++ b/deps/rapidjson/retdec-rapidjson-config.cmake @@ -0,0 +1,4 @@ + +if(NOT TARGET retdec::deps::rapidjson) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-rapidjson-targets.cmake) +endif() diff --git a/deps/tinyxml2/CMakeLists.txt b/deps/tinyxml2/CMakeLists.txt index 6860c18c4..b5406dcb2 100644 --- a/deps/tinyxml2/CMakeLists.txt +++ b/deps/tinyxml2/CMakeLists.txt @@ -1,6 +1,16 @@ -add_library(tinyxml2 tinyxml2.cpp) -target_include_directories(tinyxml2 SYSTEM PUBLIC ${CMAKE_CURRENT_LIST_DIR}) +add_library(tinyxml2 STATIC + tinyxml2.cpp +) +add_library(retdec::deps::tinyxml2 ALIAS tinyxml2) + +target_include_directories(tinyxml2 + SYSTEM INTERFACE + $ + $ + PRIVATE + $ +) # Disable all warnings from this 3rd party project. if(MSVC) @@ -8,3 +18,31 @@ if(MSVC) else() target_compile_options(tinyxml2 PRIVATE "-w") endif() + +# Install includes. +install( + DIRECTORY ${RETDEC_DEPS_DIR}/tinyxml2/include/ + DESTINATION ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) + +# Install libs. +install(TARGETS tinyxml2 + EXPORT tinyxml2-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_DEPS_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_DEPS_LIB_DIR} +) + +# Export targets. +install(EXPORT tinyxml2-targets + FILE "retdec-tinyxml2-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/deps/tinyxml2/tinyxml2.h b/deps/tinyxml2/include/tinyxml2/tinyxml2.h similarity index 100% rename from deps/tinyxml2/tinyxml2.h rename to deps/tinyxml2/include/tinyxml2/tinyxml2.h diff --git a/deps/tinyxml2/retdec-tinyxml2-config.cmake b/deps/tinyxml2/retdec-tinyxml2-config.cmake new file mode 100644 index 000000000..a1c548bc2 --- /dev/null +++ b/deps/tinyxml2/retdec-tinyxml2-config.cmake @@ -0,0 +1,4 @@ + +if(NOT TARGET retdec::deps::tinyxml2) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-targets.cmake) +endif() diff --git a/deps/whereami/CMakeLists.txt b/deps/whereami/CMakeLists.txt index 2d9de64bd..ed2b24ec9 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -1,6 +1,41 @@ -set(WHEREAMI_SOURCES + +add_library(whereami STATIC whereami.c ) +add_library(retdec::deps::whereami ALIAS whereami) + +target_include_directories(whereami + SYSTEM INTERFACE + $ + $ + PRIVATE + $ +) + +# Install includes. +install( + DIRECTORY ${RETDEC_DEPS_DIR}/whereami/include/ + DESTINATION ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) -add_library(whereami STATIC ${WHEREAMI_SOURCES}) -target_include_directories(whereami PUBLIC ${CMAKE_CURRENT_LIST_DIR}) +# Install libs. +install(TARGETS whereami + EXPORT whereami-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_DEPS_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_DEPS_LIB_DIR} +) + +# Export targets. +install(EXPORT whereami-targets + FILE "retdec-whereami-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-whereami-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/deps/whereami/whereami.h b/deps/whereami/include/whereami/whereami.h similarity index 100% rename from deps/whereami/whereami.h rename to deps/whereami/include/whereami/whereami.h diff --git a/deps/whereami/retdec-whereami-config.cmake b/deps/whereami/retdec-whereami-config.cmake new file mode 100644 index 000000000..39e195c46 --- /dev/null +++ b/deps/whereami/retdec-whereami-config.cmake @@ -0,0 +1,4 @@ + +if(NOT TARGET retdec::deps::whereami) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-whereami-targets.cmake) +endif() diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index 8e22b4a84..d081cb5c2 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -1,77 +1,73 @@ -include(ProcessorCount) -include(ExternalProject) find_package(Threads REQUIRED) -ProcessorCount(CPUS) - set(YARA_DIR ${CMAKE_CURRENT_BINARY_DIR}/yara/src/yara) set(YARA_INCLUDE_DIR ${YARA_DIR}/libyara/include) set(YARA_LIBRARY_NAME "libyara") if(MSVC) - if(CMAKE_SIZEOF_VOID_P EQUAL 8) - set(PLATFORM "x64") - set(YARA_LIBRARY_NAME "${YARA_LIBRARY_NAME}64") - set(YARAC_NAME "yarac64.exe" CACHE STRING "Yarac binary name" FORCE) - else() - set(PLATFORM "x86") - set(YARA_LIBRARY_NAME "${YARA_LIBRARY_NAME}32") - set(YARAC_NAME "yarac32.exe" CACHE STRING "Yarac binary name" FORCE) - endif() - - set(YARA_WIN_DIR ${YARA_DIR}/windows/vs2015) - set(YARA_SOLUTION ${YARA_WIN_DIR}/yara.sln) - set(YARA_LIBRARY_DIR ${YARA_WIN_DIR}/libyara/$) - set(YARA_BUILD_COMMAND "${CMAKE_VS_MSBUILD_COMMAND}" - /m:${CPUS} - /p:Platform=${PLATFORM} - /p:Configuration=$ - /p:PlatformToolset=${CMAKE_VS_PLATFORM_TOOLSET} - /p:WindowsTargetPlatformVersion=${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION} - ${YARA_SOLUTION}) - set(YARAC_PATH ${YARA_WIN_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}/${YARAC_NAME}) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(PLATFORM "x64") + set(YARA_LIBRARY_NAME "${YARA_LIBRARY_NAME}64") + set(YARAC_NAME "yarac64.exe" CACHE STRING "Yarac binary name" FORCE) + else() + set(PLATFORM "x86") + set(YARA_LIBRARY_NAME "${YARA_LIBRARY_NAME}32") + set(YARAC_NAME "yarac32.exe" CACHE STRING "Yarac binary name" FORCE) + endif() + + set(YARA_WIN_DIR ${YARA_DIR}/windows/vs2015) + set(YARA_SOLUTION ${YARA_WIN_DIR}/yara.sln) + set(YARA_LIBRARY_DIR ${YARA_WIN_DIR}/libyara/$) + set(YARA_BUILD_COMMAND "${CMAKE_VS_MSBUILD_COMMAND}" + /m:${CPUS} + /p:Platform=${PLATFORM} + /p:Configuration=$ + /p:PlatformToolset=${CMAKE_VS_PLATFORM_TOOLSET} + /p:WindowsTargetPlatformVersion=${CMAKE_VS_WINDOWS_TARGET_PLATFORM_VERSION} + ${YARA_SOLUTION}) + set(YARAC_PATH ${YARA_WIN_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}/${YARAC_NAME}) else() - set(YARA_LIBRARY_DIR ${YARA_DIR}/libyara/.libs) - set(YARA_BUILD_COMMAND make -j${CPUS}) - set(YARAC_PATH ${YARA_DIR}/yarac) + set(YARA_LIBRARY_DIR ${YARA_DIR}/libyara/.libs) + set(YARA_BUILD_COMMAND make -j${CPUS}) + set(YARAC_PATH ${YARA_DIR}/yarac) endif() if(YARA_LOCAL_DIR) - message(STATUS "YARA: using local YARA directory.") + message(STATUS "YARA: using local YARA directory.") - ExternalProject_Add(yara - PREFIX "yara" + ExternalProject_Add(yara + PREFIX "yara" DOWNLOAD_COMMAND "" SOURCE_DIR "${YARA_LOCAL_DIR}" - DOWNLOAD_NAME yara.zip - BUILD_IN_SOURCE 1 + DOWNLOAD_NAME yara.zip + BUILD_IN_SOURCE 1 # Patch the Yara sources. PATCH_COMMAND ${CMAKE_COMMAND} -Dyara_path= -DRETDEC_MSVC_STATIC_RUNTIME=${RETDEC_MSVC_STATIC_RUNTIME} -P ${CMAKE_CURRENT_SOURCE_DIR}/patch.cmake - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - ${YARA_BUILD_COMMAND} - INSTALL_COMMAND "" - ) - force_configure_step(yara) + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + ${YARA_BUILD_COMMAND} + INSTALL_COMMAND "" + ) + force_configure_step(yara) else() - message(STATUS "YARA: using remote YARA revision.") - - ExternalProject_Add(yara - PREFIX "yara" - URL ${YARA_URL} - URL_HASH SHA256=${YARA_ARCHIVE_SHA256} - DOWNLOAD_NAME yara.zip - BUILD_IN_SOURCE 1 + message(STATUS "YARA: using remote YARA revision.") + + ExternalProject_Add(yara + PREFIX "yara" + URL ${YARA_URL} + URL_HASH SHA256=${YARA_ARCHIVE_SHA256} + DOWNLOAD_NAME yara.zip + BUILD_IN_SOURCE 1 # Patch the Yara sources. PATCH_COMMAND ${CMAKE_COMMAND} -Dyara_path= -DRETDEC_MSVC_STATIC_RUNTIME=${RETDEC_MSVC_STATIC_RUNTIME} -P ${CMAKE_CURRENT_SOURCE_DIR}/patch.cmake - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - ${YARA_BUILD_COMMAND} - INSTALL_COMMAND "" - ) + CONFIGURE_COMMAND "" + BUILD_COMMAND "" + ${YARA_BUILD_COMMAND} + INSTALL_COMMAND "" + ) endif() check_if_variable_changed(YARA_LOCAL_DIR CHANGED) @@ -83,39 +79,100 @@ endif() # https://github.com/avast/retdec/issues/439 if(APPLE) - execute_process( - COMMAND xcrun --show-sdk-path - OUTPUT_VARIABLE MACOS_SDK_PATH - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --sysroot=${MACOS_SDK_PATH}") + execute_process( + COMMAND xcrun --show-sdk-path + OUTPUT_VARIABLE MACOS_SDK_PATH + OUTPUT_STRIP_TRAILING_WHITESPACE + ) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --sysroot=${MACOS_SDK_PATH}") endif() if(NOT MSVC) - ExternalProject_Add_Step(yara configure-linux - WORKING_DIRECTORY ${YARA_DIR} - DEPENDEES configure - DEPENDERS build - COMMAND ./bootstrap.sh - COMMAND ./configure - --prefix=${YARA_INSTALL_DIR} - --enable-macho - --disable-shared - --without-crypto - CC=${CMAKE_C_COMPILER} - CFLAGS=${CMAKE_C_FLAGS} - ) + ExternalProject_Add_Step(yara configure-linux + WORKING_DIRECTORY ${YARA_DIR} + DEPENDEES configure + DEPENDERS build + COMMAND ./bootstrap.sh + COMMAND ./configure + --prefix=${YARA_INSTALL_DIR} + --enable-macho + --disable-shared + --without-crypto + CC=${CMAKE_C_COMPILER} + CFLAGS=${CMAKE_C_FLAGS} + ) endif() -set(LIBRARIES - ${YARA_LIBRARY_DIR}/${YARA_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} - ${CMAKE_THREAD_LIBS_INIT} -) +set(YARA_LIB_NAME ${YARA_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(YARA_LIB ${YARA_LIBRARY_DIR}/${YARA_LIB_NAME}) +# Create target. add_library(libyara INTERFACE) +add_library(retdec::deps::libyara ALIAS libyara) add_dependencies(libyara yara) -set_target_properties(libyara PROPERTIES INTERFACE_LINK_LIBRARIES "${LIBRARIES}") -target_include_directories(libyara INTERFACE ${YARA_INCLUDE_DIR}) + +target_include_directories(libyara + SYSTEM INTERFACE + $ + $ +) + +target_link_libraries(libyara + INTERFACE + $ + $ + Threads::Threads +) + +# Install includes. +install( + DIRECTORY + ${YARA_INCLUDE_DIR}/ + DESTINATION + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) + +# Install libs. +install( + FILES + ${YARA_LIB} + DESTINATION + ${RETDEC_INSTALL_DEPS_LIB_DIR} +) + +# Install targets. +install(TARGETS libyara + EXPORT libyara-targets +) + +# Export targets. +install(EXPORT libyara-targets + FILE "retdec-libyara-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Configure config file. +set(LIBYARA_LIBRARY "${RETDEC_INSTALL_DEPS_LIB_DIR_ABS}/${YARA_LIB_NAME}") +configure_package_config_file( + "retdec-libyara-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-libyara-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + LIBYARA_LIBRARY +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-libyara-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) # Install yarac application - we may need it to compile YARA files. -install(PROGRAMS "${YARAC_PATH}" DESTINATION bin RENAME "retdec-yarac${CMAKE_EXECUTABLE_SUFFIX}") +install( + PROGRAMS "${YARAC_PATH}" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} + RENAME "retdec-yarac${CMAKE_EXECUTABLE_SUFFIX}" +) diff --git a/deps/yara/retdec-libyara-config.cmake b/deps/yara/retdec-libyara-config.cmake new file mode 100644 index 000000000..32b38620a --- /dev/null +++ b/deps/yara/retdec-libyara-config.cmake @@ -0,0 +1,13 @@ +@PACKAGE_INIT@ + +if(NOT TARGET retdec::deps::libyara-libs) + add_library(retdec::deps::libyara-libs STATIC IMPORTED) + set_target_properties(retdec::deps::libyara-libs PROPERTIES + IMPORTED_LOCATION @PACKAGE_LIBYARA_LIBRARY@ + ) +endif() + +if(NOT TARGET retdec::deps::libyara) + find_package(Threads REQUIRED) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-libyara-targets.cmake) +endif() diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index 3a7f01d0c..bada33948 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -1,11 +1,3 @@ -include(ExternalProject) - -if(CMAKE_C_COMPILER) - set(CMAKE_C_COMPILER_OPTION "-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}") -endif() -if(CMAKE_CXX_COMPILER) - set(CMAKE_CXX_COMPILER_OPTION "-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}") -endif() if(YARAMOD_LOCAL_DIR) message(STATUS "YaraMod: using local YaraMod directory.") @@ -64,29 +56,97 @@ endif() ExternalProject_Get_Property(yaramod-project source_dir) ExternalProject_Get_Property(yaramod-project binary_dir) -# Add libraries. +set(YARAMOD_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}yaramod${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(YARAMOD_LIB_OPT ${binary_dir}/src/${RELEASE_DIR}${YARAMOD_LIB_NAME}) +set(YARAMOD_LIB_DEBUG ${binary_dir}/src/${DEBUG_DIR}${YARAMOD_LIB_NAME}) + +set(FMT_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}pog_fmt${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(FMT_LIB ${binary_dir}/deps/pog/deps/fmt/fmt/${CMAKE_INSTALL_LIBDIR}/${FMT_LIB_NAME}) + +set(RE2_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}pog_re2${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(RE2_LIB ${binary_dir}/deps/pog/deps/re2/re2/${CMAKE_INSTALL_LIBDIR}/${RE2_LIB_NAME}) + +# Create target. add_library(yaramod INTERFACE) +add_library(retdec::deps::yaramod ALIAS yaramod) add_dependencies(yaramod yaramod-project) -target_include_directories(yaramod SYSTEM INTERFACE ${source_dir}/include) -target_include_directories(yaramod SYSTEM INTERFACE ${source_dir}/deps) -target_include_directories(yaramod SYSTEM INTERFACE ${binary_dir}/src) -target_include_directories(yaramod SYSTEM INTERFACE ${source_dir}/deps/pog/include) -target_include_directories(yaramod SYSTEM INTERFACE ${source_dir}/deps/pog/include/pog) -target_include_directories(yaramod SYSTEM INTERFACE ${source_dir}/deps/pog/deps/fmt/fmt/include) -target_include_directories(yaramod SYSTEM INTERFACE ${source_dir}/deps/pog/deps/re2/re2) -target_link_libraries(yaramod - INTERFACE debug - ${binary_dir}/src/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}yaramod${CMAKE_STATIC_LIBRARY_SUFFIX} - ${binary_dir}/deps/pog/deps/fmt/fmt/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}pog_fmt${CMAKE_STATIC_LIBRARY_SUFFIX} - ${binary_dir}/deps/pog/deps/re2/re2/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}pog_re2${CMAKE_STATIC_LIBRARY_SUFFIX} + +target_include_directories(yaramod + SYSTEM INTERFACE + $ + $ + $ + $ + $ + $ + $ + $ ) -target_link_libraries(yaramod - INTERFACE optimized - ${binary_dir}/src/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}yaramod${CMAKE_STATIC_LIBRARY_SUFFIX} - ${binary_dir}/deps/pog/deps/fmt/fmt/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}pog_fmt${CMAKE_STATIC_LIBRARY_SUFFIX} - ${binary_dir}/deps/pog/deps/re2/re2/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}pog_re2${CMAKE_STATIC_LIBRARY_SUFFIX} + +target_link_libraries(yaramod INTERFACE + debug + $ + optimized + $ + general + $ + $ + $ ) if(WIN32) - target_link_libraries(yaramod INTERFACE debug shlwapi) - target_link_libraries(yaramod INTERFACE optimized shlwapi) + target_link_libraries(yaramod INTERFACE shlwapi) endif() + +# Install includes. +install( + DIRECTORY + ${source_dir}/include/ + DESTINATION + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} +) + +# Install libs. +# Install both Release and Debug variant to the same location. +# We assume that only one variant will be present at the time. +install( + FILES + ${YARAMOD_LIB_DEBUG} + ${YARAMOD_LIB_OPT} + ${FMT_LIB} + ${RE2_LIB} + DESTINATION + ${RETDEC_INSTALL_DEPS_LIB_DIR} + OPTIONAL +) + +# Install targets. +install(TARGETS yaramod + EXPORT yaramod-targets +) + +# Export targets. +install(EXPORT yaramod-targets + FILE "retdec-yaramod-targets.cmake" + NAMESPACE retdec::deps:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Configure config file. +list(APPEND YARAMOD_LIBS_INSTALLED "${RETDEC_INSTALL_DEPS_LIB_DIR_ABS}/${YARAMOD_LIB_NAME}") +list(APPEND YARAMOD_LIBS_INSTALLED "${RETDEC_INSTALL_DEPS_LIB_DIR_ABS}/${FMT_LIB_NAME}") +list(APPEND YARAMOD_LIBS_INSTALLED "${RETDEC_INSTALL_DEPS_LIB_DIR_ABS}/${RE2_LIB_NAME}") +configure_package_config_file( + "retdec-yaramod-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-yaramod-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + YARAMOD_LIBS_INSTALLED +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-yaramod-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/deps/yaramod/retdec-yaramod-config.cmake b/deps/yaramod/retdec-yaramod-config.cmake new file mode 100644 index 000000000..ade53390d --- /dev/null +++ b/deps/yaramod/retdec-yaramod-config.cmake @@ -0,0 +1,15 @@ +@PACKAGE_INIT@ + +if(NOT TARGET yaramod-libs) + add_library(yaramod-libs INTERFACE) + add_library(retdec::deps::yaramod-libs ALIAS yaramod-libs) + foreach(YARAMOD_LIB @PACKAGE_YARAMOD_LIBS_INSTALLED@) + target_link_libraries(yaramod-libs INTERFACE + ${YARAMOD_LIB} + ) + endforeach(YARAMOD_LIB) +endif() + +if(NOT TARGET retdec::deps::yaramod) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaramod-targets.cmake) +endif() diff --git a/doc/doxygen/CMakeLists.txt b/doc/doxygen/CMakeLists.txt index 3c7e68ce7..a7b8bd492 100644 --- a/doc/doxygen/CMakeLists.txt +++ b/doc/doxygen/CMakeLists.txt @@ -36,7 +36,15 @@ add_custom_command(TARGET doc ) # Cleanup. -set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${DOXYGEN_OUTPUT_DIR}") +set_directory_properties( + PROPERTIES + ADDITIONAL_MAKE_CLEAN_FILES "${DOXYGEN_OUTPUT_DIR}" +) # Install. -install(DIRECTORY "${DOXYGEN_OUTPUT_DIR}" DESTINATION share/retdec/doc) +install( + DIRECTORY + ${DOXYGEN_OUTPUT_DIR} + DESTINATION + ${RETDEC_INSTALL_DOC_DIR} +) diff --git a/include/retdec/bin2llvmir/providers/debugformat.h b/include/retdec/bin2llvmir/providers/debugformat.h index e9514a9d1..f588ffdc2 100644 --- a/include/retdec/bin2llvmir/providers/debugformat.h +++ b/include/retdec/bin2llvmir/providers/debugformat.h @@ -9,6 +9,7 @@ #include +#include "retdec/bin2llvmir/providers/demangler.h" #include "retdec/bin2llvmir/providers/fileimage.h" #include "retdec/debugformat/debugformat.h" diff --git a/include/retdec/bin2llvmir/providers/demangler.h b/include/retdec/bin2llvmir/providers/demangler.h index c6e1d8713..ce154dba8 100644 --- a/include/retdec/bin2llvmir/providers/demangler.h +++ b/include/retdec/bin2llvmir/providers/demangler.h @@ -48,6 +48,8 @@ class Demangler FunctionPair getPairFunction(const std::string &mangled); + demangler::Demangler* getDemangler(); + private: llvm::Type *getLlvmType(std::shared_ptr type); diff --git a/include/retdec/bin2llvmir/utils/ctypes2llvm.h b/include/retdec/bin2llvmir/utils/ctypes2llvm.h index 4b2570251..03ecf948c 100644 --- a/include/retdec/bin2llvmir/utils/ctypes2llvm.h +++ b/include/retdec/bin2llvmir/utils/ctypes2llvm.h @@ -7,7 +7,7 @@ #ifndef RETDEC_CTYPES2LLVM_H #define RETDEC_CTYPES2LLVM_H -#include "llvm/IR/Module.h" +#include #include "retdec/bin2llvmir/providers/config.h" #include "retdec/ctypes/context.h" diff --git a/include/retdec/common/object.h b/include/retdec/common/object.h index 226f1dc5b..28e40ac15 100644 --- a/include/retdec/common/object.h +++ b/include/retdec/common/object.h @@ -13,18 +13,10 @@ #include "retdec/common/storage.h" #include "retdec/common/type.h" -#include "retdec/utils/test.h" namespace retdec { namespace common { -GTEST_FORWARD_TEST( - GlobalVarContainerTests, - ElementWithTheSameAddressGetsReplaced) -GTEST_FORWARD_TEST( - GlobalVarContainerTests, - OperationsOnUnderlyingContainerAreReflectedInaddr2global) - /** * Represents object (i.e. register, stack, global, parameter). * @@ -148,16 +140,9 @@ class GlobalVarContainer : public ObjectSetContainer size_t erase(const Object& val); /// @} - private: + public: /// Map allows fast global variables search by address. std::map _addr2global; - - GTEST_FRIEND_TEST( - GlobalVarContainerTests, - ElementWithTheSameAddressGetsReplaced); - GTEST_FRIEND_TEST( - GlobalVarContainerTests, - OperationsOnUnderlyingContainerAreReflectedInaddr2global); }; } // namespace common diff --git a/include/retdec/config/parameters.h b/include/retdec/config/parameters.h index 66d6e1e8d..0bbc7fca7 100644 --- a/include/retdec/config/parameters.h +++ b/include/retdec/config/parameters.h @@ -48,9 +48,9 @@ class Parameters std::string getOrdinalNumbersDirectory() const; /// @} -template -void serialize(Writer& writer) const; -void deserialize(const rapidjson::Value& val); + template + void serialize(Writer& writer) const; + void deserialize(const rapidjson::Value& val); public: std::set userStaticSignaturePaths; diff --git a/include/retdec/cpdetect/compiler_factory.h b/include/retdec/cpdetect/compiler_factory.h index dc5b2210d..097fdab61 100644 --- a/include/retdec/cpdetect/compiler_factory.h +++ b/include/retdec/cpdetect/compiler_factory.h @@ -15,7 +15,10 @@ namespace retdec { namespace cpdetect { std::unique_ptr createCompilerDetector( - retdec::fileformat::FileFormat &parser, DetectParams ¶ms, ToolInformation &toolInfo); + retdec::fileformat::FileFormat &parser, + DetectParams ¶ms, + ToolInformation &toolInfo +); } // namespace cpdetect } // namespace retdec diff --git a/include/retdec/crypto/hash_context.h b/include/retdec/crypto/hash_context.h index 04c464159..f4d5678e3 100644 --- a/include/retdec/crypto/hash_context.h +++ b/include/retdec/crypto/hash_context.h @@ -11,7 +11,9 @@ #include #include -#include +// Forward declare OpenSSL structures used in this header. +typedef struct evp_md_ctx_st EVP_MD_CTX; +typedef struct evp_md_st EVP_MD; namespace retdec { namespace crypto { diff --git a/include/retdec/debugformat/debugformat.h b/include/retdec/debugformat/debugformat.h index 05064e91e..a913449d0 100644 --- a/include/retdec/debugformat/debugformat.h +++ b/include/retdec/debugformat/debugformat.h @@ -19,7 +19,7 @@ #include "retdec/common/type.h" #include "retdec/pdbparser/pdb_file.h" -#include "retdec/bin2llvmir/providers/demangler.h" +#include "retdec/demangler/demangler.h" #include "retdec/fileformat/fileformat.h" #include "retdec/loader/loader.h" @@ -40,7 +40,7 @@ class DebugFormat retdec::loader::Image* inFile, const std::string& pdbFile, SymbolTable* symtab, - retdec::bin2llvmir::Demangler* demangler, + retdec::demangler::Demangler* demangler, unsigned long long imageBase = 0); retdec::common::Function* getFunction(retdec::common::Address a); @@ -77,7 +77,7 @@ class DebugFormat /// Underlying PDB representation. retdec::pdbparser::PDBFile* _pdbFile = nullptr; /// Demangler. - retdec::bin2llvmir::Demangler* _demangler = nullptr; + retdec::demangler::Demangler* _demangler = nullptr; /// Dwarf named types cache. std::map, std::string> dieOff2type; diff --git a/include/retdec/ctypesparser/ast_ctypes_parser.h b/include/retdec/demangler/ast_ctypes_parser.h similarity index 80% rename from include/retdec/ctypesparser/ast_ctypes_parser.h rename to include/retdec/demangler/ast_ctypes_parser.h index c7bc6b0b9..2e9097921 100644 --- a/include/retdec/ctypesparser/ast_ctypes_parser.h +++ b/include/retdec/demangler/ast_ctypes_parser.h @@ -1,5 +1,5 @@ /** -* @file include/retdec/ctypesparser/ast_ctypes_parser.h +* @file include/retdec/demangler/ast_ctypes_parser.h * @brief Base class for all AST to ctypes parsers. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ @@ -10,12 +10,12 @@ #include "retdec/ctypesparser/ctypes_parser.h" namespace retdec { -namespace ctypesparser { +namespace demangler { /* * Base class for all AST to ctypes parsers. */ -class AstToCtypesParser: public CTypesParser { +class AstToCtypesParser: public retdec::ctypesparser::CTypesParser { public: AstToCtypesParser () = default; @@ -29,7 +29,7 @@ class AstToCtypesParser: public CTypesParser { ctypes::FunctionType::VarArgness toVarArgness(bool isVarArg) const; }; -} -} +} // demangler +} // retdec #endif //RETDEC_AST_CTYPES_PARSER_H diff --git a/include/retdec/ctypesparser/borland_ast_ctypes_parser.h b/include/retdec/demangler/borland_ast_ctypes_parser.h similarity index 94% rename from include/retdec/ctypesparser/borland_ast_ctypes_parser.h rename to include/retdec/demangler/borland_ast_ctypes_parser.h index 914a6178f..24b080f30 100644 --- a/include/retdec/ctypesparser/borland_ast_ctypes_parser.h +++ b/include/retdec/demangler/borland_ast_ctypes_parser.h @@ -1,5 +1,5 @@ /** -* @file include/retdec/ctypesparser/ast_ctypes_parser.h +* @file include/retdec/demangler/ast_ctypes_parser.h * @brief Parser for AST created in Borland demangler to ctypes parsers. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ @@ -7,11 +7,11 @@ #ifndef RETDEC_BORLAND_AST_CTYPES_PARSER_H #define RETDEC_BORLAND_AST_CTYPES_PARSER_H +#include "retdec/demangler/ast_ctypes_parser.h" #include "retdec/demangler/borland_ast/borland_ast.h" -#include "retdec/ctypesparser/ast_ctypes_parser.h" namespace retdec { -namespace ctypesparser { +namespace demangler { /* * @brief Parser for AST created in Borland demangler to ctypes parsers. @@ -76,7 +76,7 @@ class BorlandToCtypesParser : public AstToCtypesParser std::shared_ptr ArrayTypeNode); }; -} // ctypesparser -} // retdec +} // demangler +} // retdec #endif //RETDEC_BORLAND_AST_CTYPES_PARSER_H diff --git a/include/retdec/demangler/borland_ast_parser.h b/include/retdec/demangler/borland_ast_parser.h index f0d1d6d27..32dd2d441 100644 --- a/include/retdec/demangler/borland_ast_parser.h +++ b/include/retdec/demangler/borland_ast_parser.h @@ -7,7 +7,7 @@ #ifndef RETDEC_BORLAND_AST_PARSER_H #define RETDEC_BORLAND_AST_PARSER_H -#include "llvm/Demangle/StringView.h" +#include #include "retdec/demangler/context.h" #include "retdec/demangler/borland_ast/node.h" diff --git a/include/retdec/ctypesparser/itanium_ast_ctypes_parser.h b/include/retdec/demangler/itanium_ast_ctypes_parser.h similarity index 93% rename from include/retdec/ctypesparser/itanium_ast_ctypes_parser.h rename to include/retdec/demangler/itanium_ast_ctypes_parser.h index 27c1cf44e..ca39ae321 100644 --- a/include/retdec/ctypesparser/itanium_ast_ctypes_parser.h +++ b/include/retdec/demangler/itanium_ast_ctypes_parser.h @@ -1,5 +1,5 @@ /** -* @file include/retdec/ctypesparser/itanium_ast_ctypes_parser.h +* @file include/retdec/demangler/itanium_ast_ctypes_parser.h * @brief Parser for AST created in Itanium demangler to ctypes parsers. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ @@ -7,7 +7,7 @@ #ifndef RETDEC_ITANIUM_AST_CTYPES_PARSER_H #define RETDEC_ITANIUM_AST_CTYPES_PARSER_H -#include "retdec/ctypesparser/ast_ctypes_parser.h" +#include "retdec/demangler/ast_ctypes_parser.h" namespace llvm { namespace itanium_demangle { @@ -24,7 +24,7 @@ class NodeOrString; } namespace retdec { -namespace ctypesparser { +namespace demangler { /* * @brief Parser for AST created in Itanium demangler to ctypes parsers. @@ -81,7 +81,7 @@ class ItaniumAstCtypesParser : public AstToCtypesParser bool &isVarArg); }; -} -} +} // demangler +} // retdec #endif //RETDEC_ITANIUM_AST_CTYPES_PARSER_H diff --git a/include/retdec/ctypesparser/ms_ast_ctypes_parser.h b/include/retdec/demangler/ms_ast_ctypes_parser.h similarity index 89% rename from include/retdec/ctypesparser/ms_ast_ctypes_parser.h rename to include/retdec/demangler/ms_ast_ctypes_parser.h index 09f3af6d7..a67738f6e 100644 --- a/include/retdec/ctypesparser/ms_ast_ctypes_parser.h +++ b/include/retdec/demangler/ms_ast_ctypes_parser.h @@ -1,5 +1,5 @@ /** -* @file include/retdec/ctypesparser/itanium_ast_ctypes_parser.h +* @file include/retdec/demangler/itanium_ast_ctypes_parser.h * @brief Parser for AST created in Microsoft demangler to ctypes parsers. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ @@ -7,12 +7,12 @@ #ifndef RETDEC_MS_AST_CTYPES_PARSER_H #define RETDEC_MS_AST_CTYPES_PARSER_H -#include "llvm/Demangle/MicrosoftDemangleNodes.h" +#include -#include "retdec/ctypesparser/ast_ctypes_parser.h" +#include "retdec/demangler/ast_ctypes_parser.h" namespace retdec { -namespace ctypesparser { +namespace demangler { /* * @brief Parser for AST created in Microsoft demangler to ctypes parsers. @@ -71,7 +71,7 @@ class MsToCtypesParser : public AstToCtypesParser std::string getTypeName(llvm::ms_demangle::PrimitiveKind type) const; }; -} // namespace ctypesparser -} // namespace retdec +} // namespace demangler +} // namespace retdec #endif //RETDEC_MS_AST_CTYPES_PARSER_H diff --git a/include/retdec/fileformat/file_format/pe/pe_format.h b/include/retdec/fileformat/file_format/pe/pe_format.h index a41698ec1..10e6aed01 100644 --- a/include/retdec/fileformat/file_format/pe/pe_format.h +++ b/include/retdec/fileformat/file_format/pe/pe_format.h @@ -19,6 +19,9 @@ #include "retdec/fileformat/types/visual_basic/visual_basic_info.h" #include "retdec/pelib/PeLib.h" +// Forward declare OpenSSL structures used in this header. +typedef struct pkcs7_st PKCS7; + namespace retdec { namespace fileformat { diff --git a/include/retdec/fileformat/types/certificate_table/certificate.h b/include/retdec/fileformat/types/certificate_table/certificate.h index 543fbd8a9..0cf7b3ff1 100644 --- a/include/retdec/fileformat/types/certificate_table/certificate.h +++ b/include/retdec/fileformat/types/certificate_table/certificate.h @@ -9,7 +9,8 @@ #include -#include +// Forward declare OpenSSL structures used in this header. +typedef struct x509_st X509; namespace retdec { namespace fileformat { diff --git a/include/retdec/pelib/BoundImportDirectory.h b/include/retdec/pelib/BoundImportDirectory.h index c78db38d4..6bb636d77 100644 --- a/include/retdec/pelib/BoundImportDirectory.h +++ b/include/retdec/pelib/BoundImportDirectory.h @@ -13,8 +13,8 @@ #ifndef BOUNDIMPORTDIRECTORY_H #define BOUNDIMPORTDIRECTORY_H -#include "pelib/PeHeader.h" -#include "pelib/PeLibAux.h" +#include "retdec/pelib/PeHeader.h" +#include "retdec/pelib/PeLibAux.h" namespace PeLib { diff --git a/include/retdec/pelib/ComHeaderDirectory.h b/include/retdec/pelib/ComHeaderDirectory.h index 07c104fc9..235ba8a84 100644 --- a/include/retdec/pelib/ComHeaderDirectory.h +++ b/include/retdec/pelib/ComHeaderDirectory.h @@ -13,7 +13,7 @@ #ifndef COMHEADERDIRECTORY_H #define COMHEADERDIRECTORY_H -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/DebugDirectory.h b/include/retdec/pelib/DebugDirectory.h index 855af6bb5..b0828324f 100644 --- a/include/retdec/pelib/DebugDirectory.h +++ b/include/retdec/pelib/DebugDirectory.h @@ -13,7 +13,7 @@ #ifndef DEBUGDIRECTORY_H #define DEBUGDIRECTORY_H -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/DelayImportDirectory.h b/include/retdec/pelib/DelayImportDirectory.h index ce660db54..48afccbbd 100644 --- a/include/retdec/pelib/DelayImportDirectory.h +++ b/include/retdec/pelib/DelayImportDirectory.h @@ -7,8 +7,8 @@ #ifndef DELAY_IMPORT_DIRECTORY_H #define DELAY_IMPORT_DIRECTORY_H -#include "pelib/PeLibInc.h" -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/ExportDirectory.h b/include/retdec/pelib/ExportDirectory.h index 430d19ef2..2821b0859 100644 --- a/include/retdec/pelib/ExportDirectory.h +++ b/include/retdec/pelib/ExportDirectory.h @@ -13,7 +13,7 @@ #ifndef EXPORTDIRECTORY_H #define EXPORTDIRECTORY_H -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/IatDirectory.h b/include/retdec/pelib/IatDirectory.h index 516bcbf43..261b7bc3e 100644 --- a/include/retdec/pelib/IatDirectory.h +++ b/include/retdec/pelib/IatDirectory.h @@ -13,8 +13,8 @@ #ifndef IATDIRECTORY_H #define IATDIRECTORY_H -#include "pelib/PeLibInc.h" -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/ImportDirectory.h b/include/retdec/pelib/ImportDirectory.h index a88328025..936ae30e5 100644 --- a/include/retdec/pelib/ImportDirectory.h +++ b/include/retdec/pelib/ImportDirectory.h @@ -13,8 +13,8 @@ #ifndef IMPORTDIRECTORY_H #define IMPORTDIRECTORY_H -#include "pelib/PeLibAux.h" -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeLibAux.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/MzHeader.h b/include/retdec/pelib/MzHeader.h index b9bd35c60..0aca628dd 100644 --- a/include/retdec/pelib/MzHeader.h +++ b/include/retdec/pelib/MzHeader.h @@ -13,7 +13,7 @@ #ifndef MZHEADER_H #define MZHEADER_H -#include "pelib/PeLibInc.h" +#include "retdec/pelib/PeLibInc.h" namespace PeLib { diff --git a/include/retdec/pelib/PeFile.h b/include/retdec/pelib/PeFile.h index ed287f95d..ae880318e 100644 --- a/include/retdec/pelib/PeFile.h +++ b/include/retdec/pelib/PeFile.h @@ -13,22 +13,22 @@ #ifndef PEFILE_H #define PEFILE_H -#include "pelib/PeLibInc.h" -#include "pelib/MzHeader.h" -#include "pelib/PeHeader.h" -#include "pelib/ImportDirectory.h" -#include "pelib/ExportDirectory.h" -#include "pelib/BoundImportDirectory.h" -#include "pelib/ResourceDirectory.h" -#include "pelib/RelocationsDirectory.h" -#include "pelib/ComHeaderDirectory.h" -#include "pelib/IatDirectory.h" -#include "pelib/DebugDirectory.h" -#include "pelib/TlsDirectory.h" -#include "pelib/RichHeader.h" -#include "pelib/CoffSymbolTable.h" -#include "pelib/DelayImportDirectory.h" -#include "pelib/SecurityDirectory.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/MzHeader.h" +#include "retdec/pelib/PeHeader.h" +#include "retdec/pelib/ImportDirectory.h" +#include "retdec/pelib/ExportDirectory.h" +#include "retdec/pelib/BoundImportDirectory.h" +#include "retdec/pelib/ResourceDirectory.h" +#include "retdec/pelib/RelocationsDirectory.h" +#include "retdec/pelib/ComHeaderDirectory.h" +#include "retdec/pelib/IatDirectory.h" +#include "retdec/pelib/DebugDirectory.h" +#include "retdec/pelib/TlsDirectory.h" +#include "retdec/pelib/RichHeader.h" +#include "retdec/pelib/CoffSymbolTable.h" +#include "retdec/pelib/DelayImportDirectory.h" +#include "retdec/pelib/SecurityDirectory.h" namespace PeLib { diff --git a/include/retdec/pelib/PeHeader.h b/include/retdec/pelib/PeHeader.h index 3a8760961..db2b96136 100644 --- a/include/retdec/pelib/PeHeader.h +++ b/include/retdec/pelib/PeHeader.h @@ -16,8 +16,8 @@ #include #include -#include "pelib/PeLibAux.h" -#include "pelib/MzHeader.h" +#include "retdec/pelib/PeLibAux.h" +#include "retdec/pelib/MzHeader.h" namespace PeLib { @@ -1625,7 +1625,6 @@ namespace PeLib /** * Overwrites a section's data. - * @param wSecnr Number of the section which will be overwritten. * @param strFilename Name of the file where the section will be written to. * @param wSecnr Number of the section that will be written. * @param vBuffer New data of the section. diff --git a/include/retdec/pelib/PeLib.h b/include/retdec/pelib/PeLib.h index 5103f26e1..cfc4eaabb 100644 --- a/include/retdec/pelib/PeLib.h +++ b/include/retdec/pelib/PeLib.h @@ -13,6 +13,6 @@ #ifndef PELIB_H #define PELIB_H -#include "pelib/PeFile.h" +#include "retdec/pelib/PeFile.h" #endif diff --git a/include/retdec/pelib/PeLibAux.h b/include/retdec/pelib/PeLibAux.h index c470391c1..485a9cd84 100644 --- a/include/retdec/pelib/PeLibAux.h +++ b/include/retdec/pelib/PeLibAux.h @@ -22,8 +22,8 @@ #pragma warning(disable:4244) // C4244: 'argument': conversion from 'uint64_t' to 'unsigned int', possible loss of data #endif -#include "pelib/OutputBuffer.h" -#include "pelib/InputBuffer.h" +#include "retdec/pelib/OutputBuffer.h" +#include "retdec/pelib/InputBuffer.h" //get rid of duplicate windows.h definitions #ifdef ERROR_NONE diff --git a/include/retdec/pelib/PeLibInc.h b/include/retdec/pelib/PeLibInc.h index 57354e46c..4d6cfe14d 100644 --- a/include/retdec/pelib/PeLibInc.h +++ b/include/retdec/pelib/PeLibInc.h @@ -21,6 +21,6 @@ #include #include -#include "pelib/PeLibAux.h" +#include "retdec/pelib/PeLibAux.h" #endif diff --git a/include/retdec/pelib/RelocationsDirectory.h b/include/retdec/pelib/RelocationsDirectory.h index 7736d955e..cc85b4a00 100644 --- a/include/retdec/pelib/RelocationsDirectory.h +++ b/include/retdec/pelib/RelocationsDirectory.h @@ -13,7 +13,7 @@ #ifndef RELOCATIONSDIRECTORY_H #define RELOCATIONSDIRECTORY_H -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/ResourceDirectory.h b/include/retdec/pelib/ResourceDirectory.h index 302b8d52d..aad165d74 100644 --- a/include/retdec/pelib/ResourceDirectory.h +++ b/include/retdec/pelib/ResourceDirectory.h @@ -15,8 +15,8 @@ #include -#include "pelib/PeLibInc.h" -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/SecurityDirectory.h b/include/retdec/pelib/SecurityDirectory.h index 38fb3f165..5b5ff1fbf 100644 --- a/include/retdec/pelib/SecurityDirectory.h +++ b/include/retdec/pelib/SecurityDirectory.h @@ -7,7 +7,7 @@ #ifndef SECURITYDIRECTORY_H #define SECURITYDIRECTORY_H -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/pelib/TlsDirectory.h b/include/retdec/pelib/TlsDirectory.h index 5c6c438ee..edc1f9d34 100644 --- a/include/retdec/pelib/TlsDirectory.h +++ b/include/retdec/pelib/TlsDirectory.h @@ -13,7 +13,7 @@ #ifndef TLSDIRECTORY_H #define TLSDIRECTORY_H -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/include/retdec/stacofin/stacofin.h b/include/retdec/stacofin/stacofin.h index b42788618..80d948d9d 100644 --- a/include/retdec/stacofin/stacofin.h +++ b/include/retdec/stacofin/stacofin.h @@ -15,7 +15,6 @@ #include #include "retdec/config/config.h" -#include "retdec/fileformat/fileformat.h" #include "retdec/common/address.h" namespace retdec { diff --git a/include/retdec/utils/binary_path.h b/include/retdec/utils/binary_path.h index ddc3037f3..a8faa82ad 100644 --- a/include/retdec/utils/binary_path.h +++ b/include/retdec/utils/binary_path.h @@ -7,8 +7,6 @@ #ifndef RETDEC_UTILS_BINARY_PATH_H #define RETDEC_UTILS_BINARY_PATH_H -#include - #include "retdec/utils/filesystem_path.h" namespace retdec { diff --git a/include/retdec/yaracpp/doxygen.h b/include/retdec/yaracpp/doxygen.h index 4b6dd7371..4ea582089 100644 --- a/include/retdec/yaracpp/doxygen.h +++ b/include/retdec/yaracpp/doxygen.h @@ -7,5 +7,5 @@ // As there is no better place to comment this namespace, we do this in the // present file. -/// @namespace yaracpp A library providing parsing and detection of +/// @namespace retdec::yaracpp A library providing parsing and detection of /// YARA rules. diff --git a/include/retdec/yaracpp/types/yara_match.h b/include/retdec/yaracpp/types/yara_match.h index 080da9ca6..109463c6c 100644 --- a/include/retdec/yaracpp/types/yara_match.h +++ b/include/retdec/yaracpp/types/yara_match.h @@ -9,8 +9,8 @@ #include #include -namespace yaracpp -{ +namespace retdec { +namespace yaracpp { /** * Representation of one match @@ -41,3 +41,4 @@ class YaraMatch }; } // namespace yaracpp +} // namespace retdec diff --git a/include/retdec/yaracpp/types/yara_meta.h b/include/retdec/yaracpp/types/yara_meta.h index 8718cd8fe..601bc0c29 100644 --- a/include/retdec/yaracpp/types/yara_meta.h +++ b/include/retdec/yaracpp/types/yara_meta.h @@ -8,8 +8,8 @@ #include -namespace yaracpp -{ +namespace retdec { +namespace yaracpp { /** * Representation of metadata @@ -52,3 +52,4 @@ class YaraMeta }; } // namespace yaracpp +} // namespace retdec diff --git a/include/retdec/yaracpp/types/yara_rule.h b/include/retdec/yaracpp/types/yara_rule.h index 8e7d4c67a..c70e60fc7 100644 --- a/include/retdec/yaracpp/types/yara_rule.h +++ b/include/retdec/yaracpp/types/yara_rule.h @@ -12,8 +12,8 @@ #include "retdec/yaracpp/types/yara_match.h" #include "retdec/yaracpp/types/yara_meta.h" -namespace yaracpp -{ +namespace retdec { +namespace yaracpp { /** * Representation of one YARA rule @@ -62,3 +62,4 @@ class YaraRule }; } // namespace yaracpp +} // namespace retdec diff --git a/include/retdec/yaracpp/yara_detector/yara_detector.h b/include/retdec/yaracpp/yara_detector/yara_detector.h index c26da7465..87c375cdf 100644 --- a/include/retdec/yaracpp/yara_detector/yara_detector.h +++ b/include/retdec/yaracpp/yara_detector/yara_detector.h @@ -10,13 +10,13 @@ #include #include -#include -#include - #include "retdec/yaracpp/types/yara_rule.h" -namespace yaracpp -{ +typedef struct _YR_COMPILER YR_COMPILER; +typedef struct YR_RULES YR_RULES; + +namespace retdec { +namespace yaracpp { /** * Interpret of YARA rules @@ -96,3 +96,4 @@ class YaraDetector }; } // namespace yaracpp +} // namespace retdec diff --git a/retdec-config.cmake b/retdec-config.cmake new file mode 100644 index 000000000..6c75bccb8 --- /dev/null +++ b/retdec-config.cmake @@ -0,0 +1,5 @@ + + +foreach(component ${retdec_FIND_COMPONENTS}) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-${component}-config.cmake) +endforeach() diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index bbf168191..80ba857d2 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -1,10 +1,37 @@ -install(PROGRAMS "retdec-config.py" DESTINATION bin) -install(PROGRAMS "retdec-archive-decompiler.py" DESTINATION bin) -install(PROGRAMS "retdec-decompiler.py" DESTINATION bin) -install(PROGRAMS "retdec-fileinfo.py" DESTINATION bin) + +install( + PROGRAMS "retdec-config.py" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) +install( + PROGRAMS "retdec-archive-decompiler.py" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) +install( + PROGRAMS "retdec-decompiler.py" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) +install( + PROGRAMS "retdec-fileinfo.py" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) + if(RETDEC_TESTS) - install(PROGRAMS "retdec-tests-runner.py" DESTINATION bin) + install( + PROGRAMS "retdec-tests-runner.py" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} + ) endif() -install(PROGRAMS "retdec-signature-from-library-creator.py" DESTINATION bin) -install(PROGRAMS "retdec-unpacker.py" DESTINATION bin) -install(PROGRAMS "retdec-utils.py" DESTINATION bin) + +install( + PROGRAMS "retdec-signature-from-library-creator.py" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) +install( + PROGRAMS "retdec-unpacker.py" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) +install( + PROGRAMS "retdec-utils.py" + DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/ar-extractor/CMakeLists.txt b/src/ar-extractor/CMakeLists.txt index 833bd5cc9..8a73ed431 100644 --- a/src/ar-extractor/CMakeLists.txt +++ b/src/ar-extractor/CMakeLists.txt @@ -1,8 +1,55 @@ -set(AR_EXTRACTOR_SOURCES + +add_library(ar-extractor STATIC archive_wrapper.cpp detection.cpp ) +add_library(retdec::ar-extractor ALIAS ar-extractor) + +target_compile_features(ar-extractor PUBLIC cxx_std_17) + +target_include_directories(ar-extractor + PUBLIC + $ + $ +) + +target_link_libraries(ar-extractor + PUBLIC + retdec::utils + retdec::deps::llvm + PRIVATE + retdec::deps::rapidjson +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ar-extractor + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS ar-extractor + EXPORT ar-extractor-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-ar-extractor STATIC ${AR_EXTRACTOR_SOURCES}) -target_link_libraries(retdec-ar-extractor retdec-utils rapidjson llvm) -target_include_directories(retdec-ar-extractor PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT ar-extractor-targets + FILE "retdec-ar-extractor-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-ar-extractor-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ar-extractor-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ar-extractor-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/ar-extractor/retdec-ar-extractor-config.cmake b/src/ar-extractor/retdec-ar-extractor-config.cmake new file mode 100644 index 000000000..1b8104cfb --- /dev/null +++ b/src/ar-extractor/retdec-ar-extractor-config.cmake @@ -0,0 +1,12 @@ + +if(NOT TARGET retdec::ar-extractor) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + utils + llvm + rapidjson + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-ar-extractor-targets.cmake) +endif() diff --git a/src/ar-extractortool/CMakeLists.txt b/src/ar-extractortool/CMakeLists.txt index c39532356..4fd1e5d46 100644 --- a/src/ar-extractortool/CMakeLists.txt +++ b/src/ar-extractortool/CMakeLists.txt @@ -1,8 +1,21 @@ -set(AR_EXTRACTOR_SOURCES + +add_executable(ar-extractortool ar_extractor.cpp ) -add_executable(retdec-ar-extractortool ${AR_EXTRACTOR_SOURCES}) -set_target_properties(retdec-ar-extractortool PROPERTIES OUTPUT_NAME "retdec-ar-extractor") -target_link_libraries(retdec-ar-extractortool retdec-ar-extractor retdec-utils rapidjson) -install(TARGETS retdec-ar-extractortool RUNTIME DESTINATION bin) +target_compile_features(ar-extractortool PUBLIC cxx_std_17) + +target_link_libraries(ar-extractortool + retdec::ar-extractor + retdec::utils + retdec::deps::rapidjson +) + +set_target_properties(ar-extractortool + PROPERTIES + OUTPUT_NAME "retdec-ar-extractor" +) + +install(TARGETS ar-extractortool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/bin2llvmir/CMakeLists.txt b/src/bin2llvmir/CMakeLists.txt index 9c112e58e..f72089ef0 100644 --- a/src/bin2llvmir/CMakeLists.txt +++ b/src/bin2llvmir/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(retdec-bin2llvmir STATIC +add_library(bin2llvmir STATIC analyses/ctor_dtor.cpp analyses/indirectly_called_funcs_analysis.cpp analyses/reachable_funcs_analysis.cpp @@ -106,19 +106,62 @@ add_library(retdec-bin2llvmir STATIC utils/ir_modifier.cpp utils/llvm.cpp ) -target_link_libraries(retdec-bin2llvmir - retdec-ctypesparser - retdec-rtti-finder - retdec-loader - retdec-fileformat - retdec-debugformat - retdec-config - retdec-demangler - retdec-capstone2llvmir - retdec-stacofin - retdec-llvm-support - retdec-common - retdec-utils - llvm +add_library(retdec::bin2llvmir ALIAS bin2llvmir) + +target_compile_features(bin2llvmir PUBLIC cxx_std_17) + +target_include_directories(bin2llvmir + PUBLIC + $ + $ +) + +target_link_libraries(bin2llvmir + PUBLIC + retdec::rtti-finder + retdec::capstone2llvmir + retdec::debugformat + retdec::demangler + retdec::stacofin + retdec::loader + retdec::fileformat + retdec::config + retdec::ctypesparser + retdec::common + retdec::utils + retdec::llvm-support + retdec::deps::llvm +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/bin2llvmir + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS bin2llvmir + EXPORT bin2llvmir-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT bin2llvmir-targets + FILE "retdec-bin2llvmir-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-bin2llvmir-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-bin2llvmir-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-bin2llvmir-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) -target_include_directories(retdec-bin2llvmir PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/bin2llvmir/providers/debugformat.cpp b/src/bin2llvmir/providers/debugformat.cpp index 7e3b856e9..55407fdd8 100644 --- a/src/bin2llvmir/providers/debugformat.cpp +++ b/src/bin2llvmir/providers/debugformat.cpp @@ -50,7 +50,7 @@ DebugFormat* DebugFormatProvider::addDebugFormat( objf, pdbFile, nullptr, // symbol table -- not needed. - demangler, + demangler ? demangler->getDemangler() : nullptr, imageBase)); return &p.first->second; } diff --git a/src/bin2llvmir/providers/demangler.cpp b/src/bin2llvmir/providers/demangler.cpp index e6167d72d..bb5a95f96 100644 --- a/src/bin2llvmir/providers/demangler.cpp +++ b/src/bin2llvmir/providers/demangler.cpp @@ -67,6 +67,11 @@ llvm::Type *Demangler::getLlvmType(std::shared_ptr type) return visitor.getLlvmType(); } +demangler::Demangler* Demangler::getDemangler() +{ + return _demangler.get(); +} + /******************************************************************/ /********************** Demangler Factory *************************/ /******************************************************************/ diff --git a/src/bin2llvmir/retdec-bin2llvmir-config.cmake b/src/bin2llvmir/retdec-bin2llvmir-config.cmake new file mode 100644 index 000000000..5ff7638bc --- /dev/null +++ b/src/bin2llvmir/retdec-bin2llvmir-config.cmake @@ -0,0 +1,22 @@ + +if(NOT TARGET retdec::bin2llvmir) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + rtti-finder + capstone2llvmir + debugformat + demangler + stacofin + loader + fileformat + config + ctypesparser + common + utils + llvm-support + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-bin2llvmir-targets.cmake) +endif() diff --git a/src/bin2llvmirtool/CMakeLists.txt b/src/bin2llvmirtool/CMakeLists.txt index 8bfd9add6..46ef5fec3 100644 --- a/src/bin2llvmirtool/CMakeLists.txt +++ b/src/bin2llvmirtool/CMakeLists.txt @@ -1,29 +1,47 @@ -set(BIN2LLVMIRTOOL_SOURCES + +add_executable(bin2llvmirtool bin2llvmir.cpp ) -add_executable(retdec-bin2llvmirtool ${BIN2LLVMIRTOOL_SOURCES}) +target_compile_features(bin2llvmirtool PUBLIC cxx_std_17) # Due to the implementation of the plugin system in LLVM, we have to link our # libraries into bin2llvmirtool as a whole. if(MSVC) - # -WHOLEARCHIVE needs path to the target, but when we use the target like that, - # its properties (associated includes, etc.) are not propagated. Therefore, we - # state 'bin2llvmir' twice in target_link_libraries(), first as a target to get - # its properties, second as path to library to link it as a whole. - target_link_libraries(retdec-bin2llvmirtool retdec-bin2llvmir -WHOLEARCHIVE:$) - set_property(TARGET retdec-bin2llvmirtool APPEND_STRING PROPERTY LINK_FLAGS " /FORCE:MULTIPLE") + # -WHOLEARCHIVE needs path to the target, but when we use the target like + # that, its properties (associated includes, etc.) are not propagated. + # Therefore, we state 'bin2llvmir' twice in target_link_libraries(), first + # as a target to get its properties, second as path to library to link it + # as a whole. + target_link_libraries(bin2llvmirtool + retdec::bin2llvmir + -WHOLEARCHIVE:$ + ) + set_property(TARGET bin2llvmirtool + APPEND_STRING PROPERTY LINK_FLAGS " /FORCE:MULTIPLE" + ) + # Allow the 32b version of bin2llvmir on Windows handle addresses larger + # than 2 GB (up to 4 GB). + if(CMAKE_SIZEOF_VOID_P MATCHES "4") + set_property(TARGET bin2llvmirtool + APPEND_STRING PROPERTY LINK_FLAGS " /LARGEADDRESSAWARE" + ) + endif() elseif(APPLE) - target_link_libraries(retdec-bin2llvmirtool -Wl,-force_load retdec-bin2llvmir) + target_link_libraries(bin2llvmirtool + -Wl,-force_load retdec::bin2llvmir + ) else() # Linux - target_link_libraries(retdec-bin2llvmirtool -Wl,--whole-archive retdec-bin2llvmir -Wl,--no-whole-archive) + target_link_libraries(bin2llvmirtool + -Wl,--whole-archive retdec::bin2llvmir -Wl,--no-whole-archive + ) endif() -# Allow the 32b version of bin2llvmir on Windows handle addresses larger than 2 -# GB (up to 4 GB). -if(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES "4") - set_property(TARGET retdec-bin2llvmirtool APPEND_STRING PROPERTY LINK_FLAGS " /LARGEADDRESSAWARE") -endif() +set_target_properties(bin2llvmirtool + PROPERTIES + OUTPUT_NAME "retdec-bin2llvmir" +) -set_target_properties(retdec-bin2llvmirtool PROPERTIES OUTPUT_NAME "retdec-bin2llvmir") -install(TARGETS retdec-bin2llvmirtool RUNTIME DESTINATION bin) +install(TARGETS bin2llvmirtool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/bin2pat/CMakeLists.txt b/src/bin2pat/CMakeLists.txt index f891b36e3..54a594db2 100644 --- a/src/bin2pat/CMakeLists.txt +++ b/src/bin2pat/CMakeLists.txt @@ -1,7 +1,21 @@ -set(BIN2PAT_SOURCES + +add_executable(bin2pat bin2pat.cpp ) -add_executable(retdec-bin2pat ${BIN2PAT_SOURCES}) -target_link_libraries(retdec-bin2pat retdec-patterngen retdec-utils yaramod) -install(TARGETS retdec-bin2pat RUNTIME DESTINATION bin) +target_compile_features(bin2pat PUBLIC cxx_std_17) + +target_link_libraries(bin2pat + retdec::patterngen + retdec::utils + retdec::deps::yaramod +) + +set_target_properties(bin2pat + PROPERTIES + OUTPUT_NAME "retdec-bin2pat" +) + +install(TARGETS bin2pat + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/capstone2llvmir/CMakeLists.txt b/src/capstone2llvmir/CMakeLists.txt index 9caa2bb35..2bac042fe 100644 --- a/src/capstone2llvmir/CMakeLists.txt +++ b/src/capstone2llvmir/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(retdec-capstone2llvmir STATIC +add_library(capstone2llvmir STATIC arm/arm_init.cpp arm/arm.cpp arm64/arm64_init.cpp @@ -15,10 +15,54 @@ add_library(retdec-capstone2llvmir STATIC exceptions.cpp llvmir_utils.cpp ) -target_link_libraries(retdec-capstone2llvmir - retdec-common - capstone - llvm +add_library(retdec::capstone2llvmir ALIAS capstone2llvmir) + +target_compile_features(capstone2llvmir PUBLIC cxx_std_17) + +target_include_directories(capstone2llvmir + PUBLIC + $ + $ + PRIVATE + $ +) + +target_link_libraries(capstone2llvmir + PUBLIC + retdec::common + retdec::deps::capstone + retdec::deps::llvm +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/capstone2llvmir + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS capstone2llvmir + EXPORT capstone2llvmir-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT capstone2llvmir-targets + FILE "retdec-capstone2llvmir-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-capstone2llvmir-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-capstone2llvmir-config.cmake" + @ONLY ) -target_include_directories(retdec-capstone2llvmir PUBLIC ${PROJECT_SOURCE_DIR}/include/) -target_include_directories(retdec-capstone2llvmir PUBLIC ${PROJECT_SOURCE_DIR}/src/) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-capstone2llvmir-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) \ No newline at end of file diff --git a/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake new file mode 100644 index 000000000..6300daf71 --- /dev/null +++ b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake @@ -0,0 +1,12 @@ + +if(NOT TARGET retdec::capstone2llvmir) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + common + capstone + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone2llvmir-targets.cmake) +endif() diff --git a/src/capstone2llvmirtool/CMakeLists.txt b/src/capstone2llvmirtool/CMakeLists.txt index b0ad017f9..87c4dfb9a 100644 --- a/src/capstone2llvmirtool/CMakeLists.txt +++ b/src/capstone2llvmirtool/CMakeLists.txt @@ -1,8 +1,21 @@ -set(CAPSTONE2LLVMIRTOOL_SOURCES + +add_executable(capstone2llvmirtool capstone2llvmir.cpp ) -add_executable(retdec-capstone2llvmirtool ${CAPSTONE2LLVMIRTOOL_SOURCES}) -set_target_properties(retdec-capstone2llvmirtool PROPERTIES OUTPUT_NAME "retdec-capstone2llvmir") -target_link_libraries(retdec-capstone2llvmirtool retdec-utils retdec-capstone2llvmir keystone) -install(TARGETS retdec-capstone2llvmirtool RUNTIME DESTINATION bin) +target_compile_features(capstone2llvmirtool PUBLIC cxx_std_17) + +target_link_libraries(capstone2llvmirtool + retdec::utils + retdec::capstone2llvmir + retdec::deps::keystone +) + +set_target_properties(capstone2llvmirtool + PROPERTIES + OUTPUT_NAME "retdec-capstone2llvmir" +) + +install(TARGETS capstone2llvmirtool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index d8c5da398..316f60497 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(retdec-common STATIC +add_library(common STATIC address.cpp architecture.cpp basic_block.cpp @@ -16,7 +16,50 @@ add_library(retdec-common STATIC type.cpp vtable.cpp ) -target_link_libraries(retdec-common - retdec-utils +add_library(retdec::common ALIAS common) + +target_compile_features(common PUBLIC cxx_std_17) + +target_include_directories(common + PUBLIC + $ + $ +) + +target_link_libraries(common + PRIVATE + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/common + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS common + EXPORT common-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT common-targets + FILE "retdec-common-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-common-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-common-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-common-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) -target_include_directories(retdec-common PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/common/retdec-common-config.cmake b/src/common/retdec-common-config.cmake new file mode 100644 index 000000000..771761d25 --- /dev/null +++ b/src/common/retdec-common-config.cmake @@ -0,0 +1,9 @@ + +if(NOT TARGET retdec::common) + find_package(retdec @PROJECT_VERSION@ REQUIRED + COMPONENTS + utils + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-common-targets.cmake) +endif() diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index 059998595..ff5b191d2 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -1,12 +1,56 @@ -add_library(retdec-config STATIC +add_library(config STATIC config.cpp parameters.cpp ) -target_link_libraries(retdec-config - retdec-serdes - retdec-common - retdec-utils - rapidjson +add_library(retdec::config ALIAS config) + +target_compile_features(config PUBLIC cxx_std_17) + +target_include_directories(config PUBLIC + PUBLIC + $ + $ +) + +target_link_libraries(config + PUBLIC + retdec::common + retdec::deps::rapidjson + PRIVATE + retdec::serdes + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/config + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS config + EXPORT config-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT config-targets + FILE "retdec-config-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-config-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) -target_include_directories(retdec-config PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/config/retdec-config-config.cmake b/src/config/retdec-config-config.cmake new file mode 100644 index 000000000..261fa46c9 --- /dev/null +++ b/src/config/retdec-config-config.cmake @@ -0,0 +1,13 @@ + +if(NOT TARGET retdec::config) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + serdes + common + utils + rapidjson + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-config-targets.cmake) +endif() \ No newline at end of file diff --git a/src/configtool/CMakeLists.txt b/src/configtool/CMakeLists.txt index dcf80d7d9..53a7f3972 100644 --- a/src/configtool/CMakeLists.txt +++ b/src/configtool/CMakeLists.txt @@ -1,8 +1,19 @@ -set(RETDEC_CONFIGTOOL_SOURCES + +add_executable(configtool configtool.cpp ) -add_executable(retdec-configtool ${RETDEC_CONFIGTOOL_SOURCES}) -set_target_properties(retdec-configtool PROPERTIES OUTPUT_NAME "retdec-config") -target_link_libraries(retdec-configtool retdec-config) -install(TARGETS retdec-configtool RUNTIME DESTINATION bin) +target_compile_features(configtool PUBLIC cxx_std_17) + +target_link_libraries(configtool + retdec::config +) + +set_target_properties(configtool + PROPERTIES + OUTPUT_NAME "retdec-config" +) + +install(TARGETS configtool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/cpdetect/CMakeLists.txt b/src/cpdetect/CMakeLists.txt index f550057bd..6adaa7538 100644 --- a/src/cpdetect/CMakeLists.txt +++ b/src/cpdetect/CMakeLists.txt @@ -1,4 +1,5 @@ -set(CPDETECT_SOURCES + +add_library(cpdetect STATIC compiler_detector/coff_compiler.cpp compiler_detector/compiler_detector.cpp compiler_detector/elf_compiler.cpp @@ -18,11 +19,55 @@ set(CPDETECT_SOURCES signatures/avg/signature_checker.cpp utils/version_solver.cpp ) +add_library(retdec::cpdetect ALIAS cpdetect) + +target_compile_features(cpdetect PUBLIC cxx_std_17) + +target_include_directories(cpdetect + PUBLIC + $ + $ +) + +target_link_libraries(cpdetect + PUBLIC + retdec::fileformat + retdec::utils + PRIVATE + retdec::yaracpp + retdec::deps::tinyxml2 + retdec::deps::llvm +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/cpdetect + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS cpdetect + EXPORT cpdetect-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-cpdetect STATIC ${CPDETECT_SOURCES}) -target_link_libraries(retdec-cpdetect - retdec-fileformat - retdec-yaracpp - tinyxml2 - llvm) -target_include_directories(retdec-cpdetect PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT cpdetect-targets + FILE "retdec-cpdetect-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-cpdetect-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-cpdetect-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-cpdetect-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/cpdetect/compiler_detector/compiler_detector.cpp b/src/cpdetect/compiler_detector/compiler_detector.cpp index 8dd18f547..8aecc0591 100644 --- a/src/cpdetect/compiler_detector/compiler_detector.cpp +++ b/src/cpdetect/compiler_detector/compiler_detector.cpp @@ -16,7 +16,7 @@ using namespace retdec::fileformat; using namespace retdec::utils; -using namespace yaracpp; +using namespace retdec::yaracpp; namespace retdec { namespace cpdetect { diff --git a/src/cpdetect/compiler_detector/heuristics/pe_heuristics.cpp b/src/cpdetect/compiler_detector/heuristics/pe_heuristics.cpp index 87b6e5cf6..08f542171 100644 --- a/src/cpdetect/compiler_detector/heuristics/pe_heuristics.cpp +++ b/src/cpdetect/compiler_detector/heuristics/pe_heuristics.cpp @@ -9,7 +9,7 @@ #include #include -#include +#include #include "retdec/utils/conversion.h" #include "retdec/utils/string.h" diff --git a/src/cpdetect/compiler_factory.cpp b/src/cpdetect/compiler_factory.cpp index bd3c1efcb..99c364593 100644 --- a/src/cpdetect/compiler_factory.cpp +++ b/src/cpdetect/compiler_factory.cpp @@ -25,7 +25,9 @@ namespace cpdetect { * If format of input file is not supported, function will return @c nullptr. */ std::unique_ptr createCompilerDetector( - retdec::fileformat::FileFormat &parser, DetectParams ¶ms, ToolInformation &toolInfo) + retdec::fileformat::FileFormat &parser, + DetectParams ¶ms, + ToolInformation &toolInfo) { CoffFormat *coff = dynamic_cast(&parser); ElfFormat *elf = dynamic_cast(&parser); diff --git a/src/cpdetect/retdec-cpdetect-config.cmake b/src/cpdetect/retdec-cpdetect-config.cmake new file mode 100644 index 000000000..84a36994f --- /dev/null +++ b/src/cpdetect/retdec-cpdetect-config.cmake @@ -0,0 +1,14 @@ + +if(NOT TARGET retdec::cpdetect) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + fileformat + yaracpp + utils + tinyxml2 + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-cpdetect-targets.cmake) +endif() diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index a1701efad..68ca3023b 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -1,9 +1,55 @@ -set(CRYPTO_SOURCES + +add_library(crypto STATIC crc32.cpp crypto.cpp hash_context.cpp ) +add_library(retdec::crypto ALIAS crypto) + +target_compile_features(crypto PUBLIC cxx_std_17) + +target_include_directories(crypto + PUBLIC + $ + $ +) + +target_link_libraries(crypto + PUBLIC + retdec::deps::openssl-crypto + PRIVATE + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/crypto + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS crypto + EXPORT crypto-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-crypto STATIC ${CRYPTO_SOURCES}) -target_link_libraries(retdec-crypto retdec-utils openssl-crypto) -target_include_directories(retdec-crypto PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT crypto-targets + FILE "retdec-crypto-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-crypto-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-crypto-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-crypto-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/crypto/hash_context.cpp b/src/crypto/hash_context.cpp index 2ca63a8c8..7aac59e36 100644 --- a/src/crypto/hash_context.cpp +++ b/src/crypto/hash_context.cpp @@ -6,6 +6,8 @@ #include +#include + #include "retdec/crypto/hash_context.h" #include "retdec/utils/container.h" #include "retdec/utils/conversion.h" diff --git a/src/crypto/retdec-crypto-config.cmake b/src/crypto/retdec-crypto-config.cmake new file mode 100644 index 000000000..ed57d176d --- /dev/null +++ b/src/crypto/retdec-crypto-config.cmake @@ -0,0 +1,12 @@ + +if(NOT TARGET retdec::crypto) + find_package(Threads REQUIRED) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + utils + openssl-crypto + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-crypto-targets.cmake) +endif() diff --git a/src/ctypes/CMakeLists.txt b/src/ctypes/CMakeLists.txt index efa3b8ae7..5c3cc5185 100644 --- a/src/ctypes/CMakeLists.txt +++ b/src/ctypes/CMakeLists.txt @@ -1,4 +1,5 @@ -set(CTYPES_SOURCES + +add_library(ctypes STATIC annotation.cpp annotation_in.cpp annotation_inout.cpp @@ -30,7 +31,50 @@ set(CTYPES_SOURCES visitor.cpp void_type.cpp ) +add_library(retdec::ctypes ALIAS ctypes) + +target_compile_features(ctypes PUBLIC cxx_std_17) + +target_link_libraries(ctypes + PRIVATE + retdec::utils +) + +target_include_directories(ctypes + PUBLIC + $ + $ +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ctypes + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS ctypes + EXPORT ctypes-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-ctypes STATIC ${CTYPES_SOURCES}) -target_link_libraries(retdec-ctypes retdec-utils) -target_include_directories(retdec-ctypes PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT ctypes-targets + FILE "retdec-ctypes-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-ctypes-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypes-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypes-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/ctypes/retdec-ctypes-config.cmake b/src/ctypes/retdec-ctypes-config.cmake new file mode 100644 index 000000000..e6b9de3a9 --- /dev/null +++ b/src/ctypes/retdec-ctypes-config.cmake @@ -0,0 +1,10 @@ + +if(NOT TARGET retdec::ctypes) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + utils + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-ctypes-targets.cmake) +endif() diff --git a/src/ctypesparser/CMakeLists.txt b/src/ctypesparser/CMakeLists.txt index 10099f07d..3fb179577 100644 --- a/src/ctypesparser/CMakeLists.txt +++ b/src/ctypesparser/CMakeLists.txt @@ -1,13 +1,56 @@ -set(CTYPESPARSER_SOURCES + +add_library(ctypesparser STATIC ctypes_parser.cpp json_ctypes_parser.cpp - ast_ctypes_parser.cpp - borland_ast_ctypes_parser.cpp - ms_ast_ctypes_parser.cpp - itanium_ast_ctypes_parser.cpp type_config.cpp ) +add_library(retdec::ctypesparser ALIAS ctypesparser) + +target_compile_features(ctypesparser PUBLIC cxx_std_17) + +target_include_directories(ctypesparser + PUBLIC + $ + $ +) + +target_link_libraries(ctypesparser + PUBLIC + retdec::ctypes + retdec::deps::rapidjson + PRIVATE + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ctypesparser + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS ctypesparser + EXPORT ctypesparser-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-ctypesparser STATIC ${CTYPESPARSER_SOURCES}) -target_link_libraries(retdec-ctypesparser retdec-ctypes retdec-utils rapidjson retdec-demangler) -target_include_directories(retdec-ctypesparser PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT ctypesparser-targets + FILE "retdec-ctypesparser-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-ctypesparser-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypesparser-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypesparser-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/ctypesparser/retdec-ctypesparser-config.cmake b/src/ctypesparser/retdec-ctypesparser-config.cmake new file mode 100644 index 000000000..e062cc5e5 --- /dev/null +++ b/src/ctypesparser/retdec-ctypesparser-config.cmake @@ -0,0 +1,12 @@ + +if(NOT TARGET retdec::ctypesparser) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + ctypes + utils + rapidjson + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-ctypesparser-targets.cmake) +endif() diff --git a/src/debugformat/CMakeLists.txt b/src/debugformat/CMakeLists.txt index 8807665ad..ba7719deb 100644 --- a/src/debugformat/CMakeLists.txt +++ b/src/debugformat/CMakeLists.txt @@ -1,16 +1,58 @@ -add_library(retdec-debugformat STATIC +add_library(debugformat STATIC debugformat.cpp dwarf.cpp pdb.cpp ) -target_link_libraries(retdec-debugformat - retdec-config - retdec-demangler - retdec-pdbparser - retdec-fileformat - retdec-loader - retdec-common - llvm +add_library(retdec::debugformat ALIAS debugformat) + +target_compile_features(debugformat PUBLIC cxx_std_17) + +target_include_directories(debugformat + PUBLIC + $ + $ +) + +target_link_libraries(debugformat + PUBLIC + retdec::demangler + retdec::loader + retdec::fileformat + retdec::common + retdec::pdbparser + retdec::deps::llvm +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/debugformat + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS debugformat + EXPORT debugformat-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT debugformat-targets + FILE "retdec-debugformat-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-debugformat-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-debugformat-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-debugformat-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) -target_include_directories(retdec-debugformat PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/debugformat/debugformat.cpp b/src/debugformat/debugformat.cpp index c9154a886..c2302042e 100644 --- a/src/debugformat/debugformat.cpp +++ b/src/debugformat/debugformat.cpp @@ -31,7 +31,7 @@ DebugFormat::DebugFormat( retdec::loader::Image* inFile, const std::string& pdbFile, SymbolTable* symtab, - retdec::bin2llvmir::Demangler* demangler, + retdec::demangler::Demangler* demangler, unsigned long long imageBase) : _symtab(symtab), @@ -47,11 +47,6 @@ DebugFormat::DebugFormat( _pdbFile->initialize(imageBase); loadPdb(); } - // else if (_dwarfFile->hasDwarfInfo()) - // { - // LOG << "\n*** DebugFormat::DebugFormat(): DWARF" << std::endl; - // // loadDwarf(); - // } loadDwarf(); diff --git a/src/debugformat/retdec-debugformat-config.cmake b/src/debugformat/retdec-debugformat-config.cmake new file mode 100644 index 000000000..332240568 --- /dev/null +++ b/src/debugformat/retdec-debugformat-config.cmake @@ -0,0 +1,15 @@ + +if(NOT TARGET retdec::debugformat) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + demangler + loader + fileformat + common + pdbparser + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-debugformat-targets.cmake) +endif() diff --git a/src/demangler/CMakeLists.txt b/src/demangler/CMakeLists.txt index b582c7e7e..18dea33ee 100644 --- a/src/demangler/CMakeLists.txt +++ b/src/demangler/CMakeLists.txt @@ -1,11 +1,15 @@ -set(DEMANGLER_LLVM_SOURCES +add_library(demangler STATIC + ast_ctypes_parser.cpp + borland_ast_ctypes_parser.cpp + borland_ast_parser.cpp + borland_demangler.cpp + context.cpp demangler_base.cpp + itanium_ast_ctypes_parser.cpp itanium_demangler_adapter.cpp microsoft_demangler_adapter.cpp - borland_demangler.cpp - borland_ast_parser.cpp - context.cpp + ms_ast_ctypes_parser.cpp borland_ast/array_type.cpp borland_ast/built_in_type.cpp borland_ast/char_type.cpp @@ -26,7 +30,51 @@ set(DEMANGLER_LLVM_SOURCES borland_ast/template_node.cpp borland_ast/type_node.cpp ) +add_library(retdec::demangler ALIAS demangler) + +target_compile_features(demangler PUBLIC cxx_std_17) + +target_include_directories(demangler + PUBLIC + $ + $ +) -add_library(retdec-demangler STATIC ${DEMANGLER_LLVM_SOURCES}) -target_link_libraries(retdec-demangler retdec-ctypesparser llvm) -target_include_directories(retdec-demangler PUBLIC ${PROJECT_SOURCE_DIR}/include/) \ No newline at end of file +target_link_libraries(demangler + PUBLIC + retdec::ctypesparser + retdec::deps::llvm +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/demangler + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS demangler + EXPORT demangler-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT demangler-targets + FILE "retdec-demangler-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-demangler-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-demangler-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-demangler-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) \ No newline at end of file diff --git a/src/ctypesparser/ast_ctypes_parser.cpp b/src/demangler/ast_ctypes_parser.cpp similarity index 94% rename from src/ctypesparser/ast_ctypes_parser.cpp rename to src/demangler/ast_ctypes_parser.cpp index 8352c17c0..8f5054f0b 100644 --- a/src/ctypesparser/ast_ctypes_parser.cpp +++ b/src/demangler/ast_ctypes_parser.cpp @@ -1,14 +1,14 @@ /** -* @file src/ctypesparser/ast_ctypes_parser.cpp +* @file src/demangler/ast_ctypes_parser.cpp * @brief Base class for all C-types parsers from demangler ASTs. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ #include "retdec/utils/container.h" -#include "retdec/ctypesparser/ast_ctypes_parser.h" +#include "retdec/demangler/ast_ctypes_parser.h" namespace retdec { -namespace ctypesparser { +namespace demangler { /* * @brief Finds bit width of type, based on name. diff --git a/src/ctypesparser/borland_ast_ctypes_parser.cpp b/src/demangler/borland_ast_ctypes_parser.cpp similarity index 98% rename from src/ctypesparser/borland_ast_ctypes_parser.cpp rename to src/demangler/borland_ast_ctypes_parser.cpp index 63bf96653..87efab4e1 100644 --- a/src/ctypesparser/borland_ast_ctypes_parser.cpp +++ b/src/demangler/borland_ast_ctypes_parser.cpp @@ -1,18 +1,18 @@ /** -* @file src/ctypesparser/borland_ast_ctypes_parser.cpp +* @file src/demangler/borland_ast_ctypes_parser.cpp * @brief Parser from AST created by Borland demangler to C-types. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ #include -#include "retdec/ctypesparser/borland_ast_ctypes_parser.h" #include "retdec/ctypes/ctypes.h" +#include "retdec/demangler/borland_ast_ctypes_parser.h" using Kind = retdec::demangler::borland::Node::Kind; namespace retdec { -namespace ctypesparser { +namespace demangler { /* * @brief Entry point for parsing AST representation of functions into ctypes functions. @@ -337,5 +337,5 @@ std::shared_ptr BorlandToCtypesParser::parseArrayType( return ctypes::ArrayType::create(context, type, dimensions); } -} // ctypesparser -} // retdec +} // demangler +} // retdec diff --git a/src/demangler/borland_demangler.cpp b/src/demangler/borland_demangler.cpp index 18cbe1ac1..93c0060ad 100644 --- a/src/demangler/borland_demangler.cpp +++ b/src/demangler/borland_demangler.cpp @@ -4,9 +4,9 @@ * @copyright (c) 2018 Avast Software, licensed under the MIT license */ -#include "retdec/demangler/borland_demangler.h" +#include "retdec/demangler/borland_ast_ctypes_parser.h" #include "retdec/demangler/borland_ast_parser.h" -#include "retdec/ctypesparser/borland_ast_ctypes_parser.h" +#include "retdec/demangler/borland_demangler.h" namespace { /** @@ -77,8 +77,14 @@ std::shared_ptr BorlandDemangler::demangleFunctionToCtypes( return nullptr; } - ctypesparser::BorlandToCtypesParser ctypesParser{}; - auto func = ctypesParser.parseAsFunction(mangled, astParser.ast(), module, typeWidths, typeSignedness, defaultBitWidth); + BorlandToCtypesParser ctypesParser{}; + auto func = ctypesParser.parseAsFunction( + mangled, + astParser.ast(), + module, + typeWidths, + typeSignedness, + defaultBitWidth); _status = func ? success : invalid_mangled_name; return func; } diff --git a/src/ctypesparser/itanium_ast_ctypes_parser.cpp b/src/demangler/itanium_ast_ctypes_parser.cpp similarity index 98% rename from src/ctypesparser/itanium_ast_ctypes_parser.cpp rename to src/demangler/itanium_ast_ctypes_parser.cpp index bdd86c2fa..b7c0c6ed4 100644 --- a/src/ctypesparser/itanium_ast_ctypes_parser.cpp +++ b/src/demangler/itanium_ast_ctypes_parser.cpp @@ -1,15 +1,15 @@ /** -* @file src/ctypesparser/itanium_ast_ctypes_parser.cpp +* @file src/demangler/itanium_ast_ctypes_parser.cpp * @brief Parser from AST created by Itanium demangler to C-types. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ #include -#include "retdec/ctypesparser/itanium_ast_ctypes_parser.h" +#include "retdec/demangler/itanium_ast_ctypes_parser.h" namespace retdec { -namespace ctypesparser { +namespace demangler { using Kind = llvm::itanium_demangle::Node::Kind; using StringView = llvm::itanium_demangle::StringView; @@ -349,5 +349,5 @@ ctypes::FunctionType::Parameters ItaniumAstCtypesParser::parseFuncTypeParameters return parameters; } -} -} +} // demangler +} // retdec diff --git a/src/demangler/itanium_demangler_adapter.cpp b/src/demangler/itanium_demangler_adapter.cpp index 3efa60a04..96bf316ca 100644 --- a/src/demangler/itanium_demangler_adapter.cpp +++ b/src/demangler/itanium_demangler_adapter.cpp @@ -9,8 +9,8 @@ #include #include +#include "retdec/demangler/itanium_ast_ctypes_parser.h" #include "retdec/demangler/itanium_demangler.h" -#include "retdec/ctypesparser/itanium_ast_ctypes_parser.h" namespace retdec { namespace demangler { @@ -72,8 +72,14 @@ std::shared_ptr ItaniumDemangler::demangleFunctionToCtypes( return nullptr; } - ctypesparser::ItaniumAstCtypesParser ctypesParser; - auto func = ctypesParser.parseAsFunction(mangled, AST, module, typeWidths, typeSignedness, defaultBitWidth); + ItaniumAstCtypesParser ctypesParser; + auto func = ctypesParser.parseAsFunction( + mangled, + AST, + module, + typeWidths, + typeSignedness, + defaultBitWidth); if (func) { _status = success; } diff --git a/src/demangler/microsoft_demangler_adapter.cpp b/src/demangler/microsoft_demangler_adapter.cpp index 428d3d60e..371398d88 100644 --- a/src/demangler/microsoft_demangler_adapter.cpp +++ b/src/demangler/microsoft_demangler_adapter.cpp @@ -8,7 +8,7 @@ #include #include "retdec/demangler/microsoft_demangler.h" -#include "retdec/ctypesparser/ms_ast_ctypes_parser.h" +#include "retdec/demangler/ms_ast_ctypes_parser.h" namespace retdec { namespace demangler { @@ -71,13 +71,19 @@ std::shared_ptr MicrosoftDemangler::demangleFunctionToCtypes( } std::shared_ptr func; - ctypesparser::MsToCtypesParser parser; - func = parser.parseAsFunction(mangled, AST, module, typeWidths, typeSignedness, defaultBitWidth); + MsToCtypesParser parser; + func = parser.parseAsFunction( + mangled, + AST, + module, + typeWidths, + typeSignedness, + defaultBitWidth); if (func) { _status = success; } return func; } -} -} +} // demangler +} // retdec diff --git a/src/ctypesparser/ms_ast_ctypes_parser.cpp b/src/demangler/ms_ast_ctypes_parser.cpp similarity index 98% rename from src/ctypesparser/ms_ast_ctypes_parser.cpp rename to src/demangler/ms_ast_ctypes_parser.cpp index 0de8eb12f..d7e9acdd6 100644 --- a/src/ctypesparser/ms_ast_ctypes_parser.cpp +++ b/src/demangler/ms_ast_ctypes_parser.cpp @@ -1,5 +1,5 @@ /** -* @file src/ctypesparser/itanium_ast_ctypes_parser.cpp +* @file src/demangler/itanium_ast_ctypes_parser.cpp * @brief Parser from AST created by Itanium demangler to C-types. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ @@ -10,10 +10,10 @@ #include #include -#include "retdec/ctypesparser/ms_ast_ctypes_parser.h" +#include "retdec/demangler/ms_ast_ctypes_parser.h" namespace retdec { -namespace ctypesparser { +namespace demangler { namespace { @@ -362,5 +362,5 @@ ctypes::FunctionType::Parameters MsToCtypesParser::parseFuncTypeParameters( return params; } -} // namespace ctypesparser -} // namespace retdec +} // namespace demangler +} // namespace retdec diff --git a/src/demangler/retdec-demangler-config.cmake b/src/demangler/retdec-demangler-config.cmake new file mode 100644 index 000000000..3ef6f6cbc --- /dev/null +++ b/src/demangler/retdec-demangler-config.cmake @@ -0,0 +1,11 @@ + +if(NOT TARGET retdec::demangler) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + ctypesparser + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-demangler-targets.cmake) +endif() diff --git a/src/demanglertool/CMakeLists.txt b/src/demanglertool/CMakeLists.txt index 50aadf9cb..825c56d2e 100644 --- a/src/demanglertool/CMakeLists.txt +++ b/src/demanglertool/CMakeLists.txt @@ -1,8 +1,19 @@ -set(DEMANGLERTOOL_SOURCES + +add_executable(demanglertool demangler.cpp ) -add_executable(retdec-demanglertool ${DEMANGLERTOOL_SOURCES}) -set_target_properties(retdec-demanglertool PROPERTIES OUTPUT_NAME "retdec-demangler") -target_link_libraries(retdec-demanglertool retdec-demangler) -install(TARGETS retdec-demanglertool RUNTIME DESTINATION bin) +target_compile_features(demanglertool PUBLIC cxx_std_17) + +target_link_libraries(demanglertool + retdec::demangler +) + +set_target_properties(demanglertool + PROPERTIES + OUTPUT_NAME "retdec-demangler" +) + +install(TARGETS demanglertool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index 0b7408c0c..a77906c4f 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -1,7 +1,5 @@ -find_package(Threads REQUIRED) - -add_library(retdec-fileformat STATIC +add_library(fileformat STATIC utils/format_detection.cpp utils/byte_array_buffer.cpp utils/conversions.cpp @@ -77,12 +75,55 @@ add_library(retdec-fileformat STATIC file_format/file_format.cpp file_format/elf/elf_format.cpp ) -target_link_libraries(retdec-fileformat - retdec-crypto - retdec-common - retdec-utils - pelib - elfio - llvm Threads::Threads +add_library(retdec::fileformat ALIAS fileformat) + +target_compile_features(fileformat PUBLIC cxx_std_17) + +target_include_directories(fileformat + PUBLIC + $ + $ +) + +target_link_libraries(fileformat + PUBLIC + retdec::crypto + retdec::common + retdec::utils + retdec::pelib + retdec::deps::elfio + retdec::deps::llvm +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/fileformat + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS fileformat + EXPORT fileformat-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT fileformat-targets + FILE "retdec-fileformat-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-fileformat-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-fileformat-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-fileformat-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) -target_include_directories(retdec-fileformat PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/fileformat/retdec-fileformat-config.cmake b/src/fileformat/retdec-fileformat-config.cmake new file mode 100644 index 000000000..8c7909d7c --- /dev/null +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -0,0 +1,15 @@ + +if(NOT TARGET retdec::fileformat) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + crypto + common + utils + pelib + elfio + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) +endif() diff --git a/src/fileformat/types/certificate_table/certificate.cpp b/src/fileformat/types/certificate_table/certificate.cpp index 6b3534170..72368257c 100644 --- a/src/fileformat/types/certificate_table/certificate.cpp +++ b/src/fileformat/types/certificate_table/certificate.cpp @@ -8,6 +8,7 @@ #include #include +#include #include "retdec/utils/conversion.h" #include "retdec/fileformat/types/certificate_table/certificate.h" diff --git a/src/fileinfo/CMakeLists.txt b/src/fileinfo/CMakeLists.txt index bfcd4dcd0..6681c35ae 100644 --- a/src/fileinfo/CMakeLists.txt +++ b/src/fileinfo/CMakeLists.txt @@ -1,4 +1,5 @@ -set(FILEINFO_SOURCES + +add_executable(fileinfo file_detector/coff_detector.cpp file_detector/detector_factory.cpp file_detector/elf_detector.cpp @@ -107,18 +108,32 @@ set(FILEINFO_SOURCES pattern_detector/pattern_detector.cpp ) -add_executable(retdec-fileinfo ${FILEINFO_SOURCES}) -target_link_libraries(retdec-fileinfo - retdec-loader - retdec-ar-extractor - retdec-fileformat - retdec-cpdetect - retdec-yaracpp - retdec-utils - retdec-common - retdec-config - retdec-serdes - rapidjson - tinyxml2) -target_include_directories(retdec-fileinfo PUBLIC ${PROJECT_SOURCE_DIR}/src/) -install(TARGETS retdec-fileinfo RUNTIME DESTINATION bin) +target_compile_features(fileinfo PUBLIC cxx_std_17) + +target_include_directories(fileinfo + PRIVATE + ${RETDEC_SOURCE_DIR} +) + +target_link_libraries(fileinfo + retdec::loader + retdec::ar-extractor + retdec::fileformat + retdec::cpdetect + retdec::yaracpp + retdec::utils + retdec::common + retdec::config + retdec::serdes + retdec::deps::rapidjson + retdec::deps::tinyxml2 +) + +set_target_properties(fileinfo + PROPERTIES + OUTPUT_NAME "retdec-fileinfo" +) + +install(TARGETS fileinfo + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/fileinfo/file_detector/coff_detector.cpp b/src/fileinfo/file_detector/coff_detector.cpp index 7d839bbb0..bc6711b48 100644 --- a/src/fileinfo/file_detector/coff_detector.cpp +++ b/src/fileinfo/file_detector/coff_detector.cpp @@ -21,6 +21,7 @@ using namespace PeLib; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace { @@ -528,3 +529,4 @@ retdec::cpdetect::CompilerDetector* CoffDetector::createCompilerDetector() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_detector/coff_detector.h b/src/fileinfo/file_detector/coff_detector.h index e5fa1e6ec..28be07b07 100644 --- a/src/fileinfo/file_detector/coff_detector.h +++ b/src/fileinfo/file_detector/coff_detector.h @@ -10,6 +10,7 @@ #include "fileinfo/file_detector/file_detector.h" #include "fileinfo/file_wrapper/coff_wrapper.h" +namespace retdec { namespace fileinfo { /** @@ -46,5 +47,6 @@ class CoffDetector : public FileDetector }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_detector/detector_factory.cpp b/src/fileinfo/file_detector/detector_factory.cpp index c12807204..ed5c7c304 100644 --- a/src/fileinfo/file_detector/detector_factory.cpp +++ b/src/fileinfo/file_detector/detector_factory.cpp @@ -14,6 +14,7 @@ using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -59,3 +60,4 @@ FileDetector* createFileDetector( } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_detector/detector_factory.h b/src/fileinfo/file_detector/detector_factory.h index 0ed845d96..0c212198f 100644 --- a/src/fileinfo/file_detector/detector_factory.h +++ b/src/fileinfo/file_detector/detector_factory.h @@ -9,10 +9,12 @@ #include "fileinfo/file_detector/file_detector.h" +namespace retdec { namespace fileinfo { FileDetector* createFileDetector(const std::string & pathToInputFile, const std::string & dllListFile, retdec::fileformat::Format fileFormat, FileInformation &finfo, retdec::cpdetect::DetectParams &searchPar, retdec::fileformat::LoadFlags loadFlags); } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_detector/elf_detector.cpp b/src/fileinfo/file_detector/elf_detector.cpp index d63a5ce93..f7ec4dccf 100644 --- a/src/fileinfo/file_detector/elf_detector.cpp +++ b/src/fileinfo/file_detector/elf_detector.cpp @@ -15,6 +15,7 @@ using namespace ELFIO; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -1972,3 +1973,4 @@ retdec::cpdetect::CompilerDetector* ElfDetector::createCompilerDetector() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_detector/elf_detector.h b/src/fileinfo/file_detector/elf_detector.h index 76578dd90..c22496c39 100644 --- a/src/fileinfo/file_detector/elf_detector.h +++ b/src/fileinfo/file_detector/elf_detector.h @@ -10,6 +10,7 @@ #include "fileinfo/file_detector/file_detector.h" #include "fileinfo/file_wrapper/elf_wrapper.h" +namespace retdec { namespace fileinfo { /** @@ -53,5 +54,6 @@ class ElfDetector : public FileDetector }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_detector/file_detector.cpp b/src/fileinfo/file_detector/file_detector.cpp index e44954530..dca28d514 100644 --- a/src/fileinfo/file_detector/file_detector.cpp +++ b/src/fileinfo/file_detector/file_detector.cpp @@ -6,7 +6,7 @@ #include -#include +#include #include "retdec/fileformat/file_format/file_format.h" #include "fileinfo/file_detector/file_detector.h" @@ -16,6 +16,7 @@ using namespace retdec::utils; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -361,3 +362,4 @@ const retdec::fileformat::FileFormat* FileDetector::getFileParser() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_detector/file_detector.h b/src/fileinfo/file_detector/file_detector.h index b3c5a0097..5bf3ce54e 100644 --- a/src/fileinfo/file_detector/file_detector.h +++ b/src/fileinfo/file_detector/file_detector.h @@ -11,6 +11,7 @@ #include "retdec/utils/non_copyable.h" #include "fileinfo/file_information/file_information.h" +namespace retdec { namespace fileinfo { /** @@ -68,5 +69,6 @@ class FileDetector : private retdec::utils::NonCopyable }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_detector/intel_hex_detector.cpp b/src/fileinfo/file_detector/intel_hex_detector.cpp index b56b40ebe..2e3723c64 100644 --- a/src/fileinfo/file_detector/intel_hex_detector.cpp +++ b/src/fileinfo/file_detector/intel_hex_detector.cpp @@ -10,6 +10,7 @@ using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -141,3 +142,4 @@ retdec::cpdetect::CompilerDetector* IntelHexDetector::createCompilerDetector() c } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_detector/intel_hex_detector.h b/src/fileinfo/file_detector/intel_hex_detector.h index 62b8f37cf..4f9c0afc3 100644 --- a/src/fileinfo/file_detector/intel_hex_detector.h +++ b/src/fileinfo/file_detector/intel_hex_detector.h @@ -9,6 +9,7 @@ #include "fileinfo/file_detector/file_detector.h" +namespace retdec { namespace fileinfo { /** @@ -42,5 +43,6 @@ class IntelHexDetector : public FileDetector }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_detector/macho_detector.cpp b/src/fileinfo/file_detector/macho_detector.cpp index 094a6e821..c9bc1d7eb 100644 --- a/src/fileinfo/file_detector/macho_detector.cpp +++ b/src/fileinfo/file_detector/macho_detector.cpp @@ -18,6 +18,7 @@ using namespace llvm::object; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -345,3 +346,4 @@ bool MachODetector::isMachoUniversalArchive() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_detector/macho_detector.h b/src/fileinfo/file_detector/macho_detector.h index f5ab675f3..26799a011 100644 --- a/src/fileinfo/file_detector/macho_detector.h +++ b/src/fileinfo/file_detector/macho_detector.h @@ -10,6 +10,7 @@ #include "fileinfo/file_detector/file_detector.h" #include "fileinfo/file_wrapper/macho_wrapper.h" +namespace retdec { namespace fileinfo { /** @@ -49,5 +50,6 @@ class MachODetector : public FileDetector }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_detector/pe_detector.cpp b/src/fileinfo/file_detector/pe_detector.cpp index bb8120938..54b32784e 100644 --- a/src/fileinfo/file_detector/pe_detector.cpp +++ b/src/fileinfo/file_detector/pe_detector.cpp @@ -16,6 +16,7 @@ using namespace PeLib; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -546,3 +547,4 @@ retdec::cpdetect::CompilerDetector* PeDetector::createCompilerDetector() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_detector/pe_detector.h b/src/fileinfo/file_detector/pe_detector.h index dfe3aafee..76a4a796d 100644 --- a/src/fileinfo/file_detector/pe_detector.h +++ b/src/fileinfo/file_detector/pe_detector.h @@ -10,6 +10,7 @@ #include "fileinfo/file_detector/file_detector.h" #include "fileinfo/file_wrapper/pe/pe_wrapper.h" +namespace retdec { namespace fileinfo { /** @@ -51,5 +52,6 @@ class PeDetector : public FileDetector }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_detector/raw_data_detector.cpp b/src/fileinfo/file_detector/raw_data_detector.cpp index c1cfd26d4..ac9607f0f 100644 --- a/src/fileinfo/file_detector/raw_data_detector.cpp +++ b/src/fileinfo/file_detector/raw_data_detector.cpp @@ -10,6 +10,7 @@ using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -139,3 +140,4 @@ retdec::cpdetect::CompilerDetector* RawDataDetector::createCompilerDetector() co } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_detector/raw_data_detector.h b/src/fileinfo/file_detector/raw_data_detector.h index db565c35e..9ba7b9ec7 100644 --- a/src/fileinfo/file_detector/raw_data_detector.h +++ b/src/fileinfo/file_detector/raw_data_detector.h @@ -9,6 +9,7 @@ #include "fileinfo/file_detector/file_detector.h" +namespace retdec { namespace fileinfo { /** @@ -42,5 +43,6 @@ class RawDataDetector : public FileDetector }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information.cpp b/src/fileinfo/file_information/file_information.cpp index 58c998b44..2883b8508 100644 --- a/src/fileinfo/file_information/file_information.cpp +++ b/src/fileinfo/file_information/file_information.cpp @@ -14,6 +14,7 @@ using namespace retdec::common; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -4671,3 +4672,4 @@ void FileInformation::addLoadedSegment(const LoadedSegment& segment) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information.h b/src/fileinfo/file_information/file_information.h index 20be82834..bddb73d34 100644 --- a/src/fileinfo/file_information/file_information.h +++ b/src/fileinfo/file_information/file_information.h @@ -12,6 +12,7 @@ #include "retdec/cpdetect/cpdetect.h" #include "fileinfo/file_information/file_information_types/file_information_types.h" +namespace retdec { namespace fileinfo { /** @@ -656,5 +657,6 @@ class FileInformation }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/certificate_table.cpp b/src/fileinfo/file_information/file_information_types/certificate_table.cpp index a0678c997..f0532f506 100644 --- a/src/fileinfo/file_information/file_information_types/certificate_table.cpp +++ b/src/fileinfo/file_information/file_information_types/certificate_table.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_information/file_information_types/certificate_table.h" +namespace retdec { namespace fileinfo { /** @@ -513,3 +514,4 @@ bool CertificateTable::hasCounterSignerCertificate() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/certificate_table.h b/src/fileinfo/file_information/file_information_types/certificate_table.h index fe06f7c7c..048cbfdbf 100644 --- a/src/fileinfo/file_information/file_information_types/certificate_table.h +++ b/src/fileinfo/file_information/file_information_types/certificate_table.h @@ -9,6 +9,7 @@ #include "retdec/fileformat/types/certificate_table/certificate_table.h" +namespace retdec { namespace fileinfo { /** @@ -80,5 +81,6 @@ class CertificateTable }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/data_directory.cpp b/src/fileinfo/file_information/file_information_types/data_directory.cpp index 7084f2acc..de0a77c4a 100644 --- a/src/fileinfo/file_information/file_information_types/data_directory.cpp +++ b/src/fileinfo/file_information/file_information_types/data_directory.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/data_directory.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -65,3 +66,4 @@ void DataDirectory::setSize(unsigned long long dirSize) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/data_directory.h b/src/fileinfo/file_information/file_information_types/data_directory.h index cedd7dd5b..e14e37de1 100644 --- a/src/fileinfo/file_information/file_information_types/data_directory.h +++ b/src/fileinfo/file_information/file_information_types/data_directory.h @@ -9,6 +9,7 @@ #include +namespace retdec { namespace fileinfo { /** @@ -42,5 +43,6 @@ class DataDirectory }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/dotnet_info.cpp b/src/fileinfo/file_information/file_information_types/dotnet_info.cpp index 088ac354e..4a94b8291 100644 --- a/src/fileinfo/file_information/file_information_types/dotnet_info.cpp +++ b/src/fileinfo/file_information/file_information_types/dotnet_info.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/dotnet_info.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -496,3 +497,4 @@ bool DotnetInfo::hasImportedClassListRecords() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/dotnet_info.h b/src/fileinfo/file_information/file_information_types/dotnet_info.h index 8b8539451..030642a86 100644 --- a/src/fileinfo/file_information/file_information_types/dotnet_info.h +++ b/src/fileinfo/file_information/file_information_types/dotnet_info.h @@ -13,6 +13,7 @@ #include "retdec/fileformat/types/dotnet_types/dotnet_class.h" +namespace retdec { namespace fileinfo { struct StreamInfo @@ -108,5 +109,6 @@ class DotnetInfo }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.cpp b/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.cpp index 5b3802586..551fd09bc 100644 --- a/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.cpp +++ b/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -149,3 +150,4 @@ void DynamicEntry::clearFlagsDescriptors() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.h b/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.h index e7d83f81a..9c8809148 100644 --- a/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.h +++ b/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.h @@ -9,6 +9,7 @@ #include "fileinfo/file_information/file_information_types/flags.h" +namespace retdec { namespace fileinfo { /** @@ -53,5 +54,6 @@ class DynamicEntry }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.cpp b/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.cpp index 786c24277..fc3f9531d 100644 --- a/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.cpp +++ b/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -160,3 +161,4 @@ void DynamicSection::clearEntries() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.h b/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.h index 7c0799ecd..c07982d6a 100644 --- a/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.h +++ b/src/fileinfo/file_information/file_information_types/dynamic_section/dynamic_section.h @@ -9,6 +9,7 @@ #include "fileinfo/file_information/file_information_types/dynamic_section/dynamic_entry.h" +namespace retdec { namespace fileinfo { /** @@ -54,5 +55,6 @@ class DynamicSection }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/elf_core.cpp b/src/fileinfo/file_information/file_information_types/elf_core.cpp index 190b826a4..4f19caa19 100644 --- a/src/fileinfo/file_information/file_information_types/elf_core.cpp +++ b/src/fileinfo/file_information/file_information_types/elf_core.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_information/file_information_types/elf_core.h" +namespace retdec { namespace fileinfo { bool ElfCore::hasAuxVector() const @@ -41,3 +42,4 @@ void ElfCore::addAuxVectorEntry( } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/elf_core.h b/src/fileinfo/file_information/file_information_types/elf_core.h index b6d9b85f4..19a262e4a 100644 --- a/src/fileinfo/file_information/file_information_types/elf_core.h +++ b/src/fileinfo/file_information/file_information_types/elf_core.h @@ -10,6 +10,7 @@ #include #include +namespace retdec { namespace fileinfo { using AuxVectorEntry = std::pair; @@ -58,5 +59,6 @@ class ElfCore }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/elf_notes.cpp b/src/fileinfo/file_information/file_information_types/elf_notes.cpp index f03df6b90..ebb7b2e48 100644 --- a/src/fileinfo/file_information/file_information_types/elf_notes.cpp +++ b/src/fileinfo/file_information/file_information_types/elf_notes.cpp @@ -8,6 +8,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { std::string ElfNotes::getSectionName() const @@ -76,3 +77,4 @@ void ElfNotes::addNoteEntry(const ElfNoteEntry& noteEntry) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/elf_notes.h b/src/fileinfo/file_information/file_information_types/elf_notes.h index 13dbe3c4e..360a8ad13 100644 --- a/src/fileinfo/file_information/file_information_types/elf_notes.h +++ b/src/fileinfo/file_information/file_information_types/elf_notes.h @@ -11,6 +11,7 @@ #include "retdec/fileformat/types/note_section/elf_notes.h" +namespace retdec { namespace fileinfo { /** @@ -66,5 +67,6 @@ class ElfNotes }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/export_table.cpp b/src/fileinfo/file_information/file_information_types/export_table.cpp index 89e3d2a4b..182517110 100644 --- a/src/fileinfo/file_information/file_information_types/export_table.cpp +++ b/src/fileinfo/file_information/file_information_types/export_table.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/export_table.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -100,3 +101,4 @@ bool ExportTable::hasRecords() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/export_table.h b/src/fileinfo/file_information/file_information_types/export_table.h index 027813856..fdb7db842 100644 --- a/src/fileinfo/file_information/file_information_types/export_table.h +++ b/src/fileinfo/file_information/file_information_types/export_table.h @@ -9,6 +9,7 @@ #include "retdec/fileformat/types/export_table/export_table.h" +namespace retdec { namespace fileinfo { /** @@ -42,5 +43,6 @@ class ExportTable }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/file_header.cpp b/src/fileinfo/file_information/file_information_types/file_header.cpp index 1e3d422dc..8c48b440d 100644 --- a/src/fileinfo/file_information/file_information_types/file_header.cpp +++ b/src/fileinfo/file_information/file_information_types/file_header.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/file_header.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -702,3 +703,4 @@ void FileHeader::clearDllFlagsDescriptors() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/file_header.h b/src/fileinfo/file_information/file_information_types/file_header.h index 1607e4b43..fb3444d42 100644 --- a/src/fileinfo/file_information/file_information_types/file_header.h +++ b/src/fileinfo/file_information/file_information_types/file_header.h @@ -9,6 +9,7 @@ #include "fileinfo/file_information/file_information_types/flags.h" +namespace retdec { namespace fileinfo { /** @@ -142,5 +143,6 @@ class FileHeader }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/file_section.cpp b/src/fileinfo/file_information/file_information_types/file_section.cpp index 8afc96fad..69bc0715d 100644 --- a/src/fileinfo/file_information/file_information_types/file_section.cpp +++ b/src/fileinfo/file_information/file_information_types/file_section.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/file_section.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -479,3 +480,4 @@ void FileSection::clearFlagsDescriptors() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/file_section.h b/src/fileinfo/file_information/file_information_types/file_section.h index eb83fe8d0..d9aed57a0 100644 --- a/src/fileinfo/file_information/file_information_types/file_section.h +++ b/src/fileinfo/file_information/file_information_types/file_section.h @@ -9,6 +9,7 @@ #include "fileinfo/file_information/file_information_types/flags.h" +namespace retdec { namespace fileinfo { /** @@ -107,5 +108,6 @@ class FileSection }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/file_segment.cpp b/src/fileinfo/file_information/file_information_types/file_segment.cpp index 8418e9a8b..ffd590314 100644 --- a/src/fileinfo/file_information/file_information_types/file_segment.cpp +++ b/src/fileinfo/file_information/file_information_types/file_segment.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/file_segment.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -296,3 +297,4 @@ void FileSegment::clearFlagsDescriptors() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/file_segment.h b/src/fileinfo/file_information/file_information_types/file_segment.h index 5c23e9e75..a4ea70e87 100644 --- a/src/fileinfo/file_information/file_information_types/file_segment.h +++ b/src/fileinfo/file_information/file_information_types/file_segment.h @@ -9,6 +9,7 @@ #include "fileinfo/file_information/file_information_types/flags.h" +namespace retdec { namespace fileinfo { /** @@ -77,5 +78,6 @@ class FileSegment }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/flags.cpp b/src/fileinfo/file_information/file_information_types/flags.cpp index ddb369dc4..5fffd4a2b 100644 --- a/src/fileinfo/file_information/file_information_types/flags.cpp +++ b/src/fileinfo/file_information/file_information_types/flags.cpp @@ -10,6 +10,7 @@ #include "fileinfo/file_information/file_information_types/flags.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -114,3 +115,4 @@ void Flags::clearDescriptors() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/flags.h b/src/fileinfo/file_information/file_information_types/flags.h index 9c2fb869c..401fdd0b7 100644 --- a/src/fileinfo/file_information/file_information_types/flags.h +++ b/src/fileinfo/file_information/file_information_types/flags.h @@ -10,6 +10,7 @@ #include #include +namespace retdec { namespace fileinfo { /** @@ -46,5 +47,6 @@ class Flags }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/import_table.cpp b/src/fileinfo/file_information/file_information_types/import_table.cpp index 83868cd21..2c7a437f8 100644 --- a/src/fileinfo/file_information/file_information_types/import_table.cpp +++ b/src/fileinfo/file_information/file_information_types/import_table.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/import_table.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -178,3 +179,4 @@ bool ImportTable::hasRecords() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/import_table.h b/src/fileinfo/file_information/file_information_types/import_table.h index f9f33ae59..954721c23 100644 --- a/src/fileinfo/file_information/file_information_types/import_table.h +++ b/src/fileinfo/file_information/file_information_types/import_table.h @@ -9,6 +9,7 @@ #include "retdec/fileformat/types/import_table/import_table.h" +namespace retdec { namespace fileinfo { /** @@ -49,5 +50,6 @@ class ImportTable }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/loader_info.cpp b/src/fileinfo/file_information/file_information_types/loader_info.cpp index 63009eec9..f5ed4b1f0 100644 --- a/src/fileinfo/file_information/file_information_types/loader_info.cpp +++ b/src/fileinfo/file_information/file_information_types/loader_info.cpp @@ -8,6 +8,7 @@ #include "fileinfo/file_information/file_information_types/loader_info.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { LoadedSegment::LoadedSegment(unsigned long long index, std::string name, unsigned long long address, unsigned long long size) @@ -99,3 +100,4 @@ void LoaderInfo::addLoadedSegment(const LoadedSegment& segment) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/loader_info.h b/src/fileinfo/file_information/file_information_types/loader_info.h index e058e7a08..b93b9c831 100644 --- a/src/fileinfo/file_information/file_information_types/loader_info.h +++ b/src/fileinfo/file_information/file_information_types/loader_info.h @@ -10,6 +10,7 @@ #include #include +namespace retdec { namespace fileinfo { class LoadedSegment @@ -63,5 +64,6 @@ class LoaderInfo }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/pattern/pattern.cpp b/src/fileinfo/file_information/file_information_types/pattern/pattern.cpp index 67d4ef8d5..b7b945466 100644 --- a/src/fileinfo/file_information/file_information_types/pattern/pattern.cpp +++ b/src/fileinfo/file_information/file_information_types/pattern/pattern.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_information/file_information_types/pattern/pattern.h" +namespace retdec { namespace fileinfo { /** @@ -168,3 +169,4 @@ void Pattern::addMatch(PatternMatch &match) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/pattern/pattern.h b/src/fileinfo/file_information/file_information_types/pattern/pattern.h index b831037e3..b45bb2abc 100644 --- a/src/fileinfo/file_information/file_information_types/pattern/pattern.h +++ b/src/fileinfo/file_information/file_information_types/pattern/pattern.h @@ -12,6 +12,7 @@ #include "fileinfo/file_information/file_information_types/pattern/pattern_match.h" +namespace retdec { namespace fileinfo { /** @@ -69,5 +70,6 @@ class Pattern }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/pattern/pattern_match.cpp b/src/fileinfo/file_information/file_information_types/pattern/pattern_match.cpp index db2dfd019..1343437b5 100644 --- a/src/fileinfo/file_information/file_information_types/pattern/pattern_match.cpp +++ b/src/fileinfo/file_information/file_information_types/pattern/pattern_match.cpp @@ -8,6 +8,7 @@ #include "fileinfo/file_information/file_information_types/pattern/pattern_match.h" +namespace retdec { namespace fileinfo { bool PatternMatch::isInteger() const @@ -97,3 +98,4 @@ void PatternMatch::setFloatingPoint() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/pattern/pattern_match.h b/src/fileinfo/file_information/file_information_types/pattern/pattern_match.h index 8a7bcd79d..98017760d 100644 --- a/src/fileinfo/file_information/file_information_types/pattern/pattern_match.h +++ b/src/fileinfo/file_information/file_information_types/pattern/pattern_match.h @@ -7,6 +7,7 @@ #ifndef FILEINFO_FILE_INFORMATION_FILE_INFORMATION_TYPES_PATTERN_PATTERN_MATCH_H #define FILEINFO_FILE_INFORMATION_FILE_INFORMATION_TYPES_PATTERN_PATTERN_MATCH_H +namespace retdec { namespace fileinfo { /** @@ -50,5 +51,6 @@ class PatternMatch }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/pdb_info.cpp b/src/fileinfo/file_information/file_information_types/pdb_info.cpp index 6fb2e5221..b000c7a22 100644 --- a/src/fileinfo/file_information/file_information_types/pdb_info.cpp +++ b/src/fileinfo/file_information/file_information_types/pdb_info.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/pdb_info.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -102,3 +103,4 @@ void PdbInfo::setTimeStamp(std::size_t sTimeStamp) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/pdb_info.h b/src/fileinfo/file_information/file_information_types/pdb_info.h index 28c5b304d..d78a346cd 100644 --- a/src/fileinfo/file_information/file_information_types/pdb_info.h +++ b/src/fileinfo/file_information/file_information_types/pdb_info.h @@ -9,6 +9,7 @@ #include +namespace retdec { namespace fileinfo { /** @@ -45,5 +46,6 @@ class PdbInfo }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/relocation_table/relocation.cpp b/src/fileinfo/file_information/file_information_types/relocation_table/relocation.cpp index e782f9f1e..ec178b102 100644 --- a/src/fileinfo/file_information/file_information_types/relocation_table/relocation.cpp +++ b/src/fileinfo/file_information/file_information_types/relocation_table/relocation.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/relocation_table/relocation.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -119,3 +120,4 @@ void Relocation::setCalculatedValue(long long value) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/relocation_table/relocation.h b/src/fileinfo/file_information/file_information_types/relocation_table/relocation.h index 8f02e1d38..a773524f0 100644 --- a/src/fileinfo/file_information/file_information_types/relocation_table/relocation.h +++ b/src/fileinfo/file_information/file_information_types/relocation_table/relocation.h @@ -9,6 +9,7 @@ #include +namespace retdec { namespace fileinfo { /** @@ -49,5 +50,6 @@ class Relocation }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/relocation_table/relocation_table.cpp b/src/fileinfo/file_information/file_information_types/relocation_table/relocation_table.cpp index e9105383d..33e680214 100644 --- a/src/fileinfo/file_information/file_information_types/relocation_table/relocation_table.cpp +++ b/src/fileinfo/file_information/file_information_types/relocation_table/relocation_table.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/relocation_table/relocation_table.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -220,3 +221,4 @@ void RelocationTable::clearRelocations() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/relocation_table/relocation_table.h b/src/fileinfo/file_information/file_information_types/relocation_table/relocation_table.h index eb5a74266..2bedf4c37 100644 --- a/src/fileinfo/file_information/file_information_types/relocation_table/relocation_table.h +++ b/src/fileinfo/file_information/file_information_types/relocation_table/relocation_table.h @@ -11,6 +11,7 @@ #include "fileinfo/file_information/file_information_types/relocation_table/relocation.h" +namespace retdec { namespace fileinfo { /** @@ -66,5 +67,6 @@ class RelocationTable }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/resource_table/resource.cpp b/src/fileinfo/file_information/file_information_types/resource_table/resource.cpp index 0328fa240..61c470a05 100644 --- a/src/fileinfo/file_information/file_information_types/resource_table/resource.cpp +++ b/src/fileinfo/file_information/file_information_types/resource_table/resource.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/resource_table/resource.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -232,3 +233,4 @@ void Resource::setSize(std::size_t rSize) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/resource_table/resource.h b/src/fileinfo/file_information/file_information_types/resource_table/resource.h index ed07d5a58..d32998434 100644 --- a/src/fileinfo/file_information/file_information_types/resource_table/resource.h +++ b/src/fileinfo/file_information/file_information_types/resource_table/resource.h @@ -9,6 +9,7 @@ #include +namespace retdec { namespace fileinfo { /** @@ -66,5 +67,6 @@ class Resource }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/resource_table/resource_table.cpp b/src/fileinfo/file_information/file_information_types/resource_table/resource_table.cpp index 3dede64f6..c79131347 100644 --- a/src/fileinfo/file_information/file_information_types/resource_table/resource_table.cpp +++ b/src/fileinfo/file_information/file_information_types/resource_table/resource_table.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/resource_table/resource_table.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -311,3 +312,4 @@ bool ResourceTable::hasRecords() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/resource_table/resource_table.h b/src/fileinfo/file_information/file_information_types/resource_table/resource_table.h index 51dbce8c6..ede95d74f 100644 --- a/src/fileinfo/file_information/file_information_types/resource_table/resource_table.h +++ b/src/fileinfo/file_information/file_information_types/resource_table/resource_table.h @@ -12,6 +12,7 @@ #include "retdec/fileformat/types/resource_table/resource_table.h" #include "fileinfo/file_information/file_information_types/resource_table/resource.h" +namespace retdec { namespace fileinfo { /** @@ -66,5 +67,6 @@ class ResourceTable }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/rich_header.cpp b/src/fileinfo/file_information/file_information_types/rich_header.cpp index f9755989d..fd505e41d 100644 --- a/src/fileinfo/file_information/file_information_types/rich_header.cpp +++ b/src/fileinfo/file_information/file_information_types/rich_header.cpp @@ -9,6 +9,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -132,3 +133,4 @@ bool RichHeader::hasRecords() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/rich_header.h b/src/fileinfo/file_information/file_information_types/rich_header.h index 854cc99ec..8f5ff829f 100644 --- a/src/fileinfo/file_information/file_information_types/rich_header.h +++ b/src/fileinfo/file_information/file_information_types/rich_header.h @@ -9,6 +9,7 @@ #include "retdec/fileformat/types/rich_header/rich_header.h" +namespace retdec { namespace fileinfo { /** @@ -45,5 +46,6 @@ class RichHeader }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/special_information.cpp b/src/fileinfo/file_information/file_information_types/special_information.cpp index eb4d46849..354e75970 100644 --- a/src/fileinfo/file_information/file_information_types/special_information.cpp +++ b/src/fileinfo/file_information/file_information_types/special_information.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_information/file_information_types/special_information.h" +namespace retdec { namespace fileinfo { /** @@ -64,3 +65,4 @@ void SpecialInformation::addValue(std::string value) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/special_information.h b/src/fileinfo/file_information/file_information_types/special_information.h index 7527eb01e..0ced7d425 100644 --- a/src/fileinfo/file_information/file_information_types/special_information.h +++ b/src/fileinfo/file_information/file_information_types/special_information.h @@ -10,6 +10,7 @@ #include #include +namespace retdec { namespace fileinfo { /** @@ -41,5 +42,6 @@ class SpecialInformation }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/strings.cpp b/src/fileinfo/file_information/file_information_types/strings.cpp index 53fab8121..58f186466 100644 --- a/src/fileinfo/file_information/file_information_types/strings.cpp +++ b/src/fileinfo/file_information/file_information_types/strings.cpp @@ -9,6 +9,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { std::size_t Strings::getNumberOfStrings() const @@ -59,3 +60,4 @@ bool Strings::hasRecords() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/strings.h b/src/fileinfo/file_information/file_information_types/strings.h index 5e391fec3..fde94f239 100644 --- a/src/fileinfo/file_information/file_information_types/strings.h +++ b/src/fileinfo/file_information/file_information_types/strings.h @@ -11,6 +11,7 @@ #include "retdec/fileformat/types/strings/string.h" +namespace retdec { namespace fileinfo { /** @@ -42,5 +43,6 @@ class Strings }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/symbol_table/symbol.cpp b/src/fileinfo/file_information/file_information_types/symbol_table/symbol.cpp index 3d8d21983..010503858 100644 --- a/src/fileinfo/file_information/file_information_types/symbol_table/symbol.cpp +++ b/src/fileinfo/file_information/file_information_types/symbol_table/symbol.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/symbol_table/symbol.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -173,3 +174,4 @@ void Symbol::setSize(unsigned long long symbolSize) } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/symbol_table/symbol.h b/src/fileinfo/file_information/file_information_types/symbol_table/symbol.h index 53a55e825..0acc90d50 100644 --- a/src/fileinfo/file_information/file_information_types/symbol_table/symbol.h +++ b/src/fileinfo/file_information/file_information_types/symbol_table/symbol.h @@ -9,6 +9,7 @@ #include +namespace retdec { namespace fileinfo { /** @@ -57,5 +58,6 @@ class Symbol }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/symbol_table/symbol_table.cpp b/src/fileinfo/file_information/file_information_types/symbol_table/symbol_table.cpp index ae7a7804b..8082fa590 100644 --- a/src/fileinfo/file_information/file_information_types/symbol_table/symbol_table.cpp +++ b/src/fileinfo/file_information/file_information_types/symbol_table/symbol_table.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/symbol_table/symbol_table.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -255,3 +256,4 @@ void SymbolTable::clearSpecialInformation() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/symbol_table/symbol_table.h b/src/fileinfo/file_information/file_information_types/symbol_table/symbol_table.h index 63829fda8..57b381cbf 100644 --- a/src/fileinfo/file_information/file_information_types/symbol_table/symbol_table.h +++ b/src/fileinfo/file_information/file_information_types/symbol_table/symbol_table.h @@ -10,6 +10,7 @@ #include "fileinfo/file_information/file_information_types/special_information.h" #include "fileinfo/file_information/file_information_types/symbol_table/symbol.h" +namespace retdec { namespace fileinfo { /** @@ -69,5 +70,6 @@ class SymbolTable }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/tls_info.cpp b/src/fileinfo/file_information/file_information_types/tls_info.cpp index b848c3130..e874a311f 100644 --- a/src/fileinfo/file_information/file_information_types/tls_info.cpp +++ b/src/fileinfo/file_information/file_information_types/tls_info.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_information/file_information_types/tls_info.h" #include "fileinfo/file_information/file_information_types/type_conversions.h" +namespace retdec { namespace fileinfo { /** @@ -118,3 +119,4 @@ bool TlsInfo::isUsed() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/tls_info.h b/src/fileinfo/file_information/file_information_types/tls_info.h index eb7686978..b94099089 100644 --- a/src/fileinfo/file_information/file_information_types/tls_info.h +++ b/src/fileinfo/file_information/file_information_types/tls_info.h @@ -9,6 +9,7 @@ #include "retdec/fileformat/types/tls_info/tls_info.h" +namespace retdec { namespace fileinfo { /** @@ -39,5 +40,6 @@ class TlsInfo }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/type_conversions.cpp b/src/fileinfo/file_information/file_information_types/type_conversions.cpp index d053b7085..fbcab8d49 100644 --- a/src/fileinfo/file_information/file_information_types/type_conversions.cpp +++ b/src/fileinfo/file_information/file_information_types/type_conversions.cpp @@ -6,6 +6,7 @@ #include +namespace retdec { namespace fileinfo { /** @@ -27,3 +28,4 @@ std::string getBinaryRepresentation(unsigned long long number, unsigned long lon } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/type_conversions.h b/src/fileinfo/file_information/file_information_types/type_conversions.h index 8b5cb37ff..66e070fb4 100644 --- a/src/fileinfo/file_information/file_information_types/type_conversions.h +++ b/src/fileinfo/file_information/file_information_types/type_conversions.h @@ -12,6 +12,7 @@ #include "retdec/utils/conversion.h" +namespace retdec { namespace fileinfo { std::string getBinaryRepresentation(unsigned long long number, unsigned long long numberOfBits); @@ -51,5 +52,6 @@ template inline bool indexIsValid(const std::vector &list, std::s } } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_information/file_information_types/visual_basic_info.cpp b/src/fileinfo/file_information/file_information_types/visual_basic_info.cpp index 16e62fe53..5a5e71d9d 100644 --- a/src/fileinfo/file_information/file_information_types/visual_basic_info.cpp +++ b/src/fileinfo/file_information/file_information_types/visual_basic_info.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -397,3 +398,4 @@ bool VisualBasicInfo::isPcode() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_information/file_information_types/visual_basic_info.h b/src/fileinfo/file_information/file_information_types/visual_basic_info.h index b4c21a31e..e3ba61ada 100644 --- a/src/fileinfo/file_information/file_information_types/visual_basic_info.h +++ b/src/fileinfo/file_information/file_information_types/visual_basic_info.h @@ -11,6 +11,7 @@ #include "retdec/fileformat/types/visual_basic/visual_basic_object.h" #include "retdec/fileformat/types/visual_basic/visual_basic_extern.h" +namespace retdec { namespace fileinfo { /** @@ -74,5 +75,6 @@ class VisualBasicInfo }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/config_presentation.cpp b/src/fileinfo/file_presentation/config_presentation.cpp index be3db3155..942af9ca9 100644 --- a/src/fileinfo/file_presentation/config_presentation.cpp +++ b/src/fileinfo/file_presentation/config_presentation.cpp @@ -14,6 +14,7 @@ using namespace retdec::utils; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -254,3 +255,4 @@ std::string ConfigPresentation::getErrorMessage() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/config_presentation.h b/src/fileinfo/file_presentation/config_presentation.h index 3869f2824..dead364f7 100644 --- a/src/fileinfo/file_presentation/config_presentation.h +++ b/src/fileinfo/file_presentation/config_presentation.h @@ -10,6 +10,7 @@ #include "retdec/config/config.h" #include "fileinfo/file_presentation/file_presentation.h" +namespace retdec { namespace fileinfo { class ConfigPresentation : public FilePresentation @@ -35,5 +36,6 @@ class ConfigPresentation : public FilePresentation }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/file_presentation.cpp b/src/fileinfo/file_presentation/file_presentation.cpp index 2e24ed6dc..1c54b2618 100644 --- a/src/fileinfo/file_presentation/file_presentation.cpp +++ b/src/fileinfo/file_presentation/file_presentation.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_presentation/file_presentation.h" +namespace retdec { namespace fileinfo { /** @@ -23,3 +24,4 @@ FilePresentation::FilePresentation(FileInformation &fileinfo_) : fileinfo(filein */ } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/file_presentation.h b/src/fileinfo/file_presentation/file_presentation.h index 12e8217d4..0bacd5299 100644 --- a/src/fileinfo/file_presentation/file_presentation.h +++ b/src/fileinfo/file_presentation/file_presentation.h @@ -9,6 +9,7 @@ #include "fileinfo/file_information/file_information.h" +namespace retdec { namespace fileinfo { /** @@ -27,5 +28,6 @@ class FilePresentation }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/format.cpp b/src/fileinfo/file_presentation/getters/format.cpp index 4eba888a7..eb3bbc3a4 100644 --- a/src/fileinfo/file_presentation/getters/format.cpp +++ b/src/fileinfo/file_presentation/getters/format.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; +namespace retdec { namespace fileinfo { /** @@ -63,3 +64,4 @@ void addUniqueValues(std::vector ¤tVal, const std::vector #include +namespace retdec { namespace fileinfo { const std::size_t MAX_NAME_LENGTH = 100; @@ -19,5 +20,6 @@ void shrinkAndReplaceNonprintable(std::string &str, std::size_t maxLength); void addUniqueValues(std::vector ¤tVal, const std::vector &newVal); } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/anomalies_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/anomalies_plain_getter.cpp index 875164dde..c85ab5b0b 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/anomalies_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/anomalies_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -84,3 +85,4 @@ bool AnomaliesPlainGetter::getFlagDescriptors(std::size_t structIndex, std::vect } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/anomalies_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/anomalies_plain_getter.h index 887f3235d..77ad8c508 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/anomalies_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/anomalies_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class AnomaliesPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/data_directory_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/data_directory_plain_getter.cpp index 9732952c2..ef67cd666 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/data_directory_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/data_directory_plain_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -84,3 +85,4 @@ bool DataDirectoryPlainGetter::getFlagDescriptors(std::size_t structIndex, std:: } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/data_directory_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/data_directory_plain_getter.h index fa96cc15b..f221261ac 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/data_directory_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/data_directory_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class DataDirectoryPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/dynamic_sections_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/dynamic_sections_plain_getter.cpp index ba08653a4..038a401bc 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/dynamic_sections_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/dynamic_sections_plain_getter.cpp @@ -13,6 +13,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -104,3 +105,4 @@ bool DynamicSectionsPlainGetter::getFlagDescriptors(std::size_t structIndex, std } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/dynamic_sections_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/dynamic_sections_plain_getter.h index 541b30ac5..01abacc7e 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/dynamic_sections_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/dynamic_sections_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class DynamicSectionsPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_auxv_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_auxv_plain_getter.cpp index 946acc001..c97cc9550 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_auxv_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_auxv_plain_getter.cpp @@ -10,6 +10,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -109,3 +110,4 @@ bool ElfAuxVPlainGetter::getFlagDescriptors( } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_auxv_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_auxv_plain_getter.h index cc558aa0e..60e4fb8c2 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_auxv_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_auxv_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -36,5 +37,6 @@ class ElfAuxVPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_core_map_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_core_map_plain_getter.cpp index 53c06e37c..02532f1fb 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_core_map_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_core_map_plain_getter.cpp @@ -10,6 +10,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -117,3 +118,4 @@ bool ElfCoreMapPlainGetter::getFlagDescriptors( } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_core_map_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_core_map_plain_getter.h index a3a871435..c893134bc 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_core_map_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_core_map_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -37,5 +38,6 @@ class ElfCoreMapPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_notes_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_notes_plain_getter.cpp index 5239e94ad..25f5c4edc 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_notes_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_notes_plain_getter.cpp @@ -10,6 +10,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -136,3 +137,4 @@ bool ElfNotesPlainGetter::getFlagDescriptors( } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_notes_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_notes_plain_getter.h index 4c75a0d5e..c91bbb58a 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_notes_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/elf_notes_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -37,5 +38,6 @@ class ElfNotesPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/export_table_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/export_table_plain_getter.cpp index d1faa3a2d..fca6b958a 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/export_table_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/export_table_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -90,3 +91,4 @@ bool ExportTablePlainGetter::getFlagDescriptors(std::size_t structIndex, std::ve } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/export_table_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/export_table_plain_getter.h index 8dcdff561..502d809d7 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/export_table_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/export_table_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class ExportTablePlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/import_table_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/import_table_plain_getter.cpp index aee119c63..0187bb861 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/import_table_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/import_table_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -96,3 +97,4 @@ bool ImportTablePlainGetter::getFlagDescriptors(std::size_t structIndex, std::ve } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/import_table_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/import_table_plain_getter.h index 8b1fc5d7c..ae3d3a1e9 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/import_table_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/import_table_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class ImportTablePlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.cpp index 116e05067..a01516653 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { namespace @@ -356,3 +357,4 @@ bool IterativeDistributionGetter::getRecord(std::size_t structIndex, std::size_t */ } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h index ca6119349..6117ccbf9 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_getter.h" +namespace retdec { namespace fileinfo { /** @@ -61,5 +62,6 @@ class IterativeDistributionGetter : public IterativeGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/loader_info_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/loader_info_plain_getter.cpp index e68027fce..380c5300e 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/loader_info_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/loader_info_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -79,3 +80,4 @@ bool LoaderInfoPlainGetter::getFlagDescriptors(std::size_t structIndex, std::vec } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/loader_info_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/loader_info_plain_getter.h index 989a9a773..686151dec 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/loader_info_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/loader_info_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class LoaderInfoPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/missing_deps_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/missing_deps_plain_getter.cpp index 91cb836f9..fafe7a4ad 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/missing_deps_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/missing_deps_plain_getter.cpp @@ -13,6 +13,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -75,3 +76,4 @@ bool MissingDepsPlainGetter::getFlagDescriptors(std::size_t structIndex, std::ve } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/missing_deps_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/missing_deps_plain_getter.h index 73cdb45b7..098331ca9 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/missing_deps_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/missing_deps_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class MissingDepsPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/pattern_matches_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/pattern_matches_plain_getter.cpp index 748f21a65..0e4b1a9d0 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/pattern_matches_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/pattern_matches_plain_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -83,3 +84,4 @@ bool PatternMatchesPlainGetter::getFlagDescriptors(std::size_t structIndex, std: } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/pattern_matches_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/pattern_matches_plain_getter.h index 66fb14361..1ee711bee 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/pattern_matches_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/pattern_matches_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -28,5 +29,6 @@ class PatternMatchesPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/relocation_tables_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/relocation_tables_plain_getter.cpp index 315e2a3ff..bd8d72883 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/relocation_tables_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/relocation_tables_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -104,3 +105,4 @@ bool RelocationTablesPlainGetter::getFlagDescriptors(std::size_t structIndex, st } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/relocation_tables_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/relocation_tables_plain_getter.h index b2204082f..0bc150be3 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/relocation_tables_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/relocation_tables_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class RelocationTablesPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/resource_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/resource_plain_getter.cpp index 0c10faffd..4db4975a6 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/resource_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/resource_plain_getter.cpp @@ -13,6 +13,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -123,3 +124,4 @@ bool ResourcePlainGetter::getFlagDescriptors(std::size_t structIndex, std::vecto } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/resource_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/resource_plain_getter.h index 7634d4c71..754731cbb 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/resource_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/resource_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class ResourcePlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/rich_header_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/rich_header_plain_getter.cpp index 2edf5ae75..783a9b933 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/rich_header_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/rich_header_plain_getter.cpp @@ -10,6 +10,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -86,3 +87,4 @@ bool RichHeaderPlainGetter::getFlagDescriptors(std::size_t structIndex, std::vec } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/rich_header_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/rich_header_plain_getter.h index 4c388a2f8..945216ef2 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/rich_header_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/rich_header_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class RichHeaderPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/section_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/section_plain_getter.cpp index 98147e0fb..4af7b5ef5 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/section_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/section_plain_getter.cpp @@ -13,6 +13,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -127,3 +128,4 @@ bool SectionPlainGetter::getFlagDescriptors(std::size_t structIndex, std::vector } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/section_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/section_plain_getter.h index cad783050..2c6e84cee 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/section_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/section_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class SectionPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/segment_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/segment_plain_getter.cpp index 3b2fa3d9d..940fb9217 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/segment_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/segment_plain_getter.cpp @@ -10,6 +10,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -94,3 +95,4 @@ bool SegmentPlainGetter::getFlagDescriptors(std::size_t structIndex, std::vector } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/segment_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/segment_plain_getter.h index bdc0f84e4..c822b56cf 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/segment_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/segment_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class SegmentPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/strings_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/strings_plain_getter.cpp index fb082a031..d6ec00ecc 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/strings_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/strings_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -88,3 +89,4 @@ bool StringsPlainGetter::getFlagDescriptors(std::size_t structIndex, std::vector } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/strings_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/strings_plain_getter.h index 3bb6c502b..946dfa09b 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/strings_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/strings_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class StringsPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/symbol_tables_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/symbol_tables_plain_getter.cpp index 328f35af1..9add8ff4f 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/symbol_tables_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/symbol_tables_plain_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -122,3 +123,4 @@ bool SymbolTablesPlainGetter::getFlagDescriptors(std::size_t structIndex, std::v } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/symbol_tables_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/symbol_tables_plain_getter.h index 404810da1..7bc5c159a 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/symbol_tables_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/symbol_tables_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class SymbolTablesPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/tls_info_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/tls_info_plain_getter.cpp index 2aebf3907..d88e550bc 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/tls_info_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/tls_info_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -94,3 +95,4 @@ bool TlsInfoPlainGetter::getFlagDescriptors(std::size_t structIndex, std::vector } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/tls_info_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/tls_info_plain_getter.h index 2810ea821..50d39db47 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/tls_info_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/tls_info_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class TlsInfoPlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/typeref_table_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/typeref_table_plain_getter.cpp index 4338cf6d0..0fad47930 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/typeref_table_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/typeref_table_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -91,3 +92,4 @@ bool TypeRefTablePlainGetter::getFlagDescriptors(std::size_t structIndex, std::v } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/typeref_table_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/typeref_table_plain_getter.h index 2b1d07138..e44d2a76b 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/typeref_table_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/typeref_table_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class TypeRefTablePlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_language_table_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_language_table_plain_getter.cpp index 756d2654d..ddae248a7 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_language_table_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_language_table_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -83,3 +84,4 @@ bool VersionInfoLanguageTablePlainGetter::getFlagDescriptors(std::size_t structI } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_language_table_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_language_table_plain_getter.h index 15fa35742..8ea314ab1 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_language_table_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_language_table_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class VersionInfoLanguageTablePlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_string_table_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_string_table_plain_getter.cpp index 8cba05647..b61fe9cdb 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_string_table_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_string_table_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -83,3 +84,4 @@ bool VersionInfoStringTablePlainGetter::getFlagDescriptors(std::size_t structInd } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_string_table_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_string_table_plain_getter.h index c05677234..fb1883a02 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_string_table_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/version_info_string_table_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class VersionInfoStringTablePlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/visual_basic_extern_table_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/visual_basic_extern_table_plain_getter.cpp index 09b2874c4..00cbebd01 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/visual_basic_extern_table_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/visual_basic_extern_table_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -90,3 +91,4 @@ bool VisualBasicExternTablePlainGetter::getFlagDescriptors(std::size_t structInd } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/visual_basic_extern_table_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/visual_basic_extern_table_plain_getter.h index bf3bacf3e..5eebd60e5 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/visual_basic_extern_table_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/visual_basic_extern_table_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_distribution_getter/iterative_distribution_getter.h" +namespace retdec { namespace fileinfo { /** @@ -26,5 +27,6 @@ class VisualBasicExternTablePlainGetter : public IterativeDistributionGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_getter.cpp index 9dd6ae425..726abcb7f 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_getter.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_getter.h" +namespace retdec { namespace fileinfo { /** @@ -131,3 +132,4 @@ bool IterativeGetter::hasBasicInfo(std::size_t structIndex) const */ } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_getter.h index 20575fcd6..817279e1f 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_information/file_information.h" +namespace retdec { namespace fileinfo { /** @@ -51,5 +52,6 @@ class IterativeGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/certificate_table_plain_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/certificate_table_plain_getter.cpp index 52d73354c..294579b4d 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/certificate_table_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/certificate_table_plain_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -113,3 +114,4 @@ bool CertificateTablePlainGetter::getFlags(std::size_t structIndex, std::size_t } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/certificate_table_plain_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/certificate_table_plain_getter.h index 7c5e31e0b..2fa04490c 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/certificate_table_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/certificate_table_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class CertificateTablePlainGetter : public IterativeSimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.cpp index 50e19bc96..8e4e99b48 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -46,3 +47,4 @@ void IterativeSimpleGetter::getElementHeader(std::string &elemHeader) const */ } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.h index a86bcc2b1..f752b259e 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_simple_getter/iterative_simple_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_getter.h" +namespace retdec { namespace fileinfo { /** @@ -36,5 +37,6 @@ class IterativeSimpleGetter : public IterativeGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/anomalies_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/anomalies_json_getter.cpp index a7dd641cf..f66d0ebeb 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/anomalies_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/anomalies_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -75,3 +76,4 @@ bool AnomaliesJsonGetter::getFlags(std::size_t structIndex, std::size_t recIndex } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/anomalies_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/anomalies_json_getter.h index ff1dc9e89..f7b487567 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/anomalies_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/anomalies_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class AnomaliesJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/data_directory_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/data_directory_json_getter.cpp index 1b127b933..b67fdb230 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/data_directory_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/data_directory_json_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -76,3 +77,4 @@ bool DataDirectoryJsonGetter::getFlags(std::size_t structIndex, std::size_t recI } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/data_directory_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/data_directory_json_getter.h index 526906849..1e42867c6 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/data_directory_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/data_directory_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class DataDirectoryJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/dynamic_sections_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/dynamic_sections_json_getter.cpp index d46f23b9a..72d3d4085 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/dynamic_sections_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/dynamic_sections_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -86,3 +87,4 @@ bool DynamicSectionsJsonGetter::getFlags(std::size_t structIndex, std::size_t re } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/dynamic_sections_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/dynamic_sections_json_getter.h index 360babb27..1413e5923 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/dynamic_sections_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/dynamic_sections_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class DynamicSectionsJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/export_table_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/export_table_json_getter.cpp index c5d654c7f..1fa38f852 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/export_table_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/export_table_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -83,3 +84,4 @@ bool ExportTableJsonGetter::getFlags(std::size_t structIndex, std::size_t recInd } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/export_table_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/export_table_json_getter.h index 1d799746c..7e1ff6989 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/export_table_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/export_table_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class ExportTableJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/import_table_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/import_table_json_getter.cpp index 544eaa789..efd375157 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/import_table_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/import_table_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -91,3 +92,4 @@ bool ImportTableJsonGetter::getFlags(std::size_t structIndex, std::size_t recInd } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/import_table_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/import_table_json_getter.h index 155377d10..6bc090207 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/import_table_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/import_table_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class ImportTableJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.cpp index 09be9840c..179ae2a66 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -55,3 +56,4 @@ void IterativeSubtitleGetter::getSubtitle(std::string &subTitle) const */ } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h index a5f2bf8bd..4a6372867 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_getter.h" +namespace retdec { namespace fileinfo { /** @@ -38,5 +39,6 @@ class IterativeSubtitleGetter : public IterativeGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/loader_info_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/loader_info_json_getter.cpp index 0ea32da3b..470f73d2c 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/loader_info_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/loader_info_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -74,3 +75,4 @@ bool LoaderInfoJsonGetter::getFlags(std::size_t structIndex, std::size_t recInde } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/loader_info_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/loader_info_json_getter.h index c28bb646b..3b448622c 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/loader_info_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/loader_info_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class LoaderInfoJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/missing_deps_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/missing_deps_json_getter.cpp index 82c8987a0..2bbbe8c88 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/missing_deps_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/missing_deps_json_getter.cpp @@ -13,6 +13,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -69,3 +70,4 @@ bool MissingDepsJsonGetter::getFlags(std::size_t structIndex, std::size_t recInd } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/missing_deps_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/missing_deps_json_getter.h index ea855b794..06b80b575 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/missing_deps_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/missing_deps_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class MissingDepsJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/relocation_tables_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/relocation_tables_json_getter.cpp index 38dc3dc48..5f2016bb6 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/relocation_tables_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/relocation_tables_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -99,3 +100,4 @@ bool RelocationTablesJsonGetter::getFlags(std::size_t structIndex, std::size_t r } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/relocation_tables_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/relocation_tables_json_getter.h index aaff85295..8fcfbf105 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/relocation_tables_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/relocation_tables_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class RelocationTablesJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/resource_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/resource_json_getter.cpp index e3107a0e3..63e345d4a 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/resource_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/resource_json_getter.cpp @@ -13,6 +13,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -124,3 +125,4 @@ bool ResourceJsonGetter::getFlags(std::size_t structIndex, std::size_t recIndex, } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/resource_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/resource_json_getter.h index b671a6a62..75f2ebad5 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/resource_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/resource_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class ResourceJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/rich_header_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/rich_header_json_getter.cpp index e198baa6b..02f11ff89 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/rich_header_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/rich_header_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -89,3 +90,4 @@ bool RichHeaderJsonGetter::getFlags(std::size_t structIndex, std::size_t recInde } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/rich_header_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/rich_header_json_getter.h index 40133fb0c..1bdc2a0a9 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/rich_header_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/rich_header_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class RichHeaderJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/section_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/section_json_getter.cpp index 43e4e6f1c..4a38883c6 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/section_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/section_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -118,3 +119,4 @@ bool SectionJsonGetter::getFlags(std::size_t structIndex, std::size_t recIndex, } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/section_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/section_json_getter.h index 56a7832fc..c8129a275 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/section_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/section_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class SectionJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/segment_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/segment_json_getter.cpp index eb0a3d110..46147001e 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/segment_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/segment_json_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -84,3 +85,4 @@ bool SegmentJsonGetter::getFlags(std::size_t structIndex, std::size_t recIndex, } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/segment_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/segment_json_getter.h index 200195a4c..56ae9a4a0 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/segment_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/segment_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class SegmentJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/strings_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/strings_json_getter.cpp index 3afa1330c..8cb01a0f9 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/strings_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/strings_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -81,3 +82,4 @@ bool StringsJsonGetter::getFlags(std::size_t structIndex, std::size_t recIndex, } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/strings_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/strings_json_getter.h index 2efa6b78c..73a03a367 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/strings_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/strings_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class StringsJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/symbol_tables_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/symbol_tables_json_getter.cpp index fce867ac3..1950cea62 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/symbol_tables_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/symbol_tables_json_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -108,3 +109,4 @@ bool SymbolTablesJsonGetter::getFlags(std::size_t structIndex, std::size_t recIn } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/symbol_tables_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/symbol_tables_json_getter.h index 9b93bc239..64bea8a14 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/symbol_tables_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/symbol_tables_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class SymbolTablesJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/typeref_table_json_getter.cpp b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/typeref_table_json_getter.cpp index c7370467d..154da34c9 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/typeref_table_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/typeref_table_json_getter.cpp @@ -12,6 +12,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -83,3 +84,4 @@ bool TypeRefTableJsonGetter::getFlags(std::size_t structIndex, std::size_t recIn } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/typeref_table_json_getter.h b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/typeref_table_json_getter.h index 68c331533..28370bd47 100644 --- a/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/typeref_table_json_getter.h +++ b/src/fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/typeref_table_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class TypeRefTableJsonGetter : public IterativeSubtitleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/pattern_config_getter/pattern_config_getter.cpp b/src/fileinfo/file_presentation/getters/pattern_config_getter/pattern_config_getter.cpp index 1a05214cf..5e0de7ec8 100644 --- a/src/fileinfo/file_presentation/getters/pattern_config_getter/pattern_config_getter.cpp +++ b/src/fileinfo/file_presentation/getters/pattern_config_getter/pattern_config_getter.cpp @@ -10,6 +10,7 @@ using namespace retdec::config; +namespace retdec { namespace fileinfo { /** @@ -132,3 +133,4 @@ retdec::common::PatternContainer& PatternConfigGetter::getPatterns() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/pattern_config_getter/pattern_config_getter.h b/src/fileinfo/file_presentation/getters/pattern_config_getter/pattern_config_getter.h index b2660ffd3..83fb95f96 100644 --- a/src/fileinfo/file_presentation/getters/pattern_config_getter/pattern_config_getter.h +++ b/src/fileinfo/file_presentation/getters/pattern_config_getter/pattern_config_getter.h @@ -10,6 +10,7 @@ #include "retdec/config/config.h" #include "fileinfo/file_information/file_information.h" +namespace retdec { namespace fileinfo { /** @@ -33,5 +34,6 @@ class PatternConfigGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/basic_json_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/basic_json_getter.cpp index 4cc93300b..c5872eb62 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/basic_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/basic_json_getter.cpp @@ -9,6 +9,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -49,3 +50,4 @@ std::size_t BasicJsonGetter::loadInformation(std::vector &desc, std } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/basic_json_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/basic_json_getter.h index 206743cb8..ecab99c17 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/basic_json_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/basic_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -23,5 +24,6 @@ class BasicJsonGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/basic_plain_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/basic_plain_getter.cpp index 7b793bf97..f3c5ab12f 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/basic_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/basic_plain_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -100,3 +101,4 @@ std::size_t BasicPlainGetter::loadInformation(std::vector &desc, st } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/basic_plain_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/basic_plain_getter.h index 70f49ef2f..6e6849b67 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/basic_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/basic_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -23,5 +24,6 @@ class BasicPlainGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/dotnet_plain_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/dotnet_plain_getter.cpp index 3e0ca0176..4649c13c5 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/dotnet_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/dotnet_plain_getter.cpp @@ -9,6 +9,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -83,3 +84,4 @@ std::size_t DotnetPlainGetter::loadInformation(std::vector &desc, s } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/dotnet_plain_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/dotnet_plain_getter.h index 5eb973b59..0a3bf8ec7 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/dotnet_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/dotnet_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -23,5 +24,6 @@ class DotnetPlainGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/entry_point_json_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/entry_point_json_getter.cpp index 17af9ef2d..ba2ae72b6 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/entry_point_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/entry_point_json_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -43,3 +44,4 @@ std::size_t EntryPointJsonGetter::loadInformation(std::vector &desc } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/entry_point_json_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/entry_point_json_getter.h index 926b5e61c..87110e379 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/entry_point_json_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/entry_point_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -23,5 +24,6 @@ class EntryPointJsonGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/header_json_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/header_json_getter.cpp index 4d2e07de6..19f6897f7 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/header_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/header_json_getter.cpp @@ -9,6 +9,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -119,3 +120,4 @@ void HeaderJsonGetter::getDllFlags(std::string &title, std::string &flags, std:: } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/header_json_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/header_json_getter.h index d8e5ad818..d4a7775b5 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/header_json_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/header_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class HeaderJsonGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/header_plain_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/header_plain_getter.cpp index 2ac61c4d4..7b2c9aa34 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/header_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/header_plain_getter.cpp @@ -9,6 +9,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -119,3 +120,4 @@ void HeaderPlainGetter::getDllFlags(std::string &title, std::string &flags, std: } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/header_plain_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/header_plain_getter.h index acea74e97..c3474e519 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/header_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/header_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class HeaderPlainGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/pdb_json_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/pdb_json_getter.cpp index 218ef534a..237b34d47 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/pdb_json_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/pdb_json_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; +namespace retdec { namespace fileinfo { /** @@ -51,3 +52,4 @@ std::size_t PdbJsonGetter::loadInformation(std::vector &desc, std:: } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/pdb_json_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/pdb_json_getter.h index 2d1834afe..5941ce797 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/pdb_json_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/pdb_json_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -23,5 +24,6 @@ class PdbJsonGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/pdb_plain_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/pdb_plain_getter.cpp index 1e7aa96da..db5274529 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/pdb_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/pdb_plain_getter.cpp @@ -11,6 +11,7 @@ using namespace retdec::utils; +namespace retdec { namespace fileinfo { /** @@ -51,3 +52,4 @@ std::size_t PdbPlainGetter::loadInformation(std::vector &desc, std: } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/pdb_plain_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/pdb_plain_getter.h index 8fc4f9d8b..7ff9cb829 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/pdb_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/pdb_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -23,5 +24,6 @@ class PdbPlainGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/simple_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/simple_getter.cpp index 50bc495f9..fe79b6855 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/simple_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/simple_getter.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -28,3 +29,4 @@ SimpleGetter::SimpleGetter(FileInformation &fileInfo) : fileinfo(fileInfo) */ } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/simple_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/simple_getter.h index 0b57316a1..eefb61197 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/simple_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/simple_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_information/file_information.h" +namespace retdec { namespace fileinfo { /** @@ -25,5 +26,6 @@ class SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/getters/simple_getter/visual_basic_plain_getter.cpp b/src/fileinfo/file_presentation/getters/simple_getter/visual_basic_plain_getter.cpp index 42aeecd95..05aa2fa7a 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/visual_basic_plain_getter.cpp +++ b/src/fileinfo/file_presentation/getters/simple_getter/visual_basic_plain_getter.cpp @@ -10,6 +10,7 @@ using namespace retdec::utils; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -81,3 +82,4 @@ std::size_t VisualBasicPlainGetter::loadInformation(std::vector &de } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/getters/simple_getter/visual_basic_plain_getter.h b/src/fileinfo/file_presentation/getters/simple_getter/visual_basic_plain_getter.h index 42f1809cf..51ba87cc7 100644 --- a/src/fileinfo/file_presentation/getters/simple_getter/visual_basic_plain_getter.h +++ b/src/fileinfo/file_presentation/getters/simple_getter/visual_basic_plain_getter.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/getters/simple_getter/simple_getter.h" +namespace retdec { namespace fileinfo { /** @@ -23,5 +24,6 @@ class VisualBasicPlainGetter : public SimpleGetter }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/json_presentation.cpp b/src/fileinfo/file_presentation/json_presentation.cpp index b864513ee..94022c91c 100644 --- a/src/fileinfo/file_presentation/json_presentation.cpp +++ b/src/fileinfo/file_presentation/json_presentation.cpp @@ -20,6 +20,7 @@ using namespace retdec::utils; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -1290,3 +1291,4 @@ bool JsonPresentation::present() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/json_presentation.h b/src/fileinfo/file_presentation/json_presentation.h index 6447f2638..66978cbda 100644 --- a/src/fileinfo/file_presentation/json_presentation.h +++ b/src/fileinfo/file_presentation/json_presentation.h @@ -14,6 +14,7 @@ #include "fileinfo/file_presentation/file_presentation.h" #include "fileinfo/file_presentation/getters/iterative_getter/iterative_subtitle_getter/iterative_subtitle_getter.h" +namespace retdec { namespace fileinfo { /** @@ -67,5 +68,6 @@ class JsonPresentation : public FilePresentation }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_presentation/plain_presentation.cpp b/src/fileinfo/file_presentation/plain_presentation.cpp index 8dc89bfb3..d78140b5d 100644 --- a/src/fileinfo/file_presentation/plain_presentation.cpp +++ b/src/fileinfo/file_presentation/plain_presentation.cpp @@ -16,6 +16,7 @@ using namespace retdec::utils; using namespace retdec::cpdetect; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -798,3 +799,4 @@ bool PlainPresentation::present() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_presentation/plain_presentation.h b/src/fileinfo/file_presentation/plain_presentation.h index e314d4705..93788a57b 100644 --- a/src/fileinfo/file_presentation/plain_presentation.h +++ b/src/fileinfo/file_presentation/plain_presentation.h @@ -9,6 +9,7 @@ #include "fileinfo/file_presentation/file_presentation.h" +namespace retdec { namespace fileinfo { /** @@ -41,5 +42,6 @@ class PlainPresentation : public FilePresentation }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_wrapper/coff_wrapper.cpp b/src/fileinfo/file_wrapper/coff_wrapper.cpp index 435ee14d8..a154851af 100644 --- a/src/fileinfo/file_wrapper/coff_wrapper.cpp +++ b/src/fileinfo/file_wrapper/coff_wrapper.cpp @@ -8,6 +8,7 @@ using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -52,3 +53,4 @@ std::string CoffWrapper::getTypeOfFile() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_wrapper/coff_wrapper.h b/src/fileinfo/file_wrapper/coff_wrapper.h index 020b4bd93..b9e5ea92c 100644 --- a/src/fileinfo/file_wrapper/coff_wrapper.h +++ b/src/fileinfo/file_wrapper/coff_wrapper.h @@ -11,6 +11,7 @@ #include "fileinfo/file_information/file_information_types/file_section.h" #include "fileinfo/file_information/file_information_types/symbol_table/symbol.h" +namespace retdec { namespace fileinfo { /** @@ -29,5 +30,6 @@ class CoffWrapper : public retdec::fileformat::CoffFormat }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_wrapper/elf_wrapper.cpp b/src/fileinfo/file_wrapper/elf_wrapper.cpp index b113d8ba7..84638e121 100644 --- a/src/fileinfo/file_wrapper/elf_wrapper.cpp +++ b/src/fileinfo/file_wrapper/elf_wrapper.cpp @@ -8,6 +8,7 @@ using namespace ELFIO; +namespace retdec { namespace fileinfo { /** @@ -91,3 +92,4 @@ ELFIO::relocation_section_accessor* ElfWrapper::getRelocationTable(unsigned long } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_wrapper/elf_wrapper.h b/src/fileinfo/file_wrapper/elf_wrapper.h index 642d13e11..16cec121e 100644 --- a/src/fileinfo/file_wrapper/elf_wrapper.h +++ b/src/fileinfo/file_wrapper/elf_wrapper.h @@ -9,6 +9,7 @@ #include "retdec/fileformat/file_format/elf/elf_format.h" +namespace retdec { namespace fileinfo { /** @@ -29,5 +30,6 @@ class ElfWrapper : public retdec::fileformat::ElfFormat }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_wrapper/macho_wrapper.cpp b/src/fileinfo/file_wrapper/macho_wrapper.cpp index c02e0c584..5d8fe8297 100644 --- a/src/fileinfo/file_wrapper/macho_wrapper.cpp +++ b/src/fileinfo/file_wrapper/macho_wrapper.cpp @@ -9,6 +9,7 @@ using namespace llvm::MachO; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { /** @@ -68,3 +69,4 @@ std::string MachOWrapper::getTypeOfFile() const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_wrapper/macho_wrapper.h b/src/fileinfo/file_wrapper/macho_wrapper.h index 82379dc40..c0404a4c2 100644 --- a/src/fileinfo/file_wrapper/macho_wrapper.h +++ b/src/fileinfo/file_wrapper/macho_wrapper.h @@ -9,6 +9,7 @@ #include "retdec/fileformat/file_format/macho/macho_format.h" +namespace retdec { namespace fileinfo { /** @@ -27,5 +28,6 @@ class MachOWrapper : public retdec::fileformat::MachOFormat }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_wrapper/pe/pe_template.h b/src/fileinfo/file_wrapper/pe/pe_template.h index 80b17dd74..0a1d39b3a 100644 --- a/src/fileinfo/file_wrapper/pe/pe_template.h +++ b/src/fileinfo/file_wrapper/pe/pe_template.h @@ -10,6 +10,7 @@ #include "retdec/fileformat/file_format/pe/pe_template_aux.h" #include "fileinfo/file_information/file_information_types/file_section.h" +namespace retdec { namespace fileinfo { /** @@ -68,5 +69,6 @@ template bool peSectionWithIndex(const PeLib::PeHeaderT &peHeade } } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_wrapper/pe/pe_wrapper.cpp b/src/fileinfo/file_wrapper/pe/pe_wrapper.cpp index b082f7e29..e3befccae 100644 --- a/src/fileinfo/file_wrapper/pe/pe_wrapper.cpp +++ b/src/fileinfo/file_wrapper/pe/pe_wrapper.cpp @@ -14,6 +14,7 @@ using namespace retdec::utils; using namespace PeLib; using namespace retdec::fileformat; +namespace retdec { namespace fileinfo { namespace @@ -214,3 +215,4 @@ bool PeWrapper::getCoffSymbol(unsigned long long index, Symbol &symbol) const } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_wrapper/pe/pe_wrapper.h b/src/fileinfo/file_wrapper/pe/pe_wrapper.h index 2a7a7f06f..f423a2e93 100644 --- a/src/fileinfo/file_wrapper/pe/pe_wrapper.h +++ b/src/fileinfo/file_wrapper/pe/pe_wrapper.h @@ -11,6 +11,7 @@ #include "fileinfo/file_information/file_information_types/symbol_table/symbol.h" #include "fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.h" +namespace retdec { namespace fileinfo { /** @@ -35,5 +36,6 @@ class PeWrapper : public retdec::fileformat::PeFormat }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.cpp b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.cpp index c0fcd653d..4caecb018 100644 --- a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.cpp +++ b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.cpp @@ -6,6 +6,7 @@ #include "fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.h" +namespace retdec { namespace fileinfo { /** @@ -31,3 +32,4 @@ PeWrapperParser::PeWrapperParser() */ } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.h b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.h index ece8f1f0c..fd92b44fb 100644 --- a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.h +++ b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.h @@ -12,6 +12,7 @@ #include "fileinfo/file_information/file_information_types/data_directory.h" #include "fileinfo/file_information/file_information_types/file_section.h" +namespace retdec { namespace fileinfo { class PeWrapperParser @@ -28,5 +29,6 @@ class PeWrapperParser }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.cpp b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.cpp index 2c778796f..82caebd5b 100644 --- a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.cpp +++ b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_wrapper/pe/pe_template.h" #include "fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.h" +namespace retdec { namespace fileinfo { /** @@ -28,3 +29,4 @@ bool PeWrapperParser32::getSection(const unsigned long long secIndex, FileSectio } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.h b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.h index d1a99fd96..f46cc0863 100644 --- a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.h +++ b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser32.h @@ -10,6 +10,7 @@ #include "fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.h" #include "retdec/pelib/PeLib.h" +namespace retdec { namespace fileinfo { class PeWrapperParser32 : public PeWrapperParser @@ -27,5 +28,6 @@ class PeWrapperParser32 : public PeWrapperParser }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.cpp b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.cpp index 103ff1436..d0362f00a 100644 --- a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.cpp +++ b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.cpp @@ -7,6 +7,7 @@ #include "fileinfo/file_wrapper/pe/pe_template.h" #include "fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.h" +namespace retdec { namespace fileinfo { /** @@ -28,3 +29,4 @@ bool PeWrapperParser64::getSection(const unsigned long long secIndex, FileSectio } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.h b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.h index 8ae1a8c24..4e30c72a0 100644 --- a/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.h +++ b/src/fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser64.h @@ -10,6 +10,7 @@ #include "fileinfo/file_wrapper/pe/pe_wrapper_parser/pe_wrapper_parser.h" #include "retdec/pelib/PeLib.h" +namespace retdec { namespace fileinfo { class PeWrapperParser64 : public PeWrapperParser @@ -27,5 +28,6 @@ class PeWrapperParser64 : public PeWrapperParser }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/fileinfo/fileinfo.cpp b/src/fileinfo/fileinfo.cpp index 2a462d4f8..5a8b52aa8 100644 --- a/src/fileinfo/fileinfo.cpp +++ b/src/fileinfo/fileinfo.cpp @@ -28,7 +28,7 @@ using namespace retdec::utils; using namespace retdec::ar_extractor; using namespace retdec::cpdetect; using namespace retdec::fileformat; -using namespace fileinfo; +using namespace retdec::fileinfo; namespace { diff --git a/src/fileinfo/pattern_detector/pattern_detector.cpp b/src/fileinfo/pattern_detector/pattern_detector.cpp index 189d15d93..9e6cb0d2c 100644 --- a/src/fileinfo/pattern_detector/pattern_detector.cpp +++ b/src/fileinfo/pattern_detector/pattern_detector.cpp @@ -13,8 +13,9 @@ #include "retdec/yaracpp/yara_detector/yara_detector.h" using namespace retdec::utils; -using namespace yaracpp; +using namespace retdec::yaracpp; +namespace retdec { namespace fileinfo { /** @@ -368,3 +369,4 @@ void PatternDetector::analyze() } } // namespace fileinfo +} // namespace retdec diff --git a/src/fileinfo/pattern_detector/pattern_detector.h b/src/fileinfo/pattern_detector/pattern_detector.h index 45e27c6fd..a39204987 100644 --- a/src/fileinfo/pattern_detector/pattern_detector.h +++ b/src/fileinfo/pattern_detector/pattern_detector.h @@ -13,10 +13,13 @@ #include "fileinfo/file_information/file_information.h" +namespace retdec { namespace yaracpp { class YaraRule; } // namespace yaracpp +} // namespace retdec +namespace retdec { namespace fileinfo { /** @@ -54,5 +57,6 @@ class PatternDetector }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/getsig/CMakeLists.txt b/src/getsig/CMakeLists.txt index 0a3df192f..838b67481 100644 --- a/src/getsig/CMakeLists.txt +++ b/src/getsig/CMakeLists.txt @@ -1,8 +1,19 @@ -set(GETSIG_SOURCES + +add_executable(getsig getsig.cpp ) -add_executable(retdec-getsig ${GETSIG_SOURCES}) -target_link_libraries(retdec-getsig retdec-fileformat) -target_include_directories(retdec-getsig PUBLIC ${PROJECT_SOURCE_DIR}/include/) -install(TARGETS retdec-getsig RUNTIME DESTINATION bin) +target_compile_features(getsig PUBLIC cxx_std_17) + +target_link_libraries(getsig + retdec::fileformat +) + +set_target_properties(getsig + PROPERTIES + OUTPUT_NAME "retdec-getsig" +) + +install(TARGETS getsig + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/idr2pat/CMakeLists.txt b/src/idr2pat/CMakeLists.txt index 5e8224cbe..40a6291c7 100644 --- a/src/idr2pat/CMakeLists.txt +++ b/src/idr2pat/CMakeLists.txt @@ -1,7 +1,20 @@ -set(IDR2PAT_SOURCES + +add_executable(idr2pat idr2pat.cpp ) -add_executable(retdec-idr2pat ${IDR2PAT_SOURCES}) -target_link_libraries(retdec-idr2pat retdec-utils yaramod) -install(TARGETS retdec-idr2pat RUNTIME DESTINATION bin) +target_compile_features(idr2pat PUBLIC cxx_std_17) + +target_link_libraries(idr2pat + retdec::utils + retdec::deps::yaramod +) + +set_target_properties(idr2pat + PROPERTIES + OUTPUT_NAME "retdec-idb2pat" +) + +install(TARGETS idr2pat + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/llvm-support/CMakeLists.txt b/src/llvm-support/CMakeLists.txt index 94cfba635..50100497a 100644 --- a/src/llvm-support/CMakeLists.txt +++ b/src/llvm-support/CMakeLists.txt @@ -1,7 +1,53 @@ -set(LLVM_SUPPORT_SOURCES + +add_library(llvm-support STATIC diagnostics.cpp ) +add_library(retdec::llvm-support ALIAS llvm-support) + +target_compile_features(llvm-support PUBLIC cxx_std_17) + +target_include_directories(llvm-support + PUBLIC + $ + $ +) + +target_link_libraries(llvm-support + PUBLIC + retdec::deps::llvm + PRIVATE + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvm-support + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS llvm-support + EXPORT llvm-support-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-llvm-support STATIC ${LLVM_SUPPORT_SOURCES}) -target_link_libraries(retdec-llvm-support retdec-utils llvm) -target_include_directories(retdec-llvm-support PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT llvm-support-targets + FILE "retdec-llvm-support-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-llvm-support-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvm-support-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvm-support-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/llvm-support/retdec-llvm-support-config.cmake b/src/llvm-support/retdec-llvm-support-config.cmake new file mode 100644 index 000000000..7f9d08996 --- /dev/null +++ b/src/llvm-support/retdec-llvm-support-config.cmake @@ -0,0 +1,11 @@ + +if(NOT TARGET retdec::llvm-support) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + utils + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-support-targets.cmake) +endif() diff --git a/src/llvmir-emul/CMakeLists.txt b/src/llvmir-emul/CMakeLists.txt index 9ef2b4aa9..cab9df683 100644 --- a/src/llvmir-emul/CMakeLists.txt +++ b/src/llvmir-emul/CMakeLists.txt @@ -1,7 +1,51 @@ -set(LLVMIR_EMUL_SOURCES + +add_library(llvmir-emul STATIC llvmir_emul.cpp ) +add_library(retdec::llvmir-emul ALIAS llvmir-emul) + +target_compile_features(llvmir-emul PUBLIC cxx_std_17) + +target_include_directories(llvmir-emul + PUBLIC + $ + $ +) + +target_link_libraries(llvmir-emul + PUBLIC + retdec::deps::llvm +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvmir-emul + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS llvmir-emul + EXPORT llvmir-emul-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-llvmir-emul STATIC ${LLVMIR_EMUL_SOURCES}) -target_link_libraries(retdec-llvmir-emul llvm) -target_include_directories(retdec-llvmir-emul PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT llvmir-emul-targets + FILE "retdec-llvmir-emul-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-llvmir-emul-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir-emul-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir-emul-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/llvmir-emul/retdec-llvmir-emul-config.cmake b/src/llvmir-emul/retdec-llvmir-emul-config.cmake new file mode 100644 index 000000000..05c2fefd7 --- /dev/null +++ b/src/llvmir-emul/retdec-llvmir-emul-config.cmake @@ -0,0 +1,10 @@ + +if(NOT TARGET retdec::llvmir-emul) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir-emul-targets.cmake) +endif() diff --git a/src/llvmir2hll/CMakeLists.txt b/src/llvmir2hll/CMakeLists.txt index 3918115a8..433732107 100644 --- a/src/llvmir2hll/CMakeLists.txt +++ b/src/llvmir2hll/CMakeLists.txt @@ -1,4 +1,5 @@ -set(LLVMIR2HLL_SOURCES + +add_library(llvmir2hll STATIC analysis/alias_analysis/alias_analyses/basic_alias_analysis.cpp analysis/alias_analysis/alias_analyses/simple_alias_analysis.cpp analysis/alias_analysis/alias_analysis.cpp @@ -295,15 +296,24 @@ set(LLVMIR2HLL_SOURCES var_renamer/var_renamers/simple_var_renamer.cpp var_renamer/var_renamers/unified_var_renamer.cpp ) +add_library(retdec::llvmir2hll ALIAS llvmir2hll) + +target_compile_features(llvmir2hll PUBLIC cxx_std_17) -add_library(retdec-llvmir2hll STATIC ${LLVMIR2HLL_SOURCES}) -target_link_libraries(retdec-llvmir2hll - retdec-config - retdec-utils - retdec-llvm-support - rapidjson - llvm) -target_include_directories(retdec-llvmir2hll PUBLIC ${PROJECT_SOURCE_DIR}/include/) +target_include_directories(llvmir2hll + PUBLIC + $ + $ +) + +target_link_libraries(llvmir2hll + PUBLIC + retdec::config + retdec::utils + retdec::llvm-support + retdec::deps::rapidjson + retdec::deps::llvm +) # We need to compile source files with /bigobj to prevent the following # kind of an error: @@ -311,5 +321,40 @@ target_include_directories(retdec-llvmir2hll PUBLIC ${PROJECT_SOURCE_DIR}/includ # fatal error C1128: number of sections exceeded object file format # limit: compile with /bigobj if(MSVC) - set_property(TARGET retdec-llvmir2hll APPEND_STRING PROPERTY COMPILE_FLAGS " /bigobj") + set_property(TARGET llvmir2hll + APPEND_STRING PROPERTY COMPILE_FLAGS " /bigobj" + ) endif() + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvmir2hll + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS llvmir2hll + EXPORT llvmir2hll-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT llvmir2hll-targets + FILE "retdec-llvmir2hll-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-llvmir2hll-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir2hll-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir2hll-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/llvmir2hll/retdec-llvmir2hll-config.cmake b/src/llvmir2hll/retdec-llvmir2hll-config.cmake new file mode 100644 index 000000000..8e751efb4 --- /dev/null +++ b/src/llvmir2hll/retdec-llvmir2hll-config.cmake @@ -0,0 +1,14 @@ + +if(NOT TARGET retdec::llvmir2hll) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + config + utils + llvm-support + rapidjson + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir2hll-targets.cmake) +endif() diff --git a/src/llvmir2hlltool/CMakeLists.txt b/src/llvmir2hlltool/CMakeLists.txt index 6603f6402..7f7dc0dfc 100644 --- a/src/llvmir2hlltool/CMakeLists.txt +++ b/src/llvmir2hlltool/CMakeLists.txt @@ -1,34 +1,48 @@ -set(LLVMIR2HLLTOOL_SOURCES + +add_executable(llvmir2hlltool llvmir2hll.cpp ) -add_executable(retdec-llvmir2hlltool ${LLVMIR2HLLTOOL_SOURCES}) +target_compile_features(llvmir2hlltool PUBLIC cxx_std_17) # Due to the implementation of the plugin system in LLVM, we have to link our # libraries into bin2llvmirtool as a whole. if(MSVC) - # -WHOLEARCHIVE needs path to the target, but when we use the target like that, - # its properties (associated includes, etc.) are not propagated. Therefore, we - # state 'llvmir2hll' twice in target_link_libraries(), first as a target to get - # its properties, second as path to library to link it as a whole. - target_link_libraries(retdec-llvmir2hlltool retdec-llvmir2hll -WHOLEARCHIVE:$) + # -WHOLEARCHIVE needs path to the target, but when we use the target like + # that, its properties (associated includes, etc.) are not propagated. + # Therefore, we state 'llvmir2hll' twice in target_link_libraries(), + # first as a target to get its properties, second as path to library to + # link it as a whole. + target_link_libraries(llvmir2hlltool + retdec::llvmir2hll -WHOLEARCHIVE:$ + ) + # Increase the stack size of the created binaries on MS Windows because the + # default value is too small. The default Linux value is 8388608 (8 MB). + set_property(TARGET llvmir2hlltool + APPEND_STRING PROPERTY LINK_FLAGS " /STACK:16777216" + ) + # Allow the 32b version of llvmir2hll on Windows handle addresses larger + # than 2 GB (up to 4 GB). + if(CMAKE_SIZEOF_VOID_P MATCHES "4") + set_property(TARGET llvmir2hlltool + APPEND_STRING PROPERTY LINK_FLAGS " /LARGEADDRESSAWARE" + ) + endif() elseif(APPLE) - target_link_libraries(retdec-llvmir2hlltool -Wl,-force_load retdec-llvmir2hll) + target_link_libraries(llvmir2hlltool + -Wl,-force_load retdec::llvmir2hll + ) else() # Linux/MSYS2 - target_link_libraries(retdec-llvmir2hlltool -Wl,--whole-archive retdec-llvmir2hll -Wl,--no-whole-archive) -endif() - -# Increase the stack size of the created binaries on MS Windows because the -# default value is too small. The default Linux value is 8388608 (8 MB). -if(MSVC) - set_property(TARGET retdec-llvmir2hlltool APPEND_STRING PROPERTY LINK_FLAGS " /STACK:16777216") + target_link_libraries(llvmir2hlltool + -Wl,--whole-archive retdec::llvmir2hll -Wl,--no-whole-archive + ) endif() -# Allow the 32b version of llvmir2hll on Windows handle addresses larger than 2 -# GB (up to 4 GB). -if(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES "4") - set_property(TARGET retdec-llvmir2hlltool APPEND_STRING PROPERTY LINK_FLAGS " /LARGEADDRESSAWARE") -endif() +set_target_properties(llvmir2hlltool + PROPERTIES + OUTPUT_NAME "retdec-llvmir2hll" +) -set_target_properties(retdec-llvmir2hlltool PROPERTIES OUTPUT_NAME "retdec-llvmir2hll") -install(TARGETS retdec-llvmir2hlltool RUNTIME DESTINATION bin) +install(TARGETS llvmir2hlltool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index 1ec98fb73..d2e9df945 100644 --- a/src/loader/CMakeLists.txt +++ b/src/loader/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(retdec-loader STATIC +add_library(loader STATIC utils/range.cpp utils/overlap_resolver.cpp utils/name_generator.cpp @@ -14,9 +14,52 @@ add_library(retdec-loader STATIC loader/segment_data_source.cpp loader/elf/elf_image.cpp ) -target_link_libraries(retdec-loader - retdec-fileformat - retdec-common - retdec-utils +add_library(retdec::loader ALIAS loader) + +target_compile_features(loader PUBLIC cxx_std_17) + +target_include_directories(loader + PUBLIC + $ + $ +) + +target_link_libraries(loader + PUBLIC + retdec::fileformat + retdec::common + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/loader + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS loader + EXPORT loader-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT loader-targets + FILE "retdec-loader-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-loader-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-loader-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-loader-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) -target_include_directories(retdec-loader PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/loader/retdec-loader-config.cmake b/src/loader/retdec-loader-config.cmake new file mode 100644 index 000000000..7bc6b00e5 --- /dev/null +++ b/src/loader/retdec-loader-config.cmake @@ -0,0 +1,12 @@ + +if(NOT TARGET retdec::loader) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + fileformat + common + utils + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-loader-targets.cmake) +endif() diff --git a/src/macho-extractor/CMakeLists.txt b/src/macho-extractor/CMakeLists.txt index 56b3ebe90..6f34f526e 100644 --- a/src/macho-extractor/CMakeLists.txt +++ b/src/macho-extractor/CMakeLists.txt @@ -1,7 +1,55 @@ -set(MACHO_EXTRACTOR_SOURCES + +add_library(macho-extractor STATIC break_fat.cpp ) +add_library(retdec::macho-extractor ALIAS macho-extractor) + +target_compile_features(macho-extractor PUBLIC cxx_std_17) + +target_include_directories(macho-extractor + PUBLIC + $ + $ +) + +target_link_libraries(macho-extractor + PUBLIC + retdec::deps::llvm + PRIVATE + retdec::utils + retdec::deps::rapidjson +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/macho-extractor + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS macho-extractor + EXPORT macho-extractor-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT macho-extractor-targets + FILE "retdec-macho-extractor-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-macho-extractor-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-macho-extractor-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-macho-extractor-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) -add_library(retdec-macho-extractor STATIC ${MACHO_EXTRACTOR_SOURCES}) -target_link_libraries(retdec-macho-extractor retdec-utils rapidjson llvm) -target_include_directories(retdec-macho-extractor PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/macho-extractor/retdec-macho-extractor-config.cmake b/src/macho-extractor/retdec-macho-extractor-config.cmake new file mode 100644 index 000000000..98696aa0d --- /dev/null +++ b/src/macho-extractor/retdec-macho-extractor-config.cmake @@ -0,0 +1,12 @@ + +if(NOT TARGET retdec::macho-extractor) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + utils + rapidjson + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-macho-extractor-targets.cmake) +endif() diff --git a/src/macho-extractortool/CMakeLists.txt b/src/macho-extractortool/CMakeLists.txt index 5ca3d3e91..8dbe838ef 100644 --- a/src/macho-extractortool/CMakeLists.txt +++ b/src/macho-extractortool/CMakeLists.txt @@ -1,8 +1,21 @@ -set(MACHO_EXTRACTOR_SOURCES + +add_executable(macho-extractortool macho_extractor.cpp ) -add_executable(retdec-macho-extractortool ${MACHO_EXTRACTOR_SOURCES}) -set_target_properties(retdec-macho-extractortool PROPERTIES OUTPUT_NAME "retdec-macho-extractor") -target_link_libraries(retdec-macho-extractortool retdec-macho-extractor retdec-utils rapidjson) -install(TARGETS retdec-macho-extractortool RUNTIME DESTINATION bin) +target_compile_features(macho-extractortool PUBLIC cxx_std_17) + +target_link_libraries(macho-extractortool + retdec::macho-extractor + retdec::utils + retdec::deps::rapidjson +) + +set_target_properties(macho-extractortool + PROPERTIES + OUTPUT_NAME "retdec-macho-extractor" +) + +install(TARGETS macho-extractortool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/pat2yara/CMakeLists.txt b/src/pat2yara/CMakeLists.txt index f3e1876fb..dde42ece5 100644 --- a/src/pat2yara/CMakeLists.txt +++ b/src/pat2yara/CMakeLists.txt @@ -1,4 +1,5 @@ -set(PAT2YARA_SOURCES + +add_executable(pat2yara compare.cpp logic.cpp modifications.cpp @@ -7,7 +8,25 @@ set(PAT2YARA_SOURCES utils.cpp ) -add_executable(retdec-pat2yara ${PAT2YARA_SOURCES}) -target_link_libraries(retdec-pat2yara retdec-patterngen retdec-utils yaramod) -target_include_directories(retdec-pat2yara PUBLIC ${PROJECT_SOURCE_DIR}/src/) -install(TARGETS retdec-pat2yara RUNTIME DESTINATION bin) +target_compile_features(pat2yara PUBLIC cxx_std_17) + +target_include_directories(pat2yara + PRIVATE + ${RETDEC_SOURCE_DIR} +) + +target_link_libraries(pat2yara + retdec::patterngen + retdec::utils + retdec::deps::yaramod +) + +set_target_properties(pat2yara + PROPERTIES + OUTPUT_NAME "retdec-pat2yara" +) + +install(TARGETS pat2yara + RUNTIME + DESTINATION bin +) diff --git a/src/patterngen/CMakeLists.txt b/src/patterngen/CMakeLists.txt index b6f652dd7..a1c1297ea 100644 --- a/src/patterngen/CMakeLists.txt +++ b/src/patterngen/CMakeLists.txt @@ -1,8 +1,55 @@ -set(PATTERNGEN_SOURCES + +add_library(patterngen STATIC pattern_extractor/pattern_extractor.cpp pattern_extractor/types/symbol_pattern.cpp ) +add_library(retdec::patterngen ALIAS patterngen) + +target_compile_features(patterngen PUBLIC cxx_std_17) + +target_include_directories(patterngen + PUBLIC + $ + $ +) + +target_link_libraries(patterngen + PUBLIC + retdec::deps::yaramod + PRIVATE + retdec::fileformat + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/patterngen + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS patterngen + EXPORT patterngen-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-patterngen STATIC ${PATTERNGEN_SOURCES}) -target_link_libraries(retdec-patterngen retdec-fileformat retdec-utils yaramod) -target_include_directories(retdec-patterngen PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT patterngen-targets + FILE "retdec-patterngen-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-patterngen-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-patterngen-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-patterngen-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/patterngen/retdec-patterngen-config.cmake b/src/patterngen/retdec-patterngen-config.cmake new file mode 100644 index 000000000..bc397c2d3 --- /dev/null +++ b/src/patterngen/retdec-patterngen-config.cmake @@ -0,0 +1,12 @@ + +if(NOT TARGET retdec::patterngen) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + fileformat + utils + yaramod + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-patterngen-targets.cmake) +endif() diff --git a/src/pdbparser/CMakeLists.txt b/src/pdbparser/CMakeLists.txt index 72775cc91..34405d9fb 100644 --- a/src/pdbparser/CMakeLists.txt +++ b/src/pdbparser/CMakeLists.txt @@ -1,9 +1,44 @@ -set(PDBPARSER_SOURCES + +add_library(pdbparser STATIC pdb_file.cpp pdb_symbols.cpp pdb_types.cpp pdb_utils.cpp ) +add_library(retdec::pdbparser ALIAS pdbparser) + +target_compile_features(pdbparser PUBLIC cxx_std_17) + +target_include_directories(pdbparser + PUBLIC + $ + $ +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/pdbparser + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) -add_library(retdec-pdbparser STATIC ${PDBPARSER_SOURCES}) -target_include_directories(retdec-pdbparser PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Install libs. +install(TARGETS pdbparser + EXPORT pdbparser-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT pdbparser-targets + FILE "retdec-pdbparser-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-pdbparser-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/pdbparser/retdec-pdbparser-config.cmake b/src/pdbparser/retdec-pdbparser-config.cmake new file mode 100644 index 000000000..2ac9e7000 --- /dev/null +++ b/src/pdbparser/retdec-pdbparser-config.cmake @@ -0,0 +1,4 @@ + +if(NOT TARGET retdec::pdbparser) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-pdbparser-targets.cmake) +endif() diff --git a/src/pelib/BoundImportDirectory.cpp b/src/pelib/BoundImportDirectory.cpp index 08f52ead5..57e4b9d85 100644 --- a/src/pelib/BoundImportDirectory.cpp +++ b/src/pelib/BoundImportDirectory.cpp @@ -14,8 +14,8 @@ #include #include -#include "pelib/PeLibInc.h" -#include "pelib/BoundImportDirectory.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/BoundImportDirectory.h" namespace PeLib { diff --git a/src/pelib/CMakeLists.txt b/src/pelib/CMakeLists.txt index 814415ae8..01907ee96 100644 --- a/src/pelib/CMakeLists.txt +++ b/src/pelib/CMakeLists.txt @@ -1,4 +1,5 @@ -set(PELIB_SOURCES + +add_library(pelib STATIC BoundImportDirectory.cpp CoffSymbolTable.cpp ComHeaderDirectory.cpp @@ -16,11 +17,15 @@ set(PELIB_SOURCES RichHeader.cpp SecurityDirectory.cpp ) +add_library(retdec::pelib ALIAS pelib) + +target_compile_features(pelib PUBLIC cxx_std_17) -add_library(pelib STATIC ${PELIB_SOURCES}) target_include_directories(pelib - PUBLIC ${PROJECT_SOURCE_DIR}/include/ - PUBLIC ${PROJECT_SOURCE_DIR}/include/retdec) + PUBLIC + $ + $ +) # Disable all warnings from this library. if(MSVC) @@ -28,3 +33,31 @@ if(MSVC) else() target_compile_options(pelib PUBLIC "-w") endif() + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/pelib + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS pelib + EXPORT pelib-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT pelib-targets + FILE "retdec-pelib-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-pelib-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/pelib/CoffSymbolTable.cpp b/src/pelib/CoffSymbolTable.cpp index dacc37292..05028b97a 100644 --- a/src/pelib/CoffSymbolTable.cpp +++ b/src/pelib/CoffSymbolTable.cpp @@ -6,8 +6,8 @@ #include -#include "pelib/PeLibInc.h" -#include "pelib/CoffSymbolTable.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/CoffSymbolTable.h" namespace PeLib { diff --git a/src/pelib/ComHeaderDirectory.cpp b/src/pelib/ComHeaderDirectory.cpp index 9fcf903a6..f09cf4436 100644 --- a/src/pelib/ComHeaderDirectory.cpp +++ b/src/pelib/ComHeaderDirectory.cpp @@ -10,8 +10,8 @@ * of PeLib. */ -#include "pelib/PeLibInc.h" -#include "pelib/ComHeaderDirectory.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/ComHeaderDirectory.h" namespace PeLib { diff --git a/src/pelib/DebugDirectory.cpp b/src/pelib/DebugDirectory.cpp index aaad51273..92ea983ac 100644 --- a/src/pelib/DebugDirectory.cpp +++ b/src/pelib/DebugDirectory.cpp @@ -10,8 +10,8 @@ * of PeLib. */ -#include "pelib/PeLibInc.h" -#include "pelib/DebugDirectory.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/DebugDirectory.h" namespace PeLib { diff --git a/src/pelib/ExportDirectory.cpp b/src/pelib/ExportDirectory.cpp index f4fc53620..32f210523 100644 --- a/src/pelib/ExportDirectory.cpp +++ b/src/pelib/ExportDirectory.cpp @@ -10,8 +10,8 @@ * of PeLib. */ -#include "pelib/PeLibInc.h" -#include "pelib/ExportDirectory.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/ExportDirectory.h" namespace PeLib { diff --git a/src/pelib/IatDirectory.cpp b/src/pelib/IatDirectory.cpp index d634d0921..ace43bda0 100644 --- a/src/pelib/IatDirectory.cpp +++ b/src/pelib/IatDirectory.cpp @@ -10,7 +10,7 @@ * of PeLib. */ -#include "pelib/IatDirectory.h" +#include "retdec/pelib/IatDirectory.h" namespace PeLib { diff --git a/src/pelib/InputBuffer.cpp b/src/pelib/InputBuffer.cpp index 6651eb028..e23a41ab7 100644 --- a/src/pelib/InputBuffer.cpp +++ b/src/pelib/InputBuffer.cpp @@ -10,7 +10,7 @@ * of PeLib. */ -#include "pelib/InputBuffer.h" +#include "retdec/pelib/InputBuffer.h" namespace PeLib { diff --git a/src/pelib/MzHeader.cpp b/src/pelib/MzHeader.cpp index d3d8055cd..9457efc4d 100644 --- a/src/pelib/MzHeader.cpp +++ b/src/pelib/MzHeader.cpp @@ -12,7 +12,7 @@ #include -#include "pelib/MzHeader.h" +#include "retdec/pelib/MzHeader.h" namespace PeLib { diff --git a/src/pelib/OutputBuffer.cpp b/src/pelib/OutputBuffer.cpp index e851a88c3..73bf1310f 100644 --- a/src/pelib/OutputBuffer.cpp +++ b/src/pelib/OutputBuffer.cpp @@ -10,7 +10,7 @@ * of PeLib. */ -#include "pelib/OutputBuffer.h" +#include "retdec/pelib/OutputBuffer.h" namespace PeLib { diff --git a/src/pelib/PeFile.cpp b/src/pelib/PeFile.cpp index d3f6c24fe..0c3c97454 100644 --- a/src/pelib/PeFile.cpp +++ b/src/pelib/PeFile.cpp @@ -10,7 +10,7 @@ * of PeLib. */ -#include "pelib/PeFile.h" +#include "retdec/pelib/PeFile.h" namespace PeLib { diff --git a/src/pelib/PeHeader.cpp b/src/pelib/PeHeader.cpp index 6cfa28175..c5327f0db 100644 --- a/src/pelib/PeHeader.cpp +++ b/src/pelib/PeHeader.cpp @@ -10,8 +10,8 @@ * of PeLib. */ -#include "pelib/PeLibInc.h" -#include "pelib/PeHeader.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/PeHeader.h" namespace PeLib { diff --git a/src/pelib/PeLibAux.cpp b/src/pelib/PeLibAux.cpp index fd280b864..3c4344373 100644 --- a/src/pelib/PeLibAux.cpp +++ b/src/pelib/PeLibAux.cpp @@ -16,9 +16,9 @@ #include #endif -#include "pelib/PeLibInc.h" -#include "pelib/PeLibAux.h" -#include "pelib/PeFile.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/PeLibAux.h" +#include "retdec/pelib/PeFile.h" namespace PeLib { diff --git a/src/pelib/RelocationsDirectory.cpp b/src/pelib/RelocationsDirectory.cpp index 7004210a2..3e81341b2 100644 --- a/src/pelib/RelocationsDirectory.cpp +++ b/src/pelib/RelocationsDirectory.cpp @@ -10,8 +10,8 @@ * of PeLib. */ -#include "pelib/PeLibInc.h" -#include "pelib/RelocationsDirectory.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/RelocationsDirectory.h" namespace PeLib { diff --git a/src/pelib/ResourceDirectory.cpp b/src/pelib/ResourceDirectory.cpp index 3c425729d..2d507b0d9 100644 --- a/src/pelib/ResourceDirectory.cpp +++ b/src/pelib/ResourceDirectory.cpp @@ -10,7 +10,7 @@ * of PeLib. */ -#include "pelib/ResourceDirectory.h" +#include "retdec/pelib/ResourceDirectory.h" namespace PeLib { diff --git a/src/pelib/RichHeader.cpp b/src/pelib/RichHeader.cpp index c430b7967..3e31dd992 100644 --- a/src/pelib/RichHeader.cpp +++ b/src/pelib/RichHeader.cpp @@ -9,8 +9,8 @@ #include #include -#include "pelib/PeLibInc.h" -#include "pelib/RichHeader.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/RichHeader.h" namespace PeLib { diff --git a/src/pelib/SecurityDirectory.cpp b/src/pelib/SecurityDirectory.cpp index 33bb5936d..3d68a5369 100644 --- a/src/pelib/SecurityDirectory.cpp +++ b/src/pelib/SecurityDirectory.cpp @@ -4,8 +4,8 @@ * @copyright (c) 2017 Avast Software, licensed under the MIT license */ -#include "pelib/PeLibInc.h" -#include "pelib/SecurityDirectory.h" +#include "retdec/pelib/PeLibInc.h" +#include "retdec/pelib/SecurityDirectory.h" namespace PeLib { diff --git a/src/pelib/retdec-pelib-config.cmake b/src/pelib/retdec-pelib-config.cmake new file mode 100644 index 000000000..211a18452 --- /dev/null +++ b/src/pelib/retdec-pelib-config.cmake @@ -0,0 +1,4 @@ + +if(NOT TARGET retdec::pelib) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-pelib-targets.cmake) +endif() diff --git a/src/retdec/CMakeLists.txt b/src/retdec/CMakeLists.txt index 2f07930fc..c3594b20b 100644 --- a/src/retdec/CMakeLists.txt +++ b/src/retdec/CMakeLists.txt @@ -1,33 +1,56 @@ -add_library(retdec-retdec STATIC +add_library(retdec STATIC retdec.cpp ) +add_library(retdec::retdec ALIAS retdec) -# Due to the implementation of the plugin system in LLVM, we have to link our -# libraries into retdec as a whole. -if(MSVC) - # -WHOLEARCHIVE needs path to the target, but when we use the target like that, - # its properties (associated includes, etc.) are not propagated. Therefore, we - # state 'bin2llvmir' twice in target_link_libraries(), first as a target to get - # its properties, second as path to library to link it as a whole. - target_link_libraries(retdec-retdec - retdec-bin2llvmir -WHOLEARCHIVE:$ - ) - set_property(TARGET retdec-retdec APPEND_STRING PROPERTY LINK_FLAGS " /FORCE:MULTIPLE") -elseif(APPLE) - target_link_libraries(retdec-retdec - -Wl,-force_load retdec-bin2llvmir - ) -else() # Linux - target_link_libraries(retdec-retdec - -Wl,--whole-archive retdec-bin2llvmir -Wl,--no-whole-archive - ) -endif() - -# Allow the 32b version of bin2llvmir on Windows handle addresses larger than 2 -# GB (up to 4 GB). -if(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES "4") - set_property(TARGET retdec-retdec APPEND_STRING PROPERTY LINK_FLAGS " /LARGEADDRESSAWARE") -endif() - -target_include_directories(retdec-retdec PUBLIC ${PROJECT_SOURCE_DIR}/include/) +target_compile_features(retdec PUBLIC cxx_std_17) + +target_include_directories(retdec + PUBLIC + $ + $ +) + +target_link_libraries(retdec + PUBLIC + retdec::common + retdec::deps::capstone + retdec::deps::llvm + PRIVATE + retdec::bin2llvmir + retdec::config +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/retdec + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS retdec + EXPORT retdec-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT retdec-targets + FILE "retdec-retdec-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-retdec-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-retdec-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-retdec-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/retdec/retdec-retdec-config.cmake b/src/retdec/retdec-retdec-config.cmake new file mode 100644 index 000000000..1778b0d1b --- /dev/null +++ b/src/retdec/retdec-retdec-config.cmake @@ -0,0 +1,14 @@ + +if(NOT TARGET retdec::retdec) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + bin2llvmir + config + common + capstone + llvm + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-retdec-targets.cmake) +endif() diff --git a/src/retdec/retdec.cpp b/src/retdec/retdec.cpp index 7f5d88091..da5eb3fa8 100644 --- a/src/retdec/retdec.cpp +++ b/src/retdec/retdec.cpp @@ -50,7 +50,6 @@ #include "retdec/bin2llvmir/providers/config.h" #include "retdec/config/config.h" -#include "retdec/llvm-support/diagnostics.h" #include "retdec/retdec/retdec.h" /** diff --git a/src/retdectool/CMakeLists.txt b/src/retdectool/CMakeLists.txt index c500a0161..3ffacca99 100644 --- a/src/retdectool/CMakeLists.txt +++ b/src/retdectool/CMakeLists.txt @@ -1,29 +1,47 @@ -add_executable(retdec-retdectool +add_executable(retdectool retdec.cpp ) -target_link_libraries(retdec-retdectool retdec-retdec) + +target_compile_features(retdectool PUBLIC cxx_std_17) + +target_link_libraries(retdectool retdec::retdec) # Due to the implementation of the plugin system in LLVM, we have to link our # libraries into retdec as a whole. if(MSVC) - # -WHOLEARCHIVE needs path to the target, but when we use the target like that, - # its properties (associated includes, etc.) are not propagated. Therefore, we - # state 'bin2llvmir' twice in target_link_libraries(), first as a target to get - # its properties, second as path to library to link it as a whole. - target_link_libraries(retdec-retdectool retdec-bin2llvmir -WHOLEARCHIVE:$) - set_property(TARGET retdec-retdectool APPEND_STRING PROPERTY LINK_FLAGS " /FORCE:MULTIPLE") + # -WHOLEARCHIVE needs path to the target, but when we use the target like + # that, its properties (associated includes, etc.) are not propagated. + # Therefore, we state 'bin2llvmir' twice in target_link_libraries(), + # first as a target to get its properties, second as path to library to + # link it as a whole. + target_link_libraries(retdectool + retdec::bin2llvmir -WHOLEARCHIVE:$ + ) + set_property(TARGET retdectool + APPEND_STRING PROPERTY LINK_FLAGS " /FORCE:MULTIPLE" + ) + # Allow the 32b version of bin2llvmir on Windows handle addresses larger + # than 2 GB (up to 4 GB). + if(CMAKE_SIZEOF_VOID_P MATCHES "4") + set_property(TARGET retdec + APPEND_STRING PROPERTY LINK_FLAGS " /LARGEADDRESSAWARE" + ) + endif() elseif(APPLE) - target_link_libraries(retdec-retdectool -Wl,-force_load retdec-bin2llvmir) + target_link_libraries(retdectool + -Wl,-force_load retdec::bin2llvmir + ) else() # Linux - target_link_libraries(retdec-retdectool -Wl,--whole-archive retdec-bin2llvmir -Wl,--no-whole-archive) + target_link_libraries(retdectool + -Wl,--whole-archive retdec::bin2llvmir -Wl,--no-whole-archive + ) endif() -# Allow the 32b version of bin2llvmir on Windows handle addresses larger than 2 -# GB (up to 4 GB). -if(MSVC AND CMAKE_SIZEOF_VOID_P MATCHES "4") - set_property(TARGET retdec-retdec APPEND_STRING PROPERTY LINK_FLAGS " /LARGEADDRESSAWARE") -endif() +set_target_properties(retdectool + PROPERTIES OUTPUT_NAME "retdec" +) -set_target_properties(retdec-retdectool PROPERTIES OUTPUT_NAME "retdec") -install(TARGETS retdec-retdectool RUNTIME DESTINATION bin) +install(TARGETS retdectool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/rtti-finder/CMakeLists.txt b/src/rtti-finder/CMakeLists.txt index c23a71767..c89eacbd3 100644 --- a/src/rtti-finder/CMakeLists.txt +++ b/src/rtti-finder/CMakeLists.txt @@ -1,13 +1,56 @@ -add_library(retdec-rtti-finder STATIC +add_library(rtti-finder STATIC rtti/rtti_gcc_parser.cpp rtti/rtti_msvc_parser.cpp vtable/vtable_finder.cpp rtti_finder.cpp ) -target_link_libraries(retdec-rtti-finder - retdec-loader - retdec-common - retdec-utils +add_library(retdec::rtti-finder ALIAS rtti-finder) + +target_compile_features(rtti-finder PUBLIC cxx_std_17) + +target_include_directories(rtti-finder + PUBLIC + $ + $ +) + +target_link_libraries(rtti-finder + PUBLIC + retdec::loader + retdec::common + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/rtti-finder + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS rtti-finder + EXPORT rtti-finder-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT rtti-finder-targets + FILE "retdec-rtti-finder-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-rtti-finder-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-rtti-finder-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-rtti-finder-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) -target_include_directories(retdec-rtti-finder PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/rtti-finder/retdec-rtti-finder-config.cmake b/src/rtti-finder/retdec-rtti-finder-config.cmake new file mode 100644 index 000000000..7ae3dd8cf --- /dev/null +++ b/src/rtti-finder/retdec-rtti-finder-config.cmake @@ -0,0 +1,12 @@ + +if(NOT TARGET retdec::rtti-finder) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + loader + common + utils + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-rtti-finder-targets.cmake) +endif() diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index e25cbb482..32dca04e9 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(retdec-serdes STATIC +add_library(serdes STATIC address.cpp architecture.cpp basic_block.cpp @@ -17,13 +17,51 @@ add_library(retdec-serdes STATIC type.cpp vtable.cpp ) -target_link_libraries(retdec-serdes - retdec-common - rapidjson +add_library(retdec::serdes ALIAS serdes) + +target_compile_features(serdes PUBLIC cxx_std_17) + +target_include_directories(serdes + PUBLIC + $ + $ +) + +target_link_libraries(serdes + PUBLIC + retdec::common + retdec::deps::rapidjson +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/serdes + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec ) -target_include_directories(retdec-serdes - PUBLIC ${PROJECT_SOURCE_DIR}/include/ + +# Install libs. +install(TARGETS serdes + EXPORT serdes-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT serdes-targets + FILE "retdec-serdes-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-serdes-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-serdes-config.cmake" + @ONLY ) -target_include_directories(retdec-serdes - PUBLIC ${PROJECT_SOURCE_DIR}/src/ +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-serdes-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) diff --git a/src/serdes/retdec-serdes-config.cmake b/src/serdes/retdec-serdes-config.cmake new file mode 100644 index 000000000..a16f97629 --- /dev/null +++ b/src/serdes/retdec-serdes-config.cmake @@ -0,0 +1,11 @@ + +if(NOT TARGET retdec::serdes) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + common + rapidjson + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-serdes-targets.cmake) +endif() diff --git a/src/stacofin/CMakeLists.txt b/src/stacofin/CMakeLists.txt index a80d2acf2..17aff0b83 100644 --- a/src/stacofin/CMakeLists.txt +++ b/src/stacofin/CMakeLists.txt @@ -1,13 +1,57 @@ -add_library(retdec-stacofin STATIC +add_library(stacofin STATIC stacofin.cpp ) -target_link_libraries(retdec-stacofin - retdec-loader - retdec-config - retdec-common - retdec-utils - retdec-yaracpp - capstone +add_library(retdec::stacofin ALIAS stacofin) + +target_compile_features(stacofin PUBLIC cxx_std_17) + +target_include_directories(stacofin + PUBLIC + $ + $ +) + +target_link_libraries(stacofin + PUBLIC + retdec::config + retdec::common + retdec::deps::capstone + PRIVATE + retdec::loader + retdec::yaracpp + retdec::utils +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/stacofin + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS stacofin + EXPORT stacofin-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT stacofin-targets + FILE "retdec-stacofin-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-stacofin-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-stacofin-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-stacofin-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) -target_include_directories(retdec-stacofin PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/stacofin/retdec-stacofin-config.cmake b/src/stacofin/retdec-stacofin-config.cmake new file mode 100644 index 000000000..ebf031073 --- /dev/null +++ b/src/stacofin/retdec-stacofin-config.cmake @@ -0,0 +1,15 @@ + +if(NOT TARGET retdec::stacofin) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + loader + config + common + yaracpp + utils + capstone + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-stacofin-targets.cmake) +endif() diff --git a/src/stacofin/stacofin.cpp b/src/stacofin/stacofin.cpp index 02b281f3d..85593b48c 100644 --- a/src/stacofin/stacofin.cpp +++ b/src/stacofin/stacofin.cpp @@ -8,10 +8,11 @@ #include #include -#include "retdec/stacofin/stacofin.h" -#include "retdec/yaracpp/yara_detector/yara_detector.h" +#include "retdec/fileformat/fileformat.h" #include "retdec/loader/loader/image.h" +#include "retdec/stacofin/stacofin.h" #include "retdec/utils/string.h" +#include "retdec/yaracpp/yara_detector/yara_detector.h" /** * Set \c debug_enabled to \c true to enable this LOG macro. @@ -24,7 +25,7 @@ static bool debug_enabled = false; using namespace retdec::common; using namespace retdec::loader; using namespace retdec::utils; -using namespace yaracpp; +using namespace retdec::yaracpp; namespace retdec { namespace stacofin { diff --git a/src/stacofintool/CMakeLists.txt b/src/stacofintool/CMakeLists.txt index c2fcf7573..1ddf3049e 100644 --- a/src/stacofintool/CMakeLists.txt +++ b/src/stacofintool/CMakeLists.txt @@ -1,8 +1,20 @@ -set(STACOFINTOOL_SOURCES + +add_executable(stacofintool stacofin.cpp ) -add_executable(retdec-stacofintool ${STACOFINTOOL_SOURCES}) -set_target_properties(retdec-stacofintool PROPERTIES OUTPUT_NAME "retdec-stacofin") -target_link_libraries(retdec-stacofintool retdec-stacofin retdec-loader) -install(TARGETS retdec-stacofintool RUNTIME DESTINATION bin) +target_compile_features(stacofintool PUBLIC cxx_std_17) + +target_link_libraries(stacofintool + retdec::stacofin + retdec::loader +) + +set_target_properties(stacofintool + PROPERTIES + OUTPUT_NAME "retdec-stacofin" +) + +install(TARGETS stacofintool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) diff --git a/src/unpacker/CMakeLists.txt b/src/unpacker/CMakeLists.txt index 972f6816d..8a4e4a550 100644 --- a/src/unpacker/CMakeLists.txt +++ b/src/unpacker/CMakeLists.txt @@ -1,4 +1,5 @@ -set(UNPACKER_SOURCES + +add_library(unpacker STATIC decompression/lzma/lzma_data.cpp decompression/nrv/nrv2d_data.cpp decompression/nrv/nrv2b_data.cpp @@ -6,15 +7,50 @@ set(UNPACKER_SOURCES decompression/lzmat/lzmat_data.cpp signature.cpp ) +add_library(retdec::unpacker ALIAS unpacker) + +target_compile_features(unpacker PUBLIC cxx_std_17) + +target_include_directories(unpacker + PUBLIC + $ + $ +) -add_library(retdec-unpacker STATIC ${UNPACKER_SOURCES}) -target_link_libraries(retdec-unpacker retdec-loader) -target_include_directories(retdec-unpacker PUBLIC ${PROJECT_SOURCE_DIR}/include/) +target_link_libraries(unpacker + PUBLIC + retdec::loader +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/unpacker + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) -# Disable the min() and max() macros to prevent errors when using e.g. -# std::numeric_limits<...>::max() -# (http://stackoverflow.com/questions/1904635/warning-c4003-and-errors-c2589-and-c2059-on-x-stdnumeric-limitsintmax). -# Any target that includes "windows.h" needs to define this. -if(MSVC) - target_compile_definitions(retdec-unpacker PUBLIC NOMINMAX) -endif() +# Install libs. +install(TARGETS unpacker + EXPORT unpacker-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT unpacker-targets + FILE "retdec-unpacker-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-unpacker-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-unpacker-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-unpacker-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/unpacker/retdec-unpacker-config.cmake b/src/unpacker/retdec-unpacker-config.cmake new file mode 100644 index 000000000..ec4527896 --- /dev/null +++ b/src/unpacker/retdec-unpacker-config.cmake @@ -0,0 +1,10 @@ + +if(NOT TARGET retdec::unpacker) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + loader + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-unpacker-targets.cmake) +endif() diff --git a/src/unpackertool/CMakeLists.txt b/src/unpackertool/CMakeLists.txt index e9e772d3c..417404e3e 100644 --- a/src/unpackertool/CMakeLists.txt +++ b/src/unpackertool/CMakeLists.txt @@ -1,16 +1,34 @@ -set(UNPACKERTOOL_SOURCES + +add_executable(unpackertool arg_handler.cpp unpacker.cpp plugin_mgr.cpp ) -add_executable(retdec-unpackertool ${UNPACKERTOOL_SOURCES}) -set_target_properties(retdec-unpackertool PROPERTIES OUTPUT_NAME "retdec-unpacker") +target_compile_features(unpackertool PUBLIC cxx_std_17) + +target_include_directories(unpackertool + PRIVATE + ${RETDEC_SOURCE_DIR} +) + +target_link_libraries(unpackertool + retdec::unpacker + retdec::unpacker-upx + retdec::unpacker-mpress + retdec::loader + retdec::cpdetect + retdec::utils + retdec::pelib) -target_link_libraries(retdec-unpackertool retdec-unpacker retdec-loader retdec-cpdetect retdec-utils pelib) -target_link_libraries(retdec-unpackertool retdec-unpacker-upx retdec-unpacker-mpress) +set_target_properties(unpackertool + PROPERTIES + OUTPUT_NAME "retdec-unpacker" +) -install(TARGETS retdec-unpackertool RUNTIME DESTINATION bin) +install(TARGETS unpackertool + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} +) # Plugins. add_subdirectory(plugins) diff --git a/src/unpackertool/plugins/CMakeLists.txt b/src/unpackertool/plugins/CMakeLists.txt index aaa465216..485165810 100644 --- a/src/unpackertool/plugins/CMakeLists.txt +++ b/src/unpackertool/plugins/CMakeLists.txt @@ -1,4 +1,4 @@ -# Subdirectories. + add_subdirectory(example) add_subdirectory(mpress) add_subdirectory(upx) diff --git a/src/unpackertool/plugins/example/CMakeLists.txt b/src/unpackertool/plugins/example/CMakeLists.txt index 1634cfd99..b1891c8e9 100644 --- a/src/unpackertool/plugins/example/CMakeLists.txt +++ b/src/unpackertool/plugins/example/CMakeLists.txt @@ -1,7 +1,20 @@ -set(EXAMPLE_SOURCES + +add_library(unpacker-example STATIC example.cpp ) +add_library(retdec::unpacker-example ALIAS unpacker-example) + +target_compile_features(unpacker-example PUBLIC cxx_std_17) -add_library(retdec-unpacker-example STATIC ${EXAMPLE_SOURCES}) -target_link_libraries(retdec-unpacker-example retdec-unpacker retdec-fileformat) -target_include_directories(retdec-unpacker-example PUBLIC ${PROJECT_SOURCE_DIR}/src/) +target_include_directories(unpacker-example + PUBLIC + $ + $ + # not installed +) + +target_link_libraries(unpacker-example + PUBLIC + retdec::unpacker + retdec::fileformat +) diff --git a/src/unpackertool/plugins/mpress/CMakeLists.txt b/src/unpackertool/plugins/mpress/CMakeLists.txt index 64c24c935..d1b67a37e 100644 --- a/src/unpackertool/plugins/mpress/CMakeLists.txt +++ b/src/unpackertool/plugins/mpress/CMakeLists.txt @@ -1,7 +1,20 @@ -set(MPRESS_SOURCES + +add_library(unpacker-mpress STATIC mpress.cpp ) +add_library(retdec::unpacker-mpress ALIAS unpacker-mpress) + +target_compile_features(unpacker-mpress PUBLIC cxx_std_17) -add_library(retdec-unpacker-mpress STATIC ${MPRESS_SOURCES}) -target_link_libraries(retdec-unpacker-mpress retdec-unpacker retdec-fileformat) -target_include_directories(retdec-unpacker-mpress PUBLIC ${PROJECT_SOURCE_DIR}/src/) +target_include_directories(unpacker-mpress + PUBLIC + $ + $ + # not installed +) + +target_link_libraries(unpacker-mpress + PUBLIC + retdec::unpacker + retdec::fileformat +) diff --git a/src/unpackertool/plugins/upx/CMakeLists.txt b/src/unpackertool/plugins/upx/CMakeLists.txt index 6c2ff190e..4f6995c99 100644 --- a/src/unpackertool/plugins/upx/CMakeLists.txt +++ b/src/unpackertool/plugins/upx/CMakeLists.txt @@ -1,4 +1,5 @@ -set(UPX_SOURCES + +add_library(unpacker-upx STATIC upx_stub_signatures.cpp upx.cpp pe/pe_upx_stub.cpp @@ -13,7 +14,20 @@ set(UPX_SOURCES decompressors/decompressor.cpp elf/elf_upx_stub.cpp ) +add_library(retdec::unpacker-upx ALIAS unpacker-upx) + +target_compile_features(unpacker-upx PUBLIC cxx_std_17) -add_library(retdec-unpacker-upx STATIC ${UPX_SOURCES}) -target_link_libraries(retdec-unpacker-upx retdec-unpacker retdec-fileformat retdec-utils) -target_include_directories(retdec-unpacker-upx PUBLIC ${PROJECT_SOURCE_DIR}/src/) +target_include_directories(unpacker-upx + PUBLIC + $ + $ + # not installed +) + +target_link_libraries(unpacker-upx + PUBLIC + retdec::unpacker + retdec::fileformat + retdec::utils +) diff --git a/src/unpackertool/unpacker.cpp b/src/unpackertool/unpacker.cpp index a8bf1a8cd..9b564cd9d 100644 --- a/src/unpackertool/unpacker.cpp +++ b/src/unpackertool/unpacker.cpp @@ -58,7 +58,11 @@ bool detectPackers(const std::string& inputFile, std::vector + $ +) + +target_link_libraries(utils + PRIVATE + retdec::deps::whereami +) # Disable the min() and max() macros to prevent errors when using e.g. # std::numeric_limits<...>::max() # (http://stackoverflow.com/questions/1904635/warning-c4003-and-errors-c2589-and-c2059-on-x-stdnumeric-limitsintmax). # Any target that includes "windows.h" needs to define this. if(MSVC) - target_compile_definitions(retdec-utils PUBLIC NOMINMAX) + target_compile_definitions(utils PUBLIC NOMINMAX) endif() + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/utils + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS utils + EXPORT utils-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT utils-targets + FILE "retdec-utils-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-utils-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-utils-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-utils-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/utils/binary_path.cpp b/src/utils/binary_path.cpp index 7b4eced88..a3d77da9e 100644 --- a/src/utils/binary_path.cpp +++ b/src/utils/binary_path.cpp @@ -4,6 +4,8 @@ * @copyright (c) 2017 Avast Software, licensed under the MIT license */ +#include + #include "retdec/utils/binary_path.h" namespace { diff --git a/src/utils/retdec-utils-config.cmake b/src/utils/retdec-utils-config.cmake new file mode 100644 index 000000000..584469ef0 --- /dev/null +++ b/src/utils/retdec-utils-config.cmake @@ -0,0 +1,10 @@ + +if(NOT TARGET retdec::utils) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + whereami + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-utils-targets.cmake) +endif() diff --git a/src/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index 6071e91b2..fa37c6dac 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -1,9 +1,54 @@ -add_library(retdec-yaracpp STATIC +add_library(yaracpp STATIC types/yara_match.cpp types/yara_meta.cpp types/yara_rule.cpp yara_detector/yara_detector.cpp ) -target_include_directories(retdec-yaracpp PUBLIC ${PROJECT_SOURCE_DIR}/include/) -target_link_libraries(retdec-yaracpp libyara) +add_library(retdec::yaracpp ALIAS yaracpp) + +target_compile_features(yaracpp PUBLIC cxx_std_17) + +target_include_directories(yaracpp + PUBLIC + $ + $ +) + +target_link_libraries(yaracpp + PRIVATE + retdec::deps::libyara +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/yaracpp + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec +) + +# Install libs. +install(TARGETS yaracpp + EXPORT yaracpp-targets + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT yaracpp-targets + FILE "retdec-yaracpp-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} +) + +# Install CMake files. +configure_file( + "retdec-yaracpp-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-yaracpp-config.cmake" + @ONLY +) +install( + FILES + "${CMAKE_CURRENT_BINARY_DIR}/retdec-yaracpp-config.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +) diff --git a/src/yaracpp/retdec-yaracpp-config.cmake b/src/yaracpp/retdec-yaracpp-config.cmake new file mode 100644 index 000000000..1519bd33f --- /dev/null +++ b/src/yaracpp/retdec-yaracpp-config.cmake @@ -0,0 +1,10 @@ + +if(NOT TARGET retdec::yaracpp) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + libyara + ) + + include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-targets.cmake) +endif() diff --git a/src/yaracpp/types/yara_match.cpp b/src/yaracpp/types/yara_match.cpp index 97007437e..3e7d19cc6 100644 --- a/src/yaracpp/types/yara_match.cpp +++ b/src/yaracpp/types/yara_match.cpp @@ -6,8 +6,8 @@ #include "retdec/yaracpp/types/yara_match.h" -namespace yaracpp -{ +namespace retdec { +namespace yaracpp { /** * Get offset of detection @@ -65,3 +65,4 @@ void YaraMatch::addByte(std::uint8_t byte) } } // namespace yaracpp +} // namespace retdec diff --git a/src/yaracpp/types/yara_meta.cpp b/src/yaracpp/types/yara_meta.cpp index e8cc9188c..7711a1297 100644 --- a/src/yaracpp/types/yara_meta.cpp +++ b/src/yaracpp/types/yara_meta.cpp @@ -8,8 +8,8 @@ #include "retdec/yaracpp/types/yara_meta.h" -namespace yaracpp -{ +namespace retdec { +namespace yaracpp { /** * Get name of meta @@ -108,3 +108,4 @@ void YaraMeta::setIntValue(std::uint64_t metaValue) } } // namespace yaracpp +} // namespace retdec diff --git a/src/yaracpp/types/yara_rule.cpp b/src/yaracpp/types/yara_rule.cpp index 348f8a292..0efd0111a 100644 --- a/src/yaracpp/types/yara_rule.cpp +++ b/src/yaracpp/types/yara_rule.cpp @@ -8,8 +8,8 @@ #include -namespace yaracpp -{ +namespace retdec { +namespace yaracpp { /** * Get name related to this rule @@ -162,3 +162,4 @@ std::ostream& operator<<(std::ostream& o, const YaraRule& rule) } } // namespace yaracpp +} // namespace retdec diff --git a/src/yaracpp/yara_detector/yara_detector.cpp b/src/yaracpp/yara_detector/yara_detector.cpp index 60cb89b8d..582354b75 100644 --- a/src/yaracpp/yara_detector/yara_detector.cpp +++ b/src/yaracpp/yara_detector/yara_detector.cpp @@ -5,11 +5,13 @@ */ #include +#include +#include #include "retdec/yaracpp/yara_detector/yara_detector.h" -namespace yaracpp -{ +namespace retdec { +namespace yaracpp { namespace { @@ -392,3 +394,4 @@ YR_RULES* YaraDetector::getCompiledRules() } } // namespace yaracpp +} // namespace retdec diff --git a/support/CMakeLists.txt b/support/CMakeLists.txt index 3a7210c9e..4e6b9d485 100644 --- a/support/CMakeLists.txt +++ b/support/CMakeLists.txt @@ -5,8 +5,8 @@ # developers. set(CMAKE_INSTALL_MESSAGE LAZY) -set(SUPPORT_TARGET_DIR "${CMAKE_INSTALL_PREFIX}/share/retdec/support") -set(YARAC_PATH "${CMAKE_INSTALL_PREFIX}/bin/retdec-yarac${CMAKE_EXECUTABLE_SUFFIX}") +set(SUPPORT_TARGET_DIR "${RETDEC_INSTALL_SUPPORT_DIR_ABS}") +set(YARAC_PATH "${RETDEC_INSTALL_BIN_DIR_ABS}/retdec-yarac${CMAKE_EXECUTABLE_SUFFIX}") set(YARAC_VERSION_PATH "${SUPPORT_TARGET_DIR}/version-yarac.txt") # Clean the support target directory if YARA compilation flag changed. @@ -76,8 +76,14 @@ written to '${YARAC_VERSION_PATH}'\") # Install ordinal number databases. # -install(DIRECTORY ordinals/arm/ DESTINATION "${SUPPORT_TARGET_DIR}/arm/ords") -install(DIRECTORY ordinals/x86/ DESTINATION "${SUPPORT_TARGET_DIR}/x86/ords") +install( + DIRECTORY ordinals/arm/ + DESTINATION ${SUPPORT_TARGET_DIR}/arm/ords +) +install( + DIRECTORY ordinals/x86/ + DESTINATION ${SUPPORT_TARGET_DIR}/x86/ords +) # Install yara patterns. # diff --git a/support/ordinals/CMakeLists.txt b/support/ordinals/CMakeLists.txt deleted file mode 100644 index 8b1378917..000000000 --- a/support/ordinals/CMakeLists.txt +++ /dev/null @@ -1 +0,0 @@ - diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 303d3d73b..bcf5b88b3 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -1,4 +1,3 @@ -set(RETDEC_TESTS_DIR "bin") cond_add_subdirectory(common RETDEC_ENABLE_COMMON_TESTS) cond_add_subdirectory(bin2llvmir RETDEC_ENABLE_BIN2LLVMIR_TESTS) diff --git a/tests/bin2llvmir/CMakeLists.txt b/tests/bin2llvmir/CMakeLists.txt index 9cb2d04f5..620e410a7 100644 --- a/tests/bin2llvmir/CMakeLists.txt +++ b/tests/bin2llvmir/CMakeLists.txt @@ -1,4 +1,5 @@ -set(RETDEC_TESTS_BIN2LLVMIR_SOURCES + +add_executable(tests-bin2llvmir analyses/reaching_definitions_tests.cpp optimizations/asm_inst_remover/asm_inst_remover_tests.cpp optimizations/dsm_generator/dsm_generator_tests.cpp @@ -24,7 +25,22 @@ set(RETDEC_TESTS_BIN2LLVMIR_SOURCES utils/simplifycfg_tests.cpp ) -add_executable(retdec-tests-bin2llvmir ${RETDEC_TESTS_BIN2LLVMIR_SOURCES}) -target_link_libraries(retdec-tests-bin2llvmir retdec-bin2llvmir retdec-utils gmock_main) -target_include_directories(retdec-tests-bin2llvmir PUBLIC ${PROJECT_SOURCE_DIR}/tests/) -install(TARGETS retdec-tests-bin2llvmir RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +target_include_directories(tests-bin2llvmir + PRIVATE + ${RETDEC_TESTS_DIR} +) + +target_link_libraries(tests-bin2llvmir + retdec::bin2llvmir + retdec::utils + retdec::deps::gmock_main +) + +set_target_properties(tests-bin2llvmir + PROPERTIES + OUTPUT_NAME "retdec-tests-bin2llvmir" +) + +install(TARGETS tests-bin2llvmir + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} +) diff --git a/tests/capstone2llvmir/CMakeLists.txt b/tests/capstone2llvmir/CMakeLists.txt index 15a0d41c4..38aae6c10 100644 --- a/tests/capstone2llvmir/CMakeLists.txt +++ b/tests/capstone2llvmir/CMakeLists.txt @@ -1,22 +1,30 @@ -add_executable(retdec-tests-capstone2llvmir - arm_tests.cpp - arm64_tests.cpp - mips_tests.cpp - powerpc_tests.cpp - x86_tests.cpp +add_executable(tests-capstone2llvmir + arm_tests.cpp + arm64_tests.cpp + mips_tests.cpp + powerpc_tests.cpp + x86_tests.cpp ) -target_link_libraries(retdec-tests-capstone2llvmir - retdec-capstone2llvmir - retdec-llvmir-emul - retdec-utils - keystone - gmock_main + +target_include_directories(tests-capstone2llvmir + PRIVATE + ${RETDEC_TESTS_DIR} ) -target_include_directories(retdec-tests-capstone2llvmir - PUBLIC - ${PROJECT_SOURCE_DIR}/tests/ + +target_link_libraries(tests-capstone2llvmir + retdec::capstone2llvmir + retdec::llvmir-emul + retdec::utils + retdec::deps::keystone + retdec::deps::gmock_main ) -install(TARGETS retdec-tests-capstone2llvmir - RUNTIME DESTINATION ${RETDEC_TESTS_DIR} + +set_target_properties(tests-capstone2llvmir + PROPERTIES + OUTPUT_NAME "retdec-tests-capstone2llvmir" +) + +install(TARGETS tests-capstone2llvmir + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} ) diff --git a/tests/common/CMakeLists.txt b/tests/common/CMakeLists.txt index c77005d9d..49f0ff172 100644 --- a/tests/common/CMakeLists.txt +++ b/tests/common/CMakeLists.txt @@ -1,5 +1,5 @@ -add_executable(retdec-tests-common +add_executable(tests-common address_tests.cpp architecture_tests.cpp class_tests.cpp @@ -13,8 +13,17 @@ add_executable(retdec-tests-common tool_info_tests.cpp type_tests.cpp ) -target_link_libraries(retdec-tests-common - retdec-common - gmock_main + +target_link_libraries(tests-common + retdec::common + retdec::deps::gmock_main +) + +set_target_properties(tests-common + PROPERTIES + OUTPUT_NAME "retdec-tests-common" +) + +install(TARGETS tests-common + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} ) -install(TARGETS retdec-tests-common RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) diff --git a/tests/config/CMakeLists.txt b/tests/config/CMakeLists.txt index 87d253352..a687243d8 100644 --- a/tests/config/CMakeLists.txt +++ b/tests/config/CMakeLists.txt @@ -1,10 +1,19 @@ -add_executable(retdec-tests-config +add_executable(tests-config config_tests.cpp ) -target_link_libraries(retdec-tests-config - retdec-common - retdec-config - gmock_main + +target_link_libraries(tests-config + retdec::common + retdec::config + retdec::deps::gmock_main +) + +set_target_properties(tests-config + PROPERTIES + OUTPUT_NAME "retdec-tests-config" +) + +install(TARGETS tests-config + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} ) -install(TARGETS retdec-tests-config RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) diff --git a/tests/ctypes/CMakeLists.txt b/tests/ctypes/CMakeLists.txt index 07171480c..a4e0de339 100644 --- a/tests/ctypes/CMakeLists.txt +++ b/tests/ctypes/CMakeLists.txt @@ -1,4 +1,5 @@ -set(RETDEC_TESTS_CTYPES_SOURCES + +add_executable(tests-ctypes annotation_in_tests.cpp annotation_inout_tests.cpp annotation_optional_tests.cpp @@ -26,6 +27,16 @@ set(RETDEC_TESTS_CTYPES_SOURCES void_type_tests.cpp ) -add_executable(retdec-tests-ctypes ${RETDEC_TESTS_CTYPES_SOURCES}) -target_link_libraries(retdec-tests-ctypes retdec-ctypes gmock_main) -install(TARGETS retdec-tests-ctypes RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +target_link_libraries(tests-ctypes + retdec::ctypes + retdec::deps::gmock_main +) + +set_target_properties(tests-ctypes + PROPERTIES + OUTPUT_NAME "retdec-tests-ctypes" +) + +install(TARGETS tests-ctypes + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} +) diff --git a/tests/ctypesparser/CMakeLists.txt b/tests/ctypesparser/CMakeLists.txt index f6a57177a..fcdb41402 100644 --- a/tests/ctypesparser/CMakeLists.txt +++ b/tests/ctypesparser/CMakeLists.txt @@ -1,10 +1,18 @@ -set(RETDEC_TESTS_CTYPESPARSER_SOURCES + +add_executable(tests-ctypesparser json_ctypes_parser_tests.cpp - borland_ast_to_ctypes_tests.cpp - ms_ast_to_ctypes_tests.cpp - itanium_ast_to_ctypes_tests.cpp ) -add_executable(retdec-tests-ctypesparser ${RETDEC_TESTS_CTYPESPARSER_SOURCES}) -target_link_libraries(retdec-tests-ctypesparser retdec-ctypesparser gmock_main) -install(TARGETS retdec-tests-ctypesparser RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +target_link_libraries(tests-ctypesparser + retdec::ctypesparser + retdec::deps::gmock_main +) + +set_target_properties(tests-ctypesparser + PROPERTIES + OUTPUT_NAME "retdec-tests-ctypesparser" +) + +install(TARGETS tests-ctypesparser + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} +) diff --git a/tests/demangler/CMakeLists.txt b/tests/demangler/CMakeLists.txt index 8d018e75a..9793ef4f5 100644 --- a/tests/demangler/CMakeLists.txt +++ b/tests/demangler/CMakeLists.txt @@ -1,10 +1,24 @@ -set(RETDEC_TESTS_DEMANGLER_SOURCES + +add_executable(tests-demangler + borland_ast_to_ctypes_tests.cpp + borland_context_tests.cpp + borland_tests.cpp gcc_tests.cpp + itanium_ast_to_ctypes_tests.cpp + ms_ast_to_ctypes_tests.cpp msvc_tests.cpp - borland_tests.cpp - borland_context_tests.cpp ) -add_executable(retdec-tests-demangler ${RETDEC_TESTS_DEMANGLER_SOURCES}) -target_link_libraries(retdec-tests-demangler retdec-demangler gmock_main) -install(TARGETS retdec-tests-demangler RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +target_link_libraries(tests-demangler + retdec::demangler + retdec::deps::gmock_main +) + +set_target_properties(tests-demangler + PROPERTIES + OUTPUT_NAME "retdec-tests-demangler" +) + +install(TARGETS tests-demangler + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} +) diff --git a/tests/ctypesparser/borland_ast_to_ctypes_tests.cpp b/tests/demangler/borland_ast_to_ctypes_tests.cpp similarity index 98% rename from tests/ctypesparser/borland_ast_to_ctypes_tests.cpp rename to tests/demangler/borland_ast_to_ctypes_tests.cpp index b163cb5b1..8093e5d34 100644 --- a/tests/ctypesparser/borland_ast_to_ctypes_tests.cpp +++ b/tests/demangler/borland_ast_to_ctypes_tests.cpp @@ -1,6 +1,6 @@ /** - * @file tests/demangler/borland_demangler_tests.cpp - * @brief Tests for the borland demangler. + * @file tests/demangler/borland_ast_to_ctypes_tests.cpp + * @brief Tests for the Borland demangler. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ @@ -23,7 +23,7 @@ using namespace ::testing; namespace retdec { -namespace ctypesparser { +namespace demangler { namespace tests { class BorlandCtypesTests : public Test @@ -415,5 +415,5 @@ TEST_F(BorlandCtypesTests, VoidParameter) } } // namespace tests -} // namespace ctypesparser +} // namespace demangler } // namespace retdec \ No newline at end of file diff --git a/tests/ctypesparser/itanium_ast_to_ctypes_tests.cpp b/tests/demangler/itanium_ast_to_ctypes_tests.cpp similarity index 98% rename from tests/ctypesparser/itanium_ast_to_ctypes_tests.cpp rename to tests/demangler/itanium_ast_to_ctypes_tests.cpp index 426387b64..1613e5df4 100644 --- a/tests/ctypesparser/itanium_ast_to_ctypes_tests.cpp +++ b/tests/demangler/itanium_ast_to_ctypes_tests.cpp @@ -1,6 +1,6 @@ /** - * @file tests/demangler/borland_demangler_tests.cpp - * @brief Tests for the borland demangler. + * @file tests/demangler/itanium_ast_to_ctypes_tests.cpp + * @brief Tests for the Itanium demangler. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ @@ -23,7 +23,7 @@ using namespace ::testing; namespace retdec { -namespace ctypesparser { +namespace demangler { namespace tests { class ItaniumCtypesTests : public Test @@ -400,5 +400,5 @@ TEST_F(ItaniumCtypesTests, ConstTypesParsing) } } // namespace tests -} // namespace ctypesparser +} // namespace demangler } // namespace retdec \ No newline at end of file diff --git a/tests/ctypesparser/ms_ast_to_ctypes_tests.cpp b/tests/demangler/ms_ast_to_ctypes_tests.cpp similarity index 98% rename from tests/ctypesparser/ms_ast_to_ctypes_tests.cpp rename to tests/demangler/ms_ast_to_ctypes_tests.cpp index bee93fa2f..e0aba230b 100644 --- a/tests/ctypesparser/ms_ast_to_ctypes_tests.cpp +++ b/tests/demangler/ms_ast_to_ctypes_tests.cpp @@ -1,6 +1,6 @@ /** - * @file tests/demangler/borland_demangler_tests.cpp - * @brief Tests for the borland demangler. + * @file tests/demangler/ms_ast_to_ctypes_tests.cpp + * @brief Tests for the MS demangler. * @copyright (c) 2019 Avast Software, licensed under the MIT license */ @@ -23,7 +23,7 @@ using namespace ::testing; namespace retdec { -namespace ctypesparser { +namespace demangler { namespace tests { class MsCtypesTests : public Test @@ -429,5 +429,5 @@ TEST_F(MsCtypesTests, VoidParameter) } } // namespace tests -} // namespace ctypesparser +} // namespace demangler } // namespace retdec \ No newline at end of file diff --git a/tests/fileformat/CMakeLists.txt b/tests/fileformat/CMakeLists.txt index 9f58be8e2..f765c1740 100644 --- a/tests/fileformat/CMakeLists.txt +++ b/tests/fileformat/CMakeLists.txt @@ -1,4 +1,5 @@ -set(RETDEC_TESTS_FILEFORMAT_SOURCES + +add_executable(tests-fileformat coff_format_tests.cpp elf_format_tests.cpp format_detection_tests.cpp @@ -11,7 +12,22 @@ set(RETDEC_TESTS_FILEFORMAT_SOURCES raw_data_format_tests.cpp ) -add_executable(retdec-tests-fileformat ${RETDEC_TESTS_FILEFORMAT_SOURCES}) -target_link_libraries(retdec-tests-fileformat retdec-fileformat retdec-utils gmock_main) -target_include_directories(retdec-tests-fileformat PUBLIC ${PROJECT_SOURCE_DIR}/tests/) -install(TARGETS retdec-tests-fileformat RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +target_include_directories(tests-fileformat + PRIVATE + ${RETDEC_TESTS_DIR} +) + +target_link_libraries(tests-fileformat + retdec::fileformat + retdec::utils + retdec::deps::gmock_main +) + +set_target_properties(tests-fileformat + PROPERTIES + OUTPUT_NAME "retdec-tests-fileformat" +) + +install(TARGETS tests-fileformat + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} +) diff --git a/tests/llvmir-emul/CMakeLists.txt b/tests/llvmir-emul/CMakeLists.txt index 7e8a3650a..2265a1109 100644 --- a/tests/llvmir-emul/CMakeLists.txt +++ b/tests/llvmir-emul/CMakeLists.txt @@ -1,8 +1,24 @@ -set(RETDEC_TESTS_LLVMIR_EMUL_SOURCES + +add_executable(tests-llvm-emul llvmir_emul_tests.cpp ) -add_executable(retdec-tests-llvm-emul ${RETDEC_TESTS_LLVMIR_EMUL_SOURCES}) -target_link_libraries(retdec-tests-llvm-emul retdec-utils retdec-llvmir-emul gmock_main) -target_include_directories(retdec-tests-llvm-emul PUBLIC ${PROJECT_SOURCE_DIR}/tests/) -install(TARGETS retdec-tests-llvm-emul RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +target_include_directories(tests-llvm-emul + PRIVATE + ${RETDEC_TESTS_DIR} +) + +target_link_libraries(tests-llvm-emul + retdec::utils + retdec::llvmir-emul + retdec::deps::gmock_main +) + +set_target_properties(tests-llvm-emul + PROPERTIES + OUTPUT_NAME "retdec-tests-llvm-emul" +) + +install(TARGETS tests-llvm-emul + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} +) diff --git a/tests/llvmir2hll/CMakeLists.txt b/tests/llvmir2hll/CMakeLists.txt index efe4cb969..cddd8b227 100644 --- a/tests/llvmir2hll/CMakeLists.txt +++ b/tests/llvmir2hll/CMakeLists.txt @@ -1,4 +1,5 @@ -set(RETDEC_TESTS_LLVMIR2HLL_SOURCES + +add_executable(tests-llvmir2hll analysis/alias_analysis/alias_analyses/simple_alias_analysis_tests.cpp analysis/break_in_if_analysis_tests.cpp analysis/goto_target_analysis_tests.cpp @@ -147,7 +148,22 @@ set(RETDEC_TESTS_LLVMIR2HLL_SOURCES var_renamer/var_renamers/unified_var_renamer_tests.cpp ) -add_executable(retdec-tests-llvmir2hll ${RETDEC_TESTS_LLVMIR2HLL_SOURCES}) -target_link_libraries(retdec-tests-llvmir2hll retdec-llvmir2hll retdec-utils gmock_main) -target_include_directories(retdec-tests-llvmir2hll PUBLIC ${PROJECT_SOURCE_DIR}/tests/) -install(TARGETS retdec-tests-llvmir2hll RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +target_include_directories(tests-llvmir2hll + PRIVATE + ${RETDEC_TESTS_DIR} +) + +target_link_libraries(tests-llvmir2hll + retdec::llvmir2hll + retdec::utils + retdec::deps::gmock_main +) + +set_target_properties(tests-llvmir2hll + PROPERTIES + OUTPUT_NAME "retdec-tests-llvmir2hll" +) + +install(TARGETS tests-llvmir2hll + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} +) diff --git a/tests/loader/CMakeLists.txt b/tests/loader/CMakeLists.txt index 84320e767..0a8b3f152 100644 --- a/tests/loader/CMakeLists.txt +++ b/tests/loader/CMakeLists.txt @@ -1,15 +1,23 @@ -add_executable(retdec-tests-loader +add_executable(tests-loader name_generator_tests.cpp overlap_resolver_tests.cpp segment_data_source_tests.cpp segment_tests.cpp ) -target_link_libraries( - retdec-tests-loader - retdec-common - retdec-loader - retdec-utils - gmock_main + +target_link_libraries(tests-loader + retdec::common + retdec::loader + retdec::utils + retdec::deps::gmock_main +) + +set_target_properties(tests-loader + PROPERTIES + OUTPUT_NAME "retdec-tests-loader" +) + +install(TARGETS tests-loader + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} ) -install(TARGETS retdec-tests-loader RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) diff --git a/tests/serdes/CMakeLists.txt b/tests/serdes/CMakeLists.txt index bba3bd5eb..0c4d2ae4d 100644 --- a/tests/serdes/CMakeLists.txt +++ b/tests/serdes/CMakeLists.txt @@ -1,11 +1,20 @@ -add_executable(retdec-tests-serdes +add_executable(tests-serdes calling_convention_tests.cpp class_tests.cpp pattern_tests.cpp ) -target_link_libraries(retdec-tests-serdes - retdec-serdes - gmock_main + +target_link_libraries(tests-serdes + retdec::serdes + retdec::deps::gmock_main +) + +set_target_properties(tests-serdes + PROPERTIES + OUTPUT_NAME "retdec-tests-serdes" +) + +install(TARGETS tests-serdes + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} ) -install(TARGETS retdec-tests-serdes RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) diff --git a/tests/unpacker/CMakeLists.txt b/tests/unpacker/CMakeLists.txt index dffa15191..0dbd90eb9 100644 --- a/tests/unpacker/CMakeLists.txt +++ b/tests/unpacker/CMakeLists.txt @@ -1,8 +1,19 @@ -set(RETDEC_TESTS_UNPACKER_SOURCES + +add_executable(tests-unpacker dynamic_buffer_tests.cpp signature_tests.cpp ) -add_executable(retdec-tests-unpacker ${RETDEC_TESTS_UNPACKER_SOURCES}) -target_link_libraries(retdec-tests-unpacker retdec-unpacker gmock_main) -install(TARGETS retdec-tests-unpacker RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +target_link_libraries(tests-unpacker + retdec::unpacker + retdec::deps::gmock_main +) + +set_target_properties(tests-unpacker + PROPERTIES + OUTPUT_NAME "retdec-tests-unpacker" +) + +install(TARGETS tests-unpacker + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} +) diff --git a/tests/utils/CMakeLists.txt b/tests/utils/CMakeLists.txt index 261661139..a4c1c7ada 100644 --- a/tests/utils/CMakeLists.txt +++ b/tests/utils/CMakeLists.txt @@ -1,5 +1,5 @@ -add_executable(retdec-tests-utils +add_executable(tests-utils alignment_tests.cpp array_tests.cpp binary_path_tests.cpp @@ -14,8 +14,17 @@ add_executable(retdec-tests-utils string_tests.cpp time_tests.cpp ) -target_link_libraries(retdec-tests-utils - retdec-utils - gmock_main + +target_link_libraries(tests-utils + retdec::utils + retdec::deps::gmock_main +) + +set_target_properties(tests-utils + PROPERTIES + OUTPUT_NAME "retdec-tests-utils" +) + +install(TARGETS tests-utils + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} ) -install(TARGETS retdec-tests-utils RUNTIME DESTINATION ${RETDEC_TESTS_DIR})