find_package(PkgConfig)
pkg_check_modules(LOG4CXX REQUIRED liblog4cxx)
pkg_check_modules(GUILE REQUIRED guile-2.0)
+FIND_PACKAGE(SWIG REQUIRED)
+INCLUDE(${SWIG_USE_FILE})
-#add_compile_options(${LOG4CXX_CFLAGS})
add_definitions(${LOG4CXX_CFLAGS})
add_definitions(${GUILE_CFLAGS})
separate_arguments(LLVM_LDFLAGS)
separate_arguments(LLVM_LIBS)
+INCLUDE_DIRECTORIES("src")
+
+#####################
+# Language Bindings #
+#####################
+
+SET(CMAKE_SWIG_FLAGS -Linkage passive)
+#FIND_PACKAGE(PythonLibs)
+#INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
+SET_SOURCE_FILES_PROPERTIES(src/bindings/guile/frida.i PROPERTIES CPLUSPLUS ON)
+SWIG_ADD_MODULE(frida-guile guile src/bindings/guile/frida.i)
+SWIG_LINK_LIBRARIES(frida-guile ${GUILE_LDFLAGS})
+
+
+#################
+# Main Programm #
+#################
+
SET(frida_SOURCES
src/core/InformationManager.cxx
src/core/BasicBlock.cxx
ADD_DEFINITIONS(${QT_DEFINITIONS})
qt5_use_modules(frida Widgets)
-INCLUDE_DIRECTORIES("src")
-TARGET_LINK_LIBRARIES(frida ${QT_LIBRARIES} ${LLVM_LDFLAGS} -lLLVM-3.5 ${LLVM_SYSTEM_LIBS} ${LOG4CXX_LDFLAGS} ${GUILE_LDFLAGS} ${QUAZIP_LIBRARIES})
+TARGET_LINK_LIBRARIES(frida
+ ${QT_LIBRARIES}
+ ${LLVM_LDFLAGS}
+ -lLLVM-3.5
+ ${LLVM_SYSTEM_LIBS}
+ ${LOG4CXX_LDFLAGS}
+ ${QUAZIP_LIBRARIES})
+
+
+###########
+# Plugins #
+###########
+
+# GUILE
+
+set(plugin_guile_SOURCES
+ src/bindings/Interpreter.cxx
+ 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)
+target_link_libraries(guilePlugin ${QT_LIBRARIES} ${GUILE_LDFLAGS})
##################
# TEST Framework #