+TARGET_LINK_LIBRARIES(frida
+ ${QT_LIBRARIES}
+ ${LLVM_LDFLAGS}
+ ${LLVM_DYNAMIC_LIB}
+ ${LLVM_SYSTEM_LIBS}
+ ${LOG4CXX_LDFLAGS}
+ ${QUAZIP_LIBRARIES})
+
+configure_file(src/Config.hxx.in src/Config.hxx @ONLY)
+
+###########
+# Plugins #
+###########
+
+# GUILE
+
+set(plugin_guile_SOURCES
+ src/bindings/Guile.cxx)
+
+set(plugin_guile_HEADERS
+ src/bindings/Interpreter.hxx
+ src/bindings/Guile.hxx)
+
+add_library(guilePlugin MODULE ${plugin_guile_SOURCES} ${plugin_guile_HEADERS_MOC})
+qt5_use_modules(guilePlugin Core Widgets)
+target_link_libraries(guilePlugin ${QT_LIBRARIES} ${GUILE_LDFLAGS})
+
+##################
+# TEST Framework #
+##################
+
+set(fridatest_SOURCES
+ src/test.cxx
+ src/core/tests/BasicBlockTest.cxx
+ src/core/tests/FunctionTest.cxx
+ src/core/tests/CommentTest.cxx
+ src/disassembler/llvm/tests/amd64LinuxDisassemblerTest.cxx
+ src/disassembler/llvm/tests/mipselLinuxDisassemblerTest.cxx
+ src/disassembler/llvm/tests/armelLinuxDisassemblerTest.cxx
+ src/disassembler/llvm/tests/amd64MachODisassemblerTest.cxx
+ ${frida_SOURCES}
+ )
+
+add_executable(fridatest ${fridatest_SOURCES})
+
+qt5_use_modules(fridatest Widgets)
+
+#ADD_SUBDIRECTORY(/usr/src/gtest gtest)
+ADD_SUBDIRECTORY(/usr/src/gmock gmock)
+enable_testing()
+add_test(NAME fridatest COMMAND fridatest ${CMAKE_SOURCE_DIR}/testdata)
+target_link_libraries(fridatest
+ gmock
+ gtest
+ ${QT_LIBRARIES}
+ ${LLVM_LDFLAGS}
+ ${LLVM_DYNAMIC_LIB}
+ ${LLVM_SYSTEM_LIBS}
+ ${LOG4CXX_LDFLAGS}
+ ${GUILE_LDFLAGS}
+ ${QUAZIP_LIBRARIES})
+target_compile_options(fridatest PRIVATE -DCONFIG_TEST)
+set_property(TEST fridatest
+ APPEND PROPERTY ENVIRONMENT LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR})
+
+install(TARGETS frida
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
+
+install(TARGETS guilePlugin
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/frida/plugins/Interpreter)
+
+install(TARGETS guile-frida-binding
+ DESTINATION ${CMAKE_INSTALL_LIBDIR})
\ No newline at end of file