Tell CMake not to include QtAssistant if not available
[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       ThresholdWidget.hpp
23       ZoomWidget.hpp
24       motif_editor/MotifDetail.hpp
25       motif_editor/MotifEditor.hpp
26       mussa_setup_dialog/IsFileValidator.hpp
27       mussa_setup_dialog/MussaSetupDialog.hpp
28       mussa_setup_dialog/MussaSetupWidget.hpp
29       mussa_setup_dialog/SequenceSetupFrame.hpp
30       mussa_setup_dialog/SequenceSetupWidget.hpp
31       mussa_setup_dialog/SetupInfo.hpp
32       seqbrowser/ScrollableSequenceBrowser.hpp
33       seqbrowser/SequenceBrowser.hpp
34       seqbrowser/SequenceBrowserSidebar.hpp
35       seqbrowser/SequenceBrowserWidget.hpp
36       seqbrowser/SequenceDescription.hpp
37     )
38 SET(GUI_SOURCES 
39       ImageSaveDialog.cpp      
40       ImageScaler.cpp          
41       IntAction.cpp            
42       MussaAlignedWindow.cpp
43       MussaWindow.cpp
44       ThresholdWidget.cpp
45       ZoomWidget.cpp
46       motif_editor/MotifDetail.cpp
47       motif_editor/MotifEditor.cpp
48       mussa_setup_dialog/IsFileValidator.cpp
49       mussa_setup_dialog/MussaSetupDialog.cpp
50       mussa_setup_dialog/MussaSetupWidget.cpp
51       mussa_setup_dialog/SequenceSetupFrame.cpp
52       mussa_setup_dialog/SequenceSetupWidget.cpp
53       mussa_setup_dialog/SetupInfo.cpp
54       seqbrowser/ScrollableSequenceBrowser.cpp
55       seqbrowser/SequenceBrowser.cpp
56       seqbrowser/SequenceBrowserSidebar.cpp
57       seqbrowser/SequenceBrowserWidget.cpp
58       seqbrowser/SequenceDescription.cpp
59
60      )
61 SET(MAIN_SOURCES
62       mussagl.cpp)
63 SET(RCCS ../icons.qrc)
64
65 QT4_ADD_RESOURCES(RCC_SOURCES ${RCCS})
66 QT4_WRAP_CPP(MOC_SOURCES ${MOC_HEADERS})
67 SET(SOURCES  ${MOC_SOURCES} ${GUI_SOURCES} ${RCC_SOURCES} ${MAIN_SOURCES})
68
69 # these are really only needed for gcc on AMD64
70 INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} 
71                     ${QT_INCLUDES})
72
73 ADD_LIBRARY(mussa_qui STATIC ${SOURCES})
74 TARGET_LINK_LIBRARIES(mussa_qui 
75                         mussa_core)
76
77 ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
78
79 LINK_DIRECTORIES(${MUSSA_BINARY_DIR}/alg
80                  ${MUSSA_BINARY_DIR}/py)
81 TARGET_LINK_LIBRARIES(mussagl 
82                         mussa_core
83                         mussa_qui
84                         ${QT_LIBRARIES}
85                         ${OPENGL_gl_LIBRARY}
86                         ${BOOST_PROGRAM_OPTIONS_LIBRARY}
87                         ${BOOST_FILESYSTEM_LIBRARY}
88                       )
89 IF(USE_PYTHON)
90   SET_SOURCE_FILES_PROPERTIES(${SOURCES}
91                               PROPERTIES
92                               COMPILE_FLAGS "-DUSE_PYTHON=1"
93                              )
94   TARGET_LINK_LIBRARIES(mussagl
95                           ${BOOST_PYTHON_LIBRARY}
96                           optimized ${PYTHON_LIBRARIES}
97                           debug ${PYTHON_DEBUG_LIBRARIES}
98                         )
99 ENDIF(USE_PYTHON)
100
101 # these are needed for AMD64 systems but don't hurt on 32bit
102 SET_SOURCE_FILES_PROPERTIES(${SOURCES} PROPERTIES COMPILE_FLAGS "-fPIC")
103 SET_TARGET_PROPERTIES(mussa_qui PROPERTIES COMPILE_FLAGS "-fPIC")
104 SET_TARGET_PROPERTIES(mussagl PROPERTIES COMPILE_FLAGS "-fPIC")