Skip to content
Snippets Groups Projects
CMakeLists.txt 4.07 KiB
# CMake script for xtpcpp
# Author: Olivier Langella
# Created: 03/03/2015


SET(xtpcpp_RCCS xtpcpp.qrc)
# Appeler automatique le moc quand nécessaire
#SET(CMAKE_AUTOMOC ON)
# Les fichiers générés par le moc sont générés dans le dossier bin, dire à CMake de toujours 	
# inclure les entêtes de ce dossier
#SET(CMAKE_INCLUDE_CURRENT_DIR ON)

#FIND_PACKAGE(Boost REQUIRED)
#INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIRS})

FIND_PACKAGE( Qt4 COMPONENTS QTCORE QTGUI QTSVG QTXML REQUIRED )
QT4_ADD_RESOURCES(xtpcpp_RCC_SRCS ${xtpcpp_RCCS})


FIND_PACKAGE( Odsstream REQUIRED ) #ODSSTREAM_INCLUDE_DIR AND ODSSTREAM_LIBRARY
#SET (ODSSTREAM_DIR  "/home/olivier/eclipse/git/cpp_libodsstream")
#SET (ODSSTREAM_INCLUDE_DIR "${ODSSTREAM_DIR}/src")
#SET (ODSSTREAM_QT5_LIBRARY "${ODSSTREAM_DIR}/build/src/libodsstream-qt5.so")
INCLUDE_DIRECTORIES(${ODSSTREAM_INCLUDE_DIR})

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${Qt5Xml_EXECUTABLE_COMPILE_FLAGS} ${Qt5Gui_EXECUTABLE_COMPILE_FLAGS} ${Qt5Svg_EXECUTABLE_COMPILE_FLAGS}")



#sudo apt-get install libpappsomspp-dev
FIND_PACKAGE( Pappsomspp REQUIRED )
#SET (PAPPSOMSPP_DIR  "/home/olivier/eclipse/git/pappsomspp")
# SET (PAPPSOMSPP_DIR  "/home/langella/developpement/git/pappsomspp")
 #SET (PAPPSOMSPP_INCLUDE_DIR "${PAPPSOMSPP_DIR}/src")
 #SET (PAPPSOMSPP_QT4_LIBRARY "${PAPPSOMSPP_DIR}/build/src/libpappsomspp-qt4.so")

INCLUDE_DIRECTORIES( ${PAPPSOMSPP_INCLUDE_DIR} )

set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake_modules)

FIND_PACKAGE(Pwiz REQUIRED)
INCLUDE_DIRECTORIES( ${Pwiz_INCLUDE_DIR})
IF (Pwiz_FOUND)
  INCLUDE_DIRECTORIES( ${Pwiz_INCLUDE_DIR})
  #FIND_PACKAGE(Boost REQUIRED)
  #INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIRS})
ELSE (Pwiz_FOUND)
  MESSAGE("Proteowizard library not found")
  MESSAGE("did you apt-get install libpwiz-dev libboost-dev ?")
ENDIF (Pwiz_FOUND)

configure_file (${CMAKE_SOURCE_DIR}/src/config.h.cmake ${CMAKE_SOURCE_DIR}/src/config.h)

# File list
SET(CPP_FILES
  core/identificationgroup.cpp
  core/peptidematch.cpp
  core/project.cpp
  core/proteinmatch.cpp
  core/identification_sources/identificationdatasource.cpp
  core/identification_sources/identificationxtandemfile.cpp
  files/xpipfile.cpp
  input/xpipsaxhandler.cpp
  utils/peptidestore.cpp
  utils/readspectrum.cpp
)

set(QTLIBS ${Qt5Xml_LIBRARIES} ${Qt5Gui_LIBRARIES}  ${Qt5Svg_LIBRARIES})

# we need this to be able to include headers produced by uic in our code
# (CMAKE_BINARY_DIR holds a path to the build directory, while INCLUDE_DIRECTORIES() works just like INCLUDEPATH from qmake)
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_BINARY_DIR} )
INCLUDE_DIRECTORIES( ${CMAKE_CURRENT_SOURCE_DIR} )

SET(XTPCPP_SRCS
  ./gui/mainwindow.cpp
  ./gui/protein_list_view/proteinlistwindow.cpp
  ./gui/protein_list_view/proteintablemodel.cpp
)

SET (GUI_UIS
  ./gui/main.ui
  ./gui/protein_list_view/protein_view.ui
)

SET(XTPCPP_MOC_HDRS

  ./gui/mainwindow.h
  ./gui/protein_list_view/proteinlistwindow.h
  ./gui/protein_list_view/proteintablemodel.h
)


# this will run uic on .ui files:
QT4_WRAP_UI( GUI_UI_HDRS ${GUI_UIS} )

QT4_WRAP_CPP( XTPCPP_MOC_SRCS ${XTPCPP_MOC_HDRS} )


MESSAGE("XTPCPP_SRCS:  ${XTPCPP_SRCS}")


ADD_EXECUTABLE(xtpcpp main.cpp ${CPP_FILES} ${XTPCPP_SRCS} ${GUI_UI_HDRS} ${XTPCPP_MOC_SRCS} ${xtpcpp_RCC_SRCS})
target_include_directories (xtpcpp PUBLIC ${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR} ${QT_QTGUI_INCLUDE_DIR} ${QT_QTSVG_INCLUDE_DIR} ${QT_QTXML_INCLUDE_DIR})
  SET_TARGET_PROPERTIES(xtpcpp
    PROPERTIES OUTPUT_NAME xtpcpp
    CLEAN_DIRECT_OUTPUT 1
    COMPILE_DEFINITIONS "${QT_DEFINITIONS}"
    #INCLUDE_DIRECTORIES "${QT_INCLUDE_DIR} ${QT_QTCORE_INCLUDE_DIR}"
    )
TARGET_LINK_LIBRARIES(xtpcpp ${PAPPSOMSPP_QT4_LIBRARY} ${Pwiz_LIBRARY} ${ODSSTREAM_QT4_LIBRARY} ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} ${QT_QTSVG_LIBRARY} ${QT_QTXML_LIBRARY})

INSTALL(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/xtpcpp DESTINATION bin)

#configure_file (${CMAKE_SOURCE_DIR}/templates/share/applications/pt-peptideviewer.desktop.cmake ${CMAKE_BINARY_DIR}/templates/share/applications/pt-peptideviewer.desktop)