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