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