Update mussa to build on ubuntu 10.04 with qt 4.6.2 +boost 1.40.0.1
[mussa.git] / qui / CMakeLists.txt
index b3dd1d8a7759363840ecbd6dfd4c4b1319b1ccc9..1ae54fd01c741dfb00c164502f82c36b476cf89e 100644 (file)
@@ -4,15 +4,19 @@ FIND_PROGRAM(QT_MOC_EXECUTABLE moc-qt4 )
 
 FIND_PACKAGE(Qt4)
 SET(QT_USE_QTOPENGL 1)
-IF(QT_ASSISTANT_LIB)
+IF(QT_QTASSISTANT_FOUND)
   SET(QT_USE_QTNETWORK 1)
   SET(QT_USE_QTASSISTANT 1)
-ENDIF(QT_ASSISTANT_LIB)
+ENDIF(QT_QTASSISTANT_FOUND)
 INCLUDE( ${QT_USE_FILE} )
 FIND_PACKAGE(OpenGL)
-FIND_PACKAGE(Boost)
+set(Boost_USE_STATIC_LIBS   OFF)
+set(Boost_USE_MULTITHREADED ON)
+FIND_PACKAGE(Boost 1.34.1)
 FIND_PACKAGE(PythonLibs)
 
+INCLUDE( Platform )
+
 SET(MOC_HEADERS
       ImageSaveDialog.hpp     
       ImageScaler.hpp         
@@ -21,19 +25,25 @@ SET(MOC_HEADERS
       MussaWindow.hpp
       ThresholdWidget.hpp
       ZoomWidget.hpp
-      motif_editor/MotifDetail.hpp
+      motif_editor/MotifModel.hpp
       motif_editor/MotifEditor.hpp
-      mussa_setup_dialog/IsFileValidator.hpp
+      motif_editor/MotifEditorDelegate.hpp
+      # mussa_setup_dialog/IsFileValidator.hpp
       mussa_setup_dialog/MussaSetupDialog.hpp
       mussa_setup_dialog/MussaSetupWidget.hpp
       mussa_setup_dialog/SequenceSetupFrame.hpp
       mussa_setup_dialog/SequenceSetupWidget.hpp
-      mussa_setup_dialog/SetupInfo.hpp
       seqbrowser/ScrollableSequenceBrowser.hpp
       seqbrowser/SequenceBrowser.hpp
       seqbrowser/SequenceBrowserSidebar.hpp
       seqbrowser/SequenceBrowserWidget.hpp
       seqbrowser/SequenceDescription.hpp
+      seqbrowser/seqproperties/SequencePropertiesModel.hpp
+      seqbrowser/seqproperties/PropertiesWindow.hpp
+      subanalysis/SequenceLocationModel.hpp
+      subanalysis/SubanalysisWindow.hpp
+      threading/GuiProxy.hpp
+      threading/InterpreterThread.hpp
     )
 SET(GUI_SOURCES 
       ImageSaveDialog.cpp      
@@ -43,8 +53,10 @@ SET(GUI_SOURCES
       MussaWindow.cpp
       ThresholdWidget.cpp
       ZoomWidget.cpp
-      motif_editor/MotifDetail.cpp
       motif_editor/MotifEditor.cpp
+      motif_editor/MotifEditorDelegate.cpp
+      motif_editor/MotifElement.cpp
+      motif_editor/MotifModel.cpp
       mussa_setup_dialog/IsFileValidator.cpp
       mussa_setup_dialog/MussaSetupDialog.cpp
       mussa_setup_dialog/MussaSetupWidget.cpp
@@ -56,49 +68,48 @@ SET(GUI_SOURCES
       seqbrowser/SequenceBrowserSidebar.cpp
       seqbrowser/SequenceBrowserWidget.cpp
       seqbrowser/SequenceDescription.cpp
-
+      seqbrowser/seqproperties/SequencePropertiesModel.cpp
+      seqbrowser/seqproperties/PropertiesWindow.cpp
+      subanalysis/SequenceLocationModel.cpp
+      subanalysis/SubanalysisWindow.cpp
+      threading/GuiProxy.cpp
+      threading/InterpreterThread.cpp
+      threading/ThreadManager.cpp
      )
-SET(MAIN_SOURCES
-      mussagl.cpp)
+SET(PY_SOURCES ../py/python.cpp)
 SET(RCCS ../icons.qrc)
 
 QT4_ADD_RESOURCES(RCC_SOURCES ${RCCS})
 QT4_WRAP_CPP(MOC_SOURCES ${MOC_HEADERS})
-SET(SOURCES  ${MOC_SOURCES} ${GUI_SOURCES} ${RCC_SOURCES} ${MAIN_SOURCES})
+SET(SOURCES  ${MOC_SOURCES} ${GUI_SOURCES} ${RCC_SOURCES} ${PY_SOURCES})
+
+GET_MUSSA_COMPILE_FLAGS(QUI_CFLAGS)
+GET_MUSSA_LINK_FLAGS(QUI_LDFLAGS)
 
-# these are really only needed for gcc on AMD64
 INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} 
-                    ${QT_INCLUDES})
+                    ${QT_INCLUDES}
+                    ${Boost_INCLUDE_DIR} )
 
 ADD_LIBRARY(mussa_qui STATIC ${SOURCES})
-TARGET_LINK_LIBRARIES(mussa_qui 
-                        mussa_core)
 
-ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
+# currently QTASSISTANT is only properly installed under windows
+IF(QT_QTASSISTANT_FOUND AND WIN32)
+  SET(QUI_CFLAGS "${QUI_CFLAGS} -DQT_QTASSISTANT_FOUND")
+ENDIF(QT_QTASSISTANT_FOUND AND WIN32)
+
+SET_SOURCE_FILES_PROPERTIES(
+  ${SOURCES}
+  PROPERTIES
+  COMPILE_FLAGS "${QUI_CFLAGS}"
+)
+SET_TARGET_PROPERTIES(
+  mussa_qui PROPERTIES
+  COMPILE_FLAGS "${QUI_CFLAGS}"
+  LINK_FLAGS "${QUI_LDFLAGS}"
+)
 
-LINK_DIRECTORIES(${MUSSA_BINARY_DIR}/alg
-                 ${MUSSA_BINARY_DIR}/py)
-TARGET_LINK_LIBRARIES(mussagl 
-                        mussa_core
-                        mussa_qui
-                        ${QT_LIBRARIES}
-                        ${OPENGL_gl_LIBRARY}
-                        ${BOOST_PROGRAM_OPTIONS_LIBRARY}
-                        ${BOOST_FILESYSTEM_LIBRARY}
-                      )
-IF(USE_PYTHON)
-  SET_SOURCE_FILES_PROPERTIES(${SOURCES}
-                              PROPERTIES
-                              COMPILE_FLAGS "-DUSE_PYTHON=1"
-                             )
-  TARGET_LINK_LIBRARIES(mussagl
-                          ${BOOST_PYTHON_LIBRARY}
-                          optimized ${PYTHON_LIBRARIES}
-                          debug ${PYTHON_DEBUG_LIBRARIES}
-                        )
-ENDIF(USE_PYTHON)
 
-# these are needed for AMD64 systems but don't hurt on 32bit
-SET_SOURCE_FILES_PROPERTIES(${SOURCES} PROPERTIES COMPILE_FLAGS "-fPIC")
-SET_TARGET_PROPERTIES(mussa_qui PROPERTIES COMPILE_FLAGS "-fPIC")
-SET_TARGET_PROPERTIES(mussagl PROPERTIES COMPILE_FLAGS "-fPIC")
+ADD_SUBDIRECTORY( test )
+ADD_SUBDIRECTORY( motif_editor/test )
+ADD_SUBDIRECTORY( seqbrowser/test )
+ADD_SUBDIRECTORY( subanalysis/test )