Skip to content

Commit

Permalink
added LIEF library
Browse files Browse the repository at this point in the history
  • Loading branch information
rdbo committed Dec 22, 2022
1 parent 061ae18 commit ae07c0f
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 3 deletions.
4 changes: 4 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,7 @@
path = keystone
url = https://github.com/keystone-engine/keystone
branch = master
[submodule "LIEF"]
path = LIEF
url = https://github.com/lief-project/LIEF
branch = master
19 changes: 16 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,23 @@ ExternalProject_Add(keystone-engine SOURCE_DIR ${KEYSTONE_DIR} INSTALL_COMMAND e
add_library(keystone STATIC IMPORTED)
set_target_properties(keystone PROPERTIES IMPORTED_LOCATION ${KEYSTONE_IMPORT_DIR}/libkeystone.a)

set(LIEF_DIR "${PROJECT_SOURCE_DIR}/LIEF")
set(LIEF_INC "${LIEF_DIR}/include" "${PROJECT_BINARY_DIR}/lief-project-prefix/src/lief-project-build/include")
set(LIEF_IMPORT_DIR "${PROJECT_BINARY_DIR}/lief-project-prefix/src/lief-project-build")
set(LIEF_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DLIEF_USE_CCACHE=OFF -DLIEF_ENABLE_JSON=OFF -DLIEF_FROZEN_ENABLED=OFF -DLIEF_MACHO=OFF -DLIEF_OAT=OFF -DLIEF_DEX=OFF -DLIEF_VDEX=OFF -DLIEF_ART=OFF -DLIEF_EXTERNAL_LEAF=OFF -DLIEF_EXTERNAL_SPAN_DIR=OFF -DLIEF_FUZZING=OFF -DLIEF_PROFILING=OFF -DLIEF_COVERAGE=OFF -DLIEF_EXAMPLES=OFF -DLIEF_TESTS=OFF -DLIEF_DOC=OFF)
if(${CMAKE_SYSTEM_NAME} MATCHES Windows)
set(LIEF_CMAKE_ARGS ${LIEF_CMAKE_ARGS} -DLIEF_ELF=OFF)
else()
set(LIEF_CMAKE_ARGS ${LIEF_CMAKE_ARGS} -DLIEF_PE=OFF)
endif()
ExternalProject_Add(lief-project SOURCE_DIR ${LIEF_DIR} INSTALL_COMMAND echo CMAKE_ARGS ${LIEF_CMAKE_ARGS})
add_library(LIEF STATIC IMPORTED)
set_target_properties(LIEF PROPERTIES IMPORTED_LOCATION ${LIEF_IMPORT_DIR}/libLIEF.a)

set(LIBMEM_DIR "${PROJECT_SOURCE_DIR}/libmem")
set(LIBMEM_INC "${LIBMEM_DIR}/include")
file(GLOB_RECURSE LIBMEM_SRC "${LIBMEM_DIR}/src/*.c")
set(LIBMEM_DEPS capstone keystone stdc++ m)
set(LIBMEM_DEPS capstone keystone LIEF stdc++ m)

if(NOT MSVC)
add_compile_options(-Wall -Wextra -Wpedantic)
Expand All @@ -41,10 +54,10 @@ else()
add_library(libmem SHARED ${LIBMEM_SRC})
endif()

include_directories(${PROJECT_SOURCE_DIR} ${LIBMEM_INC} ${CAPSTONE_INC} ${KEYSTONE_INC})
include_directories(${PROJECT_SOURCE_DIR} ${LIBMEM_INC} ${CAPSTONE_INC} ${KEYSTONE_INC} ${LIEF_INC})
set_target_properties(libmem PROPERTIES PREFIX "")
target_compile_definitions(libmem PUBLIC LM_EXPORT)
add_dependencies(libmem capstone-engine keystone-engine)
add_dependencies(libmem capstone-engine keystone-engine lief-project)

if (LIBMEM_BUILD_TESTS)
set(TESTS_DIR "${PROJECT_SOURCE_DIR}/tests")
Expand Down
1 change: 1 addition & 0 deletions LIEF
Submodule LIEF added at 9311f0

0 comments on commit ae07c0f

Please sign in to comment.