c5a30d609aa92b6f1cfb8e8c18452f17ecbc4c80
[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         conserved_path.cpp 
18         flp.cpp
19         glsequence.cpp
20         module.cpp 
21         mussa.cpp
22         nway_paths.cpp
23         seq_span.cpp
24         sequence.cpp
25         )
26   SET(QUI_SOURCES
27     module_qui.cpp
28     qt.cpp
29     sequence.cpp
30     glsequence.cpp
31     annotation_colors.cpp
32     sequencebrowserwidget.cpp
33   )                        
34   SET(MUSSA_LIBRARIES
35         mussa_core
36         ${BOOST_PYTHON_LIBRARY}
37         ${BOOST_FILESYSTEM_LIBRARY}
38         ${BOOST_SERIALIZATION_LIBRARY}
39         ${OPENGL_gl_LIBRARY}
40         optimized ${QT_QTCORE_LIBRARY_RELEASE}
41         debug ${QT_QTCORE_LIBRARY_DEBUG}
42      )        
43   GET_MUSSA_COMPILE_FLAGS(PY_CFLAGS)
44   GET_MUSSA_LINK_FLAGS(PY_LDFLAGS)
45
46         # configure static core python library  
47   ADD_LIBRARY(mussa_py STATIC ${SOURCES})
48   SET_TARGET_PROPERTIES(mussa_py PROPERTIES 
49                         COMPILE_FLAGS "${PY_CFLAGS}"
50                         LINK_FLAGS "${PY_LDFLAGS}")
51
52   # configure core (shared) python module 
53   ADD_LIBRARY(mussa MODULE ${SOURCES})
54   SET_TARGET_PROPERTIES(mussa PROPERTIES 
55                         PREFIX ""
56                         COMPILE_FLAGS "${PY_CFLAGS}"
57                         LINK_FLAGS "${PY_LDFLAGS}")
58   TARGET_LINK_LIBRARIES(mussa
59                         ${MUSSA_LIBRARIES}
60                         ${PYTHON_LIBRARIES}
61                         )
62   # configure static gui python library
63   #ADD_LIBRARY(mussaqui_py STATIC ${QUI_SOURCES})
64   #  SET_TARGET_PROPERTIES(mussa_py PROPERTIES 
65   #                        COMPILE_FLAGS "${PY_CFLAGS}"
66   #                        LINK_FLAGS "${PY_LDFLAGS}")
67                         
68   # configure gui (shared) python library
69   ADD_LIBRARY(mussaqui MODULE ${QUI_SOURCES})
70   SET_TARGET_PROPERTIES(mussaqui PROPERTIES 
71                        PREFIX ""
72                        COMPILE_FLAGS "${PY_CFLAGS}"
73                        LINK_FLAGS "${PY_LDFLAGS}")
74   TARGET_LINK_LIBRARIES(mussaqui
75                         mussa_qui
76                         ${MUSSA_LIBRARIES}
77                         ${PYTHON_LIBRARIES}
78                         optimized ${QT_QTGUI_LIBRARY}
79                         debug ${QT_QTGUI_LIBRARY_DEBUG}
80                         optimized ${QT_QTOPENGL_LIBRARY}
81                         debug ${QT_QTOPENGL_LIBRARY_DEBUG}
82                        )
83   
84   SET_SOURCE_FILES_PROPERTIES(
85     ${SOURCES}
86     ${QUI_SOURCES}
87     PROPERTIES
88     COMPILE_FLAGS "${PY_CFLAGS}"
89   )
90   SET_TARGET_PROPERTIES(
91     ${STATIC_PYTHON_TARGETS} ${SHARED_PYTHON_TARGETS}
92     PROPERTIES
93     COMPILE_FLAGS "${PY_CFLAGS}"
94     LINK_FLAGS "${PY_LDFLAGS}"
95   )
96
97   IF(PYTHON_EXECUTABLE)
98     SET(PYTEST_DIR ${CMAKE_SOURCE_DIR}/py/test/)
99     ADD_TEST(TestSeqSpan ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestSeqSpan.py)
100     ADD_TEST(TestSequence ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestSequence.py)
101     ADD_TEST(TestFlp ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestFlp.py)
102     ADD_TEST(TestMussa ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestMussa.py)
103   ENDIF(PYTHON_EXECUTABLE)
104 ELSE(BOOST_PYTHON_LIBRARY)
105 ENDIF(BOOST_PYTHON_LIBRARY)
106
107 ADD_SUBDIRECTORY(test)