From c324e1ecfde6453b75a1e8ba97af18fc9e62c226 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Mon, 23 Mar 2020 01:53:46 +0100 Subject: [PATCH 01/61] something working --- CMakeLists.txt | 23 ++++++++++++---- share/pelib/pelib-config.cmake | 2 ++ src/pelib/CMakeLists.txt | 48 +++++++++++++++++++++++++++++++--- 3 files changed, 64 insertions(+), 9 deletions(-) create mode 100644 share/pelib/pelib-config.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index e2caa52ec..c3ab1c4de 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,15 @@ cmake_minimum_required(VERSION 3.6) -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,25 @@ 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. +set(RETDEC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") +set(RETDEC_SHARE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/share") +set(RETDEC_BINARY_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share") +set(RETDEC_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") +set(RETDEC_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") +set(RETDEC_INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") +set(RETDEC_INSTALL_DATA_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/retdec") +set(RETDEC_INSTALL_CMAKE_DIR "${RETDEC_INSTALL_DATA_DIR}/cmake") + # 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 diff --git a/share/pelib/pelib-config.cmake b/share/pelib/pelib-config.cmake new file mode 100644 index 000000000..ae0dcdeca --- /dev/null +++ b/share/pelib/pelib-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/pelib-targets.cmake) diff --git a/src/pelib/CMakeLists.txt b/src/pelib/CMakeLists.txt index 814415ae8..97d73d2b1 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 @@ -17,10 +18,12 @@ set(PELIB_SOURCES SecurityDirectory.cpp ) -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 +31,40 @@ if(MSVC) else() target_compile_options(pelib PUBLIC "-w") endif() + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/pelib/pelib-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# 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 "pelib-targets.cmake" +# NAMESPACE RetDec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} #/pelib +) + +# Install CMake files. +install( + FILES + "${RETDEC_SHARE_DIR}/pelib/pelib-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/pelib/pelib-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" +# "${RETDEC_INSTALL_CMAKE_DIR}/pelib" +) From 4284eb5c44967f5a9341834a53cf2ba86bd38a28 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Mon, 23 Mar 2020 03:23:13 +0100 Subject: [PATCH 02/61] progress --- CMakeLists.txt | 22 ++++++++++++++ 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 | 4 +-- 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 +- share/pelib/pelib-config.cmake | 2 -- share/pelib/retdec-pelib-config.cmake | 2 ++ share/retdec-config.cmake | 4 +++ src/pelib/BoundImportDirectory.cpp | 4 +-- src/pelib/CMakeLists.txt | 19 ++++++------ 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 +-- 38 files changed, 105 insertions(+), 76 deletions(-) delete mode 100644 share/pelib/pelib-config.cmake create mode 100644 share/pelib/retdec-pelib-config.cmake create mode 100644 share/retdec-config.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index c3ab1c4de..23532b0fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -109,3 +109,25 @@ 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( + "${RETDEC_BINARY_SHARE_DIR}/retdec-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Create main RetDec CMake config file. +configure_file(share/retdec-config.cmake + "${RETDEC_BINARY_SHARE_DIR}/retdec-config.cmake" + @ONLY +) + +# Install CMake files. +install( + FILES + "${RETDEC_BINARY_SHARE_DIR}/retdec-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-config-version.cmake" + DESTINATION DESTINATION + ${RETDEC_INSTALL_CMAKE_DIR} +) 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..39263b7a4 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 { 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/share/pelib/pelib-config.cmake b/share/pelib/pelib-config.cmake deleted file mode 100644 index ae0dcdeca..000000000 --- a/share/pelib/pelib-config.cmake +++ /dev/null @@ -1,2 +0,0 @@ - -include(${CMAKE_CURRENT_LIST_DIR}/pelib-targets.cmake) diff --git a/share/pelib/retdec-pelib-config.cmake b/share/pelib/retdec-pelib-config.cmake new file mode 100644 index 000000000..57e95bc8a --- /dev/null +++ b/share/pelib/retdec-pelib-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-pelib-targets.cmake) diff --git a/share/retdec-config.cmake b/share/retdec-config.cmake new file mode 100644 index 000000000..3c1ad34d6 --- /dev/null +++ b/share/retdec-config.cmake @@ -0,0 +1,4 @@ + +foreach(component ${retdec_FIND_COMPONENTS}) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-${component}-config.cmake) +endforeach() 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 97d73d2b1..d633aeb8f 100644 --- a/src/pelib/CMakeLists.txt +++ b/src/pelib/CMakeLists.txt @@ -17,12 +17,12 @@ add_library(pelib STATIC RichHeader.cpp SecurityDirectory.cpp ) +add_library(retdec::pelib ALIAS pelib) target_include_directories(pelib PUBLIC $ $ - $ ) # Disable all warnings from this library. @@ -34,7 +34,7 @@ endif() # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/pelib/pelib-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/pelib/retdec-pelib-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -43,28 +43,31 @@ write_basic_package_version_file( install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/pelib DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT pelib ) # Install libs. install(TARGETS pelib EXPORT pelib-targets + COMPONENT pelib ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) # Export targets. install(EXPORT pelib-targets - FILE "pelib-targets.cmake" -# NAMESPACE RetDec:: - DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} #/pelib + FILE "retdec-pelib-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT pelib ) # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/pelib/pelib-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/pelib/pelib-config-version.cmake" + "${RETDEC_SHARE_DIR}/pelib/retdec-pelib-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/pelib/retdec-pelib-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" -# "${RETDEC_INSTALL_CMAKE_DIR}/pelib" + COMPONENT pelib ) 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 { From 8427140b1d31b21e427c0c2d2e6e72135e82aaf6 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Mon, 23 Mar 2020 04:30:18 +0100 Subject: [PATCH 03/61] progress --- CMakeLists.txt | 1 + deps/whereami/CMakeLists.txt | 13 ++-- .../{ => include/whereami}/whereami.h | 0 include/retdec/utils/binary_path.h | 2 - share/utils/retdec-utils-config.cmake | 2 + src/pelib/CMakeLists.txt | 2 +- src/utils/CMakeLists.txt | 60 ++++++++++++++++--- src/utils/binary_path.cpp | 2 + 8 files changed, 68 insertions(+), 14 deletions(-) rename deps/whereami/{ => include/whereami}/whereami.h (100%) create mode 100644 share/utils/retdec-utils-config.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 23532b0fc..1f1ffa635 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,6 +27,7 @@ include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/options.cmake) find_package(PythonInterp 3.4 REQUIRED) # Variables. +set(RETDEC_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps") set(RETDEC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") set(RETDEC_SHARE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/share") set(RETDEC_BINARY_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share") diff --git a/deps/whereami/CMakeLists.txt b/deps/whereami/CMakeLists.txt index 2d9de64bd..cfca7f01b 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -1,6 +1,11 @@ -set(WHEREAMI_SOURCES + +add_library(whereami STATIC whereami.c ) - -add_library(whereami STATIC ${WHEREAMI_SOURCES}) -target_include_directories(whereami PUBLIC ${CMAKE_CURRENT_LIST_DIR}) +target_include_directories(whereami + INTERFACE + $ + $ + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/include/whereami +) 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/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/share/utils/retdec-utils-config.cmake b/share/utils/retdec-utils-config.cmake new file mode 100644 index 000000000..efb9aa965 --- /dev/null +++ b/share/utils/retdec-utils-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-utils-targets.cmake) diff --git a/src/pelib/CMakeLists.txt b/src/pelib/CMakeLists.txt index d633aeb8f..451fcf14a 100644 --- a/src/pelib/CMakeLists.txt +++ b/src/pelib/CMakeLists.txt @@ -21,8 +21,8 @@ add_library(retdec::pelib ALIAS pelib) target_include_directories(pelib PUBLIC - $ $ + $ ) # Disable all warnings from this library. diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index ddc4e8d99..36a8759d9 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -1,5 +1,5 @@ -add_library(retdec-utils STATIC +add_library(utils STATIC alignment.cpp byte_value_storage.cpp binary_path.cpp @@ -13,18 +13,64 @@ add_library(retdec-utils STATIC system.cpp time.cpp ) -target_link_libraries(retdec-utils whereami) +add_library(retdec::utils ALIAS utils) + +target_link_libraries(utils PRIVATE whereami) if(WIN32) - target_link_libraries(retdec-utils shlwapi) # shlwapi.dll for PathRemoveFileSpec() + # shlwapi.dll for PathRemoveFileSpec() + target_link_libraries(utils PRIVATE shlwapi) endif() -target_link_libraries(retdec-utils) -target_include_directories(retdec-utils PUBLIC ${PROJECT_SOURCE_DIR}/include/) -target_include_directories(retdec-utils PUBLIC ${PROJECT_SOURCE_DIR}/deps/) + +target_include_directories(utils + PUBLIC + $ + $ +) # 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() + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/utils/retdec-utils-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/utils + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT utils +) + +# Install libs. +install(TARGETS utils whereami + EXPORT utils-targets + COMPONENT utils + 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} + COMPONENT utils +) + +# Install CMake files. +install( + FILES + "${RETDEC_SHARE_DIR}/utils/retdec-utils-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/utils/retdec-utils-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT utils +) 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 { From 4e7176af1045fbd57180e53eb566ec5c309d992c Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Mon, 23 Mar 2020 11:53:36 +0100 Subject: [PATCH 04/61] progress --- include/retdec/common/object.h | 17 +------ share/common/retdec-common-config.cmake | 11 +++++ src/common/CMakeLists.txt | 64 +++++++++++++++++++++++-- src/utils/CMakeLists.txt | 1 + tests/common/CMakeLists.txt | 6 ++- tests/utils/CMakeLists.txt | 6 ++- 6 files changed, 81 insertions(+), 24 deletions(-) create mode 100644 share/common/retdec-common-config.cmake 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/share/common/retdec-common-config.cmake b/share/common/retdec-common-config.cmake new file mode 100644 index 000000000..bf93450d8 --- /dev/null +++ b/share/common/retdec-common-config.cmake @@ -0,0 +1,11 @@ + +#include(${CMAKE_CURRENT_LIST_DIR}/retdec-common-targets.cmake) +#find_package(retdec 4.0 REQUIRED COMPONENTS utils) + +get_filename_component(KURVA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +include(CMakeFindDependencyMacro) +list(APPEND CMAKE_MODULE_PATH ${KURVA_CMAKE_DIR}) +find_dependency(retdec 4.0 REQUIRED COMPONENTS utils) +#find_package(retdec 4.0 REQUIRED COMPONENTS utils) +list(REMOVE_AT CMAKE_MODULE_PATH -1) +include(${CMAKE_CURRENT_LIST_DIR}/retdec-common-targets.cmake) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index d8c5da398..0efdbf681 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,63 @@ add_library(retdec-common STATIC type.cpp vtable.cpp ) -target_link_libraries(retdec-common - retdec-utils +add_library(retdec::common ALIAS common) + +target_link_libraries(common + PRIVATE retdec::utils +) + +target_include_directories(common + PUBLIC + $ + $ +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +configure_package_config_file( + "${RETDEC_SHARE_DIR}/common/retdec-common-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" + INSTALL_DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/common + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT common +) + +# Install libs. +install(TARGETS common + EXPORT common-targets + COMPONENT common + 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} + COMPONENT common +) + +# Install CMake files. +install( + FILES +# "${RETDEC_SHARE_DIR}/common/retdec-common-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-config.cmake" + "${RETDEC_SHARE_DIR}/utils/retdec-utils-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT common ) -target_include_directories(retdec-common PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 36a8759d9..f5728a619 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -52,6 +52,7 @@ install( # Install libs. install(TARGETS utils whereami EXPORT utils-targets + EXPORT common-targets COMPONENT utils ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} diff --git a/tests/common/CMakeLists.txt b/tests/common/CMakeLists.txt index c77005d9d..89cdf8a13 100644 --- a/tests/common/CMakeLists.txt +++ b/tests/common/CMakeLists.txt @@ -14,7 +14,9 @@ add_executable(retdec-tests-common type_tests.cpp ) target_link_libraries(retdec-tests-common - retdec-common + retdec::common gmock_main ) -install(TARGETS retdec-tests-common RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +install(TARGETS retdec-tests-common + RUNTIME DESTINATION ${RETDEC_TESTS_DIR} +) diff --git a/tests/utils/CMakeLists.txt b/tests/utils/CMakeLists.txt index 261661139..40f592702 100644 --- a/tests/utils/CMakeLists.txt +++ b/tests/utils/CMakeLists.txt @@ -15,7 +15,9 @@ add_executable(retdec-tests-utils time_tests.cpp ) target_link_libraries(retdec-tests-utils - retdec-utils + retdec::utils gmock_main ) -install(TARGETS retdec-tests-utils RUNTIME DESTINATION ${RETDEC_TESTS_DIR}) +install(TARGETS retdec-tests-utils + RUNTIME DESTINATION ${RETDEC_TESTS_DIR} +) From fb0c1977ebd7a2595c0fb4917e46db4f62ded5b2 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Tue, 24 Mar 2020 22:13:24 +0100 Subject: [PATCH 05/61] cmake: fix common and add ctypes --- cmake/options.cmake | 1 + share/common/retdec-common-config.cmake | 8 +--- share/ctypes/retdec-ctypes-config.cmake | 5 +++ src/common/CMakeLists.txt | 11 +---- src/ctypes/CMakeLists.txt | 56 +++++++++++++++++++++++-- src/utils/CMakeLists.txt | 1 - 6 files changed, 60 insertions(+), 22 deletions(-) create mode 100644 share/ctypes/retdec-ctypes-config.cmake diff --git a/cmake/options.cmake b/cmake/options.cmake index f1eff20d8..6863bb498 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -390,6 +390,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 diff --git a/share/common/retdec-common-config.cmake b/share/common/retdec-common-config.cmake index bf93450d8..1dbae1613 100644 --- a/share/common/retdec-common-config.cmake +++ b/share/common/retdec-common-config.cmake @@ -1,11 +1,5 @@ -#include(${CMAKE_CURRENT_LIST_DIR}/retdec-common-targets.cmake) -#find_package(retdec 4.0 REQUIRED COMPONENTS utils) - -get_filename_component(KURVA_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) include(CMakeFindDependencyMacro) -list(APPEND CMAKE_MODULE_PATH ${KURVA_CMAKE_DIR}) find_dependency(retdec 4.0 REQUIRED COMPONENTS utils) -#find_package(retdec 4.0 REQUIRED COMPONENTS utils) -list(REMOVE_AT CMAKE_MODULE_PATH -1) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-common-targets.cmake) diff --git a/share/ctypes/retdec-ctypes-config.cmake b/share/ctypes/retdec-ctypes-config.cmake new file mode 100644 index 000000000..48854e68b --- /dev/null +++ b/share/ctypes/retdec-ctypes-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS utils) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-ctypes-targets.cmake) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 0efdbf681..6c48355dd 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -35,12 +35,6 @@ write_basic_package_version_file( COMPATIBILITY AnyNewerVersion ) -configure_package_config_file( - "${RETDEC_SHARE_DIR}/common/retdec-common-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" - INSTALL_DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/common @@ -67,10 +61,7 @@ install(EXPORT common-targets # Install CMake files. install( FILES -# "${RETDEC_SHARE_DIR}/common/retdec-common-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-config.cmake" - "${RETDEC_SHARE_DIR}/utils/retdec-utils-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" + "${RETDEC_SHARE_DIR}/common/retdec-common-config.cmake" "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" diff --git a/src/ctypes/CMakeLists.txt b/src/ctypes/CMakeLists.txt index efa3b8ae7..41c861648 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,54 @@ set(CTYPES_SOURCES visitor.cpp void_type.cpp ) +add_library(retdec::ctypes ALIAS ctypes) + +target_link_libraries(ctypes + PRIVATE retdec::utils +) + +target_include_directories(ctypes + PUBLIC + $ + $ +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/ctypes/retdec-ctypes-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -add_library(retdec-ctypes STATIC ${CTYPES_SOURCES}) -target_link_libraries(retdec-ctypes retdec-utils) -target_include_directories(retdec-ctypes PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ctypes + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT ctypes +) + +# Install libs. +install(TARGETS ctypes + EXPORT ctypes-targets + COMPONENT ctypes + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT ctypes-targets + FILE "retdec-ctypes-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT ctypes +) + +# Install CMake files. +install( + FILES + "${RETDEC_SHARE_DIR}/ctypes/retdec-ctypes-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/ctypes/retdec-ctypes-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT ctypes +) diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index f5728a619..36a8759d9 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -52,7 +52,6 @@ install( # Install libs. install(TARGETS utils whereami EXPORT utils-targets - EXPORT common-targets COMPONENT utils ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} From 6dbd29f2cf0d0534e21d8c1561e0d7e9afa8197b Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Tue, 24 Mar 2020 22:49:56 +0100 Subject: [PATCH 06/61] src/serdes: new build system --- deps/rapidjson/CMakeLists.txt | 17 +++++-- deps/whereami/CMakeLists.txt | 4 +- share/serdes/retdec-serdes-config.cmake | 5 +++ src/serdes/CMakeLists.txt | 59 +++++++++++++++++++++---- 4 files changed, 71 insertions(+), 14 deletions(-) create mode 100644 share/serdes/retdec-serdes-config.cmake diff --git a/deps/rapidjson/CMakeLists.txt b/deps/rapidjson/CMakeLists.txt index 0e4205425..9aff0e57e 100644 --- a/deps/rapidjson/CMakeLists.txt +++ b/deps/rapidjson/CMakeLists.txt @@ -1,11 +1,20 @@ add_library(rapidjson INTERFACE) -target_include_directories(rapidjson - SYSTEM INTERFACE - ${CMAKE_CURRENT_LIST_DIR}/include -) + target_compile_definitions(rapidjson INTERFACE RAPIDJSON_HAS_STDSTRING=1 RAPIDJSON_HAS_CXX11_RVALUE_REFS=1 ) + +target_include_directories(rapidjson + SYSTEM INTERFACE + $ + $/retdec/deps +) + +# Install includes. +install( + DIRECTORY ${RETDEC_DEPS_DIR}/rapidjson/include/rapidjson + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps +) diff --git a/deps/whereami/CMakeLists.txt b/deps/whereami/CMakeLists.txt index cfca7f01b..f761b7355 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -3,9 +3,9 @@ add_library(whereami STATIC whereami.c ) target_include_directories(whereami - INTERFACE + SYSTEM INTERFACE $ - $ + # nothing for install because this does not need to be installed PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/whereami ) diff --git a/share/serdes/retdec-serdes-config.cmake b/share/serdes/retdec-serdes-config.cmake new file mode 100644 index 000000000..c77d350a1 --- /dev/null +++ b/share/serdes/retdec-serdes-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS common) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-serdes-targets.cmake) diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index e25cbb482..6c735e5f4 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,56 @@ add_library(retdec-serdes STATIC type.cpp vtable.cpp ) -target_link_libraries(retdec-serdes - retdec-common - rapidjson +add_library(retdec::serdes ALIAS serdes) + +target_link_libraries(serdes + PUBLIC + retdec::common + rapidjson +) + +target_include_directories(serdes + PUBLIC + $ + $ ) -target_include_directories(retdec-serdes - PUBLIC ${PROJECT_SOURCE_DIR}/include/ + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/serdes/retdec-serdes-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/serdes + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT serdes ) -target_include_directories(retdec-serdes - PUBLIC ${PROJECT_SOURCE_DIR}/src/ + +# Install libs. +install(TARGETS serdes rapidjson + EXPORT serdes-targets + COMPONENT serdes + 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} + COMPONENT serdes +) + +# Install CMake files. +install( + FILES + "${RETDEC_SHARE_DIR}/serdes/retdec-serdes-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/serdes/retdec-serdes-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT serdes ) From 63f76b58228703275cc70b0542f1a5b4da201c7b Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Tue, 24 Mar 2020 23:02:33 +0100 Subject: [PATCH 07/61] new build system for pdbparser --- share/pdbparser/retdec-pdbparser-config.cmake | 2 + src/pdbparser/CMakeLists.txt | 51 +++++++++++++++++-- 2 files changed, 50 insertions(+), 3 deletions(-) create mode 100644 share/pdbparser/retdec-pdbparser-config.cmake diff --git a/share/pdbparser/retdec-pdbparser-config.cmake b/share/pdbparser/retdec-pdbparser-config.cmake new file mode 100644 index 000000000..d27b6c923 --- /dev/null +++ b/share/pdbparser/retdec-pdbparser-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-pdbparser-targets.cmake) diff --git a/src/pdbparser/CMakeLists.txt b/src/pdbparser/CMakeLists.txt index 72775cc91..fbe8e93bf 100644 --- a/src/pdbparser/CMakeLists.txt +++ b/src/pdbparser/CMakeLists.txt @@ -1,9 +1,54 @@ -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_include_directories(pdbparser + PUBLIC + $ + $ +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/pdbparser/retdec-pdbparser-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/pdbparser + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT pdbparser +) + +# Install libs. +install(TARGETS pdbparser + EXPORT pdbparser-targets + COMPONENT pdbparser + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) -add_library(retdec-pdbparser STATIC ${PDBPARSER_SOURCES}) -target_include_directories(retdec-pdbparser PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Export targets. +install(EXPORT pdbparser-targets + FILE "retdec-pdbparser-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT pdbparser +) + +# Install CMake files. +install( + FILES + "${RETDEC_SHARE_DIR}/pdbparser/retdec-pdbparser-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/pdbparser/retdec-pdbparser-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT pdbparser +) From 4640015ea144cdfb31c29affbc4be9fcf5b7b0b9 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Tue, 24 Mar 2020 23:59:28 +0100 Subject: [PATCH 08/61] new build system for yaracpp --- deps/yara/CMakeLists.txt | 16 +++++- 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 ++-- share/yaracpp/retdec-yaracpp-config.cmake | 2 + src/common/CMakeLists.txt | 8 +-- .../compiler_detector/compiler_detector.cpp | 2 +- .../pattern_detector/pattern_detector.h | 2 + src/stacofin/stacofin.cpp | 2 +- src/yaracpp/CMakeLists.txt | 55 ++++++++++++++++++- 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 ++- 16 files changed, 105 insertions(+), 32 deletions(-) create mode 100644 share/yaracpp/retdec-yaracpp-config.cmake diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index b4a58ac91..eb0a63b7b 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -111,8 +111,18 @@ set(LIBRARIES add_library(libyara INTERFACE) add_dependencies(libyara yara) -set_target_properties(libyara PROPERTIES INTERFACE_LINK_LIBRARIES "${LIBRARIES}") -target_include_directories(libyara INTERFACE ${YARA_INCLUDE_DIR}) +set_target_properties(libyara + PROPERTIES + INTERFACE_LINK_LIBRARIES "${LIBRARIES}" +) +target_include_directories(libyara + SYSTEM INTERFACE $ + # nothing for install because this does not need to be installed +) # 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 bin + RENAME "retdec-yarac${CMAKE_EXECUTABLE_SUFFIX}" +) 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/share/yaracpp/retdec-yaracpp-config.cmake b/share/yaracpp/retdec-yaracpp-config.cmake new file mode 100644 index 000000000..8d6d9c830 --- /dev/null +++ b/share/yaracpp/retdec-yaracpp-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-targets.cmake) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 6c48355dd..61f788c61 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -18,16 +18,16 @@ add_library(common STATIC ) add_library(retdec::common ALIAS common) -target_link_libraries(common - PRIVATE retdec::utils -) - target_include_directories(common PUBLIC $ $ ) +target_link_libraries(common + PRIVATE retdec::utils +) + # Create config version file. write_basic_package_version_file( "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" 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/fileinfo/pattern_detector/pattern_detector.h b/src/fileinfo/pattern_detector/pattern_detector.h index 45e27c6fd..af3afd0d8 100644 --- a/src/fileinfo/pattern_detector/pattern_detector.h +++ b/src/fileinfo/pattern_detector/pattern_detector.h @@ -13,9 +13,11 @@ #include "fileinfo/file_information/file_information.h" +namespace retdec { namespace yaracpp { class YaraRule; } // namespace yaracpp +} // namespace retdec namespace fileinfo { diff --git a/src/stacofin/stacofin.cpp b/src/stacofin/stacofin.cpp index 02b281f3d..a85ddfb2e 100644 --- a/src/stacofin/stacofin.cpp +++ b/src/stacofin/stacofin.cpp @@ -24,7 +24,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/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index 6071e91b2..6f51f2318 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -1,9 +1,58 @@ -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_include_directories(yaracpp + PUBLIC + $ + $ +) + +target_link_libraries(yaracpp + PRIVATE libyara +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/yaracpp/retdec-yaracpp-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/yaracpp + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT yaracpp +) + +# Install libs. +install(TARGETS yaracpp libyara + EXPORT yaracpp-targets + COMPONENT yaracpp + 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} + COMPONENT yaracpp +) + +# Install CMake files. +install( + FILES + "${RETDEC_SHARE_DIR}/yaracpp/retdec-yaracpp-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/yaracpp/retdec-yaracpp-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT yaracpp +) 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 From 807ec23a67cdca2fc77e65c09b3ffbc7034d1a1f Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 25 Mar 2020 12:12:23 +0100 Subject: [PATCH 09/61] new build system for crypto component --- deps/openssl/CMakeLists.txt | 48 +++++++++++++------- include/retdec/crypto/hash_context.h | 4 +- share/crypto/retdec-crypto-config.cmake | 7 +++ src/crypto/CMakeLists.txt | 58 +++++++++++++++++++++++-- src/crypto/hash_context.cpp | 2 + 5 files changed, 99 insertions(+), 20 deletions(-) create mode 100644 share/crypto/retdec-crypto-config.cmake diff --git a/deps/openssl/CMakeLists.txt b/deps/openssl/CMakeLists.txt index 3fe287d4f..e77ad1105 100644 --- a/deps/openssl/CMakeLists.txt +++ b/deps/openssl/CMakeLists.txt @@ -1,13 +1,16 @@ -if(NOT RETDEC_FORCE_OPENSSL_BUILD) - 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") +# Temporarily disabled, the current installation works only with static lib. +# This will probably find dynamic lib on Linux. +# +# if(NOT RETDEC_FORCE_OPENSSL_BUILD) +# 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) @@ -170,12 +173,27 @@ set(OPENSSL_LIBRARIES ) 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) +add_dependencies(openssl-crypto openssl) +target_include_directories(openssl-crypto + SYSTEM INTERFACE $ +) +target_link_libraries(openssl-crypto + INTERFACE + "${OPENSSL_INSTALL_DIR}/lib/libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}" + 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) 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/share/crypto/retdec-crypto-config.cmake b/share/crypto/retdec-crypto-config.cmake new file mode 100644 index 000000000..f55dfb59c --- /dev/null +++ b/share/crypto/retdec-crypto-config.cmake @@ -0,0 +1,7 @@ + +include(CMakeFindDependencyMacro) +find_dependency(Threads REQUIRED) +find_dependency(OpenSSL 1.0.1 REQUIRED) +find_dependency(retdec 4.0 REQUIRED COMPONENTS utils) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-crypto-targets.cmake) diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index a1701efad..092d7a621 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -1,9 +1,59 @@ -set(CRYPTO_SOURCES + +add_library(crypto STATIC crc32.cpp crypto.cpp hash_context.cpp ) +add_library(retdec::crypto ALIAS crypto) + +target_include_directories(crypto + PUBLIC + $ + $ +) + +target_link_libraries(crypto + PRIVATE + retdec::utils + openssl-crypto +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/crypto/retdec-crypto-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -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/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/crypto + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT crypto +) + +# Install libs. +install(TARGETS crypto openssl-crypto + EXPORT crypto-targets + COMPONENT crypto + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT crypto-targets + FILE "retdec-crypto-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT crypto +) + +# Install CMake files. +install( + FILES + "${RETDEC_SHARE_DIR}/crypto/retdec-crypto-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/crypto/retdec-crypto-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT crypto +) 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" From 9ceb20f0b5257818f207ee92652d4606a507eb2f Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 25 Mar 2020 15:14:28 +0100 Subject: [PATCH 10/61] new build system for config --- CMakeLists.txt | 2 +- include/retdec/config/parameters.h | 6 +-- share/config/retdec-config-config.cmake | 5 ++ src/config/CMakeLists.txt | 65 ++++++++++++++++++++++--- src/serdes/CMakeLists.txt | 12 ++--- 5 files changed, 73 insertions(+), 17 deletions(-) create mode 100644 share/config/retdec-config-config.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 1f1ffa635..d85064d6c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ -cmake_minimum_required(VERSION 3.6) +cmake_minimum_required(VERSION 3.8) project(retdec LANGUAGES C CXX 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/share/config/retdec-config-config.cmake b/share/config/retdec-config-config.cmake new file mode 100644 index 000000000..1f336d703 --- /dev/null +++ b/share/config/retdec-config-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS common serdes utils) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-config-targets.cmake) diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index 059998595..7eb15da50 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -1,12 +1,63 @@ -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 + rapidjson + PRIVATE + retdec::serdes + retdec::utils +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/config/retdec-config-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/config + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT config +) + +# Install libs. +install(TARGETS config + EXPORT config-targets + COMPONENT config + 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} + COMPONENT config +) + +# Install CMake files. +install( + FILES + "${RETDEC_SHARE_DIR}/config/retdec-config-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/config/retdec-config-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT config ) -target_include_directories(retdec-config PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index 6c735e5f4..f0c3018c5 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -19,18 +19,18 @@ add_library(serdes STATIC ) add_library(retdec::serdes ALIAS serdes) -target_link_libraries(serdes - PUBLIC - retdec::common - rapidjson -) - target_include_directories(serdes PUBLIC $ $ ) +target_link_libraries(serdes + PUBLIC + retdec::common + rapidjson +) + # Create config version file. write_basic_package_version_file( "${RETDEC_BINARY_SHARE_DIR}/serdes/retdec-serdes-config-version.cmake" From cd85dc1fef58c4ecebd1083e5fac0b5f069018be Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 25 Mar 2020 15:24:11 +0100 Subject: [PATCH 11/61] refactor cmake for retdec-configtool --- src/configtool/CMakeLists.txt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/configtool/CMakeLists.txt b/src/configtool/CMakeLists.txt index dcf80d7d9..d75e42d43 100644 --- a/src/configtool/CMakeLists.txt +++ b/src/configtool/CMakeLists.txt @@ -1,8 +1,15 @@ -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_link_libraries(configtool retdec::config) + +set_target_properties(configtool + PROPERTIES + OUTPUT_NAME "retdec-config" +) + +install(TARGETS configtool + RUNTIME DESTINATION bin +) From 083004eda37afca94cbd70234e16385aecafb628 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 25 Mar 2020 16:48:53 +0100 Subject: [PATCH 12/61] new build system for idr2pat --- src/idr2pat/CMakeLists.txt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/idr2pat/CMakeLists.txt b/src/idr2pat/CMakeLists.txt index 5e8224cbe..0c75a5739 100644 --- a/src/idr2pat/CMakeLists.txt +++ b/src/idr2pat/CMakeLists.txt @@ -1,7 +1,15 @@ -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_link_libraries(idr2pat retdec::utils yaramod) + +set_target_properties(idr2pat + PROPERTIES + OUTPUT_NAME "retdec-idb2pat" +) + +install(TARGETS idr2pat + RUNTIME DESTINATION bin +) From dd86453c6c8becd68b64f0e4234ce3b8632cce7c Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 25 Mar 2020 21:05:42 +0100 Subject: [PATCH 13/61] new build system for ar-extractor and its LLVM dependency --- deps/llvm/CMakeLists.txt | 88 ++++++++++++++++--- deps/llvm/retdec-llvm-config.cmake | 7 ++ deps/rapidjson/CMakeLists.txt | 35 ++++++++ deps/rapidjson/retdec-rapidjson-config.cmake | 2 + share/serdes/retdec-serdes-config.cmake | 2 +- src/ar-extractor/CMakeLists.txt | 60 ++++++++++++- .../retdec-ar-extractor-config.cmake | 5 ++ src/serdes/CMakeLists.txt | 4 +- 8 files changed, 182 insertions(+), 21 deletions(-) create mode 100644 deps/llvm/retdec-llvm-config.cmake create mode 100644 deps/rapidjson/retdec-rapidjson-config.cmake create mode 100644 src/ar-extractor/retdec-ar-extractor-config.cmake diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index ab630a28a..ff3b5ed09 100644 --- a/deps/llvm/CMakeLists.txt +++ b/deps/llvm/CMakeLists.txt @@ -170,12 +170,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 @@ -205,9 +199,31 @@ if(MSVC) 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::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}) + 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} + ) endforeach(LLVM_LIB) target_link_libraries(llvm INTERFACE debug Threads::Threads) @@ -218,14 +234,58 @@ if(UNIX) 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 debug + ${ZLIB_LIBRARIES} ${CMAKE_DL_LIBS} ${EXECINFO} + ) + target_link_libraries(llvm + INTERFACE optimized + ${ZLIB_LIBRARIES} ${CMAKE_DL_LIBS} ${EXECINFO} + ) elseif(MINGW) target_link_libraries(llvm INTERFACE debug ${ZLIB_LIBRARIES}) target_link_libraries(llvm INTERFACE optimized ${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) +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY + ${source_dir}/include + ${binary_dir}/include + DESTINATION + ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + COMPONENT llvm +) + +# Install libs. +install(TARGETS llvm + EXPORT llvm-targets + COMPONENT llvm + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT llvm-targets + FILE "retdec-llvm-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT llvm +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT llvm +) diff --git a/deps/llvm/retdec-llvm-config.cmake b/deps/llvm/retdec-llvm-config.cmake new file mode 100644 index 000000000..139e94c14 --- /dev/null +++ b/deps/llvm/retdec-llvm-config.cmake @@ -0,0 +1,7 @@ + +find_package(Threads REQUIRED) +if(UNIX OR MINGW) + find_package(ZLIB REQUIRED) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-targets.cmake) diff --git a/deps/rapidjson/CMakeLists.txt b/deps/rapidjson/CMakeLists.txt index 9aff0e57e..377dc9bbc 100644 --- a/deps/rapidjson/CMakeLists.txt +++ b/deps/rapidjson/CMakeLists.txt @@ -1,5 +1,6 @@ add_library(rapidjson INTERFACE) +add_library(retdec::rapidjson ALIAS rapidjson) target_compile_definitions(rapidjson INTERFACE @@ -13,8 +14,42 @@ target_include_directories(rapidjson $/retdec/deps ) +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-rapidjson-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + # Install includes. install( DIRECTORY ${RETDEC_DEPS_DIR}/rapidjson/include/rapidjson DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + COMPONENT rapidjson +) + +# Install libs. +install(TARGETS rapidjson + EXPORT rapidjson-targets + COMPONENT rapidjson + # Header only -> there are no actual libs to install to destination. + # But this block is still needed to get proper config. +) + +# Export targets. +install(EXPORT rapidjson-targets + FILE "retdec-rapidjson-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT rapidjson +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-rapidjson-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-rapidjson-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT rapidjson ) diff --git a/deps/rapidjson/retdec-rapidjson-config.cmake b/deps/rapidjson/retdec-rapidjson-config.cmake new file mode 100644 index 000000000..78055344a --- /dev/null +++ b/deps/rapidjson/retdec-rapidjson-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-rapidjson-targets.cmake) diff --git a/share/serdes/retdec-serdes-config.cmake b/share/serdes/retdec-serdes-config.cmake index c77d350a1..a813457f3 100644 --- a/share/serdes/retdec-serdes-config.cmake +++ b/share/serdes/retdec-serdes-config.cmake @@ -1,5 +1,5 @@ include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS common) +find_dependency(retdec 4.0 REQUIRED COMPONENTS common rapidjson) include(${CMAKE_CURRENT_LIST_DIR}/retdec-serdes-targets.cmake) diff --git a/src/ar-extractor/CMakeLists.txt b/src/ar-extractor/CMakeLists.txt index 833bd5cc9..0c3865d85 100644 --- a/src/ar-extractor/CMakeLists.txt +++ b/src/ar-extractor/CMakeLists.txt @@ -1,8 +1,60 @@ -set(AR_EXTRACTOR_SOURCES + +add_library(ar-extractor STATIC archive_wrapper.cpp detection.cpp ) +add_library(retdec::ar-extractor ALIAS ar-extractor) + +target_include_directories(ar-extractor + PUBLIC + $ + $ +) + +target_link_libraries(ar-extractor + PUBLIC + retdec::utils + retdec::llvm + PRIVATE + retdec::rapidjson +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-ar-extractor-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -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/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ar-extractor + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT ar-extractor +) + +# Install libs. +install(TARGETS ar-extractor + EXPORT ar-extractor-targets + COMPONENT ar-extractor + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT ar-extractor-targets + FILE "retdec-ar-extractor-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT ar-extractor +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-ar-extractor-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-ar-extractor-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT ar-extractor +) 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..ab0efae46 --- /dev/null +++ b/src/ar-extractor/retdec-ar-extractor-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS utils rapidjson llvm) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-ar-extractor-targets.cmake) diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index f0c3018c5..f3ca43c9a 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -28,7 +28,7 @@ target_include_directories(serdes target_link_libraries(serdes PUBLIC retdec::common - rapidjson + retdec::rapidjson ) # Create config version file. @@ -46,7 +46,7 @@ install( ) # Install libs. -install(TARGETS serdes rapidjson +install(TARGETS serdes EXPORT serdes-targets COMPONENT serdes ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} From a861f9e03c95e6cd6840ce6d0f114bd23b3c940e Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 25 Mar 2020 21:19:27 +0100 Subject: [PATCH 14/61] refactor the new build system --- CMakeLists.txt | 4 ++-- share/retdec-config.cmake => retdec-config.cmake | 0 src/common/CMakeLists.txt | 9 +++++---- {share => src}/common/retdec-common-config.cmake | 0 src/config/CMakeLists.txt | 8 ++++---- {share => src}/config/retdec-config-config.cmake | 0 src/crypto/CMakeLists.txt | 6 +++--- {share => src}/crypto/retdec-crypto-config.cmake | 0 src/ctypes/CMakeLists.txt | 9 +++++---- {share => src}/ctypes/retdec-ctypes-config.cmake | 0 src/pdbparser/CMakeLists.txt | 6 +++--- {share => src}/pdbparser/retdec-pdbparser-config.cmake | 0 src/pelib/CMakeLists.txt | 6 +++--- {share => src}/pelib/retdec-pelib-config.cmake | 0 src/serdes/CMakeLists.txt | 6 +++--- {share => src}/serdes/retdec-serdes-config.cmake | 0 src/utils/CMakeLists.txt | 6 +++--- {share => src}/utils/retdec-utils-config.cmake | 0 src/yaracpp/CMakeLists.txt | 6 +++--- {share => src}/yaracpp/retdec-yaracpp-config.cmake | 0 20 files changed, 34 insertions(+), 32 deletions(-) rename share/retdec-config.cmake => retdec-config.cmake (100%) rename {share => src}/common/retdec-common-config.cmake (100%) rename {share => src}/config/retdec-config-config.cmake (100%) rename {share => src}/crypto/retdec-crypto-config.cmake (100%) rename {share => src}/ctypes/retdec-ctypes-config.cmake (100%) rename {share => src}/pdbparser/retdec-pdbparser-config.cmake (100%) rename {share => src}/pelib/retdec-pelib-config.cmake (100%) rename {share => src}/serdes/retdec-serdes-config.cmake (100%) rename {share => src}/utils/retdec-utils-config.cmake (100%) rename {share => src}/yaracpp/retdec-yaracpp-config.cmake (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index d85064d6c..d853f6e46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,7 +29,6 @@ find_package(PythonInterp 3.4 REQUIRED) # Variables. set(RETDEC_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps") set(RETDEC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") -set(RETDEC_SHARE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/share") set(RETDEC_BINARY_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share") set(RETDEC_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") set(RETDEC_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") @@ -119,7 +118,8 @@ write_basic_package_version_file( ) # Create main RetDec CMake config file. -configure_file(share/retdec-config.cmake +configure_file( + "${CMAKE_CURRENT_LIST_DIR}/retdec-config.cmake" "${RETDEC_BINARY_SHARE_DIR}/retdec-config.cmake" @ONLY ) diff --git a/share/retdec-config.cmake b/retdec-config.cmake similarity index 100% rename from share/retdec-config.cmake rename to retdec-config.cmake diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 61f788c61..2fa832698 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -25,12 +25,13 @@ target_include_directories(common ) target_link_libraries(common - PRIVATE retdec::utils + PRIVATE + retdec::utils ) # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-common-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -61,8 +62,8 @@ install(EXPORT common-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/common/retdec-common-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/common/retdec-common-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-common-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-common-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT common diff --git a/share/common/retdec-common-config.cmake b/src/common/retdec-common-config.cmake similarity index 100% rename from share/common/retdec-common-config.cmake rename to src/common/retdec-common-config.cmake diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index 7eb15da50..29fd969f2 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -16,7 +16,7 @@ target_include_directories(config PUBLIC target_link_libraries(config PUBLIC retdec::common - rapidjson + retdec::rapidjson PRIVATE retdec::serdes retdec::utils @@ -24,7 +24,7 @@ target_link_libraries(config # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/config/retdec-config-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-config-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -55,8 +55,8 @@ install(EXPORT config-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/config/retdec-config-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/config/retdec-config-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-config-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-config-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT config diff --git a/share/config/retdec-config-config.cmake b/src/config/retdec-config-config.cmake similarity index 100% rename from share/config/retdec-config-config.cmake rename to src/config/retdec-config-config.cmake diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index 092d7a621..d09fae0b2 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -20,7 +20,7 @@ target_link_libraries(crypto # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/crypto/retdec-crypto-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-crypto-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -51,8 +51,8 @@ install(EXPORT crypto-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/crypto/retdec-crypto-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/crypto/retdec-crypto-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-crypto-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-crypto-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT crypto diff --git a/share/crypto/retdec-crypto-config.cmake b/src/crypto/retdec-crypto-config.cmake similarity index 100% rename from share/crypto/retdec-crypto-config.cmake rename to src/crypto/retdec-crypto-config.cmake diff --git a/src/ctypes/CMakeLists.txt b/src/ctypes/CMakeLists.txt index 41c861648..aa7689015 100644 --- a/src/ctypes/CMakeLists.txt +++ b/src/ctypes/CMakeLists.txt @@ -34,7 +34,8 @@ add_library(ctypes STATIC add_library(retdec::ctypes ALIAS ctypes) target_link_libraries(ctypes - PRIVATE retdec::utils + PRIVATE + retdec::utils ) target_include_directories(ctypes @@ -45,7 +46,7 @@ target_include_directories(ctypes # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/ctypes/retdec-ctypes-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-ctypes-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -76,8 +77,8 @@ install(EXPORT ctypes-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/ctypes/retdec-ctypes-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/ctypes/retdec-ctypes-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-ctypes-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-ctypes-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT ctypes diff --git a/share/ctypes/retdec-ctypes-config.cmake b/src/ctypes/retdec-ctypes-config.cmake similarity index 100% rename from share/ctypes/retdec-ctypes-config.cmake rename to src/ctypes/retdec-ctypes-config.cmake diff --git a/src/pdbparser/CMakeLists.txt b/src/pdbparser/CMakeLists.txt index fbe8e93bf..c023d80ae 100644 --- a/src/pdbparser/CMakeLists.txt +++ b/src/pdbparser/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(pdbparser # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/pdbparser/retdec-pdbparser-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-pdbparser-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -46,8 +46,8 @@ install(EXPORT pdbparser-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/pdbparser/retdec-pdbparser-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/pdbparser/retdec-pdbparser-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-pdbparser-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-pdbparser-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT pdbparser diff --git a/share/pdbparser/retdec-pdbparser-config.cmake b/src/pdbparser/retdec-pdbparser-config.cmake similarity index 100% rename from share/pdbparser/retdec-pdbparser-config.cmake rename to src/pdbparser/retdec-pdbparser-config.cmake diff --git a/src/pelib/CMakeLists.txt b/src/pelib/CMakeLists.txt index 451fcf14a..94feb4580 100644 --- a/src/pelib/CMakeLists.txt +++ b/src/pelib/CMakeLists.txt @@ -34,7 +34,7 @@ endif() # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/pelib/retdec-pelib-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-pelib-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -65,8 +65,8 @@ install(EXPORT pelib-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/pelib/retdec-pelib-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/pelib/retdec-pelib-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-pelib-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-pelib-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT pelib diff --git a/share/pelib/retdec-pelib-config.cmake b/src/pelib/retdec-pelib-config.cmake similarity index 100% rename from share/pelib/retdec-pelib-config.cmake rename to src/pelib/retdec-pelib-config.cmake diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index f3ca43c9a..798643987 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -33,7 +33,7 @@ target_link_libraries(serdes # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/serdes/retdec-serdes-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-serdes-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -64,8 +64,8 @@ install(EXPORT serdes-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/serdes/retdec-serdes-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/serdes/retdec-serdes-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-serdes-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-serdes-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT serdes diff --git a/share/serdes/retdec-serdes-config.cmake b/src/serdes/retdec-serdes-config.cmake similarity index 100% rename from share/serdes/retdec-serdes-config.cmake rename to src/serdes/retdec-serdes-config.cmake diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 36a8759d9..ecdf1287b 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -37,7 +37,7 @@ endif() # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/utils/retdec-utils-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-utils-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -68,8 +68,8 @@ install(EXPORT utils-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/utils/retdec-utils-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/utils/retdec-utils-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-utils-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-utils-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT utils diff --git a/share/utils/retdec-utils-config.cmake b/src/utils/retdec-utils-config.cmake similarity index 100% rename from share/utils/retdec-utils-config.cmake rename to src/utils/retdec-utils-config.cmake diff --git a/src/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index 6f51f2318..12c1d1b11 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -19,7 +19,7 @@ target_link_libraries(yaracpp # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/yaracpp/retdec-yaracpp-config-version.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-yaracpp-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY AnyNewerVersion ) @@ -50,8 +50,8 @@ install(EXPORT yaracpp-targets # Install CMake files. install( FILES - "${RETDEC_SHARE_DIR}/yaracpp/retdec-yaracpp-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/yaracpp/retdec-yaracpp-config-version.cmake" + "${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-yaracpp-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT yaracpp diff --git a/share/yaracpp/retdec-yaracpp-config.cmake b/src/yaracpp/retdec-yaracpp-config.cmake similarity index 100% rename from share/yaracpp/retdec-yaracpp-config.cmake rename to src/yaracpp/retdec-yaracpp-config.cmake From ac6579e313c6f9c3f555a6492ac582536a5b5bec Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 25 Mar 2020 21:39:02 +0100 Subject: [PATCH 15/61] new build for ar-extractortool --- src/ar-extractortool/CMakeLists.txt | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/ar-extractortool/CMakeLists.txt b/src/ar-extractortool/CMakeLists.txt index c39532356..3c5003fa4 100644 --- a/src/ar-extractortool/CMakeLists.txt +++ b/src/ar-extractortool/CMakeLists.txt @@ -1,8 +1,19 @@ -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_link_libraries(ar-extractortool + retdec::ar-extractor + retdec::utils + retdec::rapidjson +) + +set_target_properties(ar-extractortool + PROPERTIES + OUTPUT_NAME "retdec-ar-extractor" +) + +install(TARGETS ar-extractortool + RUNTIME DESTINATION bin +) From 1f378d653d0613506cccac3832b48e7cd4bc1daa Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 25 Mar 2020 22:41:32 +0100 Subject: [PATCH 16/61] new build system for macho-extractor and macho-extractortool --- src/macho-extractor/CMakeLists.txt | 61 +++++++++++++++++-- .../retdec-macho-extractor-config.cmake | 5 ++ src/macho-extractortool/CMakeLists.txt | 21 +++++-- 3 files changed, 78 insertions(+), 9 deletions(-) create mode 100644 src/macho-extractor/retdec-macho-extractor-config.cmake diff --git a/src/macho-extractor/CMakeLists.txt b/src/macho-extractor/CMakeLists.txt index 56b3ebe90..8e1bab95d 100644 --- a/src/macho-extractor/CMakeLists.txt +++ b/src/macho-extractor/CMakeLists.txt @@ -1,7 +1,60 @@ -set(MACHO_EXTRACTOR_SOURCES + +add_library(macho-extractor STATIC break_fat.cpp ) +add_library(retdec::macho-extractor ALIAS macho-extractor) + +target_include_directories(macho-extractor + PUBLIC + $ + $ +) + +target_link_libraries(macho-extractor + PUBLIC + retdec::llvm + PRIVATE + retdec::utils + retdec::rapidjson +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-macho-extractor-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/macho-extractor + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT macho-extractor +) + +# Install libs. +install(TARGETS macho-extractor + EXPORT macho-extractor-targets + COMPONENT macho-extractor + 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} + COMPONENT macho-extractor +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-macho-extractor-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-macho-extractor-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT macho-extractor +) -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..97df1c344 --- /dev/null +++ b/src/macho-extractor/retdec-macho-extractor-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS utils rapidjson llvm) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-macho-extractor-targets.cmake) diff --git a/src/macho-extractortool/CMakeLists.txt b/src/macho-extractortool/CMakeLists.txt index 5ca3d3e91..1ec3fe736 100644 --- a/src/macho-extractortool/CMakeLists.txt +++ b/src/macho-extractortool/CMakeLists.txt @@ -1,8 +1,19 @@ -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_link_libraries(macho-extractortool + retdec::macho-extractor + retdec::utils + retdec::rapidjson +) + +set_target_properties(macho-extractortool + PROPERTIES + OUTPUT_NAME "retdec-macho-extractor" +) + +install(TARGETS macho-extractortool + RUNTIME DESTINATION bin +) From 00f84f84c8e4d6cec05cf8589a978d5fa938e078 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 26 Mar 2020 11:08:21 +0100 Subject: [PATCH 17/61] new build for ctypesparser, demangler, and demanglertool --- cmake/options.cmake | 8 --- include/retdec/bin2llvmir/utils/ctypes2llvm.h | 2 +- .../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 ++-- src/ctypesparser/CMakeLists.txt | 64 +++++++++++++++--- .../retdec-ctypesparser-config.cmake | 5 ++ src/demangler/CMakeLists.txt | 67 +++++++++++++++++-- .../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 | 5 ++ src/demanglertool/CMakeLists.txt | 19 ++++-- 19 files changed, 211 insertions(+), 81 deletions(-) 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 src/ctypesparser/retdec-ctypesparser-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 diff --git a/cmake/options.cmake b/cmake/options.cmake index 6863bb498..4becf54dd 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -297,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 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/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/src/ctypesparser/CMakeLists.txt b/src/ctypesparser/CMakeLists.txt index 10099f07d..e026397e3 100644 --- a/src/ctypesparser/CMakeLists.txt +++ b/src/ctypesparser/CMakeLists.txt @@ -1,13 +1,61 @@ -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_include_directories(ctypesparser + PUBLIC + $ + $ +) + +target_link_libraries(ctypesparser + PUBLIC + retdec::ctypes + retdec::rapidjson + PRIVATE + retdec::utils +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-ctypesparser-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -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/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ctypesparser + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT ctypesparser +) + +# Install libs. +install(TARGETS ctypesparser + EXPORT ctypesparser-targets + COMPONENT ctypesparser + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT ctypesparser-targets + FILE "retdec-ctypesparser-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT ctypesparser +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-ctypesparser-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-ctypesparser-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT ctypesparser +) diff --git a/src/ctypesparser/retdec-ctypesparser-config.cmake b/src/ctypesparser/retdec-ctypesparser-config.cmake new file mode 100644 index 000000000..4d2761767 --- /dev/null +++ b/src/ctypesparser/retdec-ctypesparser-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS ctypes utils rapidjson) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-ctypesparser-targets.cmake) diff --git a/src/demangler/CMakeLists.txt b/src/demangler/CMakeLists.txt index b582c7e7e..02c77f6fd 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,56 @@ set(DEMANGLER_LLVM_SOURCES borland_ast/template_node.cpp borland_ast/type_node.cpp ) +add_library(retdec::demangler ALIAS demangler) + +target_include_directories(demangler + PUBLIC + $ + $ +) + +target_link_libraries(demangler + PUBLIC + retdec::ctypesparser + retdec::llvm +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-demangler-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/demangler + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT demangler +) + +# Install libs. +install(TARGETS demangler + EXPORT demangler-targets + COMPONENT demangler + 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} + COMPONENT demangler +) -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 +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-demangler-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-demangler-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT demangler +) \ 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..14669b88f --- /dev/null +++ b/src/demangler/retdec-demangler-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS ctypesparser llvm) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-demangler-targets.cmake) diff --git a/src/demanglertool/CMakeLists.txt b/src/demanglertool/CMakeLists.txt index 50aadf9cb..7b51ea82d 100644 --- a/src/demanglertool/CMakeLists.txt +++ b/src/demanglertool/CMakeLists.txt @@ -1,8 +1,17 @@ -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_link_libraries(demanglertool + retdec::demangler +) + +set_target_properties(demanglertool + PROPERTIES + OUTPUT_NAME "retdec-demangler" +) + +install(TARGETS demanglertool + RUNTIME DESTINATION bin +) From 0ed4fb9cea10e33a6e72a516cbc2b7a96f56a3fa Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 26 Mar 2020 14:26:16 +0100 Subject: [PATCH 18/61] new build for llvm-support and llvmir-emul --- src/llvm-support/CMakeLists.txt | 59 +++++++++++++++++-- .../retdec-llvm-support-config.cmake | 5 ++ src/llvmir-emul/CMakeLists.txt | 57 ++++++++++++++++-- .../retdec-llvmir-emul-config.cmake | 5 ++ 4 files changed, 118 insertions(+), 8 deletions(-) create mode 100644 src/llvm-support/retdec-llvm-support-config.cmake create mode 100644 src/llvmir-emul/retdec-llvmir-emul-config.cmake diff --git a/src/llvm-support/CMakeLists.txt b/src/llvm-support/CMakeLists.txt index 94cfba635..944684e7f 100644 --- a/src/llvm-support/CMakeLists.txt +++ b/src/llvm-support/CMakeLists.txt @@ -1,7 +1,58 @@ -set(LLVM_SUPPORT_SOURCES + +add_library(llvm-support STATIC diagnostics.cpp ) +add_library(retdec::llvm-support ALIAS llvm-support) + +target_include_directories(llvm-support + PUBLIC + $ + $ +) + +target_link_libraries(llvm-support + PUBLIC + retdec::llvm + PRIVATE + retdec::utils +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-support-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -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/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvm-support + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT llvm-support +) + +# Install libs. +install(TARGETS llvm-support + EXPORT llvm-support-targets + COMPONENT llvm-support + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT llvm-support-targets + FILE "retdec-llvm-support-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT llvm-support +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-support-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-support-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT llvm-support +) 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..628620628 --- /dev/null +++ b/src/llvm-support/retdec-llvm-support-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS utils llvm) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-support-targets.cmake) diff --git a/src/llvmir-emul/CMakeLists.txt b/src/llvmir-emul/CMakeLists.txt index 9ef2b4aa9..166d42704 100644 --- a/src/llvmir-emul/CMakeLists.txt +++ b/src/llvmir-emul/CMakeLists.txt @@ -1,7 +1,56 @@ -set(LLVMIR_EMUL_SOURCES + +add_library(llvmir-emul STATIC llvmir_emul.cpp ) +add_library(retdec::llvmir-emul ALIAS llvmir-emul) + +target_include_directories(llvmir-emul + PUBLIC + $ + $ +) + +target_link_libraries(llvmir-emul + PUBLIC + retdec::llvm +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvmir-emul-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -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/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvmir-emul + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT llvmir-emul +) + +# Install libs. +install(TARGETS llvmir-emul + EXPORT llvmir-emul-targets + COMPONENT llvmir-emul + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT llvmir-emul-targets + FILE "retdec-llvmir-emul-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT llvmir-emul +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir-emul-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvmir-emul-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT llvmir-emul +) 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..8d0bf7c24 --- /dev/null +++ b/src/llvmir-emul/retdec-llvmir-emul-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS llvm) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir-emul-targets.cmake) From ed6b233deb9e0d71d8c963de731beb8b331f0e4c Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 26 Mar 2020 17:26:03 +0100 Subject: [PATCH 19/61] new build for capstone2llvmir and capstone2llvmirtool --- CMakeLists.txt | 1 + deps/capstone/CMakeLists.txt | 63 ++++++++++++++- deps/capstone/retdec-capstone-config.cmake | 2 + deps/elfio/CMakeLists.txt | 48 ++++++++++- deps/elfio/retdec-elfio-config.cmake | 2 + deps/googletest/CMakeLists.txt | 81 +++++++++++++++---- deps/keystone/CMakeLists.txt | 19 ++++- deps/llvm/CMakeLists.txt | 4 +- deps/tinyxml2/CMakeLists.txt | 14 +++- .../{ => include/tinyxml2}/tinyxml2.h | 0 deps/whereami/CMakeLists.txt | 2 + deps/yara/CMakeLists.txt | 5 +- deps/yaramod/CMakeLists.txt | 64 +++++++++++++-- deps/yaramod/retdec-yaramod-config.cmake | 2 + src/capstone2llvmir/CMakeLists.txt | 63 +++++++++++++-- .../retdec-capstone2llvmir-config.cmake | 5 ++ src/capstone2llvmirtool/CMakeLists.txt | 21 +++-- .../heuristics/pe_heuristics.cpp | 2 +- src/fileinfo/file_detector/file_detector.cpp | 2 +- src/utils/CMakeLists.txt | 5 +- 20 files changed, 355 insertions(+), 50 deletions(-) create mode 100644 deps/capstone/retdec-capstone-config.cmake create mode 100644 deps/elfio/retdec-elfio-config.cmake rename deps/tinyxml2/{ => include/tinyxml2}/tinyxml2.h (100%) create mode 100644 deps/yaramod/retdec-yaramod-config.cmake create mode 100644 src/capstone2llvmir/retdec-capstone2llvmir-config.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d853f6e46..8518ac915 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,6 +29,7 @@ find_package(PythonInterp 3.4 REQUIRED) # Variables. set(RETDEC_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps") set(RETDEC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") +set(RETDEC_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") set(RETDEC_BINARY_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share") set(RETDEC_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") set(RETDEC_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") diff --git a/deps/capstone/CMakeLists.txt b/deps/capstone/CMakeLists.txt index f12741365..1fdce4700 100644 --- a/deps/capstone/CMakeLists.txt +++ b/deps/capstone/CMakeLists.txt @@ -106,8 +106,63 @@ ExternalProject_Get_Property(capstone-project binary_dir) # Add libraries. add_library(capstone INTERFACE) +add_library(retdec::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 + ${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} +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY + ${source_dir}/include/capstone + DESTINATION + ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + COMPONENT capstone +) + +# Install libs. +install(TARGETS capstone + EXPORT capstone-targets + COMPONENT capstone + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT capstone-targets + FILE "retdec-capstone-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT capstone +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-capstone-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT capstone +) diff --git a/deps/capstone/retdec-capstone-config.cmake b/deps/capstone/retdec-capstone-config.cmake new file mode 100644 index 000000000..37d1fc8aa --- /dev/null +++ b/deps/capstone/retdec-capstone-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone-targets.cmake) diff --git a/deps/elfio/CMakeLists.txt b/deps/elfio/CMakeLists.txt index 099db0e51..bd681e4f5 100644 --- a/deps/elfio/CMakeLists.txt +++ b/deps/elfio/CMakeLists.txt @@ -1,3 +1,49 @@ add_library(elfio INTERFACE) -target_include_directories(elfio SYSTEM INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include) +add_library(retdec::elfio ALIAS elfio) + +target_include_directories(elfio + SYSTEM INTERFACE + $ + $/retdec/deps +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-elfio-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_DEPS_DIR}/elfio/include/elfio + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + COMPONENT elfio +) + +# Install libs. +install(TARGETS elfio + EXPORT elfio-targets + COMPONENT elfio + # Header only -> there are no actual libs to install to destination. + # But this block is still needed to get proper config. +) + +# Export targets. +install(EXPORT elfio-targets + FILE "retdec-elfio-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT elfio +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-elfio-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-elfio-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT elfio +) diff --git a/deps/elfio/retdec-elfio-config.cmake b/deps/elfio/retdec-elfio-config.cmake new file mode 100644 index 000000000..05ca4cfb5 --- /dev/null +++ b/deps/elfio/retdec-elfio-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-elfio-targets.cmake) diff --git a/deps/googletest/CMakeLists.txt b/deps/googletest/CMakeLists.txt index 54a5491de..fea6e93e3 100644 --- a/deps/googletest/CMakeLists.txt +++ b/deps/googletest/CMakeLists.txt @@ -84,28 +84,81 @@ if(MSVC) endif() 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}) + +# gtest +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 + $ +) add_dependencies(gtest googletest) +# 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 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}) +target_include_directories(gtest_main + SYSTEM INTERFACE + $ +) add_dependencies(gtest_main googletest) +# 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}) +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 + $ + $ +) add_dependencies(gmock googletest) +# 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}) +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 + $ + $ +) add_dependencies(gmock_main googletest) diff --git a/deps/keystone/CMakeLists.txt b/deps/keystone/CMakeLists.txt index 3b0c3e88c..89360a280 100644 --- a/deps/keystone/CMakeLists.txt +++ b/deps/keystone/CMakeLists.txt @@ -74,7 +74,20 @@ ExternalProject_Get_Property(keystone-project binary_dir) # Add libraries. add_library(keystone INTERFACE) +add_library(retdec::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 + $ + # nothing for install because this does not need to be installed +) + +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} +) diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index ff3b5ed09..e5f4bfb1e 100644 --- a/deps/llvm/CMakeLists.txt +++ b/deps/llvm/CMakeLists.txt @@ -257,8 +257,8 @@ write_basic_package_version_file( # Install includes. install( DIRECTORY - ${source_dir}/include - ${binary_dir}/include + ${source_dir}/include/llvm + ${binary_dir}/include/llvm DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps COMPONENT llvm diff --git a/deps/tinyxml2/CMakeLists.txt b/deps/tinyxml2/CMakeLists.txt index 6860c18c4..a92b624fc 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::tinyxml2 ALIAS tinyxml2) + +target_include_directories(tinyxml2 + SYSTEM INTERFACE + $ + # nothing for install because this does not need to be installed + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/include/tinyxml2 +) # Disable all warnings from this 3rd party project. if(MSVC) 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/whereami/CMakeLists.txt b/deps/whereami/CMakeLists.txt index f761b7355..ba27a0657 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -2,6 +2,8 @@ add_library(whereami STATIC whereami.c ) +add_library(retdec::whereami ALIAS whereami) + target_include_directories(whereami SYSTEM INTERFACE $ diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index eb0a63b7b..59d21b569 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -116,8 +116,9 @@ set_target_properties(libyara INTERFACE_LINK_LIBRARIES "${LIBRARIES}" ) target_include_directories(libyara - SYSTEM INTERFACE $ - # nothing for install because this does not need to be installed + SYSTEM INTERFACE + $ + # nothing for install because this does not need to be installed ) # Install yarac application - we may need it to compile YARA files. diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index 5e7bc30d4..5d72425cf 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -64,14 +64,22 @@ ExternalProject_Get_Property(yaramod-project binary_dir) # Add libraries. add_library(yaramod INTERFACE) +add_library(retdec::yaramod ALIAS yaramods) 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_include_directories(yaramod + SYSTEM INTERFACE + $ + $ + SYSTEM PRIVATE + $ + $ + $ + $ + $ + $ +) + target_link_libraries(yaramod INTERFACE debug ${binary_dir}/src/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}yaramod${CMAKE_STATIC_LIBRARY_SUFFIX} @@ -84,3 +92,45 @@ target_link_libraries(yaramod ${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} ) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY + ${source_dir}/include/yaramod + DESTINATION + ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + COMPONENT yaramod +) + +# Install libs. +install(TARGETS yaramod + EXPORT yaramod-targets + COMPONENT yaramod + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT yaramod-targets + FILE "retdec-yaramod-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT yaramod +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-yaramod-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT yaramod +) diff --git a/deps/yaramod/retdec-yaramod-config.cmake b/deps/yaramod/retdec-yaramod-config.cmake new file mode 100644 index 000000000..81214aae7 --- /dev/null +++ b/deps/yaramod/retdec-yaramod-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaramod-targets.cmake) diff --git a/src/capstone2llvmir/CMakeLists.txt b/src/capstone2llvmir/CMakeLists.txt index 9caa2bb35..c2da15534 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,59 @@ 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_include_directories(capstone2llvmir + PUBLIC + $ + $ + PRIVATE + $ +) + +target_link_libraries(capstone2llvmir + PUBLIC + retdec::common + retdec::capstone + retdec::llvm +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone2llvmir-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/capstone2llvmir + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT capstone2llvmir +) + +# Install libs. +install(TARGETS capstone2llvmir + EXPORT capstone2llvmir-targets + COMPONENT capstone2llvmir + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) -target_include_directories(retdec-capstone2llvmir PUBLIC ${PROJECT_SOURCE_DIR}/include/) -target_include_directories(retdec-capstone2llvmir PUBLIC ${PROJECT_SOURCE_DIR}/src/) + +# Export targets. +install(EXPORT capstone2llvmir-targets + FILE "retdec-capstone2llvmir-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT capstone2llvmir +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-capstone2llvmir-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone2llvmir-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT capstone2llvmir +) \ 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..dc08fddf5 --- /dev/null +++ b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake @@ -0,0 +1,5 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 REQUIRED COMPONENTS common capstone llvm) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone2llvmir-targets.cmake) diff --git a/src/capstone2llvmirtool/CMakeLists.txt b/src/capstone2llvmirtool/CMakeLists.txt index b0ad017f9..a9852e47d 100644 --- a/src/capstone2llvmirtool/CMakeLists.txt +++ b/src/capstone2llvmirtool/CMakeLists.txt @@ -1,8 +1,19 @@ -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_link_libraries(capstone2llvmirtool + retdec::utils + retdec::capstone2llvmir + retdec::keystone +) + +set_target_properties(capstone2llvmirtool + PROPERTIES + OUTPUT_NAME "retdec-capstone2llvmir" +) + +install(TARGETS capstone2llvmirtool + RUNTIME DESTINATION bin +) 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/fileinfo/file_detector/file_detector.cpp b/src/fileinfo/file_detector/file_detector.cpp index e44954530..f25f2795d 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" diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index ecdf1287b..6f2bac028 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -15,7 +15,10 @@ add_library(utils STATIC ) add_library(retdec::utils ALIAS utils) -target_link_libraries(utils PRIVATE whereami) +target_link_libraries(utils + PRIVATE + retdec::whereami +) if(WIN32) # shlwapi.dll for PathRemoveFileSpec() target_link_libraries(utils PRIVATE shlwapi) From e93f6c1a4f8a3b2e7ab942860e7543d021eec623 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 26 Mar 2020 21:00:35 +0100 Subject: [PATCH 20/61] new build for fileformat, loader, cpdetect, fileinfo --- cmake/options.cmake | 6 +- include/retdec/cpdetect/compiler_factory.h | 5 +- src/cpdetect/CMakeLists.txt | 68 +++++++++++++++--- src/cpdetect/compiler_factory.cpp | 4 +- src/cpdetect/retdec-cpdetect-config.cmake | 12 ++++ src/fileformat/CMakeLists.txt | 70 ++++++++++++++++--- src/fileformat/retdec-fileformat-config.cmake | 14 ++++ src/fileinfo/CMakeLists.txt | 46 +++++++----- 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 | 2 + 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 | 2 + src/loader/CMakeLists.txt | 62 ++++++++++++++-- src/loader/retdec-loader-config.cmake | 11 +++ src/unpackertool/unpacker.cpp | 6 +- 223 files changed, 681 insertions(+), 49 deletions(-) create mode 100644 src/cpdetect/retdec-cpdetect-config.cmake create mode 100644 src/fileformat/retdec-fileformat-config.cmake create mode 100644 src/loader/retdec-loader-config.cmake diff --git a/cmake/options.cmake b/cmake/options.cmake index 4becf54dd..b39f99495 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -313,7 +313,6 @@ 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 @@ -394,7 +393,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 @@ -510,7 +509,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/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/src/cpdetect/CMakeLists.txt b/src/cpdetect/CMakeLists.txt index f550057bd..230be7cce 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,62 @@ 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::tinyxml2 + retdec::llvm +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-cpdetect-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -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/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/cpdetect + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT cpdetect +) + +# Install libs. +install(TARGETS cpdetect tinyxml2 + EXPORT cpdetect-targets + COMPONENT cpdetect + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT cpdetect-targets + FILE "retdec-cpdetect-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT cpdetect +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-cpdetect-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-cpdetect-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT cpdetect +) 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..dbd6d0daf --- /dev/null +++ b/src/cpdetect/retdec-cpdetect-config.cmake @@ -0,0 +1,12 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + fileformat + utils + yaracpp + llvm +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-cpdetect-targets.cmake) diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index 0b7408c0c..2aabda899 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,62 @@ 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::elfio + retdec::llvm +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-fileformat-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/fileformat + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT fileformat +) + +# Install libs. +install(TARGETS fileformat + EXPORT fileformat-targets + COMPONENT fileformat + 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} + COMPONENT fileformat +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-fileformat-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT fileformat ) -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..2e5ac829e --- /dev/null +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -0,0 +1,14 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + crypto + common + utils + pelib + elfio + llvm +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) diff --git a/src/fileinfo/CMakeLists.txt b/src/fileinfo/CMakeLists.txt index bfcd4dcd0..18c5d5075 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,31 @@ 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 PUBLIC + ${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::rapidjson + retdec::tinyxml2 +) + +set_target_properties(fileinfo + PROPERTIES + OUTPUT_NAME "retdec-fileinfo" +) + +install(TARGETS fileinfo + RUNTIME DESTINATION bin +) 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 f25f2795d..dca28d514 100644 --- a/src/fileinfo/file_detector/file_detector.cpp +++ b/src/fileinfo/file_detector/file_detector.cpp @@ -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 af3afd0d8..a39204987 100644 --- a/src/fileinfo/pattern_detector/pattern_detector.h +++ b/src/fileinfo/pattern_detector/pattern_detector.h @@ -19,6 +19,7 @@ class YaraRule; } // namespace yaracpp } // namespace retdec +namespace retdec { namespace fileinfo { /** @@ -56,5 +57,6 @@ class PatternDetector }; } // namespace fileinfo +} // namespace retdec #endif diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index 1ec98fb73..aa5029448 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,59 @@ 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 +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-loader-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/loader + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT loader +) + +# Install libs. +install(TARGETS loader + EXPORT loader-targets + COMPONENT loader + 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} + COMPONENT loader +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-loader-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-loader-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT loader ) -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..b338e3fec --- /dev/null +++ b/src/loader/retdec-loader-config.cmake @@ -0,0 +1,11 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + fileformat + common + utils +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-loader-targets.cmake) 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 Date: Fri, 27 Mar 2020 12:05:47 +0100 Subject: [PATCH 21/61] new build for most remaining modules --- deps/yaramod/CMakeLists.txt | 3 +- include/retdec/stacofin/stacofin.h | 1 - src/bin2llvmir/CMakeLists.txt | 82 +++++++++++++---- src/bin2llvmir/retdec-bin2llvmir-config.cmake | 21 +++++ src/bin2llvmirtool/CMakeLists.txt | 52 +++++++---- src/bin2pat/CMakeLists.txt | 20 ++++- src/debugformat/CMakeLists.txt | 69 ++++++++++++--- .../retdec-debugformat-config.cmake | 14 +++ src/getsig/CMakeLists.txt | 19 ++-- src/llvmir2hll/CMakeLists.txt | 72 ++++++++++++--- src/llvmir2hll/retdec-llvmir2hll-config.cmake | 13 +++ src/llvmir2hlltool/CMakeLists.txt | 58 ++++++++----- src/pat2yara/CMakeLists.txt | 26 ++++-- src/patterngen/CMakeLists.txt | 62 ++++++++++++- src/patterngen/retdec-patterngen-config.cmake | 11 +++ src/retdec/CMakeLists.txt | 87 +++++++++++++++---- src/retdec/retdec-retdec-config.cmake | 13 +++ src/retdectool/CMakeLists.txt | 50 +++++++---- src/rtti-finder/CMakeLists.txt | 63 ++++++++++++-- .../retdec-rtti-finder-config.cmake | 11 +++ src/stacofin/CMakeLists.txt | 69 +++++++++++++-- src/stacofin/retdec-stacofin-config.cmake | 14 +++ src/stacofin/stacofin.cpp | 5 +- src/stacofintool/CMakeLists.txt | 20 +++-- src/unpacker/CMakeLists.txt | 61 +++++++++++-- src/unpacker/retdec-unpacker-config.cmake | 9 ++ src/unpackertool/CMakeLists.txt | 29 +++++-- src/unpackertool/plugins/CMakeLists.txt | 2 +- .../plugins/example/CMakeLists.txt | 21 ++++- .../plugins/mpress/CMakeLists.txt | 21 ++++- src/unpackertool/plugins/upx/CMakeLists.txt | 22 ++++- 31 files changed, 841 insertions(+), 179 deletions(-) create mode 100644 src/bin2llvmir/retdec-bin2llvmir-config.cmake create mode 100644 src/debugformat/retdec-debugformat-config.cmake create mode 100644 src/llvmir2hll/retdec-llvmir2hll-config.cmake create mode 100644 src/patterngen/retdec-patterngen-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/stacofin/retdec-stacofin-config.cmake create mode 100644 src/unpacker/retdec-unpacker-config.cmake diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index 5d72425cf..b62e9daac 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -64,14 +64,13 @@ ExternalProject_Get_Property(yaramod-project binary_dir) # Add libraries. add_library(yaramod INTERFACE) -add_library(retdec::yaramod ALIAS yaramods) +add_library(retdec::yaramod ALIAS yaramod) add_dependencies(yaramod yaramod-project) target_include_directories(yaramod SYSTEM INTERFACE $ $ - SYSTEM PRIVATE $ $ $ 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/src/bin2llvmir/CMakeLists.txt b/src/bin2llvmir/CMakeLists.txt index 9c112e58e..cba5c2b0d 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,69 @@ 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::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 + retdec::llvm +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-bin2llvmir-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/bin2llvmir + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/bin2llvmir + COMPONENT bin2llvmir +) + +# Install libs. +install(TARGETS bin2llvmir + EXPORT bin2llvmir-targets + COMPONENT bin2llvmir + 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} + COMPONENT bin2llvmir +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-bin2llvmir-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-bin2llvmir-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT bin2llvmir ) -target_include_directories(retdec-bin2llvmir PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/bin2llvmir/retdec-bin2llvmir-config.cmake b/src/bin2llvmir/retdec-bin2llvmir-config.cmake new file mode 100644 index 000000000..15bbfa653 --- /dev/null +++ b/src/bin2llvmir/retdec-bin2llvmir-config.cmake @@ -0,0 +1,21 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + ctypesparser + rtti-finder + loader + fileformat + debugformat + config + demangler + capstone2llvmir + stacofin + llvmir-support + common + utils + llvm +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-bin2llvmir-targets.cmake) diff --git a/src/bin2llvmirtool/CMakeLists.txt b/src/bin2llvmirtool/CMakeLists.txt index 8bfd9add6..e26ccc78e 100644 --- a/src/bin2llvmirtool/CMakeLists.txt +++ b/src/bin2llvmirtool/CMakeLists.txt @@ -1,29 +1,45 @@ -set(BIN2LLVMIRTOOL_SOURCES + +add_executable(bin2llvmirtool bin2llvmir.cpp ) -add_executable(retdec-bin2llvmirtool ${BIN2LLVMIRTOOL_SOURCES}) - # 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 bin +) diff --git a/src/bin2pat/CMakeLists.txt b/src/bin2pat/CMakeLists.txt index f891b36e3..82fd0b4b6 100644 --- a/src/bin2pat/CMakeLists.txt +++ b/src/bin2pat/CMakeLists.txt @@ -1,7 +1,19 @@ -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_link_libraries(bin2pat + retdec::patterngen + retdec::utils + retdec::yaramod +) + +set_target_properties(bin2pat + PROPERTIES + OUTPUT_NAME "retdec-bin2pat" +) + +install(TARGETS bin2pat + RUNTIME DESTINATION bin +) diff --git a/src/debugformat/CMakeLists.txt b/src/debugformat/CMakeLists.txt index 8807665ad..584391abe 100644 --- a/src/debugformat/CMakeLists.txt +++ b/src/debugformat/CMakeLists.txt @@ -1,16 +1,65 @@ -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::loader + retdec::fileformat + retdec::demangler + retdec::common + retdec::pdbparser + retdec::llvm +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-debugformat-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/debugformat + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT debugformat +) + +# Install libs. +install(TARGETS debugformat + EXPORT debugformat-targets + COMPONENT debugformat + 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} + COMPONENT debugformat +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-debugformat-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-debugformat-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT debugformat ) -target_include_directories(retdec-debugformat PUBLIC ${PROJECT_SOURCE_DIR}/include/) diff --git a/src/debugformat/retdec-debugformat-config.cmake b/src/debugformat/retdec-debugformat-config.cmake new file mode 100644 index 000000000..2698f6984 --- /dev/null +++ b/src/debugformat/retdec-debugformat-config.cmake @@ -0,0 +1,14 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + demangler + pdbparser + fileformat + loader + common + llvm +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-debugformat-targets.cmake) diff --git a/src/getsig/CMakeLists.txt b/src/getsig/CMakeLists.txt index 0a3df192f..0c68de762 100644 --- a/src/getsig/CMakeLists.txt +++ b/src/getsig/CMakeLists.txt @@ -1,8 +1,17 @@ -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_link_libraries(getsig + retdec::fileformat +) + +set_target_properties(getsig + PROPERTIES + OUTPUT_NAME "retdec-getsig" +) + +install(TARGETS getsig + RUNTIME DESTINATION bin +) diff --git a/src/llvmir2hll/CMakeLists.txt b/src/llvmir2hll/CMakeLists.txt index 3918115a8..0c0eec68d 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) + +target_include_directories(llvmir2hll + PUBLIC + $ + $ +) -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_link_libraries(llvmir2hll + PUBLIC + retdec::config + retdec::utils + retdec::llvm-support + retdec::rapidjson + retdec::llvm +) # We need to compile source files with /bigobj to prevent the following # kind of an error: @@ -311,5 +321,47 @@ 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() + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvmir2hll-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvmir2hll + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT llvmir2hll +) + +# Install libs. +install(TARGETS llvmir2hll + EXPORT llvmir2hll-targets + COMPONENT llvmir2hll + 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} + COMPONENT llvmir2hll +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir2hll-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvmir2hll-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT llvmir2hll +) diff --git a/src/llvmir2hll/retdec-llvmir2hll-config.cmake b/src/llvmir2hll/retdec-llvmir2hll-config.cmake new file mode 100644 index 000000000..5aed28569 --- /dev/null +++ b/src/llvmir2hll/retdec-llvmir2hll-config.cmake @@ -0,0 +1,13 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + config + utils + llvm-support + rapidjson + llvm +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir2hll-targets.cmake) diff --git a/src/llvmir2hlltool/CMakeLists.txt b/src/llvmir2hlltool/CMakeLists.txt index 6603f6402..1c5515845 100644 --- a/src/llvmir2hlltool/CMakeLists.txt +++ b/src/llvmir2hlltool/CMakeLists.txt @@ -1,34 +1,46 @@ -set(LLVMIR2HLLTOOL_SOURCES + +add_executable(llvmir2hlltool llvmir2hll.cpp ) -add_executable(retdec-llvmir2hlltool ${LLVMIR2HLLTOOL_SOURCES}) - # 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 bin +) diff --git a/src/pat2yara/CMakeLists.txt b/src/pat2yara/CMakeLists.txt index f3e1876fb..b203e3cec 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,22 @@ 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_link_libraries(pat2yara + retdec::patterngen + retdec::utils + retdec::yaramod +) + +set_target_properties(pat2yara + PROPERTIES + OUTPUT_NAME "retdec-pat2yara" +) + +target_include_directories(pat2yara + ${RETDEC_SOURCE_DIR} +) + +install(TARGETS retdec-pat2yara + RUNTIME + DESTINATION bin +) diff --git a/src/patterngen/CMakeLists.txt b/src/patterngen/CMakeLists.txt index b6f652dd7..c16ad65ad 100644 --- a/src/patterngen/CMakeLists.txt +++ b/src/patterngen/CMakeLists.txt @@ -1,8 +1,62 @@ -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::yaramod + PRIVATE + retdec::fileformat + retdec::utils +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-patterngen-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -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/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/patterngen + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT patterngen +) + +# Install libs. +install(TARGETS patterngen + EXPORT patterngen-targets + COMPONENT patterngen + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT patterngen-targets + FILE "retdec-patterngen-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT patterngen +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-patterngen-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-patterngen-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT patterngen +) diff --git a/src/patterngen/retdec-patterngen-config.cmake b/src/patterngen/retdec-patterngen-config.cmake new file mode 100644 index 000000000..cb5a07448 --- /dev/null +++ b/src/patterngen/retdec-patterngen-config.cmake @@ -0,0 +1,11 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + fileformat + utils + yaramod +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-patterngen-targets.cmake) diff --git a/src/retdec/CMakeLists.txt b/src/retdec/CMakeLists.txt index 2f07930fc..37907e55d 100644 --- a/src/retdec/CMakeLists.txt +++ b/src/retdec/CMakeLists.txt @@ -1,33 +1,84 @@ -add_library(retdec-retdec STATIC +add_library(retdec STATIC retdec.cpp ) +add_library(retdec::retdec ALIAS retdec) + +target_compile_features(retdec PUBLIC cxx_std_17) + +target_include_directories(retdec + PUBLIC + $ + $ +) # 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:$ + # -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::bin2llvmir -WHOLEARCHIVE:$ + ) + set_property(TARGET retdec + APPEND_STRING PROPERTY LINK_FLAGS " /FORCE:MULTIPLE" ) - set_property(TARGET retdec-retdec 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-retdec - -Wl,-force_load retdec-bin2llvmir + target_link_libraries(retdec + -Wl,-force_load retdec::bin2llvmir ) else() # Linux - target_link_libraries(retdec-retdec - -Wl,--whole-archive retdec-bin2llvmir -Wl,--no-whole-archive + target_link_libraries(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() +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-retdec-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) -target_include_directories(retdec-retdec PUBLIC ${PROJECT_SOURCE_DIR}/include/) +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/retdec + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT retdec +) + +# Install libs. +install(TARGETS retdec + EXPORT retdec-targets + COMPONENT retdec + 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} + COMPONENT retdec +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-retdec-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-retdec-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT retdec +) diff --git a/src/retdec/retdec-retdec-config.cmake b/src/retdec/retdec-retdec-config.cmake new file mode 100644 index 000000000..655d3d2ad --- /dev/null +++ b/src/retdec/retdec-retdec-config.cmake @@ -0,0 +1,13 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + config + utils + llvm-support + rapidjson + llvm +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-retdec-targets.cmake) diff --git a/src/retdectool/CMakeLists.txt b/src/retdectool/CMakeLists.txt index c500a0161..a597e52ec 100644 --- a/src/retdectool/CMakeLists.txt +++ b/src/retdectool/CMakeLists.txt @@ -1,29 +1,45 @@ -add_executable(retdec-retdectool +add_executable(retdectool retdec.cpp ) -target_link_libraries(retdec-retdectool retdec-retdec) + +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 bin +) diff --git a/src/rtti-finder/CMakeLists.txt b/src/rtti-finder/CMakeLists.txt index c23a71767..651c88646 100644 --- a/src/rtti-finder/CMakeLists.txt +++ b/src/rtti-finder/CMakeLists.txt @@ -1,13 +1,64 @@ -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::common + PRIVATE + retdec::loader + retdec::utils +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-rtti-finder-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/rtti-finder + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT rtti-finder +) + +# Install libs. +install(TARGETS rtti-finder + EXPORT rtti-finder-targets + COMPONENT rtti-finder + 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} + COMPONENT rtti-finder +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-rtti-finder-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-rtti-finder-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT rtti-finder ) -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..3f5c1782f --- /dev/null +++ b/src/rtti-finder/retdec-rtti-finder-config.cmake @@ -0,0 +1,11 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + loader + common + utils +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-rtti-finder-targets.cmake) diff --git a/src/stacofin/CMakeLists.txt b/src/stacofin/CMakeLists.txt index a80d2acf2..91f1d7af8 100644 --- a/src/stacofin/CMakeLists.txt +++ b/src/stacofin/CMakeLists.txt @@ -1,13 +1,64 @@ -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::capstone + PRIVATE + retdec::loader + retdec::yaracpp + retdec::utils +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-stacofin-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/stacofin + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT stacofin +) + +# Install libs. +install(TARGETS stacofin + EXPORT stacofin-targets + COMPONENT stacofin + 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} + COMPONENT stacofin +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-stacofin-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-stacofin-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT stacofin ) -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..76ffc9466 --- /dev/null +++ b/src/stacofin/retdec-stacofin-config.cmake @@ -0,0 +1,14 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + config + common + loader + utils + yaracpp + capstone +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-stacofin-targets.cmake) diff --git a/src/stacofin/stacofin.cpp b/src/stacofin/stacofin.cpp index a85ddfb2e..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. diff --git a/src/stacofintool/CMakeLists.txt b/src/stacofintool/CMakeLists.txt index c2fcf7573..4d2dc3934 100644 --- a/src/stacofintool/CMakeLists.txt +++ b/src/stacofintool/CMakeLists.txt @@ -1,8 +1,18 @@ -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_link_libraries(stacofintool + retdec::stacofin + retdec::loader +) + +set_target_properties(stacofintool + PROPERTIES + OUTPUT_NAME "retdec-stacofin" +) + +install(TARGETS stacofintool + RUNTIME DESTINATION bin +) diff --git a/src/unpacker/CMakeLists.txt b/src/unpacker/CMakeLists.txt index 972f6816d..d21f77dfa 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,65 @@ 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 +) # 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) + target_compile_definitions(unpacker PUBLIC NOMINMAX) endif() + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-unpacker-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/unpacker + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec + COMPONENT unpacker +) + +# Install libs. +install(TARGETS unpacker + EXPORT unpacker-targets + COMPONENT unpacker + 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} + COMPONENT unpacker +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-unpacker-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-unpacker-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT unpacker +) diff --git a/src/unpacker/retdec-unpacker-config.cmake b/src/unpacker/retdec-unpacker-config.cmake new file mode 100644 index 000000000..73e958ee6 --- /dev/null +++ b/src/unpacker/retdec-unpacker-config.cmake @@ -0,0 +1,9 @@ + +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + loader +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-unpacker-targets.cmake) diff --git a/src/unpackertool/CMakeLists.txt b/src/unpackertool/CMakeLists.txt index e9e772d3c..560e35811 100644 --- a/src/unpackertool/CMakeLists.txt +++ b/src/unpackertool/CMakeLists.txt @@ -1,16 +1,33 @@ -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_include_directories(unpackertool + PUBLIC + $ + # not installed +) -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) +target_link_libraries(unpackertool + retdec::unpacker + retdec::unpacker-upx + retdec::unpacker-mpress + retdec::loader + retdec::cpdetect + retdec::utils + retdec::pelib) -install(TARGETS retdec-unpackertool RUNTIME DESTINATION bin) +set_target_properties(unpackertool + PROPERTIES + OUTPUT_NAME "retdec-unpacker" +) + +install(TARGETS unpackertool + RUNTIME DESTINATION bin +) # 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..fba228c5b 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(loader 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 +) From cb911463349f103e051d222bb82edeb5bfc4a620 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Mon, 30 Mar 2020 20:11:14 +0200 Subject: [PATCH 22/61] cmake/options.cmake: fix debugformat enable settings --- cmake/options.cmake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmake/options.cmake b/cmake/options.cmake index b39f99495..8683b1e36 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -318,6 +318,7 @@ set_if_at_least_one_set(RETDEC_ENABLE_PDBPARSER 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 @@ -329,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 @@ -352,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) From 8cab8a4ef0c24788bd22f7dc95d2a2e0cee229ba Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Tue, 31 Mar 2020 19:05:55 +0200 Subject: [PATCH 23/61] some build system fixes --- .../retdec/bin2llvmir/providers/debugformat.h | 1 + .../retdec/bin2llvmir/providers/demangler.h | 2 + include/retdec/debugformat/debugformat.h | 6 +-- src/bin2llvmir/providers/debugformat.cpp | 2 +- src/bin2llvmir/providers/demangler.cpp | 5 +++ src/bin2llvmir/retdec-bin2llvmir-config.cmake | 2 +- src/debugformat/debugformat.cpp | 7 +--- src/fileinfo/CMakeLists.txt | 5 ++- src/pat2yara/CMakeLists.txt | 5 ++- src/retdec/CMakeLists.txt | 39 +++++-------------- src/retdec/retdec-retdec-config.cmake | 6 +-- 11 files changed, 32 insertions(+), 48 deletions(-) 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/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/src/bin2llvmir/providers/debugformat.cpp b/src/bin2llvmir/providers/debugformat.cpp index 7e3b856e9..30cf9b5c3 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->getDemangler(), 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 index 15bbfa653..9fab0b756 100644 --- a/src/bin2llvmir/retdec-bin2llvmir-config.cmake +++ b/src/bin2llvmir/retdec-bin2llvmir-config.cmake @@ -12,7 +12,7 @@ find_dependency(retdec 4.0 demangler capstone2llvmir stacofin - llvmir-support + llvm-support common utils llvm 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/fileinfo/CMakeLists.txt b/src/fileinfo/CMakeLists.txt index 18c5d5075..53a432281 100644 --- a/src/fileinfo/CMakeLists.txt +++ b/src/fileinfo/CMakeLists.txt @@ -110,8 +110,9 @@ add_executable(fileinfo target_compile_features(fileinfo PUBLIC cxx_std_17) -target_include_directories(fileinfo PUBLIC - ${RETDEC_SOURCE_DIR} +target_include_directories(fileinfo + PRIVATE + ${RETDEC_SOURCE_DIR} ) target_link_libraries(fileinfo diff --git a/src/pat2yara/CMakeLists.txt b/src/pat2yara/CMakeLists.txt index b203e3cec..741854dda 100644 --- a/src/pat2yara/CMakeLists.txt +++ b/src/pat2yara/CMakeLists.txt @@ -20,10 +20,11 @@ set_target_properties(pat2yara ) target_include_directories(pat2yara - ${RETDEC_SOURCE_DIR} + PRIVATE + ${RETDEC_SOURCE_DIR} ) -install(TARGETS retdec-pat2yara +install(TARGETS pat2yara RUNTIME DESTINATION bin ) diff --git a/src/retdec/CMakeLists.txt b/src/retdec/CMakeLists.txt index 37907e55d..260bf9bfb 100644 --- a/src/retdec/CMakeLists.txt +++ b/src/retdec/CMakeLists.txt @@ -12,36 +12,15 @@ target_include_directories(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::bin2llvmir -WHOLEARCHIVE:$ - ) - set_property(TARGET retdec - 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 - -Wl,-force_load retdec::bin2llvmir - ) -else() # Linux - target_link_libraries(retdec - -Wl,--whole-archive retdec::bin2llvmir -Wl,--no-whole-archive - ) -endif() +target_link_libraries(retdec + PUBLIC + retdec::common + retdec::capstone + retdec::llvm + PRIVATE + retdec::bin2llvmir + retdec::config +) # Create config version file. write_basic_package_version_file( diff --git a/src/retdec/retdec-retdec-config.cmake b/src/retdec/retdec-retdec-config.cmake index 655d3d2ad..9112c0817 100644 --- a/src/retdec/retdec-retdec-config.cmake +++ b/src/retdec/retdec-retdec-config.cmake @@ -3,10 +3,10 @@ include(CMakeFindDependencyMacro) find_dependency(retdec 4.0 REQUIRED COMPONENTS + bin2llvmir config - utils - llvm-support - rapidjson + common + capstone llvm ) From 9ce4ad2582279759b646a7fd477e52f002f9a943 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 1 Apr 2020 11:16:41 +0200 Subject: [PATCH 24/61] cmake/options.cmake: make RETDEC_ENABLE_ALL into option this allows us to set it to ODD and build only documentation --- cmake/options.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmake/options.cmake b/cmake/options.cmake index 8683b1e36..17444969f 100644 --- a/cmake/options.cmake +++ b/cmake/options.cmake @@ -58,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. # From 8b8e69750d0d40ad38de8076074c28b2dc6e7183 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 1 Apr 2020 12:47:17 +0200 Subject: [PATCH 25/61] tests: new build system for unit tests --- CMakeLists.txt | 2 + deps/googletest/CMakeLists.txt | 7 +++- tests/CMakeLists.txt | 1 - tests/bin2llvmir/CMakeLists.txt | 26 +++++++++--- tests/capstone2llvmir/CMakeLists.txt | 42 +++++++++++-------- tests/common/CMakeLists.txt | 17 +++++--- 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 | 17 +++++--- 20 files changed, 262 insertions(+), 102 deletions(-) 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 8518ac915..fc1efd5a8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,12 +30,14 @@ find_package(PythonInterp 3.4 REQUIRED) set(RETDEC_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps") set(RETDEC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") set(RETDEC_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") +set(RETDEC_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") set(RETDEC_BINARY_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share") set(RETDEC_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") set(RETDEC_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") set(RETDEC_INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") set(RETDEC_INSTALL_DATA_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/retdec") set(RETDEC_INSTALL_CMAKE_DIR "${RETDEC_INSTALL_DATA_DIR}/cmake") +set(RETDEC_INSTALL_TESTS_DIR "bin") # 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 diff --git a/deps/googletest/CMakeLists.txt b/deps/googletest/CMakeLists.txt index fea6e93e3..fafb29faf 100644 --- a/deps/googletest/CMakeLists.txt +++ b/deps/googletest/CMakeLists.txt @@ -83,9 +83,9 @@ if(MSVC) set(DEBUG_LIB_SUFFIX "d") endif() -add_library(gtest INTERFACE) - # gtest +add_library(gtest INTERFACE) +add_library(retdec::gtest ALIAS gtest) target_link_libraries(gtest INTERFACE debug ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} @@ -104,6 +104,7 @@ add_dependencies(gtest googletest) # gtest_main add_library(gtest_main INTERFACE) +add_library(retdec::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} @@ -123,6 +124,7 @@ add_dependencies(gtest_main googletest) # gmock add_library(gmock INTERFACE) +add_library(retdec::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} @@ -144,6 +146,7 @@ add_dependencies(gmock googletest) # gmock_main add_library(gmock_main INTERFACE) +add_library(retdec::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} 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..4cc9978b5 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_link_libraries(tests-bin2llvmir + retdec::bin2llvmir + retdec::utils + retdec::gmock_main +) + +target_include_directories(tests-bin2llvmir + PRIVATE + ${RETDEC_TESTS_DIR} +) + +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..9bb60ca11 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_link_libraries(tests-capstone2llvmir + retdec::capstone2llvmir + retdec::llvmir-emul + retdec::utils + retdec::keystone + retdec::gmock_main ) -target_include_directories(retdec-tests-capstone2llvmir - PUBLIC - ${PROJECT_SOURCE_DIR}/tests/ + +target_include_directories(tests-capstone2llvmir + PRIVATE + ${RETDEC_TESTS_DIR} ) -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 89cdf8a13..ecfe7de76 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,10 +13,17 @@ add_executable(retdec-tests-common tool_info_tests.cpp type_tests.cpp ) -target_link_libraries(retdec-tests-common + +target_link_libraries(tests-common retdec::common - gmock_main + retdec::gmock_main +) + +set_target_properties(tests-common + PROPERTIES + OUTPUT_NAME "retdec-tests-common" ) -install(TARGETS retdec-tests-common - RUNTIME DESTINATION ${RETDEC_TESTS_DIR} + +install(TARGETS tests-common + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} ) diff --git a/tests/config/CMakeLists.txt b/tests/config/CMakeLists.txt index 87d253352..d6dd34274 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::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..5897a60e0 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::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..21165a506 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::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..4d3f0783d 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::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..cba58a56c 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_link_libraries(tests-fileformat + retdec::fileformat + retdec::utils + retdec::gmock_main +) + +target_include_directories(tests-fileformat + PRIVATE + ${RETDEC_TESTS_DIR} +) + +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..a7fd53c9c 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_link_libraries(tests-llvm-emul + retdec::utils + retdec::llvmir-emul + retdec::gmock_main +) + +target_include_directories(tests-llvm-emul + PRIVATE + ${RETDEC_TESTS_DIR} +) + +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..202361b92 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_link_libraries(tests-llvmir2hll + retdec::llvmir2hll + retdec::utils + retdec::gmock_main +) + +target_include_directories(tests-llvmir2hll + PRIVATE + ${RETDEC_TESTS_DIR} +) + +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..88438a7bb 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::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..8c18853d5 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::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..f27731a38 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::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 40f592702..46bb6b1e8 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,10 +14,17 @@ add_executable(retdec-tests-utils string_tests.cpp time_tests.cpp ) -target_link_libraries(retdec-tests-utils + +target_link_libraries(tests-utils retdec::utils - gmock_main + retdec::gmock_main +) + +set_target_properties(tests-utils + PROPERTIES + OUTPUT_NAME "retdec-tests-utils" ) -install(TARGETS retdec-tests-utils - RUNTIME DESTINATION ${RETDEC_TESTS_DIR} + +install(TARGETS tests-utils + RUNTIME DESTINATION ${RETDEC_INSTALL_TESTS_DIR} ) From e73b77f1b35582685678a03d54c342e65f15f3d8 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 1 Apr 2020 13:14:17 +0200 Subject: [PATCH 26/61] pelib: fix doxygen comment --- include/retdec/pelib/PeHeader.h | 1 - 1 file changed, 1 deletion(-) diff --git a/include/retdec/pelib/PeHeader.h b/include/retdec/pelib/PeHeader.h index 39263b7a4..db2b96136 100644 --- a/include/retdec/pelib/PeHeader.h +++ b/include/retdec/pelib/PeHeader.h @@ -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. From 4cc21d9215ef411d570075aa6611397bdbed52ec Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 1 Apr 2020 14:51:13 +0200 Subject: [PATCH 27/61] retdec/retdec: remove unused include of llvm-support/diagnostics.h --- src/retdec/retdec.cpp | 1 - 1 file changed, 1 deletion(-) 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" /** From 42094a492de7246e2fcc25c9538416227b41f3f2 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 1 Apr 2020 15:31:36 +0200 Subject: [PATCH 28/61] fileformat: do not include openssl in headers --- include/retdec/fileformat/file_format/pe/pe_format.h | 3 +++ .../retdec/fileformat/types/certificate_table/certificate.h | 3 ++- src/fileformat/types/certificate_table/certificate.cpp | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) 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/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" From 7e89e303e119971c7f119fa97a8662a04ae6588e Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 1 Apr 2020 15:44:18 +0200 Subject: [PATCH 29/61] 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. --- CMakeLists.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index fc1efd5a8..b1736185b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -32,10 +32,10 @@ set(RETDEC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") set(RETDEC_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") set(RETDEC_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") set(RETDEC_BINARY_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share") -set(RETDEC_INSTALL_BIN_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_BINDIR}") -set(RETDEC_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_INCLUDEDIR}") -set(RETDEC_INSTALL_LIB_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") -set(RETDEC_INSTALL_DATA_DIR "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/retdec") +set(RETDEC_INSTALL_BIN_DIR "${CMAKE_INSTALL_BINDIR}") +set(RETDEC_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}") +set(RETDEC_INSTALL_LIB_DIR "${CMAKE_INSTALL_LIBDIR}") +set(RETDEC_INSTALL_DATA_DIR "${CMAKE_INSTALL_DATADIR}/retdec") set(RETDEC_INSTALL_CMAKE_DIR "${RETDEC_INSTALL_DATA_DIR}/cmake") set(RETDEC_INSTALL_TESTS_DIR "bin") From 120353fb22899d7e82745631c3048c077acf765d Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Wed, 1 Apr 2020 23:01:47 +0200 Subject: [PATCH 30/61] deps/yara: refactor cmake to properly install libs --- deps/yara/CMakeLists.txt | 72 +++++++++++++++++++++---- deps/yara/retdec-libyara-config.cmake | 10 ++++ src/yaracpp/CMakeLists.txt | 5 +- src/yaracpp/retdec-yaracpp-config.cmake | 7 +++ 4 files changed, 83 insertions(+), 11 deletions(-) create mode 100644 deps/yara/retdec-libyara-config.cmake diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index 59d21b569..0ce891bea 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -104,21 +104,75 @@ if(NOT MSVC) ) endif() -set(LIBRARIES - ${YARA_LIBRARY_DIR}/${YARA_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX} - ${CMAKE_THREAD_LIBS_INIT} -) +set(YARA_LIBRARY ${YARA_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(YARA_LIBRARY_PATH ${YARA_LIBRARY_DIR}/${YARA_LIBRARY}) add_library(libyara INTERFACE) +add_library(retdec::libyara ALIAS libyara) add_dependencies(libyara yara) -set_target_properties(libyara - PROPERTIES - INTERFACE_LINK_LIBRARIES "${LIBRARIES}" -) + target_include_directories(libyara SYSTEM INTERFACE $ - # nothing for install because this does not need to be installed + $ +) + +target_link_libraries(libyara + INTERFACE + $ + #$ + #$ + $ + Threads::Threads +) + +install( + FILES ${YARA_LIBRARY_PATH} + DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) +install( + DIRECTORY ${YARA_INCLUDE_DIR}/ + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps +) + +# Configure config file. +set(LIBYARA_LIBRARY "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${YARA_LIBRARY}") +configure_package_config_file( + "retdec-libyara-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + LIBYARA_LIBRARY +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +install(TARGETS libyara + EXPORT libyara-targets + COMPONENT libyara +) + +# Export targets. +install(EXPORT libyara-targets + FILE "retdec-libyara-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT libyara +) + +# Install CMake files. +install( + FILES + "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT libyara ) # Install yarac application - we may need it to compile YARA files. diff --git a/deps/yara/retdec-libyara-config.cmake b/deps/yara/retdec-libyara-config.cmake new file mode 100644 index 000000000..749428052 --- /dev/null +++ b/deps/yara/retdec-libyara-config.cmake @@ -0,0 +1,10 @@ +@PACKAGE_INIT@ + +find_package(Threads REQUIRED) + +add_library(retdec::libyara-libs STATIC IMPORTED) +set_target_properties(retdec::libyara-libs PROPERTIES + IMPORTED_LOCATION @PACKAGE_LIBYARA_LIBRARY@ +) + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-libyara-targets.cmake) diff --git a/src/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index 12c1d1b11..eee4b7731 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -14,7 +14,8 @@ target_include_directories(yaracpp ) target_link_libraries(yaracpp - PRIVATE libyara + PRIVATE + retdec::libyara ) # Create config version file. @@ -32,7 +33,7 @@ install( ) # Install libs. -install(TARGETS yaracpp libyara +install(TARGETS yaracpp EXPORT yaracpp-targets COMPONENT yaracpp ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} diff --git a/src/yaracpp/retdec-yaracpp-config.cmake b/src/yaracpp/retdec-yaracpp-config.cmake index 8d6d9c830..dcddbeceb 100644 --- a/src/yaracpp/retdec-yaracpp-config.cmake +++ b/src/yaracpp/retdec-yaracpp-config.cmake @@ -1,2 +1,9 @@ +include(CMakeFindDependencyMacro) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + libyara +) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-targets.cmake) From aa77fff254618792d7ed6ebb0795972690b61104 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 10:01:17 +0200 Subject: [PATCH 31/61] deps/yara: small cosmetic changes --- deps/yara/CMakeLists.txt | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index 0ce891bea..eff4ab287 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -126,15 +126,6 @@ target_link_libraries(libyara Threads::Threads ) -install( - FILES ${YARA_LIBRARY_PATH} - DESTINATION ${RETDEC_INSTALL_LIB_DIR} -) -install( - DIRECTORY ${YARA_INCLUDE_DIR}/ - DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps -) - # Configure config file. set(LIBYARA_LIBRARY "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${YARA_LIBRARY}") configure_package_config_file( @@ -152,6 +143,22 @@ write_basic_package_version_file( COMPATIBILITY AnyNewerVersion ) +# Install includes. +install( + DIRECTORY + ${YARA_INCLUDE_DIR}/ + DESTINATION + ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps +) + +# Install libs. +install( + FILES + ${YARA_LIBRARY_PATH} + DESTINATION + ${RETDEC_INSTALL_LIB_DIR} +) + install(TARGETS libyara EXPORT libyara-targets COMPONENT libyara From 4521668189b6c14177251ecfff3be72573e6172a Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 10:01:38 +0200 Subject: [PATCH 32/61] deps/llvm: refactor cmake to properly install libs --- deps/llvm/CMakeLists.txt | 61 ++++++++++++++++++------------ deps/llvm/retdec-llvm-config.cmake | 9 +++++ 2 files changed, 46 insertions(+), 24 deletions(-) diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index e5f4bfb1e..8499d8ade 100644 --- a/deps/llvm/CMakeLists.txt +++ b/deps/llvm/CMakeLists.txt @@ -194,11 +194,6 @@ 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) @@ -216,18 +211,33 @@ target_include_directories(llvm ) 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 + $ + debug + $ ) - target_link_libraries(llvm - INTERFACE optimized + + # 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 + ${binary_dir}/${DEBUG_DIR}lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX} ${binary_dir}/${RELEASE_DIR}lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX} + DESTINATION + ${RETDEC_INSTALL_LIB_DIR} + OPTIONAL ) + + list(APPEND LLVM_LIBS_PATHS "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX}") 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 "") @@ -235,18 +245,24 @@ if(UNIX) 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} + 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() +# Configure config file. +configure_package_config_file( + "retdec-llvm-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + LLVM_LIBS_PATHS +) + # Create config version file. write_basic_package_version_file( "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config-version.cmake" @@ -264,12 +280,9 @@ install( COMPONENT llvm ) -# Install libs. install(TARGETS llvm EXPORT llvm-targets COMPONENT llvm - ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} - LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) # Export targets. @@ -283,7 +296,7 @@ install(EXPORT llvm-targets # Install CMake files. install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config.cmake" "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" diff --git a/deps/llvm/retdec-llvm-config.cmake b/deps/llvm/retdec-llvm-config.cmake index 139e94c14..207c1dfd3 100644 --- a/deps/llvm/retdec-llvm-config.cmake +++ b/deps/llvm/retdec-llvm-config.cmake @@ -1,7 +1,16 @@ +@PACKAGE_INIT@ find_package(Threads REQUIRED) if(UNIX OR MINGW) find_package(ZLIB REQUIRED) endif() +add_library(llvm-libs INTERFACE) +add_library(retdec::llvm-libs ALIAS llvm-libs) +foreach(LLVM_LIB @PACKAGE_LLVM_LIBS_PATHS@) + target_link_libraries(llvm-libs INTERFACE + ${LLVM_LIB} + ) +endforeach(LLVM_LIB) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-targets.cmake) From 97dc1693386825f99db20602cee34d4c9a6d666f Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 10:36:59 +0200 Subject: [PATCH 33/61] deps/capstone: refactor cmake to properly install libs --- deps/capstone/CMakeLists.txt | 38 +++++++++++++++++----- deps/capstone/retdec-capstone-config.cmake | 6 ++++ 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/deps/capstone/CMakeLists.txt b/deps/capstone/CMakeLists.txt index 1fdce4700..f6cf99e3a 100644 --- a/deps/capstone/CMakeLists.txt +++ b/deps/capstone/CMakeLists.txt @@ -104,6 +104,8 @@ endif() ExternalProject_Get_Property(capstone-project source_dir) ExternalProject_Get_Property(capstone-project binary_dir) +set(CAPSTONE_LIB ${CMAKE_STATIC_LIBRARY_PREFIX}capstone${CMAKE_STATIC_LIBRARY_SUFFIX}) + # Add libraries. add_library(capstone INTERFACE) add_library(retdec::capstone ALIAS capstone) @@ -116,13 +118,22 @@ target_include_directories(capstone $ ) -target_link_libraries(capstone - INTERFACE debug - ${binary_dir}/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}capstone${CMAKE_STATIC_LIBRARY_SUFFIX} +target_link_libraries(capstone INTERFACE + $ + debug + $ + optimized + $ ) -target_link_libraries(capstone - INTERFACE optimized - ${binary_dir}/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}capstone${CMAKE_STATIC_LIBRARY_SUFFIX} + +# Configure config file. +set(CAPSTONE_LIB_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CAPSTONE_LIB}") +configure_package_config_file( + "retdec-capstone-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + CAPSTONE_LIB_INSTALLED ) # Create config version file. @@ -142,11 +153,20 @@ install( ) # 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 + ${binary_dir}/${DEBUG_DIR}${CAPSTONE_LIB} + ${binary_dir}/${RELEASE_DIR}${CAPSTONE_LIB} + DESTINATION + ${RETDEC_INSTALL_LIB_DIR} + OPTIONAL +) + install(TARGETS capstone EXPORT capstone-targets COMPONENT capstone - ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} - LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) # Export targets. @@ -160,7 +180,7 @@ install(EXPORT capstone-targets # Install CMake files. install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-capstone-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config.cmake" "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" diff --git a/deps/capstone/retdec-capstone-config.cmake b/deps/capstone/retdec-capstone-config.cmake index 37d1fc8aa..8b34023b8 100644 --- a/deps/capstone/retdec-capstone-config.cmake +++ b/deps/capstone/retdec-capstone-config.cmake @@ -1,2 +1,8 @@ +@PACKAGE_INIT@ + +add_library(retdec::capstone-libs STATIC IMPORTED) +set_target_properties(retdec::capstone-libs PROPERTIES + IMPORTED_LOCATION @PACKAGE_CAPSTONE_LIB_INSTALLED@ +) include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone-targets.cmake) From e0078ddfd7ce5ed39891c1c1a71c023b38fd0c30 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 10:51:20 +0200 Subject: [PATCH 34/61] deps: refactor cmake files --- deps/CMakeLists.txt | 3 +- deps/googletest/CMakeLists.txt | 86 +++++++++++++--------------------- deps/keystone/CMakeLists.txt | 8 ++-- deps/yaramod/CMakeLists.txt | 8 ++-- 4 files changed, 41 insertions(+), 64 deletions(-) diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 3336b84a8..952e06971 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -1,6 +1,7 @@ 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/googletest/CMakeLists.txt b/deps/googletest/CMakeLists.txt index fafb29faf..1c9a49c6c 100644 --- a/deps/googletest/CMakeLists.txt +++ b/deps/googletest/CMakeLists.txt @@ -77,91 +77,71 @@ 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() - # gtest add_library(gtest INTERFACE) add_library(retdec::gtest ALIAS gtest) -target_link_libraries(gtest - INTERFACE debug - ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} +add_dependencies(gtest googletest) +target_link_libraries(gtest INTERFACE Threads::Threads -) -target_link_libraries(gtest - INTERFACE optimized + 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} - Threads::Threads ) target_include_directories(gtest SYSTEM INTERFACE $ ) -add_dependencies(gtest googletest) # gtest_main add_library(gtest_main INTERFACE) add_library(retdec::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} +target_link_libraries(gtest_main INTERFACE + gtest Threads::Threads -) -target_link_libraries(gtest_main - INTERFACE optimized + 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} - Threads::Threads -) -target_link_libraries(gtest_main INTERFACE gtest) -target_include_directories(gtest_main - SYSTEM INTERFACE - $ ) -add_dependencies(gtest_main googletest) +# target_include_directories(gtest_main +# SYSTEM INTERFACE +# $ +# ) +# add_dependencies(gtest_main googletest) # gmock add_library(gmock INTERFACE) add_library(retdec::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} +target_link_libraries(gmock INTERFACE + gtest Threads::Threads -) -target_link_libraries(gmock - INTERFACE optimized + 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} - Threads::Threads ) -target_link_libraries(gmock - INTERFACE gtest) target_include_directories(gmock SYSTEM INTERFACE - $ +# $ $ ) -add_dependencies(gmock googletest) +# add_dependencies(gmock googletest) # gmock_main add_library(gmock_main INTERFACE) add_library(retdec::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} +target_link_libraries(gmock_main INTERFACE + gmock Threads::Threads -) -target_link_libraries(gmock_main - INTERFACE optimized + 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} - Threads::Threads -) -target_link_libraries(gmock_main - INTERFACE gmock) -target_include_directories(gmock_main - SYSTEM INTERFACE - $ - $ ) -add_dependencies(gmock_main googletest) +# target_include_directories(gmock_main +# SYSTEM INTERFACE +# $ +# $ +# ) +# add_dependencies(gmock_main googletest) diff --git a/deps/keystone/CMakeLists.txt b/deps/keystone/CMakeLists.txt index 89360a280..cae188ab2 100644 --- a/deps/keystone/CMakeLists.txt +++ b/deps/keystone/CMakeLists.txt @@ -83,11 +83,9 @@ target_include_directories(keystone # nothing for install because this does not need to be installed ) -target_link_libraries(keystone - INTERFACE debug +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 + optimized ${binary_dir}/llvm/lib/${RELEASE_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}keystone${CMAKE_STATIC_LIBRARY_SUFFIX} ) diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index b62e9daac..1a736f080 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -79,14 +79,12 @@ target_include_directories(yaramod $ ) -target_link_libraries(yaramod - INTERFACE debug +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_link_libraries(yaramod - INTERFACE optimized + 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} From f8775525a49487206e1d0b281cbe29ca9ff8cad3 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 14:27:52 +0200 Subject: [PATCH 35/61] deps: refactor cmake files --- deps/capstone/retdec-capstone-config.cmake | 10 ++- deps/llvm/retdec-llvm-config.cmake | 16 ++-- deps/openssl/CMakeLists.txt | 77 ++++++++++++++++--- .../retdec-openssl-crypto-config.cmake | 12 +++ deps/tinyxml2/CMakeLists.txt | 42 +++++++++- deps/tinyxml2/retdec-tinyxml2-config.cmake | 2 + deps/yara/retdec-libyara-config.cmake | 10 ++- src/cpdetect/CMakeLists.txt | 2 +- src/cpdetect/retdec-cpdetect-config.cmake | 1 + src/crypto/CMakeLists.txt | 4 +- src/crypto/retdec-crypto-config.cmake | 8 +- src/fileformat/CMakeLists.txt | 2 + src/fileformat/retdec-fileformat-config.cmake | 1 + 13 files changed, 154 insertions(+), 33 deletions(-) create mode 100644 deps/openssl/retdec-openssl-crypto-config.cmake create mode 100644 deps/tinyxml2/retdec-tinyxml2-config.cmake diff --git a/deps/capstone/retdec-capstone-config.cmake b/deps/capstone/retdec-capstone-config.cmake index 8b34023b8..5ae5e6aaa 100644 --- a/deps/capstone/retdec-capstone-config.cmake +++ b/deps/capstone/retdec-capstone-config.cmake @@ -1,8 +1,10 @@ @PACKAGE_INIT@ -add_library(retdec::capstone-libs STATIC IMPORTED) -set_target_properties(retdec::capstone-libs PROPERTIES - IMPORTED_LOCATION @PACKAGE_CAPSTONE_LIB_INSTALLED@ -) +if(NOT TARGET retdec::capstone-libs) + add_library(retdec::capstone-libs STATIC IMPORTED) + set_target_properties(retdec::capstone-libs PROPERTIES + IMPORTED_LOCATION @PACKAGE_CAPSTONE_LIB_INSTALLED@ + ) +endif() include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone-targets.cmake) diff --git a/deps/llvm/retdec-llvm-config.cmake b/deps/llvm/retdec-llvm-config.cmake index 207c1dfd3..cf6973e73 100644 --- a/deps/llvm/retdec-llvm-config.cmake +++ b/deps/llvm/retdec-llvm-config.cmake @@ -5,12 +5,14 @@ if(UNIX OR MINGW) find_package(ZLIB REQUIRED) endif() -add_library(llvm-libs INTERFACE) -add_library(retdec::llvm-libs ALIAS llvm-libs) -foreach(LLVM_LIB @PACKAGE_LLVM_LIBS_PATHS@) - target_link_libraries(llvm-libs INTERFACE - ${LLVM_LIB} - ) -endforeach(LLVM_LIB) +if(NOT TARGET llvm-libs) + add_library(llvm-libs INTERFACE) + add_library(retdec::llvm-libs ALIAS llvm-libs) + foreach(LLVM_LIB @PACKAGE_LLVM_LIBS_PATHS@) + target_link_libraries(llvm-libs INTERFACE + ${LLVM_LIB} + ) + endforeach(LLVM_LIB) +endif() include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-targets.cmake) diff --git a/deps/openssl/CMakeLists.txt b/deps/openssl/CMakeLists.txt index e77ad1105..6242e5977 100644 --- a/deps/openssl/CMakeLists.txt +++ b/deps/openssl/CMakeLists.txt @@ -161,25 +161,22 @@ ExternalProject_Add(openssl LOG_INSTALL 1 ) -set(OPENSSL_INCLUDES - "${OPENSSL_INSTALL_DIR}/include" - PARENT_SCOPE -) - -set(OPENSSL_LIBRARIES - "${OPENSSL_INSTALL_DIR}/lib/libssl${CMAKE_STATIC_LIBRARY_SUFFIX}" - "${OPENSSL_INSTALL_DIR}/lib/libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}" - PARENT_SCOPE -) +set(OPENSSL_CRYPTO_LIB libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}) add_library(openssl-crypto INTERFACE) +add_library(retdec::openssl-crypto ALIAS openssl-crypto) add_dependencies(openssl-crypto openssl) + target_include_directories(openssl-crypto - SYSTEM INTERFACE $ + SYSTEM INTERFACE + $ + $ ) + target_link_libraries(openssl-crypto INTERFACE - "${OPENSSL_INSTALL_DIR}/lib/libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}" + $ + $ Threads::Threads ) if(MSVC) @@ -197,3 +194,59 @@ elseif(UNIX) ${CMAKE_DL_LIBS} ) endif() + +# Configure config file. +set(OPENSSL_CRYPTO_LIB_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/deps/${OPENSSL_CRYPTO_LIB}") +configure_package_config_file( + "retdec-openssl-crypto-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + OPENSSL_CRYPTO_LIB_INSTALLED +) + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY + ${OPENSSL_INSTALL_DIR}/include/openssl + DESTINATION + ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps +) + +# Install libs. +install( + FILES + ${OPENSSL_INSTALL_DIR}/lib/${OPENSSL_CRYPTO_LIB} + DESTINATION + ${RETDEC_INSTALL_LIB_DIR}/deps +) + +install(TARGETS openssl-crypto + EXPORT openssl-crypto-targets + COMPONENT openssl-crypto +) + +# Export targets. +install(EXPORT openssl-crypto-targets + FILE "retdec-openssl-crypto-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT openssl-crypto +) + +# Install CMake files. +install( + FILES + "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT openssl-crypto +) diff --git a/deps/openssl/retdec-openssl-crypto-config.cmake b/deps/openssl/retdec-openssl-crypto-config.cmake new file mode 100644 index 000000000..4abbcaab3 --- /dev/null +++ b/deps/openssl/retdec-openssl-crypto-config.cmake @@ -0,0 +1,12 @@ +@PACKAGE_INIT@ + +find_package(Threads REQUIRED) + +if(NOT TARGET retdec::openssl-crypto-libs) + add_library(retdec::openssl-crypto-libs STATIC IMPORTED) + set_target_properties(retdec::openssl-crypto-libs PROPERTIES + IMPORTED_LOCATION @PACKAGE_OPENSSL_CRYPTO_LIB_INSTALLED@ + ) +endif() + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-openssl-crypto-targets.cmake) diff --git a/deps/tinyxml2/CMakeLists.txt b/deps/tinyxml2/CMakeLists.txt index a92b624fc..2ff055a14 100644 --- a/deps/tinyxml2/CMakeLists.txt +++ b/deps/tinyxml2/CMakeLists.txt @@ -7,7 +7,7 @@ add_library(retdec::tinyxml2 ALIAS tinyxml2) target_include_directories(tinyxml2 SYSTEM INTERFACE $ - # nothing for install because this does not need to be installed + $ PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/tinyxml2 ) @@ -18,3 +18,43 @@ if(MSVC) else() target_compile_options(tinyxml2 PRIVATE "-w") endif() + +# Create config version file. +write_basic_package_version_file( + "${RETDEC_BINARY_SHARE_DIR}/retdec-tinyxml2-config-version.cmake" + VERSION ${PROJECT_VERSION} + COMPATIBILITY AnyNewerVersion +) + +# Install includes. +install( + DIRECTORY ${RETDEC_DEPS_DIR}/tinyxml2/include/tinyxml2 + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + COMPONENT tinyxml2 +) + +# Install libs. +install(TARGETS tinyxml2 + EXPORT tinyxml2-targets + COMPONENT tinyxml2 + ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} +) + +# Export targets. +install(EXPORT tinyxml2-targets + FILE "retdec-tinyxml2-targets.cmake" + NAMESPACE retdec:: + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + COMPONENT tinyxml2 +) + +# Install CMake files. +install( + FILES + "${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-tinyxml2-config-version.cmake" + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" + COMPONENT tinyxml2 +) \ No newline at end of file diff --git a/deps/tinyxml2/retdec-tinyxml2-config.cmake b/deps/tinyxml2/retdec-tinyxml2-config.cmake new file mode 100644 index 000000000..c5e425f8c --- /dev/null +++ b/deps/tinyxml2/retdec-tinyxml2-config.cmake @@ -0,0 +1,2 @@ + +include(${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-targets.cmake) diff --git a/deps/yara/retdec-libyara-config.cmake b/deps/yara/retdec-libyara-config.cmake index 749428052..b9d6014ce 100644 --- a/deps/yara/retdec-libyara-config.cmake +++ b/deps/yara/retdec-libyara-config.cmake @@ -2,9 +2,11 @@ find_package(Threads REQUIRED) -add_library(retdec::libyara-libs STATIC IMPORTED) -set_target_properties(retdec::libyara-libs PROPERTIES - IMPORTED_LOCATION @PACKAGE_LIBYARA_LIBRARY@ -) +if(NOT TARGET retdec::libyara-libs) + add_library(retdec::libyara-libs STATIC IMPORTED) + set_target_properties(retdec::libyara-libs PROPERTIES + IMPORTED_LOCATION @PACKAGE_LIBYARA_LIBRARY@ + ) +endif() include(${CMAKE_CURRENT_LIST_DIR}/retdec-libyara-targets.cmake) diff --git a/src/cpdetect/CMakeLists.txt b/src/cpdetect/CMakeLists.txt index 230be7cce..1c874cccf 100644 --- a/src/cpdetect/CMakeLists.txt +++ b/src/cpdetect/CMakeLists.txt @@ -54,7 +54,7 @@ install( ) # Install libs. -install(TARGETS cpdetect tinyxml2 +install(TARGETS cpdetect EXPORT cpdetect-targets COMPONENT cpdetect ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} diff --git a/src/cpdetect/retdec-cpdetect-config.cmake b/src/cpdetect/retdec-cpdetect-config.cmake index dbd6d0daf..d4c35da5b 100644 --- a/src/cpdetect/retdec-cpdetect-config.cmake +++ b/src/cpdetect/retdec-cpdetect-config.cmake @@ -7,6 +7,7 @@ find_dependency(retdec 4.0 utils yaracpp llvm + tinyxml2 ) include(${CMAKE_CURRENT_LIST_DIR}/retdec-cpdetect-targets.cmake) diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index d09fae0b2..406842d74 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(crypto target_link_libraries(crypto PRIVATE retdec::utils - openssl-crypto + retdec::openssl-crypto ) # Create config version file. @@ -33,7 +33,7 @@ install( ) # Install libs. -install(TARGETS crypto openssl-crypto +install(TARGETS crypto EXPORT crypto-targets COMPONENT crypto ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} diff --git a/src/crypto/retdec-crypto-config.cmake b/src/crypto/retdec-crypto-config.cmake index f55dfb59c..5503e0f04 100644 --- a/src/crypto/retdec-crypto-config.cmake +++ b/src/crypto/retdec-crypto-config.cmake @@ -1,7 +1,11 @@ include(CMakeFindDependencyMacro) find_dependency(Threads REQUIRED) -find_dependency(OpenSSL 1.0.1 REQUIRED) -find_dependency(retdec 4.0 REQUIRED COMPONENTS utils) +find_dependency(retdec 4.0 + REQUIRED + COMPONENTS + utils + openssl-crypto +) include(${CMAKE_CURRENT_LIST_DIR}/retdec-crypto-targets.cmake) diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index 2aabda899..da1e7a04d 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -93,6 +93,8 @@ target_link_libraries(fileformat retdec::pelib retdec::elfio retdec::llvm + PRIVATE + retdec::openssl-crypto ) # Create config version file. diff --git a/src/fileformat/retdec-fileformat-config.cmake b/src/fileformat/retdec-fileformat-config.cmake index 2e5ac829e..db3dbb280 100644 --- a/src/fileformat/retdec-fileformat-config.cmake +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -9,6 +9,7 @@ find_dependency(retdec 4.0 pelib elfio llvm + openssl-crypto ) include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) From 0484d800a32d32bbb1f2959fbf3f9ffb31d1cbda Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 15:05:27 +0200 Subject: [PATCH 36/61] deps/yaramod: refactor cmake to properly install libs --- deps/yaramod/CMakeLists.txt | 39 +++++++++++++++++++----- deps/yaramod/retdec-yaramod-config.cmake | 11 +++++++ 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index 1a736f080..e6b23d1de 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -70,24 +70,50 @@ add_dependencies(yaramod yaramod-project) target_include_directories(yaramod SYSTEM INTERFACE $ - $ $ $ $ $ $ $ + $ ) 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} + $ optimized + $ +) + +# 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 + ${binary_dir}/src/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}yaramod${CMAKE_STATIC_LIBRARY_SUFFIX} ${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} + DESTINATION + ${RETDEC_INSTALL_LIB_DIR} + OPTIONAL +) + +list(APPEND YARAMOD_LIBS_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}yaramod${CMAKE_STATIC_LIBRARY_SUFFIX}") +list(APPEND YARAMOD_LIBS_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}pog_fmt${CMAKE_STATIC_LIBRARY_SUFFIX}") +list(APPEND YARAMOD_LIBS_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}pog_re2${CMAKE_STATIC_LIBRARY_SUFFIX}") + +# Configure config file. +configure_package_config_file( + "retdec-yaramod-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config.cmake" + INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} + PATH_VARS + YARAMOD_LIBS_INSTALLED ) # Create config version file. @@ -106,12 +132,9 @@ install( COMPONENT yaramod ) -# Install libs. install(TARGETS yaramod EXPORT yaramod-targets COMPONENT yaramod - ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} - LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) # Export targets. @@ -125,7 +148,7 @@ install(EXPORT yaramod-targets # Install CMake files. install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-yaramod-config.cmake" + "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config.cmake" "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" diff --git a/deps/yaramod/retdec-yaramod-config.cmake b/deps/yaramod/retdec-yaramod-config.cmake index 81214aae7..5049bb2c9 100644 --- a/deps/yaramod/retdec-yaramod-config.cmake +++ b/deps/yaramod/retdec-yaramod-config.cmake @@ -1,2 +1,13 @@ +@PACKAGE_INIT@ + +if(NOT TARGET yaramod-libs) + add_library(yaramod-libs INTERFACE) + add_library(retdec::yaramod-libs ALIAS yaramod-libs) + foreach(YARAMOD_LIB @PACKAGE_YARAMOD_LIBS_INSTALLED@) + target_link_libraries(yaramod-libs INTERFACE + ${YARAMOD_LIB} + ) + endforeach(YARAMOD_LIB) +endif() include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaramod-targets.cmake) From 66663f44e74472d9bed6fd7507018935a724e6d7 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 15:38:22 +0200 Subject: [PATCH 37/61] CMakeLists.txt: fix files installation --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b1736185b..da03bc911 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -132,6 +132,6 @@ install( FILES "${RETDEC_BINARY_SHARE_DIR}/retdec-config.cmake" "${RETDEC_BINARY_SHARE_DIR}/retdec-config-version.cmake" - DESTINATION DESTINATION - ${RETDEC_INSTALL_CMAKE_DIR} + DESTINATION + "${RETDEC_INSTALL_CMAKE_DIR}" ) From 4e5be6205ea6ed4ec41993940326ad33de6dbb23 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 16:42:51 +0200 Subject: [PATCH 38/61] config/retdec-config-config.cmake: fix required component order Looks like this may matter (on some machines or cmake version). --- src/config/retdec-config-config.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/config/retdec-config-config.cmake b/src/config/retdec-config-config.cmake index 1f336d703..a00ff29ec 100644 --- a/src/config/retdec-config-config.cmake +++ b/src/config/retdec-config-config.cmake @@ -1,5 +1,5 @@ include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS common serdes utils) +find_dependency(retdec 4.0 REQUIRED COMPONENTS common rapidjson serdes utils) include(${CMAKE_CURRENT_LIST_DIR}/retdec-config-targets.cmake) From 27930787bc5e510cbf1ee45bdf0bfa6d2ffff222 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 16:51:51 +0200 Subject: [PATCH 39/61] deps/llvm: fix include installation --- deps/llvm/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index 8499d8ade..bab06f98f 100644 --- a/deps/llvm/CMakeLists.txt +++ b/deps/llvm/CMakeLists.txt @@ -273,8 +273,8 @@ write_basic_package_version_file( # Install includes. install( DIRECTORY - ${source_dir}/include/llvm - ${binary_dir}/include/llvm + ${source_dir}/include/ + ${binary_dir}/include/ DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps COMPONENT llvm From a0f8bf8b48e161e8a725b83905da8c2865153cf4 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 17:47:42 +0200 Subject: [PATCH 40/61] fileformat/cmake: do not use openssl-crypto For some reasons, this can cause linking problems on some machines. --- src/fileformat/CMakeLists.txt | 2 -- src/fileformat/retdec-fileformat-config.cmake | 1 - 2 files changed, 3 deletions(-) diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index da1e7a04d..2aabda899 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -93,8 +93,6 @@ target_link_libraries(fileformat retdec::pelib retdec::elfio retdec::llvm - PRIVATE - retdec::openssl-crypto ) # Create config version file. diff --git a/src/fileformat/retdec-fileformat-config.cmake b/src/fileformat/retdec-fileformat-config.cmake index db3dbb280..2e5ac829e 100644 --- a/src/fileformat/retdec-fileformat-config.cmake +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -9,7 +9,6 @@ find_dependency(retdec 4.0 pelib elfio llvm - openssl-crypto ) include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) From 2134e8a7c44166e3cf4a39d9824a6e4507b712b0 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 18:44:24 +0200 Subject: [PATCH 41/61] deps/yaramod: fix link library order --- deps/yaramod/CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index e6b23d1de..679391f79 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -80,13 +80,14 @@ target_include_directories(yaramod ) target_link_libraries(yaramod INTERFACE - $ - $ - $ debug $ optimized $ + general + $ + $ + $ ) # Install libs. From 3cd5ad62b967053cbc86d75d14f65e2ad95a8aa3 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 18:49:53 +0200 Subject: [PATCH 42/61] deps/googletests: fix target link library order --- deps/googletest/CMakeLists.txt | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/deps/googletest/CMakeLists.txt b/deps/googletest/CMakeLists.txt index 1c9a49c6c..695913fe6 100644 --- a/deps/googletest/CMakeLists.txt +++ b/deps/googletest/CMakeLists.txt @@ -82,11 +82,12 @@ add_library(gtest INTERFACE) add_library(retdec::gtest ALIAS gtest) add_dependencies(gtest googletest) target_link_libraries(gtest INTERFACE - Threads::Threads 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 @@ -97,12 +98,13 @@ target_include_directories(gtest add_library(gtest_main INTERFACE) add_library(retdec::gtest_main ALIAS gtest_main) target_link_libraries(gtest_main INTERFACE - gtest - Threads::Threads +# Threads::Threads 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 ) # target_include_directories(gtest_main # SYSTEM INTERFACE @@ -114,12 +116,13 @@ target_link_libraries(gtest_main INTERFACE add_library(gmock INTERFACE) add_library(retdec::gmock ALIAS gmock) target_link_libraries(gmock INTERFACE - gtest - Threads::Threads +# Threads::Threads 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 @@ -132,12 +135,13 @@ target_include_directories(gmock add_library(gmock_main INTERFACE) add_library(retdec::gmock_main ALIAS gmock_main) target_link_libraries(gmock_main INTERFACE - gmock - Threads::Threads +# Threads::Threads 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 ) # target_include_directories(gmock_main # SYSTEM INTERFACE From bac8b1918800726ec0155ffe58155199cdd2d948 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 19:46:42 +0200 Subject: [PATCH 43/61] rtti-finder: make deps PUBLIC. I have no idea why it doesn't work with PRIVATE. --- src/rtti-finder/CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/src/rtti-finder/CMakeLists.txt b/src/rtti-finder/CMakeLists.txt index 651c88646..1f6ff7738 100644 --- a/src/rtti-finder/CMakeLists.txt +++ b/src/rtti-finder/CMakeLists.txt @@ -18,7 +18,6 @@ target_include_directories(rtti-finder target_link_libraries(rtti-finder PUBLIC retdec::common - PRIVATE retdec::loader retdec::utils ) From 82c1d0a99838c546f10919792600d976e9613523 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Thu, 2 Apr 2020 19:48:11 +0200 Subject: [PATCH 44/61] deps/yaramod: fix formatting --- deps/yaramod/CMakeLists.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index 679391f79..eb42dd508 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -85,9 +85,9 @@ target_link_libraries(yaramod INTERFACE optimized $ general - $ - $ - $ + $ + $ + $ ) # Install libs. From 3d47d3e65a2b8b88a1c3ba53643e7e37c5b18c5d Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 12:47:48 +0200 Subject: [PATCH 45/61] 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. --- deps/capstone/retdec-capstone-config.cmake | 4 +++- deps/elfio/retdec-elfio-config.cmake | 4 +++- deps/llvm/retdec-llvm-config.cmake | 4 +++- .../retdec-openssl-crypto-config.cmake | 4 +++- deps/rapidjson/retdec-rapidjson-config.cmake | 4 +++- deps/tinyxml2/retdec-tinyxml2-config.cmake | 4 +++- deps/yara/retdec-libyara-config.cmake | 4 +++- deps/yaramod/retdec-yaramod-config.cmake | 4 +++- retdec-config.cmake | 5 ++++- .../retdec-ar-extractor-config.cmake | 13 ++++++++++--- src/bin2llvmir/CMakeLists.txt | 12 ++++++------ src/bin2llvmir/retdec-bin2llvmir-config.cmake | 19 ++++++++++--------- .../retdec-capstone2llvmir-config.cmake | 13 ++++++++++--- src/common/retdec-common-config.cmake | 10 +++++++--- src/config/retdec-config-config.cmake | 13 ++++++++++--- src/cpdetect/retdec-cpdetect-config.cmake | 11 ++++++----- src/crypto/retdec-crypto-config.cmake | 9 +++++---- src/ctypes/retdec-ctypes-config.cmake | 11 ++++++++--- .../retdec-ctypesparser-config.cmake | 13 ++++++++++--- src/debugformat/CMakeLists.txt | 2 +- .../retdec-debugformat-config.cmake | 11 ++++++----- src/demangler/retdec-demangler-config.cmake | 12 +++++++++--- src/fileformat/retdec-fileformat-config.cmake | 7 ++++--- .../retdec-llvm-support-config.cmake | 12 +++++++++--- .../retdec-llvmir-emul-config.cmake | 11 ++++++++--- src/llvmir2hll/retdec-llvmir2hll-config.cmake | 7 ++++--- src/loader/retdec-loader-config.cmake | 7 ++++--- .../retdec-macho-extractor-config.cmake | 13 ++++++++++--- src/patterngen/retdec-patterngen-config.cmake | 7 ++++--- src/pdbparser/retdec-pdbparser-config.cmake | 4 +++- src/pelib/retdec-pelib-config.cmake | 4 +++- src/retdec/retdec-retdec-config.cmake | 7 ++++--- src/rtti-finder/CMakeLists.txt | 2 +- .../retdec-rtti-finder-config.cmake | 7 ++++--- src/serdes/retdec-serdes-config.cmake | 12 +++++++++--- src/stacofin/retdec-stacofin-config.cmake | 11 ++++++----- src/unpacker/retdec-unpacker-config.cmake | 7 ++++--- src/utils/retdec-utils-config.cmake | 4 +++- src/yaracpp/retdec-yaracpp-config.cmake | 7 ++++--- 39 files changed, 210 insertions(+), 105 deletions(-) diff --git a/deps/capstone/retdec-capstone-config.cmake b/deps/capstone/retdec-capstone-config.cmake index 5ae5e6aaa..d61dcbd3c 100644 --- a/deps/capstone/retdec-capstone-config.cmake +++ b/deps/capstone/retdec-capstone-config.cmake @@ -7,4 +7,6 @@ if(NOT TARGET retdec::capstone-libs) ) endif() -include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone-targets.cmake) +if(NOT TARGET retdec::capstone) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone-targets.cmake) +endif() diff --git a/deps/elfio/retdec-elfio-config.cmake b/deps/elfio/retdec-elfio-config.cmake index 05ca4cfb5..c1e96d74b 100644 --- a/deps/elfio/retdec-elfio-config.cmake +++ b/deps/elfio/retdec-elfio-config.cmake @@ -1,2 +1,4 @@ -include(${CMAKE_CURRENT_LIST_DIR}/retdec-elfio-targets.cmake) +if(NOT TARGET retdec::elfio) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-elfio-targets.cmake) +endif() diff --git a/deps/llvm/retdec-llvm-config.cmake b/deps/llvm/retdec-llvm-config.cmake index cf6973e73..96b8afc66 100644 --- a/deps/llvm/retdec-llvm-config.cmake +++ b/deps/llvm/retdec-llvm-config.cmake @@ -15,4 +15,6 @@ if(NOT TARGET llvm-libs) endforeach(LLVM_LIB) endif() -include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-targets.cmake) +if(NOT TARGET retdec::llvm) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-targets.cmake) +endif() diff --git a/deps/openssl/retdec-openssl-crypto-config.cmake b/deps/openssl/retdec-openssl-crypto-config.cmake index 4abbcaab3..8939a9864 100644 --- a/deps/openssl/retdec-openssl-crypto-config.cmake +++ b/deps/openssl/retdec-openssl-crypto-config.cmake @@ -9,4 +9,6 @@ if(NOT TARGET retdec::openssl-crypto-libs) ) endif() -include(${CMAKE_CURRENT_LIST_DIR}/retdec-openssl-crypto-targets.cmake) +if(NOT TARGET retdec::openssl-crypto) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-openssl-crypto-targets.cmake) +endif() diff --git a/deps/rapidjson/retdec-rapidjson-config.cmake b/deps/rapidjson/retdec-rapidjson-config.cmake index 78055344a..4e642a19c 100644 --- a/deps/rapidjson/retdec-rapidjson-config.cmake +++ b/deps/rapidjson/retdec-rapidjson-config.cmake @@ -1,2 +1,4 @@ -include(${CMAKE_CURRENT_LIST_DIR}/retdec-rapidjson-targets.cmake) +if(NOT TARGET retdec::rapidjson) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-rapidjson-targets.cmake) +endif() diff --git a/deps/tinyxml2/retdec-tinyxml2-config.cmake b/deps/tinyxml2/retdec-tinyxml2-config.cmake index c5e425f8c..e0b745263 100644 --- a/deps/tinyxml2/retdec-tinyxml2-config.cmake +++ b/deps/tinyxml2/retdec-tinyxml2-config.cmake @@ -1,2 +1,4 @@ -include(${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-targets.cmake) +if(NOT TARGET retdec::tinyxml2) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-targets.cmake) +endif() diff --git a/deps/yara/retdec-libyara-config.cmake b/deps/yara/retdec-libyara-config.cmake index b9d6014ce..4ffdaf154 100644 --- a/deps/yara/retdec-libyara-config.cmake +++ b/deps/yara/retdec-libyara-config.cmake @@ -9,4 +9,6 @@ if(NOT TARGET retdec::libyara-libs) ) endif() -include(${CMAKE_CURRENT_LIST_DIR}/retdec-libyara-targets.cmake) +if(NOT TARGET retdec::libyara) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-libyara-targets.cmake) +endif() diff --git a/deps/yaramod/retdec-yaramod-config.cmake b/deps/yaramod/retdec-yaramod-config.cmake index 5049bb2c9..9c915cd4a 100644 --- a/deps/yaramod/retdec-yaramod-config.cmake +++ b/deps/yaramod/retdec-yaramod-config.cmake @@ -10,4 +10,6 @@ if(NOT TARGET yaramod-libs) endforeach(YARAMOD_LIB) endif() -include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaramod-targets.cmake) +if(NOT TARGET retdec::yaramod) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaramod-targets.cmake) +endif() diff --git a/retdec-config.cmake b/retdec-config.cmake index 3c1ad34d6..17ae8fae2 100644 --- a/retdec-config.cmake +++ b/retdec-config.cmake @@ -1,4 +1,7 @@ + foreach(component ${retdec_FIND_COMPONENTS}) - include(${CMAKE_CURRENT_LIST_DIR}/retdec-${component}-config.cmake) + if(NOT TARGET retdec::${component}) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-${component}-config.cmake) + endif() endforeach() diff --git a/src/ar-extractor/retdec-ar-extractor-config.cmake b/src/ar-extractor/retdec-ar-extractor-config.cmake index ab0efae46..2842f1b44 100644 --- a/src/ar-extractor/retdec-ar-extractor-config.cmake +++ b/src/ar-extractor/retdec-ar-extractor-config.cmake @@ -1,5 +1,12 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS utils rapidjson llvm) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + utils + llvm + rapidjson +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-ar-extractor-targets.cmake) +if(NOT TARGET retdec::ar-extractor) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-ar-extractor-targets.cmake) +endif() diff --git a/src/bin2llvmir/CMakeLists.txt b/src/bin2llvmir/CMakeLists.txt index cba5c2b0d..cfc398285 100644 --- a/src/bin2llvmir/CMakeLists.txt +++ b/src/bin2llvmir/CMakeLists.txt @@ -118,18 +118,18 @@ target_include_directories(bin2llvmir target_link_libraries(bin2llvmir PUBLIC - retdec::ctypesparser retdec::rtti-finder - retdec::loader - retdec::fileformat + retdec::capstone2llvmir retdec::debugformat - retdec::config retdec::demangler - retdec::capstone2llvmir retdec::stacofin - retdec::llvm-support + retdec::loader + retdec::fileformat + retdec::config + retdec::ctypesparser retdec::common retdec::utils + retdec::llvm-support retdec::llvm ) diff --git a/src/bin2llvmir/retdec-bin2llvmir-config.cmake b/src/bin2llvmir/retdec-bin2llvmir-config.cmake index 9fab0b756..8c1d3d482 100644 --- a/src/bin2llvmir/retdec-bin2llvmir-config.cmake +++ b/src/bin2llvmir/retdec-bin2llvmir-config.cmake @@ -1,21 +1,22 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS - ctypesparser rtti-finder - loader - fileformat + capstone2llvmir debugformat - config demangler - capstone2llvmir stacofin - llvm-support + loader + fileformat + config + ctypesparser common utils + llvm-support llvm ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-bin2llvmir-targets.cmake) +if(NOT TARGET retdec::bin2llvmir) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-bin2llvmir-targets.cmake) +endif() diff --git a/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake index dc08fddf5..ed1bb6e75 100644 --- a/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake +++ b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake @@ -1,5 +1,12 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS common capstone llvm) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + common + capstone + llvm +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone2llvmir-targets.cmake) +if(NOT TARGET retdec::capstone2llvmir) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-capstone2llvmir-targets.cmake) +endif() diff --git a/src/common/retdec-common-config.cmake b/src/common/retdec-common-config.cmake index 1dbae1613..0b375b599 100644 --- a/src/common/retdec-common-config.cmake +++ b/src/common/retdec-common-config.cmake @@ -1,5 +1,9 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS utils) +find_package(retdec 4.0 REQUIRED + COMPONENTS + utils +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-common-targets.cmake) +if(NOT TARGET retdec::common) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-common-targets.cmake) +endif() diff --git a/src/config/retdec-config-config.cmake b/src/config/retdec-config-config.cmake index a00ff29ec..53b621b03 100644 --- a/src/config/retdec-config-config.cmake +++ b/src/config/retdec-config-config.cmake @@ -1,5 +1,12 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS common rapidjson serdes utils) +find_package(retdec 4.0 REQUIRED + COMPONENTS + serdes + common + utils + rapidjson +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-config-targets.cmake) +if(NOT TARGET retdec::config) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-config-targets.cmake) +endif() \ No newline at end of file diff --git a/src/cpdetect/retdec-cpdetect-config.cmake b/src/cpdetect/retdec-cpdetect-config.cmake index d4c35da5b..921641cb8 100644 --- a/src/cpdetect/retdec-cpdetect-config.cmake +++ b/src/cpdetect/retdec-cpdetect-config.cmake @@ -1,13 +1,14 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS fileformat - utils yaracpp - llvm + utils tinyxml2 + llvm ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-cpdetect-targets.cmake) +if(NOT TARGET retdec::cpdetect) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-cpdetect-targets.cmake) +endif() diff --git a/src/crypto/retdec-crypto-config.cmake b/src/crypto/retdec-crypto-config.cmake index 5503e0f04..6d3a24299 100644 --- a/src/crypto/retdec-crypto-config.cmake +++ b/src/crypto/retdec-crypto-config.cmake @@ -1,11 +1,12 @@ -include(CMakeFindDependencyMacro) -find_dependency(Threads REQUIRED) -find_dependency(retdec 4.0 +find_package(Threads REQUIRED) +find_package(retdec 4.0 REQUIRED COMPONENTS utils openssl-crypto ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-crypto-targets.cmake) +if(NOT TARGET retdec::crypto) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-crypto-targets.cmake) +endif() diff --git a/src/ctypes/retdec-ctypes-config.cmake b/src/ctypes/retdec-ctypes-config.cmake index 48854e68b..00806094e 100644 --- a/src/ctypes/retdec-ctypes-config.cmake +++ b/src/ctypes/retdec-ctypes-config.cmake @@ -1,5 +1,10 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS utils) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + utils +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-ctypes-targets.cmake) +if(NOT TARGET retdec::ctypes) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-ctypes-targets.cmake) +endif() diff --git a/src/ctypesparser/retdec-ctypesparser-config.cmake b/src/ctypesparser/retdec-ctypesparser-config.cmake index 4d2761767..f2b6e5ccf 100644 --- a/src/ctypesparser/retdec-ctypesparser-config.cmake +++ b/src/ctypesparser/retdec-ctypesparser-config.cmake @@ -1,5 +1,12 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS ctypes utils rapidjson) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + ctypes + utils + rapidjson +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-ctypesparser-targets.cmake) +if(NOT TARGET retdec::ctypesparser) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-ctypesparser-targets.cmake) +endif() diff --git a/src/debugformat/CMakeLists.txt b/src/debugformat/CMakeLists.txt index 584391abe..9b03e12ec 100644 --- a/src/debugformat/CMakeLists.txt +++ b/src/debugformat/CMakeLists.txt @@ -16,9 +16,9 @@ target_include_directories(debugformat target_link_libraries(debugformat PUBLIC + retdec::demangler retdec::loader retdec::fileformat - retdec::demangler retdec::common retdec::pdbparser retdec::llvm diff --git a/src/debugformat/retdec-debugformat-config.cmake b/src/debugformat/retdec-debugformat-config.cmake index 2698f6984..3a8f61cee 100644 --- a/src/debugformat/retdec-debugformat-config.cmake +++ b/src/debugformat/retdec-debugformat-config.cmake @@ -1,14 +1,15 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS demangler - pdbparser - fileformat loader + fileformat common + pdbparser llvm ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-debugformat-targets.cmake) +if(NOT TARGET retdec::debugformat) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-debugformat-targets.cmake) +endif() diff --git a/src/demangler/retdec-demangler-config.cmake b/src/demangler/retdec-demangler-config.cmake index 14669b88f..3e5d0160f 100644 --- a/src/demangler/retdec-demangler-config.cmake +++ b/src/demangler/retdec-demangler-config.cmake @@ -1,5 +1,11 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS ctypesparser llvm) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + ctypesparser + llvm +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-demangler-targets.cmake) +if(NOT TARGET retdec::demangler) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-demangler-targets.cmake) +endif() diff --git a/src/fileformat/retdec-fileformat-config.cmake b/src/fileformat/retdec-fileformat-config.cmake index 2e5ac829e..91917afcd 100644 --- a/src/fileformat/retdec-fileformat-config.cmake +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -1,6 +1,5 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS crypto @@ -11,4 +10,6 @@ find_dependency(retdec 4.0 llvm ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) +if(NOT TARGET retdec::fileformat) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) +endif() diff --git a/src/llvm-support/retdec-llvm-support-config.cmake b/src/llvm-support/retdec-llvm-support-config.cmake index 628620628..d36b0535e 100644 --- a/src/llvm-support/retdec-llvm-support-config.cmake +++ b/src/llvm-support/retdec-llvm-support-config.cmake @@ -1,5 +1,11 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS utils llvm) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + utils + llvm +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-support-targets.cmake) +if(NOT TARGET retdec::llvm-support) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-support-targets.cmake) +endif() diff --git a/src/llvmir-emul/retdec-llvmir-emul-config.cmake b/src/llvmir-emul/retdec-llvmir-emul-config.cmake index 8d0bf7c24..92d1095f2 100644 --- a/src/llvmir-emul/retdec-llvmir-emul-config.cmake +++ b/src/llvmir-emul/retdec-llvmir-emul-config.cmake @@ -1,5 +1,10 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS llvm) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + llvm +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir-emul-targets.cmake) +if(NOT TARGET retdec::llvmir-emul) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir-emul-targets.cmake) +endif() diff --git a/src/llvmir2hll/retdec-llvmir2hll-config.cmake b/src/llvmir2hll/retdec-llvmir2hll-config.cmake index 5aed28569..05af65748 100644 --- a/src/llvmir2hll/retdec-llvmir2hll-config.cmake +++ b/src/llvmir2hll/retdec-llvmir2hll-config.cmake @@ -1,6 +1,5 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS config @@ -10,4 +9,6 @@ find_dependency(retdec 4.0 llvm ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir2hll-targets.cmake) +if(NOT TARGET retdec::llvmir2hll) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir2hll-targets.cmake) +endif() diff --git a/src/loader/retdec-loader-config.cmake b/src/loader/retdec-loader-config.cmake index b338e3fec..f8cf3829b 100644 --- a/src/loader/retdec-loader-config.cmake +++ b/src/loader/retdec-loader-config.cmake @@ -1,6 +1,5 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS fileformat @@ -8,4 +7,6 @@ find_dependency(retdec 4.0 utils ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-loader-targets.cmake) +if(NOT TARGET retdec::loader) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-loader-targets.cmake) +endif() diff --git a/src/macho-extractor/retdec-macho-extractor-config.cmake b/src/macho-extractor/retdec-macho-extractor-config.cmake index 97df1c344..1816e73c0 100644 --- a/src/macho-extractor/retdec-macho-extractor-config.cmake +++ b/src/macho-extractor/retdec-macho-extractor-config.cmake @@ -1,5 +1,12 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS utils rapidjson llvm) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + utils + rapidjson + llvm +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-macho-extractor-targets.cmake) +if(NOT TARGET retdec::macho-extractor) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-macho-extractor-targets.cmake) +endif() diff --git a/src/patterngen/retdec-patterngen-config.cmake b/src/patterngen/retdec-patterngen-config.cmake index cb5a07448..59b5b03a7 100644 --- a/src/patterngen/retdec-patterngen-config.cmake +++ b/src/patterngen/retdec-patterngen-config.cmake @@ -1,6 +1,5 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS fileformat @@ -8,4 +7,6 @@ find_dependency(retdec 4.0 yaramod ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-patterngen-targets.cmake) +if(NOT TARGET retdec::patterngen) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-patterngen-targets.cmake) +endif() diff --git a/src/pdbparser/retdec-pdbparser-config.cmake b/src/pdbparser/retdec-pdbparser-config.cmake index d27b6c923..2ac9e7000 100644 --- a/src/pdbparser/retdec-pdbparser-config.cmake +++ b/src/pdbparser/retdec-pdbparser-config.cmake @@ -1,2 +1,4 @@ -include(${CMAKE_CURRENT_LIST_DIR}/retdec-pdbparser-targets.cmake) +if(NOT TARGET retdec::pdbparser) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-pdbparser-targets.cmake) +endif() diff --git a/src/pelib/retdec-pelib-config.cmake b/src/pelib/retdec-pelib-config.cmake index 57e95bc8a..211a18452 100644 --- a/src/pelib/retdec-pelib-config.cmake +++ b/src/pelib/retdec-pelib-config.cmake @@ -1,2 +1,4 @@ -include(${CMAKE_CURRENT_LIST_DIR}/retdec-pelib-targets.cmake) +if(NOT TARGET retdec::pelib) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-pelib-targets.cmake) +endif() diff --git a/src/retdec/retdec-retdec-config.cmake b/src/retdec/retdec-retdec-config.cmake index 9112c0817..3b4d07db7 100644 --- a/src/retdec/retdec-retdec-config.cmake +++ b/src/retdec/retdec-retdec-config.cmake @@ -1,6 +1,5 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS bin2llvmir @@ -10,4 +9,6 @@ find_dependency(retdec 4.0 llvm ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-retdec-targets.cmake) +if(NOT TARGET retdec::retdec) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-retdec-targets.cmake) +endif() diff --git a/src/rtti-finder/CMakeLists.txt b/src/rtti-finder/CMakeLists.txt index 1f6ff7738..030adccd9 100644 --- a/src/rtti-finder/CMakeLists.txt +++ b/src/rtti-finder/CMakeLists.txt @@ -17,8 +17,8 @@ target_include_directories(rtti-finder target_link_libraries(rtti-finder PUBLIC - retdec::common retdec::loader + retdec::common retdec::utils ) diff --git a/src/rtti-finder/retdec-rtti-finder-config.cmake b/src/rtti-finder/retdec-rtti-finder-config.cmake index 3f5c1782f..b5a426a1f 100644 --- a/src/rtti-finder/retdec-rtti-finder-config.cmake +++ b/src/rtti-finder/retdec-rtti-finder-config.cmake @@ -1,6 +1,5 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS loader @@ -8,4 +7,6 @@ find_dependency(retdec 4.0 utils ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-rtti-finder-targets.cmake) +if(NOT TARGET retdec::rtti-finder) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-rtti-finder-targets.cmake) +endif() diff --git a/src/serdes/retdec-serdes-config.cmake b/src/serdes/retdec-serdes-config.cmake index a813457f3..c01b51e0c 100644 --- a/src/serdes/retdec-serdes-config.cmake +++ b/src/serdes/retdec-serdes-config.cmake @@ -1,5 +1,11 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 REQUIRED COMPONENTS common rapidjson) +find_package(retdec 4.0 + REQUIRED + COMPONENTS + common + rapidjson +) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-serdes-targets.cmake) +if(NOT TARGET retdec::serdes) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-serdes-targets.cmake) +endif() diff --git a/src/stacofin/retdec-stacofin-config.cmake b/src/stacofin/retdec-stacofin-config.cmake index 76ffc9466..486069359 100644 --- a/src/stacofin/retdec-stacofin-config.cmake +++ b/src/stacofin/retdec-stacofin-config.cmake @@ -1,14 +1,15 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS + loader config common - loader - utils yaracpp + utils capstone ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-stacofin-targets.cmake) +if(NOT TARGET retdec::stacofin) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-stacofin-targets.cmake) +endif() diff --git a/src/unpacker/retdec-unpacker-config.cmake b/src/unpacker/retdec-unpacker-config.cmake index 73e958ee6..1b0c4687c 100644 --- a/src/unpacker/retdec-unpacker-config.cmake +++ b/src/unpacker/retdec-unpacker-config.cmake @@ -1,9 +1,10 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS loader ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-unpacker-targets.cmake) +if(NOT TARGET retdec::unpacker) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-unpacker-targets.cmake) +endif() diff --git a/src/utils/retdec-utils-config.cmake b/src/utils/retdec-utils-config.cmake index efb9aa965..aaf5ab2ab 100644 --- a/src/utils/retdec-utils-config.cmake +++ b/src/utils/retdec-utils-config.cmake @@ -1,2 +1,4 @@ -include(${CMAKE_CURRENT_LIST_DIR}/retdec-utils-targets.cmake) +if(NOT TARGET retdec::utils) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-utils-targets.cmake) +endif() diff --git a/src/yaracpp/retdec-yaracpp-config.cmake b/src/yaracpp/retdec-yaracpp-config.cmake index dcddbeceb..c12a64872 100644 --- a/src/yaracpp/retdec-yaracpp-config.cmake +++ b/src/yaracpp/retdec-yaracpp-config.cmake @@ -1,9 +1,10 @@ -include(CMakeFindDependencyMacro) -find_dependency(retdec 4.0 +find_package(retdec 4.0 REQUIRED COMPONENTS libyara ) -include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-targets.cmake) +if(NOT TARGET retdec::yaracpp) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-targets.cmake) +endif() From f6a32a99712afb482b3a48e3c11d47e34ed8c5e9 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 13:06:13 +0200 Subject: [PATCH 46/61] cmake: do not create version files for all components Only the main RetDec version file is needed. --- deps/capstone/CMakeLists.txt | 8 -------- deps/elfio/CMakeLists.txt | 8 -------- deps/llvm/CMakeLists.txt | 8 -------- deps/openssl/CMakeLists.txt | 8 -------- deps/rapidjson/CMakeLists.txt | 8 -------- deps/tinyxml2/CMakeLists.txt | 8 -------- deps/yara/CMakeLists.txt | 8 -------- deps/yaramod/CMakeLists.txt | 8 -------- src/ar-extractor/CMakeLists.txt | 8 -------- src/bin2llvmir/CMakeLists.txt | 8 -------- src/capstone2llvmir/CMakeLists.txt | 8 -------- src/common/CMakeLists.txt | 8 -------- src/config/CMakeLists.txt | 8 -------- src/cpdetect/CMakeLists.txt | 8 -------- src/crypto/CMakeLists.txt | 8 -------- src/ctypes/CMakeLists.txt | 8 -------- src/ctypesparser/CMakeLists.txt | 8 -------- src/debugformat/CMakeLists.txt | 8 -------- src/demangler/CMakeLists.txt | 8 -------- src/fileformat/CMakeLists.txt | 8 -------- src/llvm-support/CMakeLists.txt | 8 -------- src/llvmir-emul/CMakeLists.txt | 8 -------- src/llvmir2hll/CMakeLists.txt | 8 -------- src/loader/CMakeLists.txt | 8 -------- src/macho-extractor/CMakeLists.txt | 8 -------- src/patterngen/CMakeLists.txt | 8 -------- src/pdbparser/CMakeLists.txt | 8 -------- src/pelib/CMakeLists.txt | 8 -------- src/retdec/CMakeLists.txt | 8 -------- src/rtti-finder/CMakeLists.txt | 8 -------- src/serdes/CMakeLists.txt | 8 -------- src/stacofin/CMakeLists.txt | 8 -------- src/unpacker/CMakeLists.txt | 8 -------- src/utils/CMakeLists.txt | 8 -------- src/yaracpp/CMakeLists.txt | 8 -------- 35 files changed, 280 deletions(-) diff --git a/deps/capstone/CMakeLists.txt b/deps/capstone/CMakeLists.txt index f6cf99e3a..7416bfa3d 100644 --- a/deps/capstone/CMakeLists.txt +++ b/deps/capstone/CMakeLists.txt @@ -136,13 +136,6 @@ configure_package_config_file( CAPSTONE_LIB_INSTALLED ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY @@ -181,7 +174,6 @@ install(EXPORT capstone-targets install( FILES "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT capstone diff --git a/deps/elfio/CMakeLists.txt b/deps/elfio/CMakeLists.txt index bd681e4f5..6ae2a74b3 100644 --- a/deps/elfio/CMakeLists.txt +++ b/deps/elfio/CMakeLists.txt @@ -8,13 +8,6 @@ target_include_directories(elfio $/retdec/deps ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-elfio-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_DEPS_DIR}/elfio/include/elfio @@ -42,7 +35,6 @@ install(EXPORT elfio-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-elfio-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-elfio-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT elfio diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index bab06f98f..c3c37d313 100644 --- a/deps/llvm/CMakeLists.txt +++ b/deps/llvm/CMakeLists.txt @@ -263,13 +263,6 @@ configure_package_config_file( LLVM_LIBS_PATHS ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY @@ -297,7 +290,6 @@ install(EXPORT llvm-targets install( FILES "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT llvm diff --git a/deps/openssl/CMakeLists.txt b/deps/openssl/CMakeLists.txt index 6242e5977..d9d8228ba 100644 --- a/deps/openssl/CMakeLists.txt +++ b/deps/openssl/CMakeLists.txt @@ -205,13 +205,6 @@ configure_package_config_file( OPENSSL_CRYPTO_LIB_INSTALLED ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY @@ -245,7 +238,6 @@ install(EXPORT openssl-crypto-targets install( FILES "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT openssl-crypto diff --git a/deps/rapidjson/CMakeLists.txt b/deps/rapidjson/CMakeLists.txt index 377dc9bbc..d3192a81e 100644 --- a/deps/rapidjson/CMakeLists.txt +++ b/deps/rapidjson/CMakeLists.txt @@ -14,13 +14,6 @@ target_include_directories(rapidjson $/retdec/deps ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-rapidjson-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_DEPS_DIR}/rapidjson/include/rapidjson @@ -48,7 +41,6 @@ install(EXPORT rapidjson-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-rapidjson-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-rapidjson-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT rapidjson diff --git a/deps/tinyxml2/CMakeLists.txt b/deps/tinyxml2/CMakeLists.txt index 2ff055a14..09d5a902b 100644 --- a/deps/tinyxml2/CMakeLists.txt +++ b/deps/tinyxml2/CMakeLists.txt @@ -19,13 +19,6 @@ else() target_compile_options(tinyxml2 PRIVATE "-w") endif() -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-tinyxml2-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_DEPS_DIR}/tinyxml2/include/tinyxml2 @@ -53,7 +46,6 @@ install(EXPORT tinyxml2-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-tinyxml2-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT tinyxml2 diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index eff4ab287..4e6a4c0d3 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -136,13 +136,6 @@ configure_package_config_file( LIBYARA_LIBRARY ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY @@ -176,7 +169,6 @@ install(EXPORT libyara-targets install( FILES "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT libyara diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index eb42dd508..5feda7ab8 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -117,13 +117,6 @@ configure_package_config_file( YARAMOD_LIBS_INSTALLED ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY @@ -150,7 +143,6 @@ install(EXPORT yaramod-targets install( FILES "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT yaramod diff --git a/src/ar-extractor/CMakeLists.txt b/src/ar-extractor/CMakeLists.txt index 0c3865d85..8a3c84314 100644 --- a/src/ar-extractor/CMakeLists.txt +++ b/src/ar-extractor/CMakeLists.txt @@ -19,13 +19,6 @@ target_link_libraries(ar-extractor retdec::rapidjson ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-ar-extractor-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ar-extractor @@ -53,7 +46,6 @@ install(EXPORT ar-extractor-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-ar-extractor-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-ar-extractor-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT ar-extractor diff --git a/src/bin2llvmir/CMakeLists.txt b/src/bin2llvmir/CMakeLists.txt index cfc398285..8492da144 100644 --- a/src/bin2llvmir/CMakeLists.txt +++ b/src/bin2llvmir/CMakeLists.txt @@ -133,13 +133,6 @@ target_link_libraries(bin2llvmir retdec::llvm ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-bin2llvmir-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/bin2llvmir @@ -167,7 +160,6 @@ install(EXPORT bin2llvmir-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-bin2llvmir-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-bin2llvmir-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT bin2llvmir diff --git a/src/capstone2llvmir/CMakeLists.txt b/src/capstone2llvmir/CMakeLists.txt index c2da15534..c16745f77 100644 --- a/src/capstone2llvmir/CMakeLists.txt +++ b/src/capstone2llvmir/CMakeLists.txt @@ -32,13 +32,6 @@ target_link_libraries(capstone2llvmir retdec::llvm ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone2llvmir-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/capstone2llvmir @@ -66,7 +59,6 @@ install(EXPORT capstone2llvmir-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-capstone2llvmir-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone2llvmir-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT capstone2llvmir diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 2fa832698..e1febb3c1 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -29,13 +29,6 @@ target_link_libraries(common retdec::utils ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-common-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/common @@ -63,7 +56,6 @@ install(EXPORT common-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-common-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-common-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT common diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index 29fd969f2..075a064b6 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -22,13 +22,6 @@ target_link_libraries(config retdec::utils ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-config-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/config @@ -56,7 +49,6 @@ install(EXPORT config-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-config-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-config-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT config diff --git a/src/cpdetect/CMakeLists.txt b/src/cpdetect/CMakeLists.txt index 1c874cccf..ed9c2ac6b 100644 --- a/src/cpdetect/CMakeLists.txt +++ b/src/cpdetect/CMakeLists.txt @@ -39,13 +39,6 @@ target_link_libraries(cpdetect retdec::llvm ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-cpdetect-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/cpdetect @@ -73,7 +66,6 @@ install(EXPORT cpdetect-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-cpdetect-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-cpdetect-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT cpdetect diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index 406842d74..6a2005ccb 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -18,13 +18,6 @@ target_link_libraries(crypto retdec::openssl-crypto ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-crypto-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/crypto @@ -52,7 +45,6 @@ install(EXPORT crypto-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-crypto-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-crypto-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT crypto diff --git a/src/ctypes/CMakeLists.txt b/src/ctypes/CMakeLists.txt index aa7689015..110bbc221 100644 --- a/src/ctypes/CMakeLists.txt +++ b/src/ctypes/CMakeLists.txt @@ -44,13 +44,6 @@ target_include_directories(ctypes $ ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-ctypes-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ctypes @@ -78,7 +71,6 @@ install(EXPORT ctypes-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-ctypes-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-ctypes-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT ctypes diff --git a/src/ctypesparser/CMakeLists.txt b/src/ctypesparser/CMakeLists.txt index e026397e3..bf219b317 100644 --- a/src/ctypesparser/CMakeLists.txt +++ b/src/ctypesparser/CMakeLists.txt @@ -20,13 +20,6 @@ target_link_libraries(ctypesparser retdec::utils ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-ctypesparser-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ctypesparser @@ -54,7 +47,6 @@ install(EXPORT ctypesparser-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-ctypesparser-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-ctypesparser-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT ctypesparser diff --git a/src/debugformat/CMakeLists.txt b/src/debugformat/CMakeLists.txt index 9b03e12ec..529a4355a 100644 --- a/src/debugformat/CMakeLists.txt +++ b/src/debugformat/CMakeLists.txt @@ -24,13 +24,6 @@ target_link_libraries(debugformat retdec::llvm ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-debugformat-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/debugformat @@ -58,7 +51,6 @@ install(EXPORT debugformat-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-debugformat-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-debugformat-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT debugformat diff --git a/src/demangler/CMakeLists.txt b/src/demangler/CMakeLists.txt index 02c77f6fd..bbbf692f7 100644 --- a/src/demangler/CMakeLists.txt +++ b/src/demangler/CMakeLists.txt @@ -44,13 +44,6 @@ target_link_libraries(demangler retdec::llvm ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-demangler-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/demangler @@ -78,7 +71,6 @@ install(EXPORT demangler-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-demangler-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-demangler-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT demangler diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index 2aabda899..5db1228ca 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -95,13 +95,6 @@ target_link_libraries(fileformat retdec::llvm ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-fileformat-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/fileformat @@ -129,7 +122,6 @@ install(EXPORT fileformat-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-fileformat-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT fileformat diff --git a/src/llvm-support/CMakeLists.txt b/src/llvm-support/CMakeLists.txt index 944684e7f..27bef3526 100644 --- a/src/llvm-support/CMakeLists.txt +++ b/src/llvm-support/CMakeLists.txt @@ -17,13 +17,6 @@ target_link_libraries(llvm-support retdec::utils ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-support-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvm-support @@ -51,7 +44,6 @@ install(EXPORT llvm-support-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-support-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-support-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT llvm-support diff --git a/src/llvmir-emul/CMakeLists.txt b/src/llvmir-emul/CMakeLists.txt index 166d42704..20ff00824 100644 --- a/src/llvmir-emul/CMakeLists.txt +++ b/src/llvmir-emul/CMakeLists.txt @@ -15,13 +15,6 @@ target_link_libraries(llvmir-emul retdec::llvm ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvmir-emul-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvmir-emul @@ -49,7 +42,6 @@ install(EXPORT llvmir-emul-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir-emul-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvmir-emul-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT llvmir-emul diff --git a/src/llvmir2hll/CMakeLists.txt b/src/llvmir2hll/CMakeLists.txt index 0c0eec68d..d6c5d097e 100644 --- a/src/llvmir2hll/CMakeLists.txt +++ b/src/llvmir2hll/CMakeLists.txt @@ -326,13 +326,6 @@ if(MSVC) ) endif() -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvmir2hll-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvmir2hll @@ -360,7 +353,6 @@ install(EXPORT llvmir2hll-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir2hll-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvmir2hll-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT llvmir2hll diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index aa5029448..7138f1d80 100644 --- a/src/loader/CMakeLists.txt +++ b/src/loader/CMakeLists.txt @@ -31,13 +31,6 @@ target_link_libraries(loader retdec::utils ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-loader-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/loader @@ -65,7 +58,6 @@ install(EXPORT loader-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-loader-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-loader-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT loader diff --git a/src/macho-extractor/CMakeLists.txt b/src/macho-extractor/CMakeLists.txt index 8e1bab95d..fbe68962c 100644 --- a/src/macho-extractor/CMakeLists.txt +++ b/src/macho-extractor/CMakeLists.txt @@ -18,13 +18,6 @@ target_link_libraries(macho-extractor retdec::rapidjson ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-macho-extractor-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/macho-extractor @@ -52,7 +45,6 @@ install(EXPORT macho-extractor-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-macho-extractor-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-macho-extractor-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT macho-extractor diff --git a/src/patterngen/CMakeLists.txt b/src/patterngen/CMakeLists.txt index c16ad65ad..114e9e534 100644 --- a/src/patterngen/CMakeLists.txt +++ b/src/patterngen/CMakeLists.txt @@ -21,13 +21,6 @@ target_link_libraries(patterngen retdec::utils ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-patterngen-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/patterngen @@ -55,7 +48,6 @@ install(EXPORT patterngen-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-patterngen-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-patterngen-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT patterngen diff --git a/src/pdbparser/CMakeLists.txt b/src/pdbparser/CMakeLists.txt index c023d80ae..eb2839b78 100644 --- a/src/pdbparser/CMakeLists.txt +++ b/src/pdbparser/CMakeLists.txt @@ -13,13 +13,6 @@ target_include_directories(pdbparser $ ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-pdbparser-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/pdbparser @@ -47,7 +40,6 @@ install(EXPORT pdbparser-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-pdbparser-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-pdbparser-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT pdbparser diff --git a/src/pelib/CMakeLists.txt b/src/pelib/CMakeLists.txt index 94feb4580..f88d0795c 100644 --- a/src/pelib/CMakeLists.txt +++ b/src/pelib/CMakeLists.txt @@ -32,13 +32,6 @@ else() target_compile_options(pelib PUBLIC "-w") endif() -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-pelib-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/pelib @@ -66,7 +59,6 @@ install(EXPORT pelib-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-pelib-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-pelib-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT pelib diff --git a/src/retdec/CMakeLists.txt b/src/retdec/CMakeLists.txt index 260bf9bfb..c33508322 100644 --- a/src/retdec/CMakeLists.txt +++ b/src/retdec/CMakeLists.txt @@ -22,13 +22,6 @@ target_link_libraries(retdec retdec::config ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-retdec-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/retdec @@ -56,7 +49,6 @@ install(EXPORT retdec-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-retdec-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-retdec-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT retdec diff --git a/src/rtti-finder/CMakeLists.txt b/src/rtti-finder/CMakeLists.txt index 030adccd9..1efc4245e 100644 --- a/src/rtti-finder/CMakeLists.txt +++ b/src/rtti-finder/CMakeLists.txt @@ -22,13 +22,6 @@ target_link_libraries(rtti-finder retdec::utils ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-rtti-finder-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/rtti-finder @@ -56,7 +49,6 @@ install(EXPORT rtti-finder-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-rtti-finder-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-rtti-finder-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT rtti-finder diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index 798643987..76a8231af 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -31,13 +31,6 @@ target_link_libraries(serdes retdec::rapidjson ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-serdes-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/serdes @@ -65,7 +58,6 @@ install(EXPORT serdes-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-serdes-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-serdes-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT serdes diff --git a/src/stacofin/CMakeLists.txt b/src/stacofin/CMakeLists.txt index 91f1d7af8..ef20ecb7c 100644 --- a/src/stacofin/CMakeLists.txt +++ b/src/stacofin/CMakeLists.txt @@ -23,13 +23,6 @@ target_link_libraries(stacofin retdec::utils ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-stacofin-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/stacofin @@ -57,7 +50,6 @@ install(EXPORT stacofin-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-stacofin-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-stacofin-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT stacofin diff --git a/src/unpacker/CMakeLists.txt b/src/unpacker/CMakeLists.txt index d21f77dfa..b844b0865 100644 --- a/src/unpacker/CMakeLists.txt +++ b/src/unpacker/CMakeLists.txt @@ -30,13 +30,6 @@ if(MSVC) target_compile_definitions(unpacker PUBLIC NOMINMAX) endif() -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-unpacker-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/unpacker @@ -64,7 +57,6 @@ install(EXPORT unpacker-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-unpacker-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-unpacker-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT unpacker diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 6f2bac028..b8034866b 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -38,13 +38,6 @@ if(MSVC) target_compile_definitions(utils PUBLIC NOMINMAX) endif() -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-utils-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/utils @@ -72,7 +65,6 @@ install(EXPORT utils-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-utils-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-utils-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT utils diff --git a/src/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index eee4b7731..92196e81b 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -18,13 +18,6 @@ target_link_libraries(yaracpp retdec::libyara ) -# Create config version file. -write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-yaracpp-config-version.cmake" - VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion -) - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/yaracpp @@ -52,7 +45,6 @@ install(EXPORT yaracpp-targets install( FILES "${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-yaracpp-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT yaracpp From 6028f5bb7f90b2894c2e159fcb2ddab604e5a948 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 14:24:51 +0200 Subject: [PATCH 47/61] cmake: propagate current project version to package config files It is used to find the same version retdec components. --- src/ar-extractor/CMakeLists.txt | 7 ++++++- src/ar-extractor/retdec-ar-extractor-config.cmake | 2 +- src/bin2llvmir/CMakeLists.txt | 7 ++++++- src/bin2llvmir/retdec-bin2llvmir-config.cmake | 2 +- src/capstone2llvmir/CMakeLists.txt | 7 ++++++- src/capstone2llvmir/retdec-capstone2llvmir-config.cmake | 2 +- src/common/CMakeLists.txt | 7 ++++++- src/common/retdec-common-config.cmake | 2 +- src/config/CMakeLists.txt | 7 ++++++- src/config/retdec-config-config.cmake | 3 ++- src/cpdetect/CMakeLists.txt | 7 ++++++- src/cpdetect/retdec-cpdetect-config.cmake | 2 +- src/crypto/CMakeLists.txt | 7 ++++++- src/crypto/retdec-crypto-config.cmake | 2 +- src/ctypes/CMakeLists.txt | 7 ++++++- src/ctypes/retdec-ctypes-config.cmake | 2 +- src/ctypesparser/CMakeLists.txt | 7 ++++++- src/ctypesparser/retdec-ctypesparser-config.cmake | 2 +- src/debugformat/CMakeLists.txt | 7 ++++++- src/debugformat/retdec-debugformat-config.cmake | 2 +- src/demangler/CMakeLists.txt | 7 ++++++- src/demangler/retdec-demangler-config.cmake | 2 +- src/fileformat/CMakeLists.txt | 7 ++++++- src/fileformat/retdec-fileformat-config.cmake | 2 +- src/llvm-support/CMakeLists.txt | 7 ++++++- src/llvm-support/retdec-llvm-support-config.cmake | 2 +- src/llvmir-emul/CMakeLists.txt | 7 ++++++- src/llvmir-emul/retdec-llvmir-emul-config.cmake | 2 +- src/llvmir2hll/CMakeLists.txt | 7 ++++++- src/llvmir2hll/retdec-llvmir2hll-config.cmake | 2 +- src/loader/CMakeLists.txt | 7 ++++++- src/loader/retdec-loader-config.cmake | 2 +- src/macho-extractor/CMakeLists.txt | 7 ++++++- src/macho-extractor/retdec-macho-extractor-config.cmake | 2 +- src/patterngen/CMakeLists.txt | 7 ++++++- src/patterngen/retdec-patterngen-config.cmake | 2 +- src/retdec/CMakeLists.txt | 7 ++++++- src/retdec/retdec-retdec-config.cmake | 2 +- src/rtti-finder/CMakeLists.txt | 7 ++++++- src/rtti-finder/retdec-rtti-finder-config.cmake | 2 +- src/serdes/CMakeLists.txt | 7 ++++++- src/serdes/retdec-serdes-config.cmake | 2 +- src/stacofin/CMakeLists.txt | 7 ++++++- src/stacofin/retdec-stacofin-config.cmake | 2 +- src/unpacker/CMakeLists.txt | 7 ++++++- src/unpacker/retdec-unpacker-config.cmake | 2 +- src/yaracpp/CMakeLists.txt | 7 ++++++- src/yaracpp/retdec-yaracpp-config.cmake | 2 +- 48 files changed, 169 insertions(+), 48 deletions(-) diff --git a/src/ar-extractor/CMakeLists.txt b/src/ar-extractor/CMakeLists.txt index 8a3c84314..a82ac7bbb 100644 --- a/src/ar-extractor/CMakeLists.txt +++ b/src/ar-extractor/CMakeLists.txt @@ -43,9 +43,14 @@ install(EXPORT ar-extractor-targets ) # Install CMake files. +configure_file( + "retdec-ar-extractor-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ar-extractor-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-ar-extractor-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ar-extractor-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT ar-extractor diff --git a/src/ar-extractor/retdec-ar-extractor-config.cmake b/src/ar-extractor/retdec-ar-extractor-config.cmake index 2842f1b44..921cc4269 100644 --- a/src/ar-extractor/retdec-ar-extractor-config.cmake +++ b/src/ar-extractor/retdec-ar-extractor-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS utils diff --git a/src/bin2llvmir/CMakeLists.txt b/src/bin2llvmir/CMakeLists.txt index 8492da144..ae567d82c 100644 --- a/src/bin2llvmir/CMakeLists.txt +++ b/src/bin2llvmir/CMakeLists.txt @@ -157,9 +157,14 @@ install(EXPORT bin2llvmir-targets ) # Install CMake files. +configure_file( + "retdec-bin2llvmir-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-bin2llvmir-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-bin2llvmir-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-bin2llvmir-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT bin2llvmir diff --git a/src/bin2llvmir/retdec-bin2llvmir-config.cmake b/src/bin2llvmir/retdec-bin2llvmir-config.cmake index 8c1d3d482..3b50f73b7 100644 --- a/src/bin2llvmir/retdec-bin2llvmir-config.cmake +++ b/src/bin2llvmir/retdec-bin2llvmir-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS rtti-finder diff --git a/src/capstone2llvmir/CMakeLists.txt b/src/capstone2llvmir/CMakeLists.txt index c16745f77..4d2d00d5d 100644 --- a/src/capstone2llvmir/CMakeLists.txt +++ b/src/capstone2llvmir/CMakeLists.txt @@ -56,9 +56,14 @@ install(EXPORT capstone2llvmir-targets ) # Install CMake files. +configure_file( + "retdec-capstone2llvmir-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-capstone2llvmir-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-capstone2llvmir-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-capstone2llvmir-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT capstone2llvmir diff --git a/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake index ed1bb6e75..650ad7386 100644 --- a/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake +++ b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS common diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index e1febb3c1..86ea04f3c 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -53,9 +53,14 @@ install(EXPORT common-targets ) # Install CMake files. +configure_file( + "retdec-common-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-common-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-common-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-common-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT common diff --git a/src/common/retdec-common-config.cmake b/src/common/retdec-common-config.cmake index 0b375b599..a2d9fa1b5 100644 --- a/src/common/retdec-common-config.cmake +++ b/src/common/retdec-common-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 REQUIRED +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS utils ) diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index 075a064b6..aff96d5eb 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -46,9 +46,14 @@ install(EXPORT config-targets ) # Install CMake files. +configure_file( + "retdec-config-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-config-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT config diff --git a/src/config/retdec-config-config.cmake b/src/config/retdec-config-config.cmake index 53b621b03..58ea95bbd 100644 --- a/src/config/retdec-config-config.cmake +++ b/src/config/retdec-config-config.cmake @@ -1,5 +1,6 @@ -find_package(retdec 4.0 REQUIRED +find_package(retdec @PROJECT_VERSION@ + REQUIRED COMPONENTS serdes common diff --git a/src/cpdetect/CMakeLists.txt b/src/cpdetect/CMakeLists.txt index ed9c2ac6b..cff665d88 100644 --- a/src/cpdetect/CMakeLists.txt +++ b/src/cpdetect/CMakeLists.txt @@ -63,9 +63,14 @@ install(EXPORT cpdetect-targets ) # Install CMake files. +configure_file( + "retdec-cpdetect-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-cpdetect-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-cpdetect-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-cpdetect-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT cpdetect diff --git a/src/cpdetect/retdec-cpdetect-config.cmake b/src/cpdetect/retdec-cpdetect-config.cmake index 921641cb8..965340ead 100644 --- a/src/cpdetect/retdec-cpdetect-config.cmake +++ b/src/cpdetect/retdec-cpdetect-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS fileformat diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index 6a2005ccb..caae9ff06 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -42,9 +42,14 @@ install(EXPORT crypto-targets ) # Install CMake files. +configure_file( + "retdec-crypto-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-crypto-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-crypto-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-crypto-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT crypto diff --git a/src/crypto/retdec-crypto-config.cmake b/src/crypto/retdec-crypto-config.cmake index 6d3a24299..0bf1cb36b 100644 --- a/src/crypto/retdec-crypto-config.cmake +++ b/src/crypto/retdec-crypto-config.cmake @@ -1,6 +1,6 @@ find_package(Threads REQUIRED) -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS utils diff --git a/src/ctypes/CMakeLists.txt b/src/ctypes/CMakeLists.txt index 110bbc221..eaecb91e5 100644 --- a/src/ctypes/CMakeLists.txt +++ b/src/ctypes/CMakeLists.txt @@ -68,9 +68,14 @@ install(EXPORT ctypes-targets ) # Install CMake files. +configure_file( + "retdec-ctypes-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypes-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-ctypes-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypes-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT ctypes diff --git a/src/ctypes/retdec-ctypes-config.cmake b/src/ctypes/retdec-ctypes-config.cmake index 00806094e..5f3c16b31 100644 --- a/src/ctypes/retdec-ctypes-config.cmake +++ b/src/ctypes/retdec-ctypes-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS utils diff --git a/src/ctypesparser/CMakeLists.txt b/src/ctypesparser/CMakeLists.txt index bf219b317..cfdfb747b 100644 --- a/src/ctypesparser/CMakeLists.txt +++ b/src/ctypesparser/CMakeLists.txt @@ -44,9 +44,14 @@ install(EXPORT ctypesparser-targets ) # Install CMake files. +configure_file( + "retdec-ctypesparser-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypesparser-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-ctypesparser-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypesparser-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT ctypesparser diff --git a/src/ctypesparser/retdec-ctypesparser-config.cmake b/src/ctypesparser/retdec-ctypesparser-config.cmake index f2b6e5ccf..08ea46fa5 100644 --- a/src/ctypesparser/retdec-ctypesparser-config.cmake +++ b/src/ctypesparser/retdec-ctypesparser-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS ctypes diff --git a/src/debugformat/CMakeLists.txt b/src/debugformat/CMakeLists.txt index 529a4355a..21e59fde8 100644 --- a/src/debugformat/CMakeLists.txt +++ b/src/debugformat/CMakeLists.txt @@ -48,9 +48,14 @@ install(EXPORT debugformat-targets ) # Install CMake files. +configure_file( + "retdec-debugformat-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-debugformat-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-debugformat-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-debugformat-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT debugformat diff --git a/src/debugformat/retdec-debugformat-config.cmake b/src/debugformat/retdec-debugformat-config.cmake index 3a8f61cee..89cb69ad2 100644 --- a/src/debugformat/retdec-debugformat-config.cmake +++ b/src/debugformat/retdec-debugformat-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS demangler diff --git a/src/demangler/CMakeLists.txt b/src/demangler/CMakeLists.txt index bbbf692f7..5b45da0d3 100644 --- a/src/demangler/CMakeLists.txt +++ b/src/demangler/CMakeLists.txt @@ -68,9 +68,14 @@ install(EXPORT demangler-targets ) # Install CMake files. +configure_file( + "retdec-demangler-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-demangler-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-demangler-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-demangler-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT demangler diff --git a/src/demangler/retdec-demangler-config.cmake b/src/demangler/retdec-demangler-config.cmake index 3e5d0160f..b3e1f7356 100644 --- a/src/demangler/retdec-demangler-config.cmake +++ b/src/demangler/retdec-demangler-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS ctypesparser diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index 5db1228ca..d67424695 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -119,9 +119,14 @@ install(EXPORT fileformat-targets ) # Install CMake files. +configure_file( + "retdec-fileformat-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-fileformat-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-fileformat-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT fileformat diff --git a/src/fileformat/retdec-fileformat-config.cmake b/src/fileformat/retdec-fileformat-config.cmake index 91917afcd..4bdf57710 100644 --- a/src/fileformat/retdec-fileformat-config.cmake +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS crypto diff --git a/src/llvm-support/CMakeLists.txt b/src/llvm-support/CMakeLists.txt index 27bef3526..c3f211c02 100644 --- a/src/llvm-support/CMakeLists.txt +++ b/src/llvm-support/CMakeLists.txt @@ -41,9 +41,14 @@ install(EXPORT llvm-support-targets ) # Install CMake files. +configure_file( + "retdec-llvm-support-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvm-support-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-llvm-support-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvm-support-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT llvm-support diff --git a/src/llvm-support/retdec-llvm-support-config.cmake b/src/llvm-support/retdec-llvm-support-config.cmake index d36b0535e..a5f38b9bf 100644 --- a/src/llvm-support/retdec-llvm-support-config.cmake +++ b/src/llvm-support/retdec-llvm-support-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS utils diff --git a/src/llvmir-emul/CMakeLists.txt b/src/llvmir-emul/CMakeLists.txt index 20ff00824..7bd450f13 100644 --- a/src/llvmir-emul/CMakeLists.txt +++ b/src/llvmir-emul/CMakeLists.txt @@ -39,9 +39,14 @@ install(EXPORT llvmir-emul-targets ) # Install CMake files. +configure_file( + "retdec-llvmir-emul-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir-emul-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir-emul-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir-emul-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT llvmir-emul diff --git a/src/llvmir-emul/retdec-llvmir-emul-config.cmake b/src/llvmir-emul/retdec-llvmir-emul-config.cmake index 92d1095f2..721f66c7e 100644 --- a/src/llvmir-emul/retdec-llvmir-emul-config.cmake +++ b/src/llvmir-emul/retdec-llvmir-emul-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS llvm diff --git a/src/llvmir2hll/CMakeLists.txt b/src/llvmir2hll/CMakeLists.txt index d6c5d097e..e71927a2c 100644 --- a/src/llvmir2hll/CMakeLists.txt +++ b/src/llvmir2hll/CMakeLists.txt @@ -350,9 +350,14 @@ install(EXPORT llvmir2hll-targets ) # Install CMake files. +configure_file( + "retdec-llvmir2hll-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir2hll-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-llvmir2hll-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir2hll-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT llvmir2hll diff --git a/src/llvmir2hll/retdec-llvmir2hll-config.cmake b/src/llvmir2hll/retdec-llvmir2hll-config.cmake index 05af65748..7450895b5 100644 --- a/src/llvmir2hll/retdec-llvmir2hll-config.cmake +++ b/src/llvmir2hll/retdec-llvmir2hll-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS config diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index 7138f1d80..73b2e3407 100644 --- a/src/loader/CMakeLists.txt +++ b/src/loader/CMakeLists.txt @@ -55,9 +55,14 @@ install(EXPORT loader-targets ) # Install CMake files. +configure_file( + "retdec-loader-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-loader-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-loader-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-loader-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT loader diff --git a/src/loader/retdec-loader-config.cmake b/src/loader/retdec-loader-config.cmake index f8cf3829b..72e3c1bc4 100644 --- a/src/loader/retdec-loader-config.cmake +++ b/src/loader/retdec-loader-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS fileformat diff --git a/src/macho-extractor/CMakeLists.txt b/src/macho-extractor/CMakeLists.txt index fbe68962c..54ab8be93 100644 --- a/src/macho-extractor/CMakeLists.txt +++ b/src/macho-extractor/CMakeLists.txt @@ -42,9 +42,14 @@ install(EXPORT macho-extractor-targets ) # Install CMake files. +configure_file( + "retdec-macho-extractor-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-macho-extractor-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-macho-extractor-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-macho-extractor-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT macho-extractor diff --git a/src/macho-extractor/retdec-macho-extractor-config.cmake b/src/macho-extractor/retdec-macho-extractor-config.cmake index 1816e73c0..f69255a17 100644 --- a/src/macho-extractor/retdec-macho-extractor-config.cmake +++ b/src/macho-extractor/retdec-macho-extractor-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS utils diff --git a/src/patterngen/CMakeLists.txt b/src/patterngen/CMakeLists.txt index 114e9e534..babc85d81 100644 --- a/src/patterngen/CMakeLists.txt +++ b/src/patterngen/CMakeLists.txt @@ -45,9 +45,14 @@ install(EXPORT patterngen-targets ) # Install CMake files. +configure_file( + "retdec-patterngen-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-patterngen-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-patterngen-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-patterngen-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT patterngen diff --git a/src/patterngen/retdec-patterngen-config.cmake b/src/patterngen/retdec-patterngen-config.cmake index 59b5b03a7..71a575564 100644 --- a/src/patterngen/retdec-patterngen-config.cmake +++ b/src/patterngen/retdec-patterngen-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS fileformat diff --git a/src/retdec/CMakeLists.txt b/src/retdec/CMakeLists.txt index c33508322..dbe4780dc 100644 --- a/src/retdec/CMakeLists.txt +++ b/src/retdec/CMakeLists.txt @@ -46,9 +46,14 @@ install(EXPORT retdec-targets ) # Install CMake files. +configure_file( + "retdec-retdec-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-retdec-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-retdec-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-retdec-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT retdec diff --git a/src/retdec/retdec-retdec-config.cmake b/src/retdec/retdec-retdec-config.cmake index 3b4d07db7..ba57870fd 100644 --- a/src/retdec/retdec-retdec-config.cmake +++ b/src/retdec/retdec-retdec-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS bin2llvmir diff --git a/src/rtti-finder/CMakeLists.txt b/src/rtti-finder/CMakeLists.txt index 1efc4245e..f5f96c7c8 100644 --- a/src/rtti-finder/CMakeLists.txt +++ b/src/rtti-finder/CMakeLists.txt @@ -46,9 +46,14 @@ install(EXPORT rtti-finder-targets ) # Install CMake files. +configure_file( + "retdec-rtti-finder-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-rtti-finder-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-rtti-finder-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-rtti-finder-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT rtti-finder diff --git a/src/rtti-finder/retdec-rtti-finder-config.cmake b/src/rtti-finder/retdec-rtti-finder-config.cmake index b5a426a1f..52d2cbaa3 100644 --- a/src/rtti-finder/retdec-rtti-finder-config.cmake +++ b/src/rtti-finder/retdec-rtti-finder-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS loader diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index 76a8231af..cfbbe0708 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -55,9 +55,14 @@ install(EXPORT serdes-targets ) # Install CMake files. +configure_file( + "retdec-serdes-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-serdes-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-serdes-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-serdes-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT serdes diff --git a/src/serdes/retdec-serdes-config.cmake b/src/serdes/retdec-serdes-config.cmake index c01b51e0c..ba773f77b 100644 --- a/src/serdes/retdec-serdes-config.cmake +++ b/src/serdes/retdec-serdes-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS common diff --git a/src/stacofin/CMakeLists.txt b/src/stacofin/CMakeLists.txt index ef20ecb7c..5af3ff945 100644 --- a/src/stacofin/CMakeLists.txt +++ b/src/stacofin/CMakeLists.txt @@ -47,9 +47,14 @@ install(EXPORT stacofin-targets ) # Install CMake files. +configure_file( + "retdec-stacofin-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-stacofin-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-stacofin-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-stacofin-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT stacofin diff --git a/src/stacofin/retdec-stacofin-config.cmake b/src/stacofin/retdec-stacofin-config.cmake index 486069359..9bdd80916 100644 --- a/src/stacofin/retdec-stacofin-config.cmake +++ b/src/stacofin/retdec-stacofin-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS loader diff --git a/src/unpacker/CMakeLists.txt b/src/unpacker/CMakeLists.txt index b844b0865..2491bfff7 100644 --- a/src/unpacker/CMakeLists.txt +++ b/src/unpacker/CMakeLists.txt @@ -54,9 +54,14 @@ install(EXPORT unpacker-targets ) # Install CMake files. +configure_file( + "retdec-unpacker-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-unpacker-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-unpacker-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-unpacker-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT unpacker diff --git a/src/unpacker/retdec-unpacker-config.cmake b/src/unpacker/retdec-unpacker-config.cmake index 1b0c4687c..77aa9387a 100644 --- a/src/unpacker/retdec-unpacker-config.cmake +++ b/src/unpacker/retdec-unpacker-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS loader diff --git a/src/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index 92196e81b..4714d9cbe 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -42,9 +42,14 @@ install(EXPORT yaracpp-targets ) # Install CMake files. +configure_file( + "retdec-yaracpp-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-yaracpp-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-yaracpp-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" COMPONENT yaracpp diff --git a/src/yaracpp/retdec-yaracpp-config.cmake b/src/yaracpp/retdec-yaracpp-config.cmake index c12a64872..ee54d09b3 100644 --- a/src/yaracpp/retdec-yaracpp-config.cmake +++ b/src/yaracpp/retdec-yaracpp-config.cmake @@ -1,5 +1,5 @@ -find_package(retdec 4.0 +find_package(retdec @PROJECT_VERSION@ REQUIRED COMPONENTS libyara From 2bfa4257a515bd570df5695ebfe8199946660e68 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 14:25:45 +0200 Subject: [PATCH 48/61] CMakeLists.txt: replace AnyNewerVersion -> ExactVersion in compatibility settings Since we probably will make breaking changes, make retdec installation compatible only with the same version. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index da03bc911..9fc59fe81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,7 +117,7 @@ add_subdirectory(tests) write_basic_package_version_file( "${RETDEC_BINARY_SHARE_DIR}/retdec-config-version.cmake" VERSION ${PROJECT_VERSION} - COMPATIBILITY AnyNewerVersion + COMPATIBILITY ExactVersion ) # Create main RetDec CMake config file. From ed66320050b0a979fd675872bb8f1ef5f1b1d767 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 15:41:34 +0200 Subject: [PATCH 49/61] cmake: remove all COMPONENT options, these are not really needed --- deps/capstone/CMakeLists.txt | 4 ---- deps/elfio/CMakeLists.txt | 4 ---- deps/llvm/CMakeLists.txt | 4 ---- deps/openssl/CMakeLists.txt | 5 +---- deps/rapidjson/CMakeLists.txt | 4 ---- deps/tinyxml2/CMakeLists.txt | 4 ---- deps/yara/CMakeLists.txt | 7 ++----- deps/yaramod/CMakeLists.txt | 4 ---- src/ar-extractor/CMakeLists.txt | 4 ---- src/bin2llvmir/CMakeLists.txt | 4 ---- src/capstone2llvmir/CMakeLists.txt | 4 ---- src/common/CMakeLists.txt | 4 ---- src/config/CMakeLists.txt | 4 ---- src/cpdetect/CMakeLists.txt | 4 ---- src/crypto/CMakeLists.txt | 4 ---- src/ctypes/CMakeLists.txt | 4 ---- src/ctypesparser/CMakeLists.txt | 4 ---- src/debugformat/CMakeLists.txt | 4 ---- src/demangler/CMakeLists.txt | 4 ---- src/fileformat/CMakeLists.txt | 4 ---- src/llvm-support/CMakeLists.txt | 4 ---- src/llvmir-emul/CMakeLists.txt | 4 ---- src/llvmir2hll/CMakeLists.txt | 4 ---- src/loader/CMakeLists.txt | 4 ---- src/macho-extractor/CMakeLists.txt | 4 ---- src/patterngen/CMakeLists.txt | 4 ---- src/pdbparser/CMakeLists.txt | 4 ---- src/pelib/CMakeLists.txt | 4 ---- src/retdec/CMakeLists.txt | 4 ---- src/rtti-finder/CMakeLists.txt | 4 ---- src/serdes/CMakeLists.txt | 4 ---- src/stacofin/CMakeLists.txt | 4 ---- src/unpacker/CMakeLists.txt | 4 ---- src/utils/CMakeLists.txt | 4 ---- src/yaracpp/CMakeLists.txt | 4 ---- 35 files changed, 3 insertions(+), 141 deletions(-) diff --git a/deps/capstone/CMakeLists.txt b/deps/capstone/CMakeLists.txt index 7416bfa3d..d439549cb 100644 --- a/deps/capstone/CMakeLists.txt +++ b/deps/capstone/CMakeLists.txt @@ -142,7 +142,6 @@ install( ${source_dir}/include/capstone DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps - COMPONENT capstone ) # Install libs. @@ -159,7 +158,6 @@ install( install(TARGETS capstone EXPORT capstone-targets - COMPONENT capstone ) # Export targets. @@ -167,7 +165,6 @@ install(EXPORT capstone-targets FILE "retdec-capstone-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT capstone ) # Install CMake files. @@ -176,5 +173,4 @@ install( "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT capstone ) diff --git a/deps/elfio/CMakeLists.txt b/deps/elfio/CMakeLists.txt index 6ae2a74b3..0dcc969b6 100644 --- a/deps/elfio/CMakeLists.txt +++ b/deps/elfio/CMakeLists.txt @@ -12,13 +12,11 @@ target_include_directories(elfio install( DIRECTORY ${RETDEC_DEPS_DIR}/elfio/include/elfio DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps - COMPONENT elfio ) # Install libs. install(TARGETS elfio EXPORT elfio-targets - COMPONENT elfio # Header only -> there are no actual libs to install to destination. # But this block is still needed to get proper config. ) @@ -28,7 +26,6 @@ install(EXPORT elfio-targets FILE "retdec-elfio-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT elfio ) # Install CMake files. @@ -37,5 +34,4 @@ install( "${CMAKE_CURRENT_LIST_DIR}/retdec-elfio-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT elfio ) diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index c3c37d313..f15aaa7da 100644 --- a/deps/llvm/CMakeLists.txt +++ b/deps/llvm/CMakeLists.txt @@ -270,12 +270,10 @@ install( ${binary_dir}/include/ DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps - COMPONENT llvm ) install(TARGETS llvm EXPORT llvm-targets - COMPONENT llvm ) # Export targets. @@ -283,7 +281,6 @@ install(EXPORT llvm-targets FILE "retdec-llvm-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT llvm ) # Install CMake files. @@ -292,5 +289,4 @@ install( "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT llvm ) diff --git a/deps/openssl/CMakeLists.txt b/deps/openssl/CMakeLists.txt index d9d8228ba..edbd91ce6 100644 --- a/deps/openssl/CMakeLists.txt +++ b/deps/openssl/CMakeLists.txt @@ -223,15 +223,13 @@ install( install(TARGETS openssl-crypto EXPORT openssl-crypto-targets - COMPONENT openssl-crypto ) # Export targets. install(EXPORT openssl-crypto-targets FILE "retdec-openssl-crypto-targets.cmake" NAMESPACE retdec:: - DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT openssl-crypto + DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) # Install CMake files. @@ -240,5 +238,4 @@ install( "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT openssl-crypto ) diff --git a/deps/rapidjson/CMakeLists.txt b/deps/rapidjson/CMakeLists.txt index d3192a81e..af44e2909 100644 --- a/deps/rapidjson/CMakeLists.txt +++ b/deps/rapidjson/CMakeLists.txt @@ -18,13 +18,11 @@ target_include_directories(rapidjson install( DIRECTORY ${RETDEC_DEPS_DIR}/rapidjson/include/rapidjson DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps - COMPONENT rapidjson ) # Install libs. install(TARGETS rapidjson EXPORT rapidjson-targets - COMPONENT rapidjson # Header only -> there are no actual libs to install to destination. # But this block is still needed to get proper config. ) @@ -34,7 +32,6 @@ install(EXPORT rapidjson-targets FILE "retdec-rapidjson-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT rapidjson ) # Install CMake files. @@ -43,5 +40,4 @@ install( "${CMAKE_CURRENT_LIST_DIR}/retdec-rapidjson-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT rapidjson ) diff --git a/deps/tinyxml2/CMakeLists.txt b/deps/tinyxml2/CMakeLists.txt index 09d5a902b..df9973cca 100644 --- a/deps/tinyxml2/CMakeLists.txt +++ b/deps/tinyxml2/CMakeLists.txt @@ -23,13 +23,11 @@ endif() install( DIRECTORY ${RETDEC_DEPS_DIR}/tinyxml2/include/tinyxml2 DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps - COMPONENT tinyxml2 ) # Install libs. install(TARGETS tinyxml2 EXPORT tinyxml2-targets - COMPONENT tinyxml2 ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -39,7 +37,6 @@ install(EXPORT tinyxml2-targets FILE "retdec-tinyxml2-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT tinyxml2 ) # Install CMake files. @@ -48,5 +45,4 @@ install( "${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT tinyxml2 ) \ No newline at end of file diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index 4e6a4c0d3..8f124fbf7 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -154,15 +154,13 @@ install( install(TARGETS libyara EXPORT libyara-targets - COMPONENT libyara ) # Export targets. install(EXPORT libyara-targets - FILE "retdec-libyara-targets.cmake" - NAMESPACE retdec:: + FILE "retdec-libyara-targets.cmake" + NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT libyara ) # Install CMake files. @@ -171,7 +169,6 @@ install( "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT libyara ) # Install yarac application - we may need it to compile YARA files. diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index 5feda7ab8..cfe29107d 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -123,12 +123,10 @@ install( ${source_dir}/include/yaramod DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps - COMPONENT yaramod ) install(TARGETS yaramod EXPORT yaramod-targets - COMPONENT yaramod ) # Export targets. @@ -136,7 +134,6 @@ install(EXPORT yaramod-targets FILE "retdec-yaramod-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT yaramod ) # Install CMake files. @@ -145,5 +142,4 @@ install( "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT yaramod ) diff --git a/src/ar-extractor/CMakeLists.txt b/src/ar-extractor/CMakeLists.txt index a82ac7bbb..9e219cb7c 100644 --- a/src/ar-extractor/CMakeLists.txt +++ b/src/ar-extractor/CMakeLists.txt @@ -23,13 +23,11 @@ target_link_libraries(ar-extractor install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ar-extractor DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT ar-extractor ) # Install libs. install(TARGETS ar-extractor EXPORT ar-extractor-targets - COMPONENT ar-extractor ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -39,7 +37,6 @@ install(EXPORT ar-extractor-targets FILE "retdec-ar-extractor-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT ar-extractor ) # Install CMake files. @@ -53,5 +50,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-ar-extractor-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT ar-extractor ) diff --git a/src/bin2llvmir/CMakeLists.txt b/src/bin2llvmir/CMakeLists.txt index ae567d82c..d92e06c91 100644 --- a/src/bin2llvmir/CMakeLists.txt +++ b/src/bin2llvmir/CMakeLists.txt @@ -137,13 +137,11 @@ target_link_libraries(bin2llvmir install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/bin2llvmir DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/bin2llvmir - COMPONENT bin2llvmir ) # Install libs. install(TARGETS bin2llvmir EXPORT bin2llvmir-targets - COMPONENT bin2llvmir ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -153,7 +151,6 @@ install(EXPORT bin2llvmir-targets FILE "retdec-bin2llvmir-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT bin2llvmir ) # Install CMake files. @@ -167,5 +164,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-bin2llvmir-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT bin2llvmir ) diff --git a/src/capstone2llvmir/CMakeLists.txt b/src/capstone2llvmir/CMakeLists.txt index 4d2d00d5d..9a9f23e34 100644 --- a/src/capstone2llvmir/CMakeLists.txt +++ b/src/capstone2llvmir/CMakeLists.txt @@ -36,13 +36,11 @@ target_link_libraries(capstone2llvmir install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/capstone2llvmir DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT capstone2llvmir ) # Install libs. install(TARGETS capstone2llvmir EXPORT capstone2llvmir-targets - COMPONENT capstone2llvmir ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -52,7 +50,6 @@ install(EXPORT capstone2llvmir-targets FILE "retdec-capstone2llvmir-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT capstone2llvmir ) # Install CMake files. @@ -66,5 +63,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-capstone2llvmir-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT capstone2llvmir ) \ No newline at end of file diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 86ea04f3c..081093e26 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -33,13 +33,11 @@ target_link_libraries(common install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/common DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT common ) # Install libs. install(TARGETS common EXPORT common-targets - COMPONENT common ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -49,7 +47,6 @@ install(EXPORT common-targets FILE "retdec-common-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT common ) # Install CMake files. @@ -63,5 +60,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-common-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT common ) diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index aff96d5eb..279285e4c 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -26,13 +26,11 @@ target_link_libraries(config install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/config DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT config ) # Install libs. install(TARGETS config EXPORT config-targets - COMPONENT config ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -42,7 +40,6 @@ install(EXPORT config-targets FILE "retdec-config-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT config ) # Install CMake files. @@ -56,5 +53,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT config ) diff --git a/src/cpdetect/CMakeLists.txt b/src/cpdetect/CMakeLists.txt index cff665d88..3eeeab378 100644 --- a/src/cpdetect/CMakeLists.txt +++ b/src/cpdetect/CMakeLists.txt @@ -43,13 +43,11 @@ target_link_libraries(cpdetect install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/cpdetect DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT cpdetect ) # Install libs. install(TARGETS cpdetect EXPORT cpdetect-targets - COMPONENT cpdetect ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -59,7 +57,6 @@ install(EXPORT cpdetect-targets FILE "retdec-cpdetect-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT cpdetect ) # Install CMake files. @@ -73,5 +70,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-cpdetect-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT cpdetect ) diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index caae9ff06..f8df7226e 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -22,13 +22,11 @@ target_link_libraries(crypto install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/crypto DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT crypto ) # Install libs. install(TARGETS crypto EXPORT crypto-targets - COMPONENT crypto ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -38,7 +36,6 @@ install(EXPORT crypto-targets FILE "retdec-crypto-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT crypto ) # Install CMake files. @@ -52,5 +49,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-crypto-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT crypto ) diff --git a/src/ctypes/CMakeLists.txt b/src/ctypes/CMakeLists.txt index eaecb91e5..29e443a21 100644 --- a/src/ctypes/CMakeLists.txt +++ b/src/ctypes/CMakeLists.txt @@ -48,13 +48,11 @@ target_include_directories(ctypes install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ctypes DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT ctypes ) # Install libs. install(TARGETS ctypes EXPORT ctypes-targets - COMPONENT ctypes ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -64,7 +62,6 @@ install(EXPORT ctypes-targets FILE "retdec-ctypes-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT ctypes ) # Install CMake files. @@ -78,5 +75,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypes-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT ctypes ) diff --git a/src/ctypesparser/CMakeLists.txt b/src/ctypesparser/CMakeLists.txt index cfdfb747b..8b1869ef1 100644 --- a/src/ctypesparser/CMakeLists.txt +++ b/src/ctypesparser/CMakeLists.txt @@ -24,13 +24,11 @@ target_link_libraries(ctypesparser install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/ctypesparser DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT ctypesparser ) # Install libs. install(TARGETS ctypesparser EXPORT ctypesparser-targets - COMPONENT ctypesparser ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -40,7 +38,6 @@ install(EXPORT ctypesparser-targets FILE "retdec-ctypesparser-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT ctypesparser ) # Install CMake files. @@ -54,5 +51,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-ctypesparser-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT ctypesparser ) diff --git a/src/debugformat/CMakeLists.txt b/src/debugformat/CMakeLists.txt index 21e59fde8..fc3665ab0 100644 --- a/src/debugformat/CMakeLists.txt +++ b/src/debugformat/CMakeLists.txt @@ -28,13 +28,11 @@ target_link_libraries(debugformat install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/debugformat DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT debugformat ) # Install libs. install(TARGETS debugformat EXPORT debugformat-targets - COMPONENT debugformat ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -44,7 +42,6 @@ install(EXPORT debugformat-targets FILE "retdec-debugformat-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT debugformat ) # Install CMake files. @@ -58,5 +55,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-debugformat-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT debugformat ) diff --git a/src/demangler/CMakeLists.txt b/src/demangler/CMakeLists.txt index 5b45da0d3..be4ba2027 100644 --- a/src/demangler/CMakeLists.txt +++ b/src/demangler/CMakeLists.txt @@ -48,13 +48,11 @@ target_link_libraries(demangler install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/demangler DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT demangler ) # Install libs. install(TARGETS demangler EXPORT demangler-targets - COMPONENT demangler ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -64,7 +62,6 @@ install(EXPORT demangler-targets FILE "retdec-demangler-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT demangler ) # Install CMake files. @@ -78,5 +75,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-demangler-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT demangler ) \ No newline at end of file diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index d67424695..2a1c100b1 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -99,13 +99,11 @@ target_link_libraries(fileformat install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/fileformat DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT fileformat ) # Install libs. install(TARGETS fileformat EXPORT fileformat-targets - COMPONENT fileformat ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -115,7 +113,6 @@ install(EXPORT fileformat-targets FILE "retdec-fileformat-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT fileformat ) # Install CMake files. @@ -129,5 +126,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-fileformat-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT fileformat ) diff --git a/src/llvm-support/CMakeLists.txt b/src/llvm-support/CMakeLists.txt index c3f211c02..bff7a23f1 100644 --- a/src/llvm-support/CMakeLists.txt +++ b/src/llvm-support/CMakeLists.txt @@ -21,13 +21,11 @@ target_link_libraries(llvm-support install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvm-support DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT llvm-support ) # Install libs. install(TARGETS llvm-support EXPORT llvm-support-targets - COMPONENT llvm-support ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -37,7 +35,6 @@ install(EXPORT llvm-support-targets FILE "retdec-llvm-support-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT llvm-support ) # Install CMake files. @@ -51,5 +48,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvm-support-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT llvm-support ) diff --git a/src/llvmir-emul/CMakeLists.txt b/src/llvmir-emul/CMakeLists.txt index 7bd450f13..249e02bff 100644 --- a/src/llvmir-emul/CMakeLists.txt +++ b/src/llvmir-emul/CMakeLists.txt @@ -19,13 +19,11 @@ target_link_libraries(llvmir-emul install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvmir-emul DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT llvmir-emul ) # Install libs. install(TARGETS llvmir-emul EXPORT llvmir-emul-targets - COMPONENT llvmir-emul ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -35,7 +33,6 @@ install(EXPORT llvmir-emul-targets FILE "retdec-llvmir-emul-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT llvmir-emul ) # Install CMake files. @@ -49,5 +46,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir-emul-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT llvmir-emul ) diff --git a/src/llvmir2hll/CMakeLists.txt b/src/llvmir2hll/CMakeLists.txt index e71927a2c..3a164bcfc 100644 --- a/src/llvmir2hll/CMakeLists.txt +++ b/src/llvmir2hll/CMakeLists.txt @@ -330,13 +330,11 @@ endif() install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/llvmir2hll DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT llvmir2hll ) # Install libs. install(TARGETS llvmir2hll EXPORT llvmir2hll-targets - COMPONENT llvmir2hll ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -346,7 +344,6 @@ install(EXPORT llvmir2hll-targets FILE "retdec-llvmir2hll-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT llvmir2hll ) # Install CMake files. @@ -360,5 +357,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvmir2hll-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT llvmir2hll ) diff --git a/src/loader/CMakeLists.txt b/src/loader/CMakeLists.txt index 73b2e3407..d2e9df945 100644 --- a/src/loader/CMakeLists.txt +++ b/src/loader/CMakeLists.txt @@ -35,13 +35,11 @@ target_link_libraries(loader install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/loader DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT loader ) # Install libs. install(TARGETS loader EXPORT loader-targets - COMPONENT loader ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -51,7 +49,6 @@ install(EXPORT loader-targets FILE "retdec-loader-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT loader ) # Install CMake files. @@ -65,5 +62,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-loader-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT loader ) diff --git a/src/macho-extractor/CMakeLists.txt b/src/macho-extractor/CMakeLists.txt index 54ab8be93..733946f7e 100644 --- a/src/macho-extractor/CMakeLists.txt +++ b/src/macho-extractor/CMakeLists.txt @@ -22,13 +22,11 @@ target_link_libraries(macho-extractor install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/macho-extractor DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT macho-extractor ) # Install libs. install(TARGETS macho-extractor EXPORT macho-extractor-targets - COMPONENT macho-extractor ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -38,7 +36,6 @@ install(EXPORT macho-extractor-targets FILE "retdec-macho-extractor-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT macho-extractor ) # Install CMake files. @@ -52,6 +49,5 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-macho-extractor-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT macho-extractor ) diff --git a/src/patterngen/CMakeLists.txt b/src/patterngen/CMakeLists.txt index babc85d81..8e0cef245 100644 --- a/src/patterngen/CMakeLists.txt +++ b/src/patterngen/CMakeLists.txt @@ -25,13 +25,11 @@ target_link_libraries(patterngen install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/patterngen DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT patterngen ) # Install libs. install(TARGETS patterngen EXPORT patterngen-targets - COMPONENT patterngen ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -41,7 +39,6 @@ install(EXPORT patterngen-targets FILE "retdec-patterngen-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT patterngen ) # Install CMake files. @@ -55,5 +52,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-patterngen-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT patterngen ) diff --git a/src/pdbparser/CMakeLists.txt b/src/pdbparser/CMakeLists.txt index eb2839b78..041e470e9 100644 --- a/src/pdbparser/CMakeLists.txt +++ b/src/pdbparser/CMakeLists.txt @@ -17,13 +17,11 @@ target_include_directories(pdbparser install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/pdbparser DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT pdbparser ) # Install libs. install(TARGETS pdbparser EXPORT pdbparser-targets - COMPONENT pdbparser ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -33,7 +31,6 @@ install(EXPORT pdbparser-targets FILE "retdec-pdbparser-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT pdbparser ) # Install CMake files. @@ -42,5 +39,4 @@ install( "${CMAKE_CURRENT_LIST_DIR}/retdec-pdbparser-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT pdbparser ) diff --git a/src/pelib/CMakeLists.txt b/src/pelib/CMakeLists.txt index f88d0795c..0d0e4de88 100644 --- a/src/pelib/CMakeLists.txt +++ b/src/pelib/CMakeLists.txt @@ -36,13 +36,11 @@ endif() install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/pelib DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT pelib ) # Install libs. install(TARGETS pelib EXPORT pelib-targets - COMPONENT pelib ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -52,7 +50,6 @@ install(EXPORT pelib-targets FILE "retdec-pelib-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT pelib ) # Install CMake files. @@ -61,5 +58,4 @@ install( "${CMAKE_CURRENT_LIST_DIR}/retdec-pelib-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT pelib ) diff --git a/src/retdec/CMakeLists.txt b/src/retdec/CMakeLists.txt index dbe4780dc..af45d9b8d 100644 --- a/src/retdec/CMakeLists.txt +++ b/src/retdec/CMakeLists.txt @@ -26,13 +26,11 @@ target_link_libraries(retdec install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/retdec DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT retdec ) # Install libs. install(TARGETS retdec EXPORT retdec-targets - COMPONENT retdec ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -42,7 +40,6 @@ install(EXPORT retdec-targets FILE "retdec-retdec-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT retdec ) # Install CMake files. @@ -56,5 +53,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-retdec-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT retdec ) diff --git a/src/rtti-finder/CMakeLists.txt b/src/rtti-finder/CMakeLists.txt index f5f96c7c8..c89eacbd3 100644 --- a/src/rtti-finder/CMakeLists.txt +++ b/src/rtti-finder/CMakeLists.txt @@ -26,13 +26,11 @@ target_link_libraries(rtti-finder install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/rtti-finder DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT rtti-finder ) # Install libs. install(TARGETS rtti-finder EXPORT rtti-finder-targets - COMPONENT rtti-finder ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -42,7 +40,6 @@ install(EXPORT rtti-finder-targets FILE "retdec-rtti-finder-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT rtti-finder ) # Install CMake files. @@ -56,5 +53,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-rtti-finder-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT rtti-finder ) diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index cfbbe0708..f8778180b 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -35,13 +35,11 @@ target_link_libraries(serdes install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/serdes DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT serdes ) # Install libs. install(TARGETS serdes EXPORT serdes-targets - COMPONENT serdes ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -51,7 +49,6 @@ install(EXPORT serdes-targets FILE "retdec-serdes-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT serdes ) # Install CMake files. @@ -65,5 +62,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-serdes-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT serdes ) diff --git a/src/stacofin/CMakeLists.txt b/src/stacofin/CMakeLists.txt index 5af3ff945..2dc3f938b 100644 --- a/src/stacofin/CMakeLists.txt +++ b/src/stacofin/CMakeLists.txt @@ -27,13 +27,11 @@ target_link_libraries(stacofin install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/stacofin DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT stacofin ) # Install libs. install(TARGETS stacofin EXPORT stacofin-targets - COMPONENT stacofin ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -43,7 +41,6 @@ install(EXPORT stacofin-targets FILE "retdec-stacofin-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT stacofin ) # Install CMake files. @@ -57,5 +54,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-stacofin-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT stacofin ) diff --git a/src/unpacker/CMakeLists.txt b/src/unpacker/CMakeLists.txt index 2491bfff7..9c0405ed3 100644 --- a/src/unpacker/CMakeLists.txt +++ b/src/unpacker/CMakeLists.txt @@ -34,13 +34,11 @@ endif() install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/unpacker DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT unpacker ) # Install libs. install(TARGETS unpacker EXPORT unpacker-targets - COMPONENT unpacker ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -50,7 +48,6 @@ install(EXPORT unpacker-targets FILE "retdec-unpacker-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT unpacker ) # Install CMake files. @@ -64,5 +61,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-unpacker-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT unpacker ) diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index b8034866b..1545c9f92 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -42,13 +42,11 @@ endif() install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/utils DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT utils ) # Install libs. install(TARGETS utils whereami EXPORT utils-targets - COMPONENT utils ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -58,7 +56,6 @@ install(EXPORT utils-targets FILE "retdec-utils-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT utils ) # Install CMake files. @@ -67,5 +64,4 @@ install( "${CMAKE_CURRENT_LIST_DIR}/retdec-utils-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT utils ) diff --git a/src/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index 4714d9cbe..8348d5ea9 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -22,13 +22,11 @@ target_link_libraries(yaracpp install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/yaracpp DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec - COMPONENT yaracpp ) # Install libs. install(TARGETS yaracpp EXPORT yaracpp-targets - COMPONENT yaracpp ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} ) @@ -38,7 +36,6 @@ install(EXPORT yaracpp-targets FILE "retdec-yaracpp-targets.cmake" NAMESPACE retdec:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - COMPONENT yaracpp ) # Install CMake files. @@ -52,5 +49,4 @@ install( "${CMAKE_CURRENT_BINARY_DIR}/retdec-yaracpp-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" - COMPONENT yaracpp ) From 2fa655a5505fb348c7e5550df7711e27dcd047cd Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 15:51:46 +0200 Subject: [PATCH 50/61] cmake: move dependency finders inside double target protection conditions --- deps/llvm/retdec-llvm-config.cmake | 10 +++--- .../retdec-openssl-crypto-config.cmake | 3 +- deps/yara/retdec-libyara-config.cmake | 3 +- retdec-config.cmake | 4 +-- .../retdec-ar-extractor-config.cmake | 16 ++++----- src/bin2llvmir/retdec-bin2llvmir-config.cmake | 36 +++++++++---------- .../retdec-capstone2llvmir-config.cmake | 16 ++++----- src/common/retdec-common-config.cmake | 10 +++--- src/config/retdec-config-config.cmake | 18 +++++----- src/cpdetect/retdec-cpdetect-config.cmake | 20 +++++------ src/crypto/retdec-crypto-config.cmake | 16 ++++----- src/ctypes/retdec-ctypes-config.cmake | 12 +++---- .../retdec-ctypesparser-config.cmake | 16 ++++----- .../retdec-debugformat-config.cmake | 22 ++++++------ src/demangler/retdec-demangler-config.cmake | 14 ++++---- src/fileformat/retdec-fileformat-config.cmake | 22 ++++++------ .../retdec-llvm-support-config.cmake | 14 ++++---- .../retdec-llvmir-emul-config.cmake | 12 +++---- src/llvmir2hll/retdec-llvmir2hll-config.cmake | 20 +++++------ src/loader/retdec-loader-config.cmake | 16 ++++----- .../retdec-macho-extractor-config.cmake | 16 ++++----- src/patterngen/retdec-patterngen-config.cmake | 16 ++++----- src/retdec/retdec-retdec-config.cmake | 20 +++++------ .../retdec-rtti-finder-config.cmake | 16 ++++----- src/serdes/retdec-serdes-config.cmake | 14 ++++---- src/stacofin/retdec-stacofin-config.cmake | 22 ++++++------ src/unpacker/retdec-unpacker-config.cmake | 12 +++---- src/yaracpp/retdec-yaracpp-config.cmake | 12 +++---- 28 files changed, 212 insertions(+), 216 deletions(-) diff --git a/deps/llvm/retdec-llvm-config.cmake b/deps/llvm/retdec-llvm-config.cmake index 96b8afc66..10e7caea5 100644 --- a/deps/llvm/retdec-llvm-config.cmake +++ b/deps/llvm/retdec-llvm-config.cmake @@ -1,10 +1,5 @@ @PACKAGE_INIT@ -find_package(Threads REQUIRED) -if(UNIX OR MINGW) - find_package(ZLIB REQUIRED) -endif() - if(NOT TARGET llvm-libs) add_library(llvm-libs INTERFACE) add_library(retdec::llvm-libs ALIAS llvm-libs) @@ -16,5 +11,10 @@ if(NOT TARGET llvm-libs) endif() if(NOT TARGET retdec::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/retdec-openssl-crypto-config.cmake b/deps/openssl/retdec-openssl-crypto-config.cmake index 8939a9864..22eaa1916 100644 --- a/deps/openssl/retdec-openssl-crypto-config.cmake +++ b/deps/openssl/retdec-openssl-crypto-config.cmake @@ -1,7 +1,5 @@ @PACKAGE_INIT@ -find_package(Threads REQUIRED) - if(NOT TARGET retdec::openssl-crypto-libs) add_library(retdec::openssl-crypto-libs STATIC IMPORTED) set_target_properties(retdec::openssl-crypto-libs PROPERTIES @@ -10,5 +8,6 @@ if(NOT TARGET retdec::openssl-crypto-libs) endif() if(NOT TARGET retdec::openssl-crypto) + find_package(Threads REQUIRED) include(${CMAKE_CURRENT_LIST_DIR}/retdec-openssl-crypto-targets.cmake) endif() diff --git a/deps/yara/retdec-libyara-config.cmake b/deps/yara/retdec-libyara-config.cmake index 4ffdaf154..1f4fae5f5 100644 --- a/deps/yara/retdec-libyara-config.cmake +++ b/deps/yara/retdec-libyara-config.cmake @@ -1,7 +1,5 @@ @PACKAGE_INIT@ -find_package(Threads REQUIRED) - if(NOT TARGET retdec::libyara-libs) add_library(retdec::libyara-libs STATIC IMPORTED) set_target_properties(retdec::libyara-libs PROPERTIES @@ -10,5 +8,6 @@ if(NOT TARGET retdec::libyara-libs) endif() if(NOT TARGET retdec::libyara) + find_package(Threads REQUIRED) include(${CMAKE_CURRENT_LIST_DIR}/retdec-libyara-targets.cmake) endif() diff --git a/retdec-config.cmake b/retdec-config.cmake index 17ae8fae2..6c75bccb8 100644 --- a/retdec-config.cmake +++ b/retdec-config.cmake @@ -1,7 +1,5 @@ foreach(component ${retdec_FIND_COMPONENTS}) - if(NOT TARGET retdec::${component}) - include(${CMAKE_CURRENT_LIST_DIR}/retdec-${component}-config.cmake) - endif() + include(${CMAKE_CURRENT_LIST_DIR}/retdec-${component}-config.cmake) endforeach() diff --git a/src/ar-extractor/retdec-ar-extractor-config.cmake b/src/ar-extractor/retdec-ar-extractor-config.cmake index 921cc4269..1b8104cfb 100644 --- a/src/ar-extractor/retdec-ar-extractor-config.cmake +++ b/src/ar-extractor/retdec-ar-extractor-config.cmake @@ -1,12 +1,12 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - utils - llvm - rapidjson -) - 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/bin2llvmir/retdec-bin2llvmir-config.cmake b/src/bin2llvmir/retdec-bin2llvmir-config.cmake index 3b50f73b7..5ff7638bc 100644 --- a/src/bin2llvmir/retdec-bin2llvmir-config.cmake +++ b/src/bin2llvmir/retdec-bin2llvmir-config.cmake @@ -1,22 +1,22 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - rtti-finder - capstone2llvmir - debugformat - demangler - stacofin - loader - fileformat - config - ctypesparser - common - utils - llvm-support - llvm -) - 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/capstone2llvmir/retdec-capstone2llvmir-config.cmake b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake index 650ad7386..6300daf71 100644 --- a/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake +++ b/src/capstone2llvmir/retdec-capstone2llvmir-config.cmake @@ -1,12 +1,12 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - common - capstone - llvm -) - 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/common/retdec-common-config.cmake b/src/common/retdec-common-config.cmake index a2d9fa1b5..771761d25 100644 --- a/src/common/retdec-common-config.cmake +++ b/src/common/retdec-common-config.cmake @@ -1,9 +1,9 @@ -find_package(retdec @PROJECT_VERSION@ REQUIRED - COMPONENTS - utils -) - 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/retdec-config-config.cmake b/src/config/retdec-config-config.cmake index 58ea95bbd..261fa46c9 100644 --- a/src/config/retdec-config-config.cmake +++ b/src/config/retdec-config-config.cmake @@ -1,13 +1,13 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - serdes - common - utils - rapidjson -) - 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/cpdetect/retdec-cpdetect-config.cmake b/src/cpdetect/retdec-cpdetect-config.cmake index 965340ead..84a36994f 100644 --- a/src/cpdetect/retdec-cpdetect-config.cmake +++ b/src/cpdetect/retdec-cpdetect-config.cmake @@ -1,14 +1,14 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - fileformat - yaracpp - utils - tinyxml2 - llvm -) - 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/retdec-crypto-config.cmake b/src/crypto/retdec-crypto-config.cmake index 0bf1cb36b..ed57d176d 100644 --- a/src/crypto/retdec-crypto-config.cmake +++ b/src/crypto/retdec-crypto-config.cmake @@ -1,12 +1,12 @@ -find_package(Threads REQUIRED) -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - utils - openssl-crypto -) - 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/retdec-ctypes-config.cmake b/src/ctypes/retdec-ctypes-config.cmake index 5f3c16b31..e6b9de3a9 100644 --- a/src/ctypes/retdec-ctypes-config.cmake +++ b/src/ctypes/retdec-ctypes-config.cmake @@ -1,10 +1,10 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - utils -) - 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/retdec-ctypesparser-config.cmake b/src/ctypesparser/retdec-ctypesparser-config.cmake index 08ea46fa5..e062cc5e5 100644 --- a/src/ctypesparser/retdec-ctypesparser-config.cmake +++ b/src/ctypesparser/retdec-ctypesparser-config.cmake @@ -1,12 +1,12 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - ctypes - utils - rapidjson -) - 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/retdec-debugformat-config.cmake b/src/debugformat/retdec-debugformat-config.cmake index 89cb69ad2..332240568 100644 --- a/src/debugformat/retdec-debugformat-config.cmake +++ b/src/debugformat/retdec-debugformat-config.cmake @@ -1,15 +1,15 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - demangler - loader - fileformat - common - pdbparser - llvm -) - 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/retdec-demangler-config.cmake b/src/demangler/retdec-demangler-config.cmake index b3e1f7356..3ef6f6cbc 100644 --- a/src/demangler/retdec-demangler-config.cmake +++ b/src/demangler/retdec-demangler-config.cmake @@ -1,11 +1,11 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - ctypesparser - llvm -) - 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/fileformat/retdec-fileformat-config.cmake b/src/fileformat/retdec-fileformat-config.cmake index 4bdf57710..8c7909d7c 100644 --- a/src/fileformat/retdec-fileformat-config.cmake +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -1,15 +1,15 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - crypto - common - utils - pelib - elfio - llvm -) - 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/llvm-support/retdec-llvm-support-config.cmake b/src/llvm-support/retdec-llvm-support-config.cmake index a5f38b9bf..7f9d08996 100644 --- a/src/llvm-support/retdec-llvm-support-config.cmake +++ b/src/llvm-support/retdec-llvm-support-config.cmake @@ -1,11 +1,11 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - utils - llvm -) - 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/retdec-llvmir-emul-config.cmake b/src/llvmir-emul/retdec-llvmir-emul-config.cmake index 721f66c7e..05c2fefd7 100644 --- a/src/llvmir-emul/retdec-llvmir-emul-config.cmake +++ b/src/llvmir-emul/retdec-llvmir-emul-config.cmake @@ -1,10 +1,10 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - llvm -) - 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/retdec-llvmir2hll-config.cmake b/src/llvmir2hll/retdec-llvmir2hll-config.cmake index 7450895b5..8e751efb4 100644 --- a/src/llvmir2hll/retdec-llvmir2hll-config.cmake +++ b/src/llvmir2hll/retdec-llvmir2hll-config.cmake @@ -1,14 +1,14 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - config - utils - llvm-support - rapidjson - llvm -) - 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/loader/retdec-loader-config.cmake b/src/loader/retdec-loader-config.cmake index 72e3c1bc4..7bc6b00e5 100644 --- a/src/loader/retdec-loader-config.cmake +++ b/src/loader/retdec-loader-config.cmake @@ -1,12 +1,12 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - fileformat - common - utils -) - 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/retdec-macho-extractor-config.cmake b/src/macho-extractor/retdec-macho-extractor-config.cmake index f69255a17..98696aa0d 100644 --- a/src/macho-extractor/retdec-macho-extractor-config.cmake +++ b/src/macho-extractor/retdec-macho-extractor-config.cmake @@ -1,12 +1,12 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - utils - rapidjson - llvm -) - 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/patterngen/retdec-patterngen-config.cmake b/src/patterngen/retdec-patterngen-config.cmake index 71a575564..bc397c2d3 100644 --- a/src/patterngen/retdec-patterngen-config.cmake +++ b/src/patterngen/retdec-patterngen-config.cmake @@ -1,12 +1,12 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - fileformat - utils - yaramod -) - 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/retdec/retdec-retdec-config.cmake b/src/retdec/retdec-retdec-config.cmake index ba57870fd..1778b0d1b 100644 --- a/src/retdec/retdec-retdec-config.cmake +++ b/src/retdec/retdec-retdec-config.cmake @@ -1,14 +1,14 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - bin2llvmir - config - common - capstone - llvm -) - 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/rtti-finder/retdec-rtti-finder-config.cmake b/src/rtti-finder/retdec-rtti-finder-config.cmake index 52d2cbaa3..7ae3dd8cf 100644 --- a/src/rtti-finder/retdec-rtti-finder-config.cmake +++ b/src/rtti-finder/retdec-rtti-finder-config.cmake @@ -1,12 +1,12 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - loader - common - utils -) - 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/retdec-serdes-config.cmake b/src/serdes/retdec-serdes-config.cmake index ba773f77b..a16f97629 100644 --- a/src/serdes/retdec-serdes-config.cmake +++ b/src/serdes/retdec-serdes-config.cmake @@ -1,11 +1,11 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - common - rapidjson -) - 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/retdec-stacofin-config.cmake b/src/stacofin/retdec-stacofin-config.cmake index 9bdd80916..ebf031073 100644 --- a/src/stacofin/retdec-stacofin-config.cmake +++ b/src/stacofin/retdec-stacofin-config.cmake @@ -1,15 +1,15 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - loader - config - common - yaracpp - utils - capstone -) - 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/unpacker/retdec-unpacker-config.cmake b/src/unpacker/retdec-unpacker-config.cmake index 77aa9387a..ec4527896 100644 --- a/src/unpacker/retdec-unpacker-config.cmake +++ b/src/unpacker/retdec-unpacker-config.cmake @@ -1,10 +1,10 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - loader -) - 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/yaracpp/retdec-yaracpp-config.cmake b/src/yaracpp/retdec-yaracpp-config.cmake index ee54d09b3..1519bd33f 100644 --- a/src/yaracpp/retdec-yaracpp-config.cmake +++ b/src/yaracpp/retdec-yaracpp-config.cmake @@ -1,10 +1,10 @@ -find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - libyara -) - if(NOT TARGET retdec::yaracpp) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + libyara + ) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaracpp-targets.cmake) endif() From c0388d078cff7c776dc1ee95676b0f1e8fc6998b Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 16:22:24 +0200 Subject: [PATCH 51/61] cmake: prefix all deps targets with retdec::deps:: --- deps/capstone/CMakeLists.txt | 6 +++--- deps/capstone/retdec-capstone-config.cmake | 8 ++++---- deps/elfio/CMakeLists.txt | 4 ++-- deps/elfio/retdec-elfio-config.cmake | 2 +- deps/googletest/CMakeLists.txt | 8 ++++---- deps/keystone/CMakeLists.txt | 2 +- deps/llvm/CMakeLists.txt | 6 +++--- deps/llvm/retdec-llvm-config.cmake | 4 ++-- deps/openssl/CMakeLists.txt | 6 +++--- deps/openssl/retdec-openssl-crypto-config.cmake | 8 ++++---- deps/rapidjson/CMakeLists.txt | 4 ++-- deps/rapidjson/retdec-rapidjson-config.cmake | 2 +- deps/tinyxml2/CMakeLists.txt | 4 ++-- deps/tinyxml2/retdec-tinyxml2-config.cmake | 2 +- deps/whereami/CMakeLists.txt | 2 +- deps/yara/CMakeLists.txt | 6 +++--- deps/yara/retdec-libyara-config.cmake | 8 ++++---- deps/yaramod/CMakeLists.txt | 6 +++--- deps/yaramod/retdec-yaramod-config.cmake | 4 ++-- src/ar-extractor/CMakeLists.txt | 4 ++-- src/ar-extractortool/CMakeLists.txt | 2 +- src/bin2llvmir/CMakeLists.txt | 2 +- src/bin2pat/CMakeLists.txt | 2 +- src/capstone2llvmir/CMakeLists.txt | 4 ++-- src/capstone2llvmirtool/CMakeLists.txt | 2 +- src/config/CMakeLists.txt | 2 +- src/cpdetect/CMakeLists.txt | 4 ++-- src/crypto/CMakeLists.txt | 2 +- src/ctypesparser/CMakeLists.txt | 2 +- src/debugformat/CMakeLists.txt | 2 +- src/demangler/CMakeLists.txt | 2 +- src/fileformat/CMakeLists.txt | 4 ++-- src/fileinfo/CMakeLists.txt | 4 ++-- src/llvm-support/CMakeLists.txt | 2 +- src/llvmir-emul/CMakeLists.txt | 2 +- src/llvmir2hll/CMakeLists.txt | 4 ++-- src/macho-extractor/CMakeLists.txt | 4 ++-- src/macho-extractortool/CMakeLists.txt | 2 +- src/pat2yara/CMakeLists.txt | 2 +- src/patterngen/CMakeLists.txt | 2 +- src/retdec/CMakeLists.txt | 4 ++-- src/serdes/CMakeLists.txt | 2 +- src/stacofin/CMakeLists.txt | 2 +- src/utils/CMakeLists.txt | 2 +- src/yaracpp/CMakeLists.txt | 2 +- tests/bin2llvmir/CMakeLists.txt | 2 +- tests/capstone2llvmir/CMakeLists.txt | 4 ++-- tests/common/CMakeLists.txt | 2 +- tests/config/CMakeLists.txt | 2 +- tests/ctypes/CMakeLists.txt | 2 +- tests/ctypesparser/CMakeLists.txt | 2 +- tests/demangler/CMakeLists.txt | 2 +- tests/fileformat/CMakeLists.txt | 2 +- tests/llvmir-emul/CMakeLists.txt | 2 +- tests/llvmir2hll/CMakeLists.txt | 2 +- tests/loader/CMakeLists.txt | 2 +- tests/serdes/CMakeLists.txt | 2 +- tests/unpacker/CMakeLists.txt | 2 +- tests/utils/CMakeLists.txt | 2 +- 59 files changed, 95 insertions(+), 95 deletions(-) diff --git a/deps/capstone/CMakeLists.txt b/deps/capstone/CMakeLists.txt index d439549cb..ae4360531 100644 --- a/deps/capstone/CMakeLists.txt +++ b/deps/capstone/CMakeLists.txt @@ -108,7 +108,7 @@ set(CAPSTONE_LIB ${CMAKE_STATIC_LIBRARY_PREFIX}capstone${CMAKE_STATIC_LIBRARY_SU # Add libraries. add_library(capstone INTERFACE) -add_library(retdec::capstone ALIAS capstone) +add_library(retdec::deps::capstone ALIAS capstone) add_dependencies(capstone capstone-project) target_include_directories(capstone @@ -119,7 +119,7 @@ target_include_directories(capstone ) target_link_libraries(capstone INTERFACE - $ + $ debug $ optimized @@ -163,7 +163,7 @@ install(TARGETS capstone # Export targets. install(EXPORT capstone-targets FILE "retdec-capstone-targets.cmake" - NAMESPACE retdec:: + NAMESPACE retdec::deps:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) diff --git a/deps/capstone/retdec-capstone-config.cmake b/deps/capstone/retdec-capstone-config.cmake index d61dcbd3c..f8bef78f4 100644 --- a/deps/capstone/retdec-capstone-config.cmake +++ b/deps/capstone/retdec-capstone-config.cmake @@ -1,12 +1,12 @@ @PACKAGE_INIT@ -if(NOT TARGET retdec::capstone-libs) - add_library(retdec::capstone-libs STATIC IMPORTED) - set_target_properties(retdec::capstone-libs PROPERTIES +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::capstone) +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 0dcc969b6..0b0181f2a 100644 --- a/deps/elfio/CMakeLists.txt +++ b/deps/elfio/CMakeLists.txt @@ -1,6 +1,6 @@ add_library(elfio INTERFACE) -add_library(retdec::elfio ALIAS elfio) +add_library(retdec::deps::elfio ALIAS elfio) target_include_directories(elfio SYSTEM INTERFACE @@ -24,7 +24,7 @@ install(TARGETS elfio # Export targets. install(EXPORT elfio-targets FILE "retdec-elfio-targets.cmake" - NAMESPACE retdec:: + NAMESPACE retdec::deps:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) diff --git a/deps/elfio/retdec-elfio-config.cmake b/deps/elfio/retdec-elfio-config.cmake index c1e96d74b..16f3b4239 100644 --- a/deps/elfio/retdec-elfio-config.cmake +++ b/deps/elfio/retdec-elfio-config.cmake @@ -1,4 +1,4 @@ -if(NOT TARGET retdec::elfio) +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 695913fe6..389225cee 100644 --- a/deps/googletest/CMakeLists.txt +++ b/deps/googletest/CMakeLists.txt @@ -79,7 +79,7 @@ ExternalProject_Get_Property(googletest binary_dir) # gtest add_library(gtest INTERFACE) -add_library(retdec::gtest ALIAS gtest) +add_library(retdec::deps::gtest ALIAS gtest) add_dependencies(gtest googletest) target_link_libraries(gtest INTERFACE debug @@ -96,7 +96,7 @@ target_include_directories(gtest # gtest_main add_library(gtest_main INTERFACE) -add_library(retdec::gtest_main ALIAS gtest_main) +add_library(retdec::deps::gtest_main ALIAS gtest_main) target_link_libraries(gtest_main INTERFACE # Threads::Threads debug @@ -114,7 +114,7 @@ target_link_libraries(gtest_main INTERFACE # gmock add_library(gmock INTERFACE) -add_library(retdec::gmock ALIAS gmock) +add_library(retdec::deps::gmock ALIAS gmock) target_link_libraries(gmock INTERFACE # Threads::Threads debug @@ -133,7 +133,7 @@ target_include_directories(gmock # gmock_main add_library(gmock_main INTERFACE) -add_library(retdec::gmock_main ALIAS gmock_main) +add_library(retdec::deps::gmock_main ALIAS gmock_main) target_link_libraries(gmock_main INTERFACE # Threads::Threads debug diff --git a/deps/keystone/CMakeLists.txt b/deps/keystone/CMakeLists.txt index cae188ab2..20aff64c6 100644 --- a/deps/keystone/CMakeLists.txt +++ b/deps/keystone/CMakeLists.txt @@ -74,7 +74,7 @@ ExternalProject_Get_Property(keystone-project binary_dir) # Add libraries. add_library(keystone INTERFACE) -add_library(retdec::keystone ALIAS keystone) +add_library(retdec::deps::keystone ALIAS keystone) add_dependencies(keystone keystone-project) target_include_directories(keystone diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index f15aaa7da..b8864a4d2 100644 --- a/deps/llvm/CMakeLists.txt +++ b/deps/llvm/CMakeLists.txt @@ -200,7 +200,7 @@ ExternalProject_Get_Property(llvm-project source_dir) # Create target. add_library(llvm INTERFACE) -add_library(retdec::llvm ALIAS llvm) +add_library(retdec::deps::llvm ALIAS llvm) add_dependencies(llvm llvm-project) target_include_directories(llvm @@ -235,7 +235,7 @@ endforeach(LLVM_LIB) target_link_libraries(llvm INTERFACE - $ + $ Threads::Threads ) @@ -279,7 +279,7 @@ install(TARGETS llvm # Export targets. install(EXPORT llvm-targets FILE "retdec-llvm-targets.cmake" - NAMESPACE retdec:: + NAMESPACE retdec::deps:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) diff --git a/deps/llvm/retdec-llvm-config.cmake b/deps/llvm/retdec-llvm-config.cmake index 10e7caea5..159bab189 100644 --- a/deps/llvm/retdec-llvm-config.cmake +++ b/deps/llvm/retdec-llvm-config.cmake @@ -2,7 +2,7 @@ if(NOT TARGET llvm-libs) add_library(llvm-libs INTERFACE) - add_library(retdec::llvm-libs ALIAS llvm-libs) + add_library(retdec::deps::llvm-libs ALIAS llvm-libs) foreach(LLVM_LIB @PACKAGE_LLVM_LIBS_PATHS@) target_link_libraries(llvm-libs INTERFACE ${LLVM_LIB} @@ -10,7 +10,7 @@ if(NOT TARGET llvm-libs) endforeach(LLVM_LIB) endif() -if(NOT TARGET retdec::llvm) +if(NOT TARGET retdec::deps::llvm) find_package(Threads REQUIRED) if(UNIX OR MINGW) find_package(ZLIB REQUIRED) diff --git a/deps/openssl/CMakeLists.txt b/deps/openssl/CMakeLists.txt index edbd91ce6..3fa878e88 100644 --- a/deps/openssl/CMakeLists.txt +++ b/deps/openssl/CMakeLists.txt @@ -164,7 +164,7 @@ ExternalProject_Add(openssl set(OPENSSL_CRYPTO_LIB libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}) add_library(openssl-crypto INTERFACE) -add_library(retdec::openssl-crypto ALIAS openssl-crypto) +add_library(retdec::deps::openssl-crypto ALIAS openssl-crypto) add_dependencies(openssl-crypto openssl) target_include_directories(openssl-crypto @@ -176,7 +176,7 @@ target_include_directories(openssl-crypto target_link_libraries(openssl-crypto INTERFACE $ - $ + $ Threads::Threads ) if(MSVC) @@ -228,7 +228,7 @@ install(TARGETS openssl-crypto # Export targets. install(EXPORT openssl-crypto-targets FILE "retdec-openssl-crypto-targets.cmake" - NAMESPACE retdec:: + NAMESPACE retdec::deps:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) diff --git a/deps/openssl/retdec-openssl-crypto-config.cmake b/deps/openssl/retdec-openssl-crypto-config.cmake index 22eaa1916..1417a3b79 100644 --- a/deps/openssl/retdec-openssl-crypto-config.cmake +++ b/deps/openssl/retdec-openssl-crypto-config.cmake @@ -1,13 +1,13 @@ @PACKAGE_INIT@ -if(NOT TARGET retdec::openssl-crypto-libs) - add_library(retdec::openssl-crypto-libs STATIC IMPORTED) - set_target_properties(retdec::openssl-crypto-libs PROPERTIES +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::openssl-crypto) +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 af44e2909..10961c847 100644 --- a/deps/rapidjson/CMakeLists.txt +++ b/deps/rapidjson/CMakeLists.txt @@ -1,6 +1,6 @@ add_library(rapidjson INTERFACE) -add_library(retdec::rapidjson ALIAS rapidjson) +add_library(retdec::deps::rapidjson ALIAS rapidjson) target_compile_definitions(rapidjson INTERFACE @@ -30,7 +30,7 @@ install(TARGETS rapidjson # Export targets. install(EXPORT rapidjson-targets FILE "retdec-rapidjson-targets.cmake" - NAMESPACE retdec:: + NAMESPACE retdec::deps:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) diff --git a/deps/rapidjson/retdec-rapidjson-config.cmake b/deps/rapidjson/retdec-rapidjson-config.cmake index 4e642a19c..f01083db4 100644 --- a/deps/rapidjson/retdec-rapidjson-config.cmake +++ b/deps/rapidjson/retdec-rapidjson-config.cmake @@ -1,4 +1,4 @@ -if(NOT TARGET retdec::rapidjson) +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 df9973cca..2bf7b8645 100644 --- a/deps/tinyxml2/CMakeLists.txt +++ b/deps/tinyxml2/CMakeLists.txt @@ -2,7 +2,7 @@ add_library(tinyxml2 STATIC tinyxml2.cpp ) -add_library(retdec::tinyxml2 ALIAS tinyxml2) +add_library(retdec::deps::tinyxml2 ALIAS tinyxml2) target_include_directories(tinyxml2 SYSTEM INTERFACE @@ -35,7 +35,7 @@ install(TARGETS tinyxml2 # Export targets. install(EXPORT tinyxml2-targets FILE "retdec-tinyxml2-targets.cmake" - NAMESPACE retdec:: + NAMESPACE retdec::deps:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) diff --git a/deps/tinyxml2/retdec-tinyxml2-config.cmake b/deps/tinyxml2/retdec-tinyxml2-config.cmake index e0b745263..a1c548bc2 100644 --- a/deps/tinyxml2/retdec-tinyxml2-config.cmake +++ b/deps/tinyxml2/retdec-tinyxml2-config.cmake @@ -1,4 +1,4 @@ -if(NOT TARGET retdec::tinyxml2) +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 ba27a0657..8368fa6e7 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -2,7 +2,7 @@ add_library(whereami STATIC whereami.c ) -add_library(retdec::whereami ALIAS whereami) +add_library(retdec::deps::whereami ALIAS whereami) target_include_directories(whereami SYSTEM INTERFACE diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index 8f124fbf7..cad2a5e96 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -108,7 +108,7 @@ set(YARA_LIBRARY ${YARA_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) set(YARA_LIBRARY_PATH ${YARA_LIBRARY_DIR}/${YARA_LIBRARY}) add_library(libyara INTERFACE) -add_library(retdec::libyara ALIAS libyara) +add_library(retdec::deps::libyara ALIAS libyara) add_dependencies(libyara yara) target_include_directories(libyara @@ -122,7 +122,7 @@ target_link_libraries(libyara $ #$ #$ - $ + $ Threads::Threads ) @@ -159,7 +159,7 @@ install(TARGETS libyara # Export targets. install(EXPORT libyara-targets FILE "retdec-libyara-targets.cmake" - NAMESPACE retdec:: + NAMESPACE retdec::deps:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) diff --git a/deps/yara/retdec-libyara-config.cmake b/deps/yara/retdec-libyara-config.cmake index 1f4fae5f5..32b38620a 100644 --- a/deps/yara/retdec-libyara-config.cmake +++ b/deps/yara/retdec-libyara-config.cmake @@ -1,13 +1,13 @@ @PACKAGE_INIT@ -if(NOT TARGET retdec::libyara-libs) - add_library(retdec::libyara-libs STATIC IMPORTED) - set_target_properties(retdec::libyara-libs PROPERTIES +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::libyara) +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 cfe29107d..b9e646d5a 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -64,7 +64,7 @@ ExternalProject_Get_Property(yaramod-project binary_dir) # Add libraries. add_library(yaramod INTERFACE) -add_library(retdec::yaramod ALIAS yaramod) +add_library(retdec::deps::yaramod ALIAS yaramod) add_dependencies(yaramod yaramod-project) target_include_directories(yaramod @@ -87,7 +87,7 @@ target_link_libraries(yaramod INTERFACE general $ $ - $ + $ ) # Install libs. @@ -132,7 +132,7 @@ install(TARGETS yaramod # Export targets. install(EXPORT yaramod-targets FILE "retdec-yaramod-targets.cmake" - NAMESPACE retdec:: + NAMESPACE retdec::deps:: DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} ) diff --git a/deps/yaramod/retdec-yaramod-config.cmake b/deps/yaramod/retdec-yaramod-config.cmake index 9c915cd4a..ade53390d 100644 --- a/deps/yaramod/retdec-yaramod-config.cmake +++ b/deps/yaramod/retdec-yaramod-config.cmake @@ -2,7 +2,7 @@ if(NOT TARGET yaramod-libs) add_library(yaramod-libs INTERFACE) - add_library(retdec::yaramod-libs ALIAS yaramod-libs) + add_library(retdec::deps::yaramod-libs ALIAS yaramod-libs) foreach(YARAMOD_LIB @PACKAGE_YARAMOD_LIBS_INSTALLED@) target_link_libraries(yaramod-libs INTERFACE ${YARAMOD_LIB} @@ -10,6 +10,6 @@ if(NOT TARGET yaramod-libs) endforeach(YARAMOD_LIB) endif() -if(NOT TARGET retdec::yaramod) +if(NOT TARGET retdec::deps::yaramod) include(${CMAKE_CURRENT_LIST_DIR}/retdec-yaramod-targets.cmake) endif() diff --git a/src/ar-extractor/CMakeLists.txt b/src/ar-extractor/CMakeLists.txt index 9e219cb7c..1ce16572a 100644 --- a/src/ar-extractor/CMakeLists.txt +++ b/src/ar-extractor/CMakeLists.txt @@ -14,9 +14,9 @@ target_include_directories(ar-extractor target_link_libraries(ar-extractor PUBLIC retdec::utils - retdec::llvm + retdec::deps::llvm PRIVATE - retdec::rapidjson + retdec::deps::rapidjson ) # Install includes. diff --git a/src/ar-extractortool/CMakeLists.txt b/src/ar-extractortool/CMakeLists.txt index 3c5003fa4..44ecf5e76 100644 --- a/src/ar-extractortool/CMakeLists.txt +++ b/src/ar-extractortool/CMakeLists.txt @@ -6,7 +6,7 @@ add_executable(ar-extractortool target_link_libraries(ar-extractortool retdec::ar-extractor retdec::utils - retdec::rapidjson + retdec::deps::rapidjson ) set_target_properties(ar-extractortool diff --git a/src/bin2llvmir/CMakeLists.txt b/src/bin2llvmir/CMakeLists.txt index d92e06c91..e0a3449b6 100644 --- a/src/bin2llvmir/CMakeLists.txt +++ b/src/bin2llvmir/CMakeLists.txt @@ -130,7 +130,7 @@ target_link_libraries(bin2llvmir retdec::common retdec::utils retdec::llvm-support - retdec::llvm + retdec::deps::llvm ) # Install includes. diff --git a/src/bin2pat/CMakeLists.txt b/src/bin2pat/CMakeLists.txt index 82fd0b4b6..ee43049b3 100644 --- a/src/bin2pat/CMakeLists.txt +++ b/src/bin2pat/CMakeLists.txt @@ -6,7 +6,7 @@ add_executable(bin2pat target_link_libraries(bin2pat retdec::patterngen retdec::utils - retdec::yaramod + retdec::deps::yaramod ) set_target_properties(bin2pat diff --git a/src/capstone2llvmir/CMakeLists.txt b/src/capstone2llvmir/CMakeLists.txt index 9a9f23e34..b51c73952 100644 --- a/src/capstone2llvmir/CMakeLists.txt +++ b/src/capstone2llvmir/CMakeLists.txt @@ -28,8 +28,8 @@ target_include_directories(capstone2llvmir target_link_libraries(capstone2llvmir PUBLIC retdec::common - retdec::capstone - retdec::llvm + retdec::deps::capstone + retdec::deps::llvm ) # Install includes. diff --git a/src/capstone2llvmirtool/CMakeLists.txt b/src/capstone2llvmirtool/CMakeLists.txt index a9852e47d..e08f2e1f4 100644 --- a/src/capstone2llvmirtool/CMakeLists.txt +++ b/src/capstone2llvmirtool/CMakeLists.txt @@ -6,7 +6,7 @@ add_executable(capstone2llvmirtool target_link_libraries(capstone2llvmirtool retdec::utils retdec::capstone2llvmir - retdec::keystone + retdec::deps::keystone ) set_target_properties(capstone2llvmirtool diff --git a/src/config/CMakeLists.txt b/src/config/CMakeLists.txt index 279285e4c..ff5b191d2 100644 --- a/src/config/CMakeLists.txt +++ b/src/config/CMakeLists.txt @@ -16,7 +16,7 @@ target_include_directories(config PUBLIC target_link_libraries(config PUBLIC retdec::common - retdec::rapidjson + retdec::deps::rapidjson PRIVATE retdec::serdes retdec::utils diff --git a/src/cpdetect/CMakeLists.txt b/src/cpdetect/CMakeLists.txt index 3eeeab378..6adaa7538 100644 --- a/src/cpdetect/CMakeLists.txt +++ b/src/cpdetect/CMakeLists.txt @@ -35,8 +35,8 @@ target_link_libraries(cpdetect retdec::utils PRIVATE retdec::yaracpp - retdec::tinyxml2 - retdec::llvm + retdec::deps::tinyxml2 + retdec::deps::llvm ) # Install includes. diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index f8df7226e..81a01fdc7 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(crypto target_link_libraries(crypto PRIVATE retdec::utils - retdec::openssl-crypto + retdec::deps::openssl-crypto ) # Install includes. diff --git a/src/ctypesparser/CMakeLists.txt b/src/ctypesparser/CMakeLists.txt index 8b1869ef1..e44bd8b32 100644 --- a/src/ctypesparser/CMakeLists.txt +++ b/src/ctypesparser/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(ctypesparser target_link_libraries(ctypesparser PUBLIC retdec::ctypes - retdec::rapidjson + retdec::deps::rapidjson PRIVATE retdec::utils ) diff --git a/src/debugformat/CMakeLists.txt b/src/debugformat/CMakeLists.txt index fc3665ab0..ba7719deb 100644 --- a/src/debugformat/CMakeLists.txt +++ b/src/debugformat/CMakeLists.txt @@ -21,7 +21,7 @@ target_link_libraries(debugformat retdec::fileformat retdec::common retdec::pdbparser - retdec::llvm + retdec::deps::llvm ) # Install includes. diff --git a/src/demangler/CMakeLists.txt b/src/demangler/CMakeLists.txt index be4ba2027..f1e58e8b3 100644 --- a/src/demangler/CMakeLists.txt +++ b/src/demangler/CMakeLists.txt @@ -41,7 +41,7 @@ target_include_directories(demangler target_link_libraries(demangler PUBLIC retdec::ctypesparser - retdec::llvm + retdec::deps::llvm ) # Install includes. diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index 2a1c100b1..a77906c4f 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -91,8 +91,8 @@ target_link_libraries(fileformat retdec::common retdec::utils retdec::pelib - retdec::elfio - retdec::llvm + retdec::deps::elfio + retdec::deps::llvm ) # Install includes. diff --git a/src/fileinfo/CMakeLists.txt b/src/fileinfo/CMakeLists.txt index 53a432281..b142cb17b 100644 --- a/src/fileinfo/CMakeLists.txt +++ b/src/fileinfo/CMakeLists.txt @@ -125,8 +125,8 @@ target_link_libraries(fileinfo retdec::common retdec::config retdec::serdes - retdec::rapidjson - retdec::tinyxml2 + retdec::deps::rapidjson + retdec::deps::tinyxml2 ) set_target_properties(fileinfo diff --git a/src/llvm-support/CMakeLists.txt b/src/llvm-support/CMakeLists.txt index bff7a23f1..86a4a3e28 100644 --- a/src/llvm-support/CMakeLists.txt +++ b/src/llvm-support/CMakeLists.txt @@ -12,7 +12,7 @@ target_include_directories(llvm-support target_link_libraries(llvm-support PUBLIC - retdec::llvm + retdec::deps::llvm PRIVATE retdec::utils ) diff --git a/src/llvmir-emul/CMakeLists.txt b/src/llvmir-emul/CMakeLists.txt index 249e02bff..6446a395d 100644 --- a/src/llvmir-emul/CMakeLists.txt +++ b/src/llvmir-emul/CMakeLists.txt @@ -12,7 +12,7 @@ target_include_directories(llvmir-emul target_link_libraries(llvmir-emul PUBLIC - retdec::llvm + retdec::deps::llvm ) # Install includes. diff --git a/src/llvmir2hll/CMakeLists.txt b/src/llvmir2hll/CMakeLists.txt index 3a164bcfc..433732107 100644 --- a/src/llvmir2hll/CMakeLists.txt +++ b/src/llvmir2hll/CMakeLists.txt @@ -311,8 +311,8 @@ target_link_libraries(llvmir2hll retdec::config retdec::utils retdec::llvm-support - retdec::rapidjson - retdec::llvm + retdec::deps::rapidjson + retdec::deps::llvm ) # We need to compile source files with /bigobj to prevent the following diff --git a/src/macho-extractor/CMakeLists.txt b/src/macho-extractor/CMakeLists.txt index 733946f7e..3f0bc96cc 100644 --- a/src/macho-extractor/CMakeLists.txt +++ b/src/macho-extractor/CMakeLists.txt @@ -12,10 +12,10 @@ target_include_directories(macho-extractor target_link_libraries(macho-extractor PUBLIC - retdec::llvm + retdec::deps::llvm PRIVATE retdec::utils - retdec::rapidjson + retdec::deps::rapidjson ) # Install includes. diff --git a/src/macho-extractortool/CMakeLists.txt b/src/macho-extractortool/CMakeLists.txt index 1ec3fe736..3ddf9b002 100644 --- a/src/macho-extractortool/CMakeLists.txt +++ b/src/macho-extractortool/CMakeLists.txt @@ -6,7 +6,7 @@ add_executable(macho-extractortool target_link_libraries(macho-extractortool retdec::macho-extractor retdec::utils - retdec::rapidjson + retdec::deps::rapidjson ) set_target_properties(macho-extractortool diff --git a/src/pat2yara/CMakeLists.txt b/src/pat2yara/CMakeLists.txt index 741854dda..ea9cc8fab 100644 --- a/src/pat2yara/CMakeLists.txt +++ b/src/pat2yara/CMakeLists.txt @@ -11,7 +11,7 @@ add_executable(pat2yara target_link_libraries(pat2yara retdec::patterngen retdec::utils - retdec::yaramod + retdec::deps::yaramod ) set_target_properties(pat2yara diff --git a/src/patterngen/CMakeLists.txt b/src/patterngen/CMakeLists.txt index 8e0cef245..a1c1297ea 100644 --- a/src/patterngen/CMakeLists.txt +++ b/src/patterngen/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(patterngen target_link_libraries(patterngen PUBLIC - retdec::yaramod + retdec::deps::yaramod PRIVATE retdec::fileformat retdec::utils diff --git a/src/retdec/CMakeLists.txt b/src/retdec/CMakeLists.txt index af45d9b8d..c3594b20b 100644 --- a/src/retdec/CMakeLists.txt +++ b/src/retdec/CMakeLists.txt @@ -15,8 +15,8 @@ target_include_directories(retdec target_link_libraries(retdec PUBLIC retdec::common - retdec::capstone - retdec::llvm + retdec::deps::capstone + retdec::deps::llvm PRIVATE retdec::bin2llvmir retdec::config diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index f8778180b..6a0f23759 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -28,7 +28,7 @@ target_include_directories(serdes target_link_libraries(serdes PUBLIC retdec::common - retdec::rapidjson + retdec::deps::rapidjson ) # Install includes. diff --git a/src/stacofin/CMakeLists.txt b/src/stacofin/CMakeLists.txt index 2dc3f938b..17aff0b83 100644 --- a/src/stacofin/CMakeLists.txt +++ b/src/stacofin/CMakeLists.txt @@ -16,7 +16,7 @@ target_link_libraries(stacofin PUBLIC retdec::config retdec::common - retdec::capstone + retdec::deps::capstone PRIVATE retdec::loader retdec::yaracpp diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 1545c9f92..85ceb185d 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -17,7 +17,7 @@ add_library(retdec::utils ALIAS utils) target_link_libraries(utils PRIVATE - retdec::whereami + retdec::deps::whereami ) if(WIN32) # shlwapi.dll for PathRemoveFileSpec() diff --git a/src/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index 8348d5ea9..abd0dba33 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -15,7 +15,7 @@ target_include_directories(yaracpp target_link_libraries(yaracpp PRIVATE - retdec::libyara + retdec::deps::libyara ) # Install includes. diff --git a/tests/bin2llvmir/CMakeLists.txt b/tests/bin2llvmir/CMakeLists.txt index 4cc9978b5..9c5c6f84c 100644 --- a/tests/bin2llvmir/CMakeLists.txt +++ b/tests/bin2llvmir/CMakeLists.txt @@ -28,7 +28,7 @@ add_executable(tests-bin2llvmir target_link_libraries(tests-bin2llvmir retdec::bin2llvmir retdec::utils - retdec::gmock_main + retdec::deps::gmock_main ) target_include_directories(tests-bin2llvmir diff --git a/tests/capstone2llvmir/CMakeLists.txt b/tests/capstone2llvmir/CMakeLists.txt index 9bb60ca11..e8557f68d 100644 --- a/tests/capstone2llvmir/CMakeLists.txt +++ b/tests/capstone2llvmir/CMakeLists.txt @@ -11,8 +11,8 @@ target_link_libraries(tests-capstone2llvmir retdec::capstone2llvmir retdec::llvmir-emul retdec::utils - retdec::keystone - retdec::gmock_main + retdec::deps::keystone + retdec::deps::gmock_main ) target_include_directories(tests-capstone2llvmir diff --git a/tests/common/CMakeLists.txt b/tests/common/CMakeLists.txt index ecfe7de76..49f0ff172 100644 --- a/tests/common/CMakeLists.txt +++ b/tests/common/CMakeLists.txt @@ -16,7 +16,7 @@ add_executable(tests-common target_link_libraries(tests-common retdec::common - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-common diff --git a/tests/config/CMakeLists.txt b/tests/config/CMakeLists.txt index d6dd34274..a687243d8 100644 --- a/tests/config/CMakeLists.txt +++ b/tests/config/CMakeLists.txt @@ -6,7 +6,7 @@ add_executable(tests-config target_link_libraries(tests-config retdec::common retdec::config - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-config diff --git a/tests/ctypes/CMakeLists.txt b/tests/ctypes/CMakeLists.txt index 5897a60e0..a4e0de339 100644 --- a/tests/ctypes/CMakeLists.txt +++ b/tests/ctypes/CMakeLists.txt @@ -29,7 +29,7 @@ add_executable(tests-ctypes target_link_libraries(tests-ctypes retdec::ctypes - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-ctypes diff --git a/tests/ctypesparser/CMakeLists.txt b/tests/ctypesparser/CMakeLists.txt index 21165a506..fcdb41402 100644 --- a/tests/ctypesparser/CMakeLists.txt +++ b/tests/ctypesparser/CMakeLists.txt @@ -5,7 +5,7 @@ add_executable(tests-ctypesparser target_link_libraries(tests-ctypesparser retdec::ctypesparser - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-ctypesparser diff --git a/tests/demangler/CMakeLists.txt b/tests/demangler/CMakeLists.txt index 4d3f0783d..9793ef4f5 100644 --- a/tests/demangler/CMakeLists.txt +++ b/tests/demangler/CMakeLists.txt @@ -11,7 +11,7 @@ add_executable(tests-demangler target_link_libraries(tests-demangler retdec::demangler - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-demangler diff --git a/tests/fileformat/CMakeLists.txt b/tests/fileformat/CMakeLists.txt index cba58a56c..f95c681f3 100644 --- a/tests/fileformat/CMakeLists.txt +++ b/tests/fileformat/CMakeLists.txt @@ -15,7 +15,7 @@ add_executable(tests-fileformat target_link_libraries(tests-fileformat retdec::fileformat retdec::utils - retdec::gmock_main + retdec::deps::gmock_main ) target_include_directories(tests-fileformat diff --git a/tests/llvmir-emul/CMakeLists.txt b/tests/llvmir-emul/CMakeLists.txt index a7fd53c9c..ef0d37916 100644 --- a/tests/llvmir-emul/CMakeLists.txt +++ b/tests/llvmir-emul/CMakeLists.txt @@ -6,7 +6,7 @@ add_executable(tests-llvm-emul target_link_libraries(tests-llvm-emul retdec::utils retdec::llvmir-emul - retdec::gmock_main + retdec::deps::gmock_main ) target_include_directories(tests-llvm-emul diff --git a/tests/llvmir2hll/CMakeLists.txt b/tests/llvmir2hll/CMakeLists.txt index 202361b92..259d64509 100644 --- a/tests/llvmir2hll/CMakeLists.txt +++ b/tests/llvmir2hll/CMakeLists.txt @@ -151,7 +151,7 @@ add_executable(tests-llvmir2hll target_link_libraries(tests-llvmir2hll retdec::llvmir2hll retdec::utils - retdec::gmock_main + retdec::deps::gmock_main ) target_include_directories(tests-llvmir2hll diff --git a/tests/loader/CMakeLists.txt b/tests/loader/CMakeLists.txt index 88438a7bb..0a8b3f152 100644 --- a/tests/loader/CMakeLists.txt +++ b/tests/loader/CMakeLists.txt @@ -10,7 +10,7 @@ target_link_libraries(tests-loader retdec::common retdec::loader retdec::utils - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-loader diff --git a/tests/serdes/CMakeLists.txt b/tests/serdes/CMakeLists.txt index 8c18853d5..0c4d2ae4d 100644 --- a/tests/serdes/CMakeLists.txt +++ b/tests/serdes/CMakeLists.txt @@ -7,7 +7,7 @@ add_executable(tests-serdes target_link_libraries(tests-serdes retdec::serdes - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-serdes diff --git a/tests/unpacker/CMakeLists.txt b/tests/unpacker/CMakeLists.txt index f27731a38..0dbd90eb9 100644 --- a/tests/unpacker/CMakeLists.txt +++ b/tests/unpacker/CMakeLists.txt @@ -6,7 +6,7 @@ add_executable(tests-unpacker target_link_libraries(tests-unpacker retdec::unpacker - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-unpacker diff --git a/tests/utils/CMakeLists.txt b/tests/utils/CMakeLists.txt index 46bb6b1e8..a4c1c7ada 100644 --- a/tests/utils/CMakeLists.txt +++ b/tests/utils/CMakeLists.txt @@ -17,7 +17,7 @@ add_executable(tests-utils target_link_libraries(tests-utils retdec::utils - retdec::gmock_main + retdec::deps::gmock_main ) set_target_properties(tests-utils From e1645d7fd5e81d1606c96752da3ac633c38a63e1 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 16:31:07 +0200 Subject: [PATCH 52/61] fileinfo: add openssl-crypto dep --- src/fileformat/CMakeLists.txt | 1 + src/fileformat/retdec-fileformat-config.cmake | 23 ++++++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index a77906c4f..25113f2e3 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -93,6 +93,7 @@ target_link_libraries(fileformat retdec::pelib retdec::deps::elfio retdec::deps::llvm + retdec::deps::openssl-crypto ) # Install includes. diff --git a/src/fileformat/retdec-fileformat-config.cmake b/src/fileformat/retdec-fileformat-config.cmake index 8c7909d7c..2743d592d 100644 --- a/src/fileformat/retdec-fileformat-config.cmake +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -1,15 +1,16 @@ if(NOT TARGET retdec::fileformat) - find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - crypto - common - utils - pelib - elfio - llvm - ) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + crypto + common + utils + pelib + elfio + llvm + openssl-crypto + ) - include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) endif() From eae76eed1d3813ea6554c318efdf05008f785026 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 17:23:53 +0200 Subject: [PATCH 53/61] Revert "fileinfo: add openssl-crypto dep" This reverts commit e1645d7fd5e81d1606c96752da3ac633c38a63e1. --- src/fileformat/CMakeLists.txt | 1 - src/fileformat/retdec-fileformat-config.cmake | 23 +++++++++---------- 2 files changed, 11 insertions(+), 13 deletions(-) diff --git a/src/fileformat/CMakeLists.txt b/src/fileformat/CMakeLists.txt index 25113f2e3..a77906c4f 100644 --- a/src/fileformat/CMakeLists.txt +++ b/src/fileformat/CMakeLists.txt @@ -93,7 +93,6 @@ target_link_libraries(fileformat retdec::pelib retdec::deps::elfio retdec::deps::llvm - retdec::deps::openssl-crypto ) # Install includes. diff --git a/src/fileformat/retdec-fileformat-config.cmake b/src/fileformat/retdec-fileformat-config.cmake index 2743d592d..8c7909d7c 100644 --- a/src/fileformat/retdec-fileformat-config.cmake +++ b/src/fileformat/retdec-fileformat-config.cmake @@ -1,16 +1,15 @@ if(NOT TARGET retdec::fileformat) - find_package(retdec @PROJECT_VERSION@ - REQUIRED - COMPONENTS - crypto - common - utils - pelib - elfio - llvm - openssl-crypto - ) + find_package(retdec @PROJECT_VERSION@ + REQUIRED + COMPONENTS + crypto + common + utils + pelib + elfio + llvm + ) - include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) + include(${CMAKE_CURRENT_LIST_DIR}/retdec-fileformat-targets.cmake) endif() From b996545078636266c725b0fd9562f57d8eebfec6 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 17:48:14 +0200 Subject: [PATCH 54/61] remove RETDEC_FORCE_OPENSSL_BUILD option, always build OpenSSL --- README.md | 2 -- cmake/options.cmake | 1 - deps/openssl/CMakeLists.txt | 13 ------------- 3 files changed, 16 deletions(-) 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 e3c692228..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) diff --git a/deps/openssl/CMakeLists.txt b/deps/openssl/CMakeLists.txt index 3fa878e88..f7f4f4052 100644 --- a/deps/openssl/CMakeLists.txt +++ b/deps/openssl/CMakeLists.txt @@ -1,17 +1,4 @@ -# Temporarily disabled, the current installation works only with static lib. -# This will probably find dynamic lib on Linux. -# -# if(NOT RETDEC_FORCE_OPENSSL_BUILD) -# 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) From 7fde99ac8e119b27075801ee1e9d4dbaa43444f5 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 20:30:52 +0200 Subject: [PATCH 55/61] cmake: refactorization --- CMakeLists.txt | 50 +++++++---- deps/CMakeLists.txt | 13 +++ deps/capstone/CMakeLists.txt | 53 ++++++------ deps/elfio/CMakeLists.txt | 9 +- deps/googletest/CMakeLists.txt | 32 +------ deps/keystone/CMakeLists.txt | 11 +-- deps/llvm/CMakeLists.txt | 53 ++++++------ deps/openssl/CMakeLists.txt | 44 +++++----- deps/rapidjson/CMakeLists.txt | 9 +- deps/tinyxml2/CMakeLists.txt | 14 ++-- deps/whereami/CMakeLists.txt | 2 - deps/yara/CMakeLists.txt | 46 +++++----- deps/yaramod/CMakeLists.txt | 84 ++++++++++--------- doc/doxygen/CMakeLists.txt | 12 ++- scripts/CMakeLists.txt | 43 ++++++++-- src/ar-extractor/CMakeLists.txt | 2 + src/ar-extractortool/CMakeLists.txt | 4 +- src/bin2llvmir/CMakeLists.txt | 2 +- src/bin2llvmirtool/CMakeLists.txt | 4 +- src/bin2pat/CMakeLists.txt | 4 +- src/capstone2llvmir/CMakeLists.txt | 2 + src/capstone2llvmirtool/CMakeLists.txt | 4 +- src/common/CMakeLists.txt | 2 + src/configtool/CMakeLists.txt | 8 +- src/crypto/CMakeLists.txt | 2 + src/ctypes/CMakeLists.txt | 2 + src/ctypesparser/CMakeLists.txt | 2 + src/demangler/CMakeLists.txt | 2 + src/demanglertool/CMakeLists.txt | 4 +- src/fileinfo/CMakeLists.txt | 2 +- src/getsig/CMakeLists.txt | 4 +- src/idr2pat/CMakeLists.txt | 9 +- src/llvm-support/CMakeLists.txt | 2 + src/llvmir-emul/CMakeLists.txt | 2 + src/llvmir2hlltool/CMakeLists.txt | 4 +- src/macho-extractor/CMakeLists.txt | 2 + src/macho-extractortool/CMakeLists.txt | 4 +- src/pat2yara/CMakeLists.txt | 12 +-- src/pdbparser/CMakeLists.txt | 2 + src/pelib/CMakeLists.txt | 2 + src/retdectool/CMakeLists.txt | 4 +- src/serdes/CMakeLists.txt | 2 + src/stacofintool/CMakeLists.txt | 4 +- src/unpacker/CMakeLists.txt | 8 -- src/unpackertool/CMakeLists.txt | 9 +- .../plugins/example/CMakeLists.txt | 2 +- src/utils/CMakeLists.txt | 10 ++- src/yaracpp/CMakeLists.txt | 2 + support/CMakeLists.txt | 14 +++- support/ordinals/CMakeLists.txt | 1 - tests/bin2llvmir/CMakeLists.txt | 10 +-- tests/capstone2llvmir/CMakeLists.txt | 10 +-- tests/fileformat/CMakeLists.txt | 10 +-- tests/llvmir-emul/CMakeLists.txt | 10 +-- tests/llvmir2hll/CMakeLists.txt | 10 +-- 55 files changed, 371 insertions(+), 299 deletions(-) delete mode 100644 support/ordinals/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt index 2b6d4fdb5..21a69b584 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,18 +26,36 @@ 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. -set(RETDEC_DEPS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/deps") -set(RETDEC_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/include") -set(RETDEC_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src") -set(RETDEC_TESTS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/tests") -set(RETDEC_BINARY_SHARE_DIR "${CMAKE_CURRENT_BINARY_DIR}/share") -set(RETDEC_INSTALL_BIN_DIR "${CMAKE_INSTALL_BINDIR}") -set(RETDEC_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}") -set(RETDEC_INSTALL_LIB_DIR "${CMAKE_INSTALL_LIBDIR}") -set(RETDEC_INSTALL_DATA_DIR "${CMAKE_INSTALL_DATADIR}/retdec") -set(RETDEC_INSTALL_CMAKE_DIR "${RETDEC_INSTALL_DATA_DIR}/cmake") -set(RETDEC_INSTALL_TESTS_DIR "bin") +### 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 @@ -130,7 +148,7 @@ add_subdirectory(tests) # Create config version file. write_basic_package_version_file( - "${RETDEC_BINARY_SHARE_DIR}/retdec-config-version.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-version.cmake" VERSION ${PROJECT_VERSION} COMPATIBILITY ExactVersion ) @@ -138,15 +156,15 @@ write_basic_package_version_file( # Create main RetDec CMake config file. configure_file( "${CMAKE_CURRENT_LIST_DIR}/retdec-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config.cmake" @ONLY ) # Install CMake files. install( FILES - "${RETDEC_BINARY_SHARE_DIR}/retdec-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-config-version.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-config-version.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" ) diff --git a/deps/CMakeLists.txt b/deps/CMakeLists.txt index 952e06971..cf5d8be50 100644 --- a/deps/CMakeLists.txt +++ b/deps/CMakeLists.txt @@ -1,3 +1,16 @@ + +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(RELEASE_DIR "Release/") set(DEBUG_DIR "Debug/") diff --git a/deps/capstone/CMakeLists.txt b/deps/capstone/CMakeLists.txt index afb109afb..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,9 +96,11 @@ endif() ExternalProject_Get_Property(capstone-project source_dir) ExternalProject_Get_Property(capstone-project binary_dir) -set(CAPSTONE_LIB ${CMAKE_STATIC_LIBRARY_PREFIX}capstone${CMAKE_STATIC_LIBRARY_SUFFIX}) +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}) -# Add libraries. +# Create target. add_library(capstone INTERFACE) add_library(retdec::deps::capstone ALIAS capstone) add_dependencies(capstone capstone-project) @@ -115,33 +109,23 @@ target_include_directories(capstone SYSTEM INTERFACE $ $ - $ + $ ) target_link_libraries(capstone INTERFACE $ debug - $ + $ optimized - $ -) - -# Configure config file. -set(CAPSTONE_LIB_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CAPSTONE_LIB}") -configure_package_config_file( - "retdec-capstone-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config.cmake" - INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - PATH_VARS - CAPSTONE_LIB_INSTALLED + $ ) # Install includes. install( DIRECTORY - ${source_dir}/include/capstone + ${source_dir}/include/ DESTINATION - ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} ) # Install libs. @@ -149,13 +133,14 @@ install( # We assume that only one variant will be present at the time. install( FILES - ${binary_dir}/${DEBUG_DIR}${CAPSTONE_LIB} - ${binary_dir}/${RELEASE_DIR}${CAPSTONE_LIB} + ${CAPSTONE_LIB_DEBUG} + ${CAPSTONE_LIB_OPT} DESTINATION - ${RETDEC_INSTALL_LIB_DIR} + ${RETDEC_INSTALL_DEPS_LIB_DIR} OPTIONAL ) +# Install targets. install(TARGETS capstone EXPORT capstone-targets ) @@ -167,10 +152,20 @@ install(EXPORT capstone-targets 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 - "${RETDEC_BINARY_SHARE_DIR}/retdec-capstone-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-capstone-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" ) diff --git a/deps/elfio/CMakeLists.txt b/deps/elfio/CMakeLists.txt index 0b0181f2a..912834fb1 100644 --- a/deps/elfio/CMakeLists.txt +++ b/deps/elfio/CMakeLists.txt @@ -5,20 +5,19 @@ add_library(retdec::deps::elfio ALIAS elfio) target_include_directories(elfio SYSTEM INTERFACE $ - $/retdec/deps + $ ) # Install includes. install( - DIRECTORY ${RETDEC_DEPS_DIR}/elfio/include/elfio - DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + DIRECTORY ${RETDEC_DEPS_DIR}/elfio/include/ + DESTINATION ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} ) -# Install libs. +# Install targets. install(TARGETS elfio EXPORT elfio-targets # Header only -> there are no actual libs to install to destination. - # But this block is still needed to get proper config. ) # Export targets. diff --git a/deps/googletest/CMakeLists.txt b/deps/googletest/CMakeLists.txt index 8b492993d..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,13 +67,13 @@ 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) +# Create targets. # gtest add_library(gtest INTERFACE) @@ -104,7 +96,6 @@ target_include_directories(gtest add_library(gtest_main INTERFACE) add_library(retdec::deps::gtest_main ALIAS gtest_main) target_link_libraries(gtest_main INTERFACE -# Threads::Threads debug ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} optimized @@ -112,17 +103,11 @@ target_link_libraries(gtest_main INTERFACE general gtest ) -# target_include_directories(gtest_main -# SYSTEM INTERFACE -# $ -# ) -# add_dependencies(gtest_main googletest) # gmock add_library(gmock INTERFACE) add_library(retdec::deps::gmock ALIAS gmock) target_link_libraries(gmock INTERFACE -# Threads::Threads debug ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} optimized @@ -132,16 +117,13 @@ target_link_libraries(gmock INTERFACE ) target_include_directories(gmock SYSTEM INTERFACE -# $ $ ) -# add_dependencies(gmock googletest) # gmock_main add_library(gmock_main INTERFACE) add_library(retdec::deps::gmock_main ALIAS gmock_main) target_link_libraries(gmock_main INTERFACE -# Threads::Threads debug ${binary_dir}/lib/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${DEBUG_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX} optimized @@ -149,9 +131,3 @@ target_link_libraries(gmock_main INTERFACE general gmock ) -# target_include_directories(gmock_main -# SYSTEM INTERFACE -# $ -# $ -# ) -# add_dependencies(gmock_main googletest) diff --git a/deps/keystone/CMakeLists.txt b/deps/keystone/CMakeLists.txt index 26cda6d97..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,7 +64,7 @@ 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) @@ -80,7 +72,6 @@ add_dependencies(keystone keystone-project) target_include_directories(keystone SYSTEM INTERFACE $ - # nothing for install because this does not need to be installed ) target_link_libraries(keystone INTERFACE diff --git a/deps/llvm/CMakeLists.txt b/deps/llvm/CMakeLists.txt index e0f285da9..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.") @@ -215,15 +205,19 @@ target_include_directories(llvm SYSTEM INTERFACE $ $ - $ + $ ) foreach(LLVM_LIB ${LLVM_LIB_LIST}) + 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. @@ -231,14 +225,14 @@ foreach(LLVM_LIB ${LLVM_LIB_LIST}) # We assume that only one variant will be present at the time. install( FILES - ${binary_dir}/${DEBUG_DIR}lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX} - ${binary_dir}/${RELEASE_DIR}lib/${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX} + ${LLVM_LIB_DEBUG} + ${LLVM_LIB_OPT} DESTINATION - ${RETDEC_INSTALL_LIB_DIR} + ${RETDEC_INSTALL_DEPS_LIB_DIR} OPTIONAL ) - list(APPEND LLVM_LIBS_PATHS "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${LLVM_LIB}${CMAKE_STATIC_LIBRARY_SUFFIX}") + list(APPEND LLVM_LIBS_PATHS "${RETDEC_INSTALL_DEPS_LIB_DIR_ABS}/${LLVM_LIB_NAME}") endforeach(LLVM_LIB) target_link_libraries(llvm @@ -262,24 +256,16 @@ elseif(MINGW) target_link_libraries(llvm INTERFACE ${ZLIB_LIBRARIES}) endif() -# Configure config file. -configure_package_config_file( - "retdec-llvm-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config.cmake" - INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - PATH_VARS - LLVM_LIBS_PATHS -) - # Install includes. install( DIRECTORY ${source_dir}/include/ ${binary_dir}/include/ DESTINATION - ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} ) +# Install targets. install(TARGETS llvm EXPORT llvm-targets ) @@ -291,10 +277,19 @@ install(EXPORT llvm-targets 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 - "${RETDEC_BINARY_SHARE_DIR}/retdec-llvm-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-llvm-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" ) diff --git a/deps/openssl/CMakeLists.txt b/deps/openssl/CMakeLists.txt index f7f4f4052..0acc00e92 100644 --- a/deps/openssl/CMakeLists.txt +++ b/deps/openssl/CMakeLists.txt @@ -2,11 +2,6 @@ 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) @@ -148,8 +143,10 @@ ExternalProject_Add(openssl LOG_INSTALL 1 ) -set(OPENSSL_CRYPTO_LIB libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(OPENSSL_CRYPTO_LIB_NAME libcrypto${CMAKE_STATIC_LIBRARY_SUFFIX}) +set(OPENSSL_CRYPTO_LIB ${OPENSSL_INSTALL_DIR}/lib/${OPENSSL_CRYPTO_LIB_NAME}) +# Create target. add_library(openssl-crypto INTERFACE) add_library(retdec::deps::openssl-crypto ALIAS openssl-crypto) add_dependencies(openssl-crypto openssl) @@ -157,12 +154,12 @@ add_dependencies(openssl-crypto openssl) target_include_directories(openssl-crypto SYSTEM INTERFACE $ - $ + $ ) target_link_libraries(openssl-crypto INTERFACE - $ + $ $ Threads::Threads ) @@ -182,32 +179,23 @@ elseif(UNIX) ) endif() -# Configure config file. -set(OPENSSL_CRYPTO_LIB_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/deps/${OPENSSL_CRYPTO_LIB}") -configure_package_config_file( - "retdec-openssl-crypto-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config.cmake" - INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - PATH_VARS - OPENSSL_CRYPTO_LIB_INSTALLED -) - # Install includes. install( DIRECTORY - ${OPENSSL_INSTALL_DIR}/include/openssl + ${OPENSSL_INSTALL_DIR}/include/ DESTINATION - ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} ) # Install libs. install( FILES - ${OPENSSL_INSTALL_DIR}/lib/${OPENSSL_CRYPTO_LIB} + ${OPENSSL_CRYPTO_LIB} DESTINATION - ${RETDEC_INSTALL_LIB_DIR}/deps + ${RETDEC_INSTALL_DEPS_LIB_DIR} ) +# Install targets. install(TARGETS openssl-crypto EXPORT openssl-crypto-targets ) @@ -219,10 +207,20 @@ install(EXPORT openssl-crypto-targets 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 - "${RETDEC_BINARY_SHARE_DIR}/retdec-openssl-crypto-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-openssl-crypto-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" ) diff --git a/deps/rapidjson/CMakeLists.txt b/deps/rapidjson/CMakeLists.txt index 10961c847..5e15c5277 100644 --- a/deps/rapidjson/CMakeLists.txt +++ b/deps/rapidjson/CMakeLists.txt @@ -11,20 +11,19 @@ target_compile_definitions(rapidjson target_include_directories(rapidjson SYSTEM INTERFACE $ - $/retdec/deps + $ ) # Install includes. install( - DIRECTORY ${RETDEC_DEPS_DIR}/rapidjson/include/rapidjson - DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + DIRECTORY ${RETDEC_DEPS_DIR}/rapidjson/include/ + DESTINATION ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} ) -# Install libs. +# Install targets. install(TARGETS rapidjson EXPORT rapidjson-targets # Header only -> there are no actual libs to install to destination. - # But this block is still needed to get proper config. ) # Export targets. diff --git a/deps/tinyxml2/CMakeLists.txt b/deps/tinyxml2/CMakeLists.txt index 2bf7b8645..41dd42c84 100644 --- a/deps/tinyxml2/CMakeLists.txt +++ b/deps/tinyxml2/CMakeLists.txt @@ -7,9 +7,7 @@ add_library(retdec::deps::tinyxml2 ALIAS tinyxml2) target_include_directories(tinyxml2 SYSTEM INTERFACE $ - $ - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/include/tinyxml2 + $ ) # Disable all warnings from this 3rd party project. @@ -21,15 +19,15 @@ endif() # Install includes. install( - DIRECTORY ${RETDEC_DEPS_DIR}/tinyxml2/include/tinyxml2 - DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + DIRECTORY ${RETDEC_DEPS_DIR}/tinyxml2/include/ + DESTINATION ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} ) # Install libs. install(TARGETS tinyxml2 EXPORT tinyxml2-targets - ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} - LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} + ARCHIVE DESTINATION ${RETDEC_INSTALL_DEPS_LIB_DIR} + LIBRARY DESTINATION ${RETDEC_INSTALL_DEPS_LIB_DIR} ) # Export targets. @@ -45,4 +43,4 @@ install( "${CMAKE_CURRENT_LIST_DIR}/retdec-tinyxml2-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" -) \ No newline at end of file +) diff --git a/deps/whereami/CMakeLists.txt b/deps/whereami/CMakeLists.txt index 8368fa6e7..9968444cf 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -8,6 +8,4 @@ target_include_directories(whereami SYSTEM INTERFACE $ # nothing for install because this does not need to be installed - PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/include/whereami ) diff --git a/deps/yara/CMakeLists.txt b/deps/yara/CMakeLists.txt index 97e0d71b8..d081cb5c2 100644 --- a/deps/yara/CMakeLists.txt +++ b/deps/yara/CMakeLists.txt @@ -1,10 +1,6 @@ -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") @@ -107,9 +103,10 @@ if(NOT MSVC) ) endif() -set(YARA_LIBRARY ${YARA_LIBRARY_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}) -set(YARA_LIBRARY_PATH ${YARA_LIBRARY_DIR}/${YARA_LIBRARY}) +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) @@ -117,44 +114,33 @@ add_dependencies(libyara yara) target_include_directories(libyara SYSTEM INTERFACE $ - $ + $ ) target_link_libraries(libyara INTERFACE - $ - #$ - #$ + $ $ Threads::Threads ) -# Configure config file. -set(LIBYARA_LIBRARY "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${YARA_LIBRARY}") -configure_package_config_file( - "retdec-libyara-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config.cmake" - INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - PATH_VARS - LIBYARA_LIBRARY -) - # Install includes. install( DIRECTORY ${YARA_INCLUDE_DIR}/ DESTINATION - ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps + ${RETDEC_INSTALL_DEPS_INCLUDE_DIR} ) # Install libs. install( FILES - ${YARA_LIBRARY_PATH} + ${YARA_LIB} DESTINATION - ${RETDEC_INSTALL_LIB_DIR} + ${RETDEC_INSTALL_DEPS_LIB_DIR} ) +# Install targets. install(TARGETS libyara EXPORT libyara-targets ) @@ -166,10 +152,20 @@ install(EXPORT libyara-targets 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 - "${RETDEC_BINARY_SHARE_DIR}/retdec-libyara-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-libyara-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" ) @@ -177,6 +173,6 @@ install( # Install yarac application - we may need it to compile YARA files. install( PROGRAMS "${YARAC_PATH}" - DESTINATION bin + DESTINATION ${RETDEC_INSTALL_BIN_DIR} RENAME "retdec-yarac${CMAKE_EXECUTABLE_SUFFIX}" ) diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index 61d416f64..4ab1d11b3 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,7 +56,17 @@ 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) @@ -78,58 +80,46 @@ target_include_directories(yaramod $ $ $ - $ + $ ) target_link_libraries(yaramod INTERFACE debug - $ + $ optimized - $ + $ general - $ - $ + $ + $ $ ) if(WIN32) 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 - ${binary_dir}/src/${DEBUG_DIR}${CMAKE_STATIC_LIBRARY_PREFIX}yaramod${CMAKE_STATIC_LIBRARY_SUFFIX} - ${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} + ${YARAMOD_LIB_DEBUG} + ${YARAMOD_LIB_OPT} + ${RE2_LIB_NAME} + ${RE2_LIB} DESTINATION - ${RETDEC_INSTALL_LIB_DIR} + ${RETDEC_INSTALL_DEPS_LIB_DIR} OPTIONAL ) -list(APPEND YARAMOD_LIBS_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}yaramod${CMAKE_STATIC_LIBRARY_SUFFIX}") -list(APPEND YARAMOD_LIBS_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}pog_fmt${CMAKE_STATIC_LIBRARY_SUFFIX}") -list(APPEND YARAMOD_LIBS_INSTALLED "${CMAKE_INSTALL_PREFIX}/${RETDEC_INSTALL_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}pog_re2${CMAKE_STATIC_LIBRARY_SUFFIX}") - -# Configure config file. -configure_package_config_file( - "retdec-yaramod-config.cmake" - "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config.cmake" - INSTALL_DESTINATION ${RETDEC_INSTALL_CMAKE_DIR} - PATH_VARS - YARAMOD_LIBS_INSTALLED -) - -# Install includes. -install( - DIRECTORY - ${source_dir}/include/yaramod - DESTINATION - ${RETDEC_INSTALL_INCLUDE_DIR}/retdec/deps -) - +# Install targets. install(TARGETS yaramod EXPORT yaramod-targets ) @@ -141,10 +131,22 @@ install(EXPORT yaramod-targets 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 - "${RETDEC_BINARY_SHARE_DIR}/retdec-yaramod-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-yaramod-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" ) 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/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 1ce16572a..8a73ed431 100644 --- a/src/ar-extractor/CMakeLists.txt +++ b/src/ar-extractor/CMakeLists.txt @@ -5,6 +5,8 @@ add_library(ar-extractor STATIC ) add_library(retdec::ar-extractor ALIAS ar-extractor) +target_compile_features(ar-extractor PUBLIC cxx_std_17) + target_include_directories(ar-extractor PUBLIC $ diff --git a/src/ar-extractortool/CMakeLists.txt b/src/ar-extractortool/CMakeLists.txt index 44ecf5e76..4fd1e5d46 100644 --- a/src/ar-extractortool/CMakeLists.txt +++ b/src/ar-extractortool/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(ar-extractortool ar_extractor.cpp ) +target_compile_features(ar-extractortool PUBLIC cxx_std_17) + target_link_libraries(ar-extractortool retdec::ar-extractor retdec::utils @@ -15,5 +17,5 @@ set_target_properties(ar-extractortool ) install(TARGETS ar-extractortool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/bin2llvmir/CMakeLists.txt b/src/bin2llvmir/CMakeLists.txt index e0a3449b6..f72089ef0 100644 --- a/src/bin2llvmir/CMakeLists.txt +++ b/src/bin2llvmir/CMakeLists.txt @@ -136,7 +136,7 @@ target_link_libraries(bin2llvmir # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/bin2llvmir - DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/bin2llvmir + DESTINATION ${RETDEC_INSTALL_INCLUDE_DIR}/retdec ) # Install libs. diff --git a/src/bin2llvmirtool/CMakeLists.txt b/src/bin2llvmirtool/CMakeLists.txt index e26ccc78e..46ef5fec3 100644 --- a/src/bin2llvmirtool/CMakeLists.txt +++ b/src/bin2llvmirtool/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(bin2llvmirtool bin2llvmir.cpp ) +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) @@ -41,5 +43,5 @@ set_target_properties(bin2llvmirtool ) install(TARGETS bin2llvmirtool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/bin2pat/CMakeLists.txt b/src/bin2pat/CMakeLists.txt index ee43049b3..54a594db2 100644 --- a/src/bin2pat/CMakeLists.txt +++ b/src/bin2pat/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(bin2pat bin2pat.cpp ) +target_compile_features(bin2pat PUBLIC cxx_std_17) + target_link_libraries(bin2pat retdec::patterngen retdec::utils @@ -15,5 +17,5 @@ set_target_properties(bin2pat ) install(TARGETS bin2pat - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/capstone2llvmir/CMakeLists.txt b/src/capstone2llvmir/CMakeLists.txt index b51c73952..2bac042fe 100644 --- a/src/capstone2llvmir/CMakeLists.txt +++ b/src/capstone2llvmir/CMakeLists.txt @@ -17,6 +17,8 @@ add_library(capstone2llvmir STATIC ) add_library(retdec::capstone2llvmir ALIAS capstone2llvmir) +target_compile_features(capstone2llvmir PUBLIC cxx_std_17) + target_include_directories(capstone2llvmir PUBLIC $ diff --git a/src/capstone2llvmirtool/CMakeLists.txt b/src/capstone2llvmirtool/CMakeLists.txt index e08f2e1f4..87c4dfb9a 100644 --- a/src/capstone2llvmirtool/CMakeLists.txt +++ b/src/capstone2llvmirtool/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(capstone2llvmirtool capstone2llvmir.cpp ) +target_compile_features(capstone2llvmirtool PUBLIC cxx_std_17) + target_link_libraries(capstone2llvmirtool retdec::utils retdec::capstone2llvmir @@ -15,5 +17,5 @@ set_target_properties(capstone2llvmirtool ) install(TARGETS capstone2llvmirtool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/common/CMakeLists.txt b/src/common/CMakeLists.txt index 081093e26..316f60497 100644 --- a/src/common/CMakeLists.txt +++ b/src/common/CMakeLists.txt @@ -18,6 +18,8 @@ add_library(common STATIC ) add_library(retdec::common ALIAS common) +target_compile_features(common PUBLIC cxx_std_17) + target_include_directories(common PUBLIC $ diff --git a/src/configtool/CMakeLists.txt b/src/configtool/CMakeLists.txt index d75e42d43..53a7f3972 100644 --- a/src/configtool/CMakeLists.txt +++ b/src/configtool/CMakeLists.txt @@ -3,7 +3,11 @@ add_executable(configtool configtool.cpp ) -target_link_libraries(configtool retdec::config) +target_compile_features(configtool PUBLIC cxx_std_17) + +target_link_libraries(configtool + retdec::config +) set_target_properties(configtool PROPERTIES @@ -11,5 +15,5 @@ set_target_properties(configtool ) install(TARGETS configtool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index 81a01fdc7..1e347af38 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -6,6 +6,8 @@ add_library(crypto STATIC ) add_library(retdec::crypto ALIAS crypto) +target_compile_features(crypto PUBLIC cxx_std_17) + target_include_directories(crypto PUBLIC $ diff --git a/src/ctypes/CMakeLists.txt b/src/ctypes/CMakeLists.txt index 29e443a21..5c3cc5185 100644 --- a/src/ctypes/CMakeLists.txt +++ b/src/ctypes/CMakeLists.txt @@ -33,6 +33,8 @@ add_library(ctypes STATIC ) add_library(retdec::ctypes ALIAS ctypes) +target_compile_features(ctypes PUBLIC cxx_std_17) + target_link_libraries(ctypes PRIVATE retdec::utils diff --git a/src/ctypesparser/CMakeLists.txt b/src/ctypesparser/CMakeLists.txt index e44bd8b32..3fb179577 100644 --- a/src/ctypesparser/CMakeLists.txt +++ b/src/ctypesparser/CMakeLists.txt @@ -6,6 +6,8 @@ add_library(ctypesparser STATIC ) add_library(retdec::ctypesparser ALIAS ctypesparser) +target_compile_features(ctypesparser PUBLIC cxx_std_17) + target_include_directories(ctypesparser PUBLIC $ diff --git a/src/demangler/CMakeLists.txt b/src/demangler/CMakeLists.txt index f1e58e8b3..18dea33ee 100644 --- a/src/demangler/CMakeLists.txt +++ b/src/demangler/CMakeLists.txt @@ -32,6 +32,8 @@ add_library(demangler STATIC ) add_library(retdec::demangler ALIAS demangler) +target_compile_features(demangler PUBLIC cxx_std_17) + target_include_directories(demangler PUBLIC $ diff --git a/src/demanglertool/CMakeLists.txt b/src/demanglertool/CMakeLists.txt index 7b51ea82d..825c56d2e 100644 --- a/src/demanglertool/CMakeLists.txt +++ b/src/demanglertool/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(demanglertool demangler.cpp ) +target_compile_features(demanglertool PUBLIC cxx_std_17) + target_link_libraries(demanglertool retdec::demangler ) @@ -13,5 +15,5 @@ set_target_properties(demanglertool ) install(TARGETS demanglertool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/fileinfo/CMakeLists.txt b/src/fileinfo/CMakeLists.txt index b142cb17b..6681c35ae 100644 --- a/src/fileinfo/CMakeLists.txt +++ b/src/fileinfo/CMakeLists.txt @@ -135,5 +135,5 @@ set_target_properties(fileinfo ) install(TARGETS fileinfo - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/getsig/CMakeLists.txt b/src/getsig/CMakeLists.txt index 0c68de762..838b67481 100644 --- a/src/getsig/CMakeLists.txt +++ b/src/getsig/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(getsig getsig.cpp ) +target_compile_features(getsig PUBLIC cxx_std_17) + target_link_libraries(getsig retdec::fileformat ) @@ -13,5 +15,5 @@ set_target_properties(getsig ) install(TARGETS getsig - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/idr2pat/CMakeLists.txt b/src/idr2pat/CMakeLists.txt index 0c75a5739..40a6291c7 100644 --- a/src/idr2pat/CMakeLists.txt +++ b/src/idr2pat/CMakeLists.txt @@ -3,7 +3,12 @@ add_executable(idr2pat idr2pat.cpp ) -target_link_libraries(idr2pat retdec::utils yaramod) +target_compile_features(idr2pat PUBLIC cxx_std_17) + +target_link_libraries(idr2pat + retdec::utils + retdec::deps::yaramod +) set_target_properties(idr2pat PROPERTIES @@ -11,5 +16,5 @@ set_target_properties(idr2pat ) install(TARGETS idr2pat - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/llvm-support/CMakeLists.txt b/src/llvm-support/CMakeLists.txt index 86a4a3e28..50100497a 100644 --- a/src/llvm-support/CMakeLists.txt +++ b/src/llvm-support/CMakeLists.txt @@ -4,6 +4,8 @@ add_library(llvm-support STATIC ) add_library(retdec::llvm-support ALIAS llvm-support) +target_compile_features(llvm-support PUBLIC cxx_std_17) + target_include_directories(llvm-support PUBLIC $ diff --git a/src/llvmir-emul/CMakeLists.txt b/src/llvmir-emul/CMakeLists.txt index 6446a395d..cab9df683 100644 --- a/src/llvmir-emul/CMakeLists.txt +++ b/src/llvmir-emul/CMakeLists.txt @@ -4,6 +4,8 @@ add_library(llvmir-emul STATIC ) add_library(retdec::llvmir-emul ALIAS llvmir-emul) +target_compile_features(llvmir-emul PUBLIC cxx_std_17) + target_include_directories(llvmir-emul PUBLIC $ diff --git a/src/llvmir2hlltool/CMakeLists.txt b/src/llvmir2hlltool/CMakeLists.txt index 1c5515845..7f7dc0dfc 100644 --- a/src/llvmir2hlltool/CMakeLists.txt +++ b/src/llvmir2hlltool/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(llvmir2hlltool llvmir2hll.cpp ) +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) @@ -42,5 +44,5 @@ set_target_properties(llvmir2hlltool ) install(TARGETS llvmir2hlltool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/macho-extractor/CMakeLists.txt b/src/macho-extractor/CMakeLists.txt index 3f0bc96cc..6f34f526e 100644 --- a/src/macho-extractor/CMakeLists.txt +++ b/src/macho-extractor/CMakeLists.txt @@ -4,6 +4,8 @@ add_library(macho-extractor STATIC ) add_library(retdec::macho-extractor ALIAS macho-extractor) +target_compile_features(macho-extractor PUBLIC cxx_std_17) + target_include_directories(macho-extractor PUBLIC $ diff --git a/src/macho-extractortool/CMakeLists.txt b/src/macho-extractortool/CMakeLists.txt index 3ddf9b002..8dbe838ef 100644 --- a/src/macho-extractortool/CMakeLists.txt +++ b/src/macho-extractortool/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(macho-extractortool macho_extractor.cpp ) +target_compile_features(macho-extractortool PUBLIC cxx_std_17) + target_link_libraries(macho-extractortool retdec::macho-extractor retdec::utils @@ -15,5 +17,5 @@ set_target_properties(macho-extractortool ) install(TARGETS macho-extractortool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/pat2yara/CMakeLists.txt b/src/pat2yara/CMakeLists.txt index ea9cc8fab..dde42ece5 100644 --- a/src/pat2yara/CMakeLists.txt +++ b/src/pat2yara/CMakeLists.txt @@ -8,6 +8,13 @@ add_executable(pat2yara utils.cpp ) +target_compile_features(pat2yara PUBLIC cxx_std_17) + +target_include_directories(pat2yara + PRIVATE + ${RETDEC_SOURCE_DIR} +) + target_link_libraries(pat2yara retdec::patterngen retdec::utils @@ -19,11 +26,6 @@ set_target_properties(pat2yara OUTPUT_NAME "retdec-pat2yara" ) -target_include_directories(pat2yara - PRIVATE - ${RETDEC_SOURCE_DIR} -) - install(TARGETS pat2yara RUNTIME DESTINATION bin diff --git a/src/pdbparser/CMakeLists.txt b/src/pdbparser/CMakeLists.txt index 041e470e9..34405d9fb 100644 --- a/src/pdbparser/CMakeLists.txt +++ b/src/pdbparser/CMakeLists.txt @@ -7,6 +7,8 @@ add_library(pdbparser STATIC ) add_library(retdec::pdbparser ALIAS pdbparser) +target_compile_features(pdbparser PUBLIC cxx_std_17) + target_include_directories(pdbparser PUBLIC $ diff --git a/src/pelib/CMakeLists.txt b/src/pelib/CMakeLists.txt index 0d0e4de88..01907ee96 100644 --- a/src/pelib/CMakeLists.txt +++ b/src/pelib/CMakeLists.txt @@ -19,6 +19,8 @@ add_library(pelib STATIC ) add_library(retdec::pelib ALIAS pelib) +target_compile_features(pelib PUBLIC cxx_std_17) + target_include_directories(pelib PUBLIC $ diff --git a/src/retdectool/CMakeLists.txt b/src/retdectool/CMakeLists.txt index a597e52ec..3ffacca99 100644 --- a/src/retdectool/CMakeLists.txt +++ b/src/retdectool/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(retdectool retdec.cpp ) +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 @@ -41,5 +43,5 @@ set_target_properties(retdectool ) install(TARGETS retdectool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/serdes/CMakeLists.txt b/src/serdes/CMakeLists.txt index 6a0f23759..32dca04e9 100644 --- a/src/serdes/CMakeLists.txt +++ b/src/serdes/CMakeLists.txt @@ -19,6 +19,8 @@ add_library(serdes STATIC ) add_library(retdec::serdes ALIAS serdes) +target_compile_features(serdes PUBLIC cxx_std_17) + target_include_directories(serdes PUBLIC $ diff --git a/src/stacofintool/CMakeLists.txt b/src/stacofintool/CMakeLists.txt index 4d2dc3934..1ddf3049e 100644 --- a/src/stacofintool/CMakeLists.txt +++ b/src/stacofintool/CMakeLists.txt @@ -3,6 +3,8 @@ add_executable(stacofintool stacofin.cpp ) +target_compile_features(stacofintool PUBLIC cxx_std_17) + target_link_libraries(stacofintool retdec::stacofin retdec::loader @@ -14,5 +16,5 @@ set_target_properties(stacofintool ) install(TARGETS stacofintool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) diff --git a/src/unpacker/CMakeLists.txt b/src/unpacker/CMakeLists.txt index 9c0405ed3..8a4e4a550 100644 --- a/src/unpacker/CMakeLists.txt +++ b/src/unpacker/CMakeLists.txt @@ -22,14 +22,6 @@ target_link_libraries(unpacker retdec::loader ) -# 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(unpacker PUBLIC NOMINMAX) -endif() - # Install includes. install( DIRECTORY ${RETDEC_INCLUDE_DIR}/retdec/unpacker diff --git a/src/unpackertool/CMakeLists.txt b/src/unpackertool/CMakeLists.txt index 560e35811..417404e3e 100644 --- a/src/unpackertool/CMakeLists.txt +++ b/src/unpackertool/CMakeLists.txt @@ -5,10 +5,11 @@ add_executable(unpackertool plugin_mgr.cpp ) +target_compile_features(unpackertool PUBLIC cxx_std_17) + target_include_directories(unpackertool - PUBLIC - $ - # not installed + PRIVATE + ${RETDEC_SOURCE_DIR} ) target_link_libraries(unpackertool @@ -26,7 +27,7 @@ set_target_properties(unpackertool ) install(TARGETS unpackertool - RUNTIME DESTINATION bin + RUNTIME DESTINATION ${RETDEC_INSTALL_BIN_DIR} ) # Plugins. diff --git a/src/unpackertool/plugins/example/CMakeLists.txt b/src/unpackertool/plugins/example/CMakeLists.txt index fba228c5b..b1891c8e9 100644 --- a/src/unpackertool/plugins/example/CMakeLists.txt +++ b/src/unpackertool/plugins/example/CMakeLists.txt @@ -4,7 +4,7 @@ add_library(unpacker-example STATIC ) add_library(retdec::unpacker-example ALIAS unpacker-example) -target_compile_features(loader PUBLIC cxx_std_17) +target_compile_features(unpacker-example PUBLIC cxx_std_17) target_include_directories(unpacker-example PUBLIC diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 3b82018cf..70fbc9ae3 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -15,10 +15,7 @@ add_library(utils STATIC ) add_library(retdec::utils ALIAS utils) -target_link_libraries(utils - PRIVATE - retdec::deps::whereami -) +target_compile_features(utils PUBLIC cxx_std_17) target_include_directories(utils PUBLIC @@ -26,6 +23,11 @@ target_include_directories(utils $ ) +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). diff --git a/src/yaracpp/CMakeLists.txt b/src/yaracpp/CMakeLists.txt index abd0dba33..fa37c6dac 100644 --- a/src/yaracpp/CMakeLists.txt +++ b/src/yaracpp/CMakeLists.txt @@ -7,6 +7,8 @@ add_library(yaracpp STATIC ) add_library(retdec::yaracpp ALIAS yaracpp) +target_compile_features(yaracpp PUBLIC cxx_std_17) + target_include_directories(yaracpp PUBLIC $ 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/bin2llvmir/CMakeLists.txt b/tests/bin2llvmir/CMakeLists.txt index 9c5c6f84c..620e410a7 100644 --- a/tests/bin2llvmir/CMakeLists.txt +++ b/tests/bin2llvmir/CMakeLists.txt @@ -25,17 +25,17 @@ add_executable(tests-bin2llvmir utils/simplifycfg_tests.cpp ) +target_include_directories(tests-bin2llvmir + PRIVATE + ${RETDEC_TESTS_DIR} +) + target_link_libraries(tests-bin2llvmir retdec::bin2llvmir retdec::utils retdec::deps::gmock_main ) -target_include_directories(tests-bin2llvmir - PRIVATE - ${RETDEC_TESTS_DIR} -) - set_target_properties(tests-bin2llvmir PROPERTIES OUTPUT_NAME "retdec-tests-bin2llvmir" diff --git a/tests/capstone2llvmir/CMakeLists.txt b/tests/capstone2llvmir/CMakeLists.txt index e8557f68d..38aae6c10 100644 --- a/tests/capstone2llvmir/CMakeLists.txt +++ b/tests/capstone2llvmir/CMakeLists.txt @@ -7,6 +7,11 @@ add_executable(tests-capstone2llvmir x86_tests.cpp ) +target_include_directories(tests-capstone2llvmir + PRIVATE + ${RETDEC_TESTS_DIR} +) + target_link_libraries(tests-capstone2llvmir retdec::capstone2llvmir retdec::llvmir-emul @@ -15,11 +20,6 @@ target_link_libraries(tests-capstone2llvmir retdec::deps::gmock_main ) -target_include_directories(tests-capstone2llvmir - PRIVATE - ${RETDEC_TESTS_DIR} -) - set_target_properties(tests-capstone2llvmir PROPERTIES OUTPUT_NAME "retdec-tests-capstone2llvmir" diff --git a/tests/fileformat/CMakeLists.txt b/tests/fileformat/CMakeLists.txt index f95c681f3..f765c1740 100644 --- a/tests/fileformat/CMakeLists.txt +++ b/tests/fileformat/CMakeLists.txt @@ -12,17 +12,17 @@ add_executable(tests-fileformat raw_data_format_tests.cpp ) +target_include_directories(tests-fileformat + PRIVATE + ${RETDEC_TESTS_DIR} +) + target_link_libraries(tests-fileformat retdec::fileformat retdec::utils retdec::deps::gmock_main ) -target_include_directories(tests-fileformat - PRIVATE - ${RETDEC_TESTS_DIR} -) - set_target_properties(tests-fileformat PROPERTIES OUTPUT_NAME "retdec-tests-fileformat" diff --git a/tests/llvmir-emul/CMakeLists.txt b/tests/llvmir-emul/CMakeLists.txt index ef0d37916..2265a1109 100644 --- a/tests/llvmir-emul/CMakeLists.txt +++ b/tests/llvmir-emul/CMakeLists.txt @@ -3,17 +3,17 @@ add_executable(tests-llvm-emul llvmir_emul_tests.cpp ) +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 ) -target_include_directories(tests-llvm-emul - PRIVATE - ${RETDEC_TESTS_DIR} -) - set_target_properties(tests-llvm-emul PROPERTIES OUTPUT_NAME "retdec-tests-llvm-emul" diff --git a/tests/llvmir2hll/CMakeLists.txt b/tests/llvmir2hll/CMakeLists.txt index 259d64509..cddd8b227 100644 --- a/tests/llvmir2hll/CMakeLists.txt +++ b/tests/llvmir2hll/CMakeLists.txt @@ -148,17 +148,17 @@ add_executable(tests-llvmir2hll var_renamer/var_renamers/unified_var_renamer_tests.cpp ) +target_include_directories(tests-llvmir2hll + PRIVATE + ${RETDEC_TESTS_DIR} +) + target_link_libraries(tests-llvmir2hll retdec::llvmir2hll retdec::utils retdec::deps::gmock_main ) -target_include_directories(tests-llvmir2hll - PRIVATE - ${RETDEC_TESTS_DIR} -) - set_target_properties(tests-llvmir2hll PROPERTIES OUTPUT_NAME "retdec-tests-llvmir2hll" From 3fcc88f6c202924595012c81ec487b2735dd09c5 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 20:59:14 +0200 Subject: [PATCH 56/61] deps/whereami: fix include paths --- deps/whereami/CMakeLists.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/deps/whereami/CMakeLists.txt b/deps/whereami/CMakeLists.txt index 9968444cf..8368fa6e7 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -8,4 +8,6 @@ target_include_directories(whereami SYSTEM INTERFACE $ # nothing for install because this does not need to be installed + PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR}/include/whereami ) From f0ffd506f4d6dd65a0d7b7e82652e465de00b41e Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 21:35:54 +0200 Subject: [PATCH 57/61] deps/tinyxml+whereami: fix included dirs --- deps/tinyxml2/CMakeLists.txt | 2 ++ deps/whereami/CMakeLists.txt | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/deps/tinyxml2/CMakeLists.txt b/deps/tinyxml2/CMakeLists.txt index 41dd42c84..b5406dcb2 100644 --- a/deps/tinyxml2/CMakeLists.txt +++ b/deps/tinyxml2/CMakeLists.txt @@ -8,6 +8,8 @@ target_include_directories(tinyxml2 SYSTEM INTERFACE $ $ + PRIVATE + $ ) # Disable all warnings from this 3rd party project. diff --git a/deps/whereami/CMakeLists.txt b/deps/whereami/CMakeLists.txt index 8368fa6e7..bf84fdab6 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -9,5 +9,5 @@ target_include_directories(whereami $ # nothing for install because this does not need to be installed PRIVATE - ${CMAKE_CURRENT_SOURCE_DIR}/include/whereami + $ ) From 94ffc7b054a9c60dd81835ed2975bf154fb86cfb Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Fri, 3 Apr 2020 22:27:57 +0200 Subject: [PATCH 58/61] deps/yaramod: fix pog_fmt lib installation --- deps/yaramod/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/deps/yaramod/CMakeLists.txt b/deps/yaramod/CMakeLists.txt index 4ab1d11b3..bada33948 100644 --- a/deps/yaramod/CMakeLists.txt +++ b/deps/yaramod/CMakeLists.txt @@ -89,7 +89,7 @@ target_link_libraries(yaramod INTERFACE optimized $ general - $ + $ $ $ ) @@ -112,7 +112,7 @@ install( FILES ${YARAMOD_LIB_DEBUG} ${YARAMOD_LIB_OPT} - ${RE2_LIB_NAME} + ${FMT_LIB} ${RE2_LIB} DESTINATION ${RETDEC_INSTALL_DEPS_LIB_DIR} From 92c9a29902ec9256924d7dd27c838a312ec8a219 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Sat, 4 Apr 2020 12:09:33 +0200 Subject: [PATCH 59/61] 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. --- deps/whereami/CMakeLists.txt | 30 +++++++++++++++++++++- deps/whereami/retdec-whereami-config.cmake | 4 +++ src/utils/CMakeLists.txt | 9 +++++-- src/utils/retdec-utils-config.cmake | 6 +++++ 4 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 deps/whereami/retdec-whereami-config.cmake diff --git a/deps/whereami/CMakeLists.txt b/deps/whereami/CMakeLists.txt index bf84fdab6..ed2b24ec9 100644 --- a/deps/whereami/CMakeLists.txt +++ b/deps/whereami/CMakeLists.txt @@ -7,7 +7,35 @@ add_library(retdec::deps::whereami ALIAS whereami) target_include_directories(whereami SYSTEM INTERFACE $ - # nothing for install because this does not need to be installed + $ PRIVATE $ ) + +# Install includes. +install( + DIRECTORY ${RETDEC_DEPS_DIR}/whereami/include/ + DESTINATION ${RETDEC_INSTALL_DEPS_INCLUDE_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/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/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 70fbc9ae3..e23240bed 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -43,7 +43,7 @@ install( ) # Install libs. -install(TARGETS utils whereami +install(TARGETS utils EXPORT utils-targets ARCHIVE DESTINATION ${RETDEC_INSTALL_LIB_DIR} LIBRARY DESTINATION ${RETDEC_INSTALL_LIB_DIR} @@ -57,9 +57,14 @@ install(EXPORT utils-targets ) # Install CMake files. +configure_file( + "retdec-utils-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-utils-config.cmake" + @ONLY +) install( FILES - "${CMAKE_CURRENT_LIST_DIR}/retdec-utils-config.cmake" + "${CMAKE_CURRENT_BINARY_DIR}/retdec-utils-config.cmake" DESTINATION "${RETDEC_INSTALL_CMAKE_DIR}" ) diff --git a/src/utils/retdec-utils-config.cmake b/src/utils/retdec-utils-config.cmake index aaf5ab2ab..584469ef0 100644 --- a/src/utils/retdec-utils-config.cmake +++ b/src/utils/retdec-utils-config.cmake @@ -1,4 +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() From 4de4d4b60cc44c915b9d87d7e1aaef37a265ee80 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Sat, 4 Apr 2020 12:49:10 +0200 Subject: [PATCH 60/61] crypto: link retdec::deps::openssl-crypto as PUBLIC --- src/crypto/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/crypto/CMakeLists.txt b/src/crypto/CMakeLists.txt index 1e347af38..68ca3023b 100644 --- a/src/crypto/CMakeLists.txt +++ b/src/crypto/CMakeLists.txt @@ -15,9 +15,10 @@ target_include_directories(crypto ) target_link_libraries(crypto + PUBLIC + retdec::deps::openssl-crypto PRIVATE retdec::utils - retdec::deps::openssl-crypto ) # Install includes. From 9c4f3a6775a9899341e078b5929c03692aef7275 Mon Sep 17 00:00:00 2001 From: Peter Matula Date: Sat, 4 Apr 2020 13:36:06 +0200 Subject: [PATCH 61/61] bin2llvmir/providers/debugformat: fix segfault --- src/bin2llvmir/providers/debugformat.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/bin2llvmir/providers/debugformat.cpp b/src/bin2llvmir/providers/debugformat.cpp index 30cf9b5c3..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->getDemangler(), + demangler ? demangler->getDemangler() : nullptr, imageBase)); return &p.first->second; }