+#deal with some debian wierdness
+FIND_PROGRAM(QT_QMAKE_EXECUTABLE qmake-qt4 )
+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)
+
+INCLUDE( Platform )
SET(MOC_HEADERS
ImageSaveDialog.hpp
IntAction.hpp
MussaAlignedWindow.hpp
MussaWindow.hpp
+ SequenceLocationModel.hpp
+ SubanalysisWindow.hpp
ThresholdWidget.hpp
ZoomWidget.hpp
motif_editor/MotifDetail.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
)
-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
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})
+
+GET_MUSSA_COMPILE_FLAGS(QUI_CFLAGS)
+GET_MUSSA_LINK_FLAGS(QUI_LDFLAGS)
+
+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_PROGRAM_OPTIONS_LIBRARY}
+ ${BOOST_FILESYSTEM_LIBRARY}
+ )
+
+IF(USE_PYTHON)
+ SET(CFLAGS "-DUSE_PYTHON=1 ${CFLAGS}")
+ TARGET_LINK_LIBRARIES(mussagl
+ ${BOOST_PYTHON_LIBRARY}
+ optimized ${PYTHON_LIBRARIES}
+ debug ${PYTHON_DEBUG_LIBRARIES}
)
+ENDIF(USE_PYTHON)
+
+SET_SOURCE_FILES_PROPERTIES(
+ ${SOURCES} ${MAIN_SOURCES}
+ PROPERTIES
+ COMPILE_FLAGS "${QUI_CFLAGS}"
+)
+SET_TARGET_PROPERTIES(
+ mussagl mussa_qui PROPERTIES
+ COMPILE_FLAGS "${QUI_CFLAGS}"
+ LINK_FLAGS "${QUI_LDFLAGS}"
+)
+
+# 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)
+ADD_SUBDIRECTORY( test )