Windows XP support patch by Diane
[mussa.git] / qui / CMakeLists.txt
1 #deal with some debian wierdness
2 FIND_PROGRAM(QT_QMAKE_EXECUTABLE qmake-qt4 )
3 FIND_PROGRAM(QT_MOC_EXECUTABLE moc-qt4 )
4
5 FIND_PACKAGE(Qt4)
6 SET(QT_USE_QTOPENGL 1)
7 IF(QT_ASSISTANT_LIB)
8   SET(QT_USE_QTNETWORK 1)
9   SET(QT_USE_QTASSISTANT 1)
10 ENDIF(QT_ASSISTANT_LIB)
11 INCLUDE( ${QT_USE_FILE} )
12 FIND_PACKAGE(OpenGL)
13 FIND_PACKAGE(Boost)
14 FIND_PACKAGE(PythonLibs)
15
16 SET(MOC_HEADERS
17       ImageSaveDialog.hpp     
18       ImageScaler.hpp         
19       IntAction.hpp           
20       MussaAlignedWindow.hpp  
21       MussaWindow.hpp
22       SequenceLocationModel.hpp
23       SubanalysisWindow.hpp
24       ThresholdWidget.hpp
25       ZoomWidget.hpp
26       motif_editor/MotifDetail.hpp
27       motif_editor/MotifEditor.hpp
28       mussa_setup_dialog/IsFileValidator.hpp
29       mussa_setup_dialog/MussaSetupDialog.hpp
30       mussa_setup_dialog/MussaSetupWidget.hpp
31       mussa_setup_dialog/SequenceSetupFrame.hpp
32       mussa_setup_dialog/SequenceSetupWidget.hpp
33       seqbrowser/ScrollableSequenceBrowser.hpp
34       seqbrowser/SequenceBrowser.hpp
35       seqbrowser/SequenceBrowserSidebar.hpp
36       seqbrowser/SequenceBrowserWidget.hpp
37       seqbrowser/SequenceDescription.hpp
38     )
39 SET(GUI_SOURCES 
40       ImageSaveDialog.cpp      
41       ImageScaler.cpp          
42       IntAction.cpp            
43       MussaAlignedWindow.cpp
44       MussaWindow.cpp
45       SequenceLocationModel.cpp
46       SubanalysisWindow.cpp
47       ThresholdWidget.cpp
48       ZoomWidget.cpp
49       motif_editor/MotifDetail.cpp
50       motif_editor/MotifEditor.cpp
51       mussa_setup_dialog/IsFileValidator.cpp
52       mussa_setup_dialog/MussaSetupDialog.cpp
53       mussa_setup_dialog/MussaSetupWidget.cpp
54       mussa_setup_dialog/SequenceSetupFrame.cpp
55       mussa_setup_dialog/SequenceSetupWidget.cpp
56       mussa_setup_dialog/SetupInfo.cpp
57       seqbrowser/ScrollableSequenceBrowser.cpp
58       seqbrowser/SequenceBrowser.cpp
59       seqbrowser/SequenceBrowserSidebar.cpp
60       seqbrowser/SequenceBrowserWidget.cpp
61       seqbrowser/SequenceDescription.cpp
62
63      )
64 SET(MAIN_SOURCES
65       mussagl.cpp)
66 SET(RCCS ../icons.qrc)
67
68 QT4_ADD_RESOURCES(RCC_SOURCES ${RCCS})
69 QT4_WRAP_CPP(MOC_SOURCES ${MOC_HEADERS})
70 SET(SOURCES  ${MOC_SOURCES} ${GUI_SOURCES} ${RCC_SOURCES} ${MAIN_SOURCES})
71
72 # these are really only needed for gcc on AMD64
73 INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} 
74                     ${QT_INCLUDES}
75                     ${BOOST_INCLUDE_DIR} )
76
77 ADD_LIBRARY(mussa_qui STATIC ${SOURCES})
78 TARGET_LINK_LIBRARIES(mussa_qui 
79                         mussa_core)
80
81 ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
82
83 TARGET_LINK_LIBRARIES(mussagl 
84                         mussa_core
85                         mussa_qui
86                         ${QT_LIBRARIES}
87                         ${OPENGL_gl_LIBRARY}
88                         ${BOOST_PROGRAM_OPTIONS_LIBRARY}
89                         ${BOOST_FILESYSTEM_LIBRARY}
90                       )
91 IF(USE_PYTHON)
92   SET_SOURCE_FILES_PROPERTIES(${SOURCES}
93                               PROPERTIES
94                               COMPILE_FLAGS "-DUSE_PYTHON=1"
95                              )
96   TARGET_LINK_LIBRARIES(mussagl
97                           ${BOOST_PYTHON_LIBRARY}
98                           optimized ${PYTHON_LIBRARIES}
99                           debug ${PYTHON_DEBUG_LIBRARIES}
100                         )
101 ENDIF(USE_PYTHON)
102
103
104 # we need Cocoa in order to find where our base directory is (AKA bundle)
105 IF(APPLE)
106   SET(COCOA_LIBRARY "-framework Cocoa")
107   TARGET_LINK_LIBRARIES(mussagl ${COCOA_LIBRARY})
108   SET(MACOSX_BUNDLE_BUNDLE_NAME "Mussa")
109   SET(MACOSX_BUNDLE_LONG_VERSION_STRING "Mussa Copyright 2004-2006 California Institute of Technology")
110   SET(MACOSX_BUNDLE_COPYRIGHT "Copyright 2004-2006 California Institute of Technology")
111   SET(MACOSX_BUNDLE_ICON_FILE "mussa")
112
113   SET(APP_DIR ${CMAKE_BINARY_DIR}/qui/mussagl.app/Contents)
114   SET(RESOURCE_DIR ${APP_DIR}/Resources})
115
116   ADD_CUSTOM_TARGET(mussa.icns ALL
117                     cmake -E copy_directory ${CMAKE_SOURCE_DIR}/icons/osx
118                                             ${APP_DIR}
119                    )
120 ENDIF(APPLE)
121
122 # these are needed for AMD64 systems but don't hurt on 32bit
123 SET_SOURCE_FILES_PROPERTIES(${SOURCES} PROPERTIES COMPILE_FLAGS "-fPIC")
124 SET_TARGET_PROPERTIES(mussa_qui PROPERTIES COMPILE_FLAGS "-fPIC")
125 SET_TARGET_PROPERTIES(mussagl PROPERTIES COMPILE_FLAGS "-fPIC")
126
127 ADD_SUBDIRECTORY( test )