diff --git a/juci/CMakeLists.txt b/juci/CMakeLists.txt index ec9f2ac..a6b3ab4 100644 --- a/juci/CMakeLists.txt +++ b/juci/CMakeLists.txt @@ -3,7 +3,6 @@ set(project_name juci) set(module juci_to_python_api) project (${project_name}) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules/") @@ -15,8 +14,22 @@ message("Searcing for libclang") #LIBCLANG_LIBRARIES The libraries needed to use libclang. #LIBCLANG_LIBRARY_DIR The path to the directory containing libclang. #LIBCLANG_KNOWN_LLVM_VERSIONS Known LLVM release numbers. -find_package(Testlcl) +find_package(LibClangmm) +find_package(LibClang) +if(${LCL_FOUND}) + message("libclangmm libraries found. Continuing") + message("${LCL_INCLUDE_DIRS}") +else() + message(FATAL_ERROR "The libclangmm libraries are required. Quitting.") +endif() + +if(${LIBCLANG_FOUND}) + message("libclangmm libraries found. Continuing") + message("${LIBCLANG_INCLUDE_DIRS}") +else() + message(FATAL_ERROR "The libclangmm libraries are required. Quitting.") +endif() #### Finding boost, the variables below is set ##### #PYTHONLIBS_FOUND - True if headers and requested libraries were found @@ -73,16 +86,22 @@ endif() add_executable(${project_name} #list of every needed file to create the executable juci.cc - keybindings - menu - source + keybindings.h + keybindings.cc + menu.h + menu.cc + source.h + source.cc sourcefile.h sourcefile.cc - window - api - notebook - entry - + window.cc + window.h + api.h + api.cc + notebook.cc + notebook.h + entry.h + entry.cc #there is no need for extentions ) @@ -92,29 +111,25 @@ add_library(${module} SHARED ) # dependencies -if(${lcl_NOTFOUND}) - message("FATAL_ERROR ohh lord!") -else() - message("Found libs!") -endif() - include_directories( ${Boost_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS} ${LCL_INCLUDE_DIRS} + ${LIBCLANG_INCLUDE_DIRS} ) link_directories( ${GTKMM_LIBRARY_DIRS} ${Boost_LIBRARY_DIRS} ${PYTHON_INCLUDE_DIRS} ${LCL_LIBRARY_DIRS} + ${LIBCLANG_LIBRARY_DIRS} ) #module: set_target_properties(${module} PROPERTIES PREFIX "" LIBRARY_OUTPUT_DIRECTORY "/usr/lib/python2.7/dist-packages/") target_link_libraries(${module} ${PYTHON_LIBRARIES} ${Boost_LIBRARIES}) #executable: -target_link_libraries(${project_name} ${LCL_LIBRARIES} ${GTKMM_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) +target_link_libraries(${project_name} ${LIVCLANG_LIBRARIES} ${LCL_LIBRARIES} ${GTKMM_LIBRARIES} ${Boost_LIBRARIES} ${PYTHON_LIBRARIES}) diff --git a/juci/cmake/Modules/FindLibClang.cmake b/juci/cmake/Modules/FindLibClang.cmake new file mode 100644 index 0000000..8a4ed46 --- /dev/null +++ b/juci/cmake/Modules/FindLibClang.cmake @@ -0,0 +1,82 @@ +# +# Try to find libclang +# +# Once done this will define: +# - LIBCLANG_FOUND +# System has libclang. +# - LIBCLANG_INCLUDE_DIRS +# The libclang include directories. +# - LIBCLANG_LIBRARIES +# The libraries needed to use libclang. +# - LIBCLANG_LIBRARY_DIR +# The path to the directory containing libclang. +# - LIBCLANG_KNOWN_LLVM_VERSIONS +# Known LLVM release numbers. + +# most recent versions come first +set(LIBCLANG_KNOWN_LLVM_VERSIONS 3.6 + 3.5.1 + 3.5.0 #Arch Linux + 3.5 #LLVM Debian/Ubuntu packages from http://llvm.org/apt/ + 3.4.2 3.4.1 3.4 3.3 3.2 3.1) + +set(libclang_llvm_header_search_paths) +set(libclang_llvm_lib_search_paths + # LLVM Fedora + /usr/lib/llvm + ) + +foreach (version ${LIBCLANG_KNOWN_LLVM_VERSIONS}) + list(APPEND libclang_llvm_header_search_paths + # LLVM Debian/Ubuntu nightly packages: http://llvm.org/apt/ + "/usr/lib/llvm-${version}/include" + # LLVM MacPorts + "/opt/local/libexec/llvm-${version}/include" + # LLVM Homebrew + "/usr/local/Cellar/llvm/${version}/include" + # LLVM Homebrew/versions + "/usr/local/lib/llvm-${version}/include" + ) + + list(APPEND libclang_llvm_lib_search_paths + # LLVM Debian/Ubuntu nightly packages: http://llvm.org/apt/ + "/usr/lib/llvm-${version}/lib/" + # LLVM MacPorts + "/opt/local/libexec/llvm-${version}/lib" + # LLVM Homebrew + "/usr/local/Cellar/llvm/${version}/lib" + # LLVM Homebrew/versions + "/usr/local/lib/llvm-${version}/lib" + ) +endforeach() + +find_path(LIBCLANG_INCLUDE_DIR clang-c/Index.h + PATHS ${libclang_llvm_header_search_paths} + PATH_SUFFIXES LLVM/include #Windows package from http://llvm.org/releases/ + DOC "The path to the directory that contains clang-c/Index.h") + +# On Windows with MSVC, the import library uses the ".imp" file extension +# instead of the comon ".lib" +if (MSVC) + find_file(LIBCLANG_LIBRARY libclang.imp + PATH_SUFFIXES LLVM/lib + DOC "The file that corresponds to the libclang library.") +endif() + +find_library(LIBCLANG_LIBRARY NAMES libclang.imp libclang clang + PATHS ${libclang_llvm_lib_search_paths} + PATH_SUFFIXES LLVM/lib #Windows package from http://llvm.org/releases/ + DOC "The file that corresponds to the libclang library.") + +get_filename_component(LIBCLANG_LIBRARY_DIR ${LIBCLANG_LIBRARY} PATH) + +set(LIBCLANG_LIBRARIES ${LIBCLANG_LIBRARY}) +set(LIBCLANG_INCLUDE_DIRS ${LIBCLANG_INCLUDE_DIR}) + +include(FindPackageHandleStandardArgs) +# handle the QUIETLY and REQUIRED arguments and set LIBCLANG_FOUND to TRUE if +# all listed variables are TRUE +find_package_handle_standard_args(LibClang DEFAULT_MSG + LIBCLANG_LIBRARY LIBCLANG_INCLUDE_DIR) + +mark_as_advanced(LIBCLANG_INCLUDE_DIR LIBCLANG_LIBRARY) diff --git a/juci/cmake/Modules/FindTestlcl.cmake b/juci/cmake/Modules/FindLibClangmm.cmake similarity index 64% rename from juci/cmake/Modules/FindTestlcl.cmake rename to juci/cmake/Modules/FindLibClangmm.cmake index 5a77a83..4940e0c 100644 --- a/juci/cmake/Modules/FindTestlcl.cmake +++ b/juci/cmake/Modules/FindLibClangmm.cmake @@ -9,16 +9,12 @@ find_package(PkgConfig) -find_path(LCL_INCLUDE_DIR headers/TranslationUnit.h - HINTS "/home/gm/bachelor/lib/" - "/home/forgie/code/libclangpp/" - "/home/zalox/bachelor/libclang++/" +find_path(LCL_INCLUDE_DIR clangmm.h + HINTS "/usr/lib/libclangmm/include/" ) -find_library(LCL_LIBRARY NAMES testlcl - HINTS "/home/gm/bachelor/lib/lib/" - "/home/forgie/code/libclangpp/lib/" - "/home/zalox/bachelor/libclang++/lib/" +find_library(LCL_LIBRARY NAMES clangmm + HINTS "/usr/lib/libclangmm/" ) set(LCL_LIBRARIES ${LCL_LIBRARY} )