diff -ur a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt 2020-02-27 12:37:28.000000000 +0300 +++ b/CMakeLists.txt 2020-02-28 12:06:32.895768009 +0300 @@ -110,16 +110,8 @@ configure_file(include/QBDI/Version.h.in "${CMAKE_SOURCE_DIR}/include/QBDI/Version.h" @ONLY) -# Add dependency build targets - -add_subdirectory(deps) - if(${DEPENDENCY_SATISFIED}) -# Add includes - -set(LLVM_LIBS_DIR deps/llvm/${PLATFORM}/lib) - # Resolve LLVM options if((${PLATFORM} STREQUAL "linux-X86_64") OR @@ -265,7 +257,7 @@ enable_language(ASM_MASM) set(ASM_EXT "asm") else() - set(CMAKE_ASM-ATT_COMPILER ${AS_BINARY}) + set(CMAKE_ASM_COMPILER ${AS_BINARY}) enable_language(ASM-ATT) set(ASM_EXT "s") if(${OS} STREQUAL "iOS") @@ -289,7 +281,7 @@ if(${OS} STREQUAL "win") PREPEND(LLVM_STATIC_LIBS ${CMAKE_SOURCE_DIR}/${LLVM_LIBS_DIR}/ ${_LLVM_STATIC_LIBS}) else() - PREPEND(LLVM_STATIC_LIBS ${CMAKE_SOURCE_DIR}/${LLVM_LIBS_DIR}/lib ${_LLVM_STATIC_LIBS}) + PREPEND(LLVM_STATIC_LIBS ${LLVM_STATIC_LIBS_DIR}/lib ${_LLVM_STATIC_LIBS}) endif() # Final QBDI static library is a merge of static libraries @@ -298,8 +290,10 @@ target_include_directories(QBDI_obj PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include/QBDI" "${CMAKE_CURRENT_SOURCE_DIR}/src" - "${CMAKE_CURRENT_SOURCE_DIR}/deps/llvm/${PLATFORM}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/deps/llvm/${PLATFORM}/lib/Target/${LLVM_ARCH}" + "${LLVM_BASE_DIR}/include" + "${LLVM_BASE_DIR}/lib/Target/${LLVM_ARCH}" + "${LLVM_BASE_DIR}_build/include" + "${LLVM_BASE_DIR}_build/lib/Target/${LLVM_ARCH}" ) # Hack because generators expressions don't work properly under visual studio ... @@ -368,17 +362,17 @@ set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "QBDI") install(TARGETS QBDI_static EXPORT QBDI_targets - ARCHIVE DESTINATION lib) + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(TARGETS QBDI EXPORT QBDI_targets - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib - RUNTIME DESTINATION lib) + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_LIBDIR}) if(${OS} STREQUAL "win") install(FILES ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/QBDI.exp - DESTINATION lib) + DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() install(DIRECTORY include/QBDI DESTINATION include/ @@ -390,7 +384,7 @@ if(FULL_PACKAGE) string(REPLACE ";" " " LLVM_LIBS_STR "${LLVM_LIBS}") configure_file(package/qbdi.pc.in package/qbdi.pc @ONLY) - install(FILES ${CMAKE_BINARY_DIR}/package/qbdi.pc DESTINATION lib/pkgconfig/) + install(FILES ${CMAKE_BINARY_DIR}/package/qbdi.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/) set(RESOURCES_PREFIX ${CMAKE_INSTALL_PREFIX}/share/qbdi) diff -ur a/tools/pyqbdi/CMakeLists.txt b/tools/pyqbdi/CMakeLists.txt --- a/tools/pyqbdi/CMakeLists.txt 2020-02-27 12:37:28.000000000 +0300 +++ b/tools/pyqbdi/CMakeLists.txt 2020-02-28 12:46:55.286065704 +0300 @@ -38,15 +38,6 @@ message(FATAL_ERROR "PyQBDI with Python ${PYTHON_BIT} is not compatible with the architecture ${ARCH}") endif() - ExternalProject_Add(pyqbdi_pybind11 - URL "https://github.com/pybind/pybind11/archive/v2.4.3.zip" - URL_HASH SHA256=f1cc1e9c2836f9873aefdaf76a3280a55aae51068c759b27499a9cf34090d364 - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - INSTALL_COMMAND "") - ExternalProject_get_property(pyqbdi_pybind11 SOURCE_DIR) - set(PYBIND11_SOURCE_DIR "${SOURCE_DIR}") - add_library(pyqbdi_utils INTERFACE) add_dependencies(pyqbdi_utils pyqbdi_pybind11) diff -ur a/tools/QBDIPreload/CMakeLists.txt b/tools/QBDIPreload/CMakeLists.txt --- a/tools/QBDIPreload/CMakeLists.txt 2020-02-27 12:37:28.000000000 +0300 +++ b/tools/QBDIPreload/CMakeLists.txt 2020-02-28 12:08:53.327740532 +0300 @@ -20,7 +20,7 @@ install(TARGETS QBDIPreload EXPORT QBDIPreload_targets - ARCHIVE DESTINATION lib) + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES include/QBDIPreload.h DESTINATION include/) diff -ur a/tools/validator/CMakeLists.txt b/tools/validator/CMakeLists.txt --- a/tools/validator/CMakeLists.txt 2020-02-27 12:37:28.000000000 +0300 +++ b/tools/validator/CMakeLists.txt 2020-02-28 12:09:59.559088285 +0300 @@ -23,3 +23,12 @@ $ ) target_link_libraries(validator QBDIPreload QBDI_static) + +install(TARGETS validator + EXPORT validator_targets + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) + +install(EXPORT validator_targets + FILE QBDIPreloadConfig.cmake + NAMESPACE QBDIPreload:: + DESTINATION ${PRELOAD_RESOURCES_PREFIX}/cmake)