Switch to a new FindBoost
[mussa.git] / py / CMakeLists.txt
1 FIND_PACKAGE(Boost 1.34.1 COMPONENTS python filesystem serialization)
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         ${QT_QTCORE_LIBRARY}
43         #optimized ${QT_QTCORE_LIBRARY_RELEASE}
44         #debug ${QT_QTCORE_LIBRARY_DEBUG}
45      )        
46   GET_MUSSA_COMPILE_FLAGS(PY_CFLAGS)
47   GET_MUSSA_LINK_FLAGS(PY_LDFLAGS)
48
49         # configure static core python library  
50   ADD_LIBRARY(mussa_py STATIC ${SOURCES})
51   SET_TARGET_PROPERTIES(mussa_py PROPERTIES 
52                         COMPILE_FLAGS "${PY_CFLAGS}"
53                         LINK_FLAGS "${PY_LDFLAGS}")
54
55   # configure core (shared) python module 
56   ADD_LIBRARY(mussa MODULE ${SOURCES})
57   SET_TARGET_PROPERTIES(mussa PROPERTIES 
58                         PREFIX ""
59                         COMPILE_FLAGS "${PY_CFLAGS}"
60                         LINK_FLAGS "${PY_LDFLAGS}")
61   TARGET_LINK_LIBRARIES(mussa
62                         ${MUSSA_LIBRARIES}
63                         ${PYTHON_LIBRARIES}
64                         )
65   # configure static gui python library
66   #ADD_LIBRARY(mussaqui_py STATIC ${QUI_SOURCES})
67   #  SET_TARGET_PROPERTIES(mussa_py PROPERTIES 
68   #                        COMPILE_FLAGS "${PY_CFLAGS}"
69   #                        LINK_FLAGS "${PY_LDFLAGS}")
70                         
71   # configure gui (shared) python library
72   ADD_LIBRARY(mussaqui MODULE ${QUI_SOURCES})
73   SET_TARGET_PROPERTIES(mussaqui PROPERTIES 
74                        PREFIX ""
75                        COMPILE_FLAGS "${PY_CFLAGS}"
76                        LINK_FLAGS "${PY_LDFLAGS}")
77   TARGET_LINK_LIBRARIES(mussaqui
78                         mussa_qui
79                         ${MUSSA_LIBRARIES}
80                         ${PYTHON_LIBRARIES}
81                         ${QT_QTGUI_LIBRARY}
82                         ${QT_QTOPENGL_LIBRARY}
83                        )
84   
85   SET_SOURCE_FILES_PROPERTIES(
86     ${SOURCES}
87     ${QUI_SOURCES}
88     PROPERTIES
89     COMPILE_FLAGS "${PY_CFLAGS}"
90   )
91   SET_TARGET_PROPERTIES(
92     ${STATIC_PYTHON_TARGETS} ${SHARED_PYTHON_TARGETS}
93     PROPERTIES
94     COMPILE_FLAGS "${PY_CFLAGS}"
95     LINK_FLAGS "${PY_LDFLAGS}"
96   )
97
98   IF(PYTHON_EXECUTABLE)
99     SET(PYTEST_DIR ${CMAKE_SOURCE_DIR}/py/test/)
100     ADD_TEST(TestAnnotations 
101                      ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestAnnotations.py)
102     ADD_TEST(TestSeqSpan ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestSeqSpan.py)
103     ADD_TEST(TestSequence ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestSequence.py)
104     ADD_TEST(TestFlp ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestFlp.py)
105     ADD_TEST(TestMussa ${PYTHON_EXECUTABLE} ${PYTEST_DIR}/TestMussa.py)
106   ENDIF(PYTHON_EXECUTABLE)
107 ELSE(Boost_PYTHON_LIBRARY)
108   MESSAGE(STATUS "Not building mussa python extension, Boost python not found")
109 ENDIF(Boost_PYTHON_LIBRARY)
110
111 ADD_SUBDIRECTORY(test)