title: CLion: Enable debugging of external libraries by adding source files
body: <p>I am using CLion 2016.2.2 and I want to debug a method in the <a href="http://libtins.github.io/" rel="noreferrer">libtins</a> library. However, it looks like the sources are not available because when trying to jump into the methods from libtins, the debugger does not go into and just updates the current view.</p>
  
  <p>I tried to follow the suggestion in <a href="https://stackoverflow.com/questions/28449556/clion-doesnt-resolve-headers-from-external-library">this post</a> by adding <code>include_directories("/home/patrick/libtins/")</code> or <code>include_directories("/home/patrick/libtins/src/")</code>whereas libtins is the root folder cloned from the libtins repository. But CLion still could not find the source files associated to the libtins library. </p>
  
  <p>My CMake file looks as follow:</p>
  
  <pre><code>project(myproject)
  
  # Define CMake settings
  cmake_minimum_required(VERSION 3.2)
  
  IF(NOT CMAKE_BUILD_TYPE)
     SET(CMAKE_BUILD_TYPE "Release")
  ENDIF()
  
  IF (CMAKE_BUILD_TYPE MATCHES Debug)
      MESSAGE(STATUS "Running Debug configuration.")
  ELSEIF (CMAKE_BUILD_TYPE MATCHES Release)
      MESSAGE(STATUS "Running Release configuration.")
  ENDIF()
  
  SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
  SET(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall")
  
  SET(CMAKE_CXX_STANDARD 11)
  SET(CMAKE_CXX_STANDARD_REQUIRED ON)
  
  # Add the library source files
  SET(SOURCE_FILES cxx/myclass.cpp cxx/myclass.h)
  
  # Include SQLiteCpp library and build it
  option(SQLITECPP_RUN_CPPLINT OFF)
  include_directories(SQLiteCpp/include)
  add_subdirectory(SQLiteCpp)
  
  # Find libtins library
  FIND_LIBRARY(TINS_LIBRARY tins)
  IF(TINS_LIBRARY)
    MESSAGE(STATUS "Tins library found in ${TINS_LIBRARY}")
  ELSE()
    MESSAGE(FATAL_ERROR "Tins library not found.")
  ENDIF()
  
  FIND_PACKAGE(PythonLibs 3.0 REQUIRED)
  IF(PYTHONLIBS_FOUND)
    INCLUDE_DIRECTORIES("${PYTHON_INCLUDE_DIRS}")
  ELSE()
    MESSAGE(FATAL_ERROR "Unable to find Python libraries.")
  ENDIF()
  
  # Find and configure BOOST library
  FIND_PACKAGE(Boost 1.54 QUIET)
  IF (Boost_FOUND)
      INCLUDE_DIRECTORIES("${Boost_INCLUDE_DIRS}")
      SET(Boost_USE_STATIC_LIBS OFF)
      SET(Boost_USE_MULTITHREADED ON)
      SET(Boost_USE_STATIC_RUNTIME OFF)
      # Find the boost python 3 component
      SET(PYTHON_VERSIONS python3 python-py35 python-py34 python-py33 python-py32)
      FOREACH(VERSION ${PYTHON_VERSIONS})
        FIND_PACKAGE(Boost COMPONENTS ${VERSION} QUIET)
        IF(Boost_FOUND)
          MESSAGE(STATUS "Python Boost found as '${VERSION}'.")
          BREAK()
        ENDIF()
      ENDFOREACH(VERSION)
      IF(NOT Boost_FOUND)
        MESSAGE(FATAL_ERROR "Python Boost component not found.")
      ENDIF()
  ELSE ()
      MESSAGE(FATAL_ERROR "Unable to find the Boost libraries (version 1.54 or higher).")
  ENDIF ()
  
  SET_target_properties(sqlite3 PROPERTIES POSITION_INDEPENDENT_CODE ON)
  
  ADD_EXECUTABLE(myproject ${SOURCE_FILES} "/home/pjattke/libtins/")
  TARGET_LINK_LIBRARIES(myproject ${Boost_LIBRARIES} "${TINS_LIBRARY}" SQLiteCpp sqlite3 pthread dl)
  </code></pre>
  
  <p>What exactly must I change to make CLion the source files available for debugging?</p>