032a46447fa6a6cf9762a0b30e2de62309af1fa2
[mussa.git] / py / CMakeLists.txt
1 FIND_PACKAGE(Boost)
2 FIND_PACKAGE(OpenGL)
3 FIND_PACKAGE(PythonLibs)
4 FIND_PACKAGE(PythonInterp)
5 # SET(QT_DONT_USE_QTGUI 1)
6 FIND_PACKAGE(Qt4)
7 INCLUDE( ${QT_USE_FILE} )
8
9
10 IF(BOOST_PYTHON_LIBRARY)
11   INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} ${QT_INCLUDES})
12   SET(SOURCES 
13         stl_container_adapter.cpp
14         alphabet.cpp
15         annot.cpp
16         annotation_colors.cpp
17         annotations.cpp
18         conserved_path.cpp 
19         drawable.cpp
20         flp.cpp
21         glsequence.cpp
22         module.cpp 
23         mussa.cpp
24         nway_paths.cpp
25         seq_span.cpp
26         sequence.cpp
27         )
28   SET(QUI_SOURCES
29     module_qui.cpp
30     qt.cpp
31     sequence.cpp
32     glsequence.cpp
33     annotation_colors.cpp
34     sequencebrowserwidget.cpp
35   )                        
36   SET(MUSSA_LIBRARIES
37         mussa_core
38         ${BOOST_PYTHON_LIBRARY}
39         ${BOOST_FILESYSTEM_LIBRARY}
40         ${BOOST_SERIALIZATION_LIBRARY}
41         ${OPENGL_gl_LIBRARY}
42         optimized ${QT_QTCORE_LIBRARY_RELEASE}
43         debug ${QT_QTCORE_LIBRARY_DEBUG}
44      )        
45   GET_MUSSA_COMPILE_FLAGS(PY_CFLAGS)
46   GET_MUSSA_LINK_FLAGS(PY_LDFLAGS)
47
48         # configure static core python library  
49   ADD_LIBRARY(mussa_py STATIC ${SOURCES})
50   SET_TARGET_PROPERTIES(mussa_py PROPERTIES 
51                         COMPILE_FLAGS "${PY_CFLAGS}"
52                         LINK_FLAGS "${PY_LDFLAGS}")
53
54   # configure core (shared) python module 
55   ADD_LIBRARY(mussa MODULE ${SOURCES})
56   SET_TARGET_PROPERTIES(mussa PROPERTIES 
57                         PREFIX ""
58                         COMPILE_FLAGS "${PY_CFLAGS}"
59                         LINK_FLAGS "${PY_LDFLAGS}")
60   TARGET_LINK_LIBRARIES(mussa
61                         ${MUSSA_LIBRARIES}
62                         ${PYTHON_LIBRARIES}
63                         )
64   # configure static gui python library
65   #ADD_LIBRARY(mussaqui_py STATIC ${QUI_SOURCES})
66   #  SET_TARGET_PROPERTIES(mussa_py PROPERTIES 
67   #                        COMPILE_FLAGS "${PY_CFLAGS}"
68   #                        LINK_FLAGS "${PY_LDFLAGS}")
69                         
70   # configure gui (shared) python library
71   ADD_LIBRARY(mussaqui MODULE ${QUI_SOURCES})
72   SET_TARGET_PROPERTIES(mussaqui PROPERTIES 
73                        PREFIX ""
74                        COMPILE_FLAGS "${PY_CFLAGS}"
75                        LINK_FLAGS "${PY_LDFLAGS}")
76   TARGET_LINK_LIBRARIES(mussaqui
77                         mussa_qui
78                         ${MUSSA_LIBRARIES}
79                         ${PYTHON_LIBRARIES}
80                         optimized ${QT_QTGUI_LIBRARY}
81                         debug ${QT_QTGUI_LIBRARY_DEBUG}
82                         optimized ${QT_QTOPENGL_LIBRARY}
83                         debug ${QT_QTOPENGL_LIBRARY_DEBUG}
84                        )
85   
86   SET_SOURCE_FILES_PROPERTIES(
87     ${SOURCES}
88     ${QUI_SOURCES}
89     PROPERTIES
90     COMPILE_FLAGS "${PY_CFLAGS}"
91   )
92   SET_TARGET_PROPERTIES(
93     ${STATIC_PYTHON_TARGETS} ${SHARED_PYTHON_TARGETS}
94     PROPERTIES
95     COMPILE_FLAGS "${PY_CFLAGS}"
96     LINK_FLAGS "${PY_LDFLAGS}"
97   )
98
99   IF(PYTHON_EXECUTABLE)
100     SET(PYTEST_DIR ${CMAKE_SOURCE_DIR}/py/test/)
101     ADD_TEST(TestAnnotations 
102                      ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestAnnotations.py)
103     ADD_TEST(TestSeqSpan ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestSeqSpan.py)
104     ADD_TEST(TestSequence ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestSequence.py)
105     ADD_TEST(TestFlp ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestFlp.py)
106     ADD_TEST(TestMussa ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestMussa.py)
107   ENDIF(PYTHON_EXECUTABLE)
108 ELSE(BOOST_PYTHON_LIBRARY)
109 ENDIF(BOOST_PYTHON_LIBRARY)
110
111 ADD_SUBDIRECTORY(test)