Windows XP support patch by Diane
[mussa.git] / qui / CMakeLists.txt
index f01a15a5194502839db655d8a5f13a803abddcd1..a7634972920cd7c7097546eca611535bdd9d3d0c 100644 (file)
@@ -4,9 +4,14 @@ FIND_PROGRAM(QT_MOC_EXECUTABLE moc-qt4 )
 
 FIND_PACKAGE(Qt4)
 SET(QT_USE_QTOPENGL 1)
+IF(QT_ASSISTANT_LIB)
+  SET(QT_USE_QTNETWORK 1)
+  SET(QT_USE_QTASSISTANT 1)
+ENDIF(QT_ASSISTANT_LIB)
 INCLUDE( ${QT_USE_FILE} )
 FIND_PACKAGE(OpenGL)
 FIND_PACKAGE(Boost)
+FIND_PACKAGE(PythonLibs)
 
 SET(MOC_HEADERS
       ImageSaveDialog.hpp     
@@ -14,6 +19,8 @@ SET(MOC_HEADERS
       IntAction.hpp           
       MussaAlignedWindow.hpp  
       MussaWindow.hpp
+      SequenceLocationModel.hpp
+      SubanalysisWindow.hpp
       ThresholdWidget.hpp
       ZoomWidget.hpp
       motif_editor/MotifDetail.hpp
@@ -23,20 +30,20 @@ SET(MOC_HEADERS
       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
     )
-SET(SOURCES 
+SET(GUI_SOURCES 
       ImageSaveDialog.cpp      
       ImageScaler.cpp          
       IntAction.cpp            
       MussaAlignedWindow.cpp
-      mussagl.cpp
       MussaWindow.cpp
+      SequenceLocationModel.cpp
+      SubanalysisWindow.cpp
       ThresholdWidget.cpp
       ZoomWidget.cpp
       motif_editor/MotifDetail.cpp
@@ -52,20 +59,69 @@ SET(SOURCES
       seqbrowser/SequenceBrowserSidebar.cpp
       seqbrowser/SequenceBrowserWidget.cpp
       seqbrowser/SequenceDescription.cpp
+
      )
+SET(MAIN_SOURCES
+      mussagl.cpp)
 SET(RCCS ../icons.qrc)
 
-QT4_ADD_RESOURCES(RCC_SOURCE ${RCCS})
+QT4_ADD_RESOURCES(RCC_SOURCES ${RCCS})
 QT4_WRAP_CPP(MOC_SOURCES ${MOC_HEADERS})
-ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${SOURCES} ${MOC_SOURCES} ${RCC_SOURCE})
-LINK_DIRECTORIES(${MUSSA_BINARY_DIR}/alg)
+SET(SOURCES  ${MOC_SOURCES} ${GUI_SOURCES} ${RCC_SOURCES} ${MAIN_SOURCES})
+
+# these are really only needed for gcc on AMD64
+INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} 
+                    ${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} )
+
 TARGET_LINK_LIBRARIES(mussagl 
                         mussa_core
-                        ${QT_QTCORE_LIBRARY}
-                        ${QT_QTGUI_LIBRARY}
-                        ${QT_QTOPENGL_LIBRARY}
+                        mussa_qui
+                        ${QT_LIBRARIES}
                         ${OPENGL_gl_LIBRARY}
-                        ${BOOST_PROGRAM_OPTIONS_LIB}
-                        ${BOOST_FILESYSTEM_LIB}
+                        ${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)
+
+
+# we need Cocoa in order to find where our base directory is (AKA bundle)
+IF(APPLE)
+  SET(COCOA_LIBRARY "-framework Cocoa")
+  TARGET_LINK_LIBRARIES(mussagl ${COCOA_LIBRARY})
+  SET(MACOSX_BUNDLE_BUNDLE_NAME "Mussa")
+  SET(MACOSX_BUNDLE_LONG_VERSION_STRING "Mussa Copyright 2004-2006 California Institute of Technology")
+  SET(MACOSX_BUNDLE_COPYRIGHT "Copyright 2004-2006 California Institute of Technology")
+  SET(MACOSX_BUNDLE_ICON_FILE "mussa")
+
+  SET(APP_DIR ${CMAKE_BINARY_DIR}/qui/mussagl.app/Contents)
+  SET(RESOURCE_DIR ${APP_DIR}/Resources})
+
+  ADD_CUSTOM_TARGET(mussa.icns ALL
+                    cmake -E copy_directory ${CMAKE_SOURCE_DIR}/icons/osx
+                                            ${APP_DIR}
+                   )
+ENDIF(APPLE)
+
+# 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 )