Update mussa to build on ubuntu 10.04 with qt 4.6.2 +boost 1.40.0.1
[mussa.git] / CMakeLists.txt
1 PROJECT(mussa)
2
3 ENABLE_TESTING()
4 CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
5 # try to include our cmake modules
6 SET (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/makelib)
7 INCLUDE(Platform)
8
9 IF(NOT CMAKE_BUILD_TYPE)
10   SET (CMAKE_BUILD_TYPE Debug CACHE STRING
11       "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel."
12       FORCE)
13 ENDIF(NOT CMAKE_BUILD_TYPE)
14
15 # include packages we depend on
16 FIND_PACKAGE(Qt4)
17 SET(QT_USE_QTOPENGL 1)
18 IF(QT_QTASSISTANT_FOUND)
19   SET(QT_USE_QTNETWORK 1)
20   SET(QT_USE_QTASSISTANT 1)
21 ENDIF(QT_QTASSISTANT_FOUND)
22 INCLUDE( ${QT_USE_FILE} )
23 FIND_PACKAGE(OpenGL)
24 set(Boost_USE_STATIC_LIBS   OFF)
25 set(Boost_USE_MULTITHREADED ON)
26 FIND_PACKAGE(Boost 1.40 REQUIRED filesystem serialization system program_options )
27 FIND_PACKAGE(Boost 1.40 COMPONENTS python)
28 FIND_PACKAGE(PythonLibs)
29
30 SET(USE_PYTHON 0 CACHE BOOL
31     "Build mussa executable linked to python interpreter")
32
33 INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH} 
34                     ${QT_INCLUDES}
35                     ${Boost_INCLUDE_DIR} )
36
37
38 # all of our source files al relative to the root of our project
39 INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR})
40 ADD_SUBDIRECTORY( doc )
41 IF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/paircomp) 
42   MESSAGE(STATUS "Found paircomp")
43   SET(USE_PAIRCOMP 1)
44   ADD_SUBDIRECTORY( paircomp )
45 ENDIF(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/paircomp)
46 ADD_SUBDIRECTORY( alg )
47 ADD_SUBDIRECTORY( qui )
48 ADD_SUBDIRECTORY( py )
49
50 SET(MAIN_SOURCES
51       qui/mussagl.cpp)
52
53 ADD_EXECUTABLE(mussagl WIN32 MACOSX_BUNDLE ${MAIN_SOURCES} )
54
55 # For windows you need to go from library with the most dependencies
56 # to the library with the least dependencies -diane
57 TARGET_LINK_LIBRARIES(mussagl 
58                         mussa_qui
59                         mussa_core
60                         ${QT_LIBRARIES}
61                         # Including QT_LIBS twice is for dealing with linking dependancies
62                         # related to Qt Assistant Client on windows
63                         ${QT_LIBRARIES}  
64                         ${Boost_FILESYSTEM_LIBRARY}
65                         ${Boost_SERIALIZATION_LIBRARY}
66                         ${Boost_SYSTEM_LIBRARY}
67                         ${Boost_PROGRAM_OPTIONS_LIBRARY}
68                         ${OPENGL_gl_LIBRARY}
69                       )
70
71 IF(USE_PYTHON)
72   SET(PYTHON_CFLAGS "-DUSE_PYTHON")
73   TARGET_LINK_LIBRARIES(mussagl
74         mussa_py
75         ${QT_LIBRARIES}
76 #mussaqui_py
77         ${Boost_PYTHON_LIBRARY}
78         ${PYTHON_LIBRARIES}
79         ${PYTHON_LINK_LIBRARIES})
80 ENDIF(USE_PYTHON)
81
82 GET_MUSSA_COMPILE_FLAGS(MAIN_CFLAGS)
83 GET_MUSSA_LINK_FLAGS(MAIN_LDFLAGS)
84
85 SET_SOURCE_FILES_PROPERTIES(
86   ${MAIN_SOURCES}
87   PROPERTIES
88   COMPILE_FLAGS "${MAIN_CFLAGS} ${PYTHON_CFLAGS}"
89 )
90 SET_TARGET_PROPERTIES(
91   mussagl PROPERTIES
92   COMPILE_FLAGS "${MAIN_CFLAGS}"
93   LINK_FLAGS "${MAIN_LDFLAGS}"
94 )
95
96 # we need Cocoa in order to find where our base directory is (AKA bundle)
97 IF(APPLE)
98   SET(COCOA_LIBRARY "-framework Cocoa")
99   TARGET_LINK_LIBRARIES(mussagl ${COCOA_LIBRARY})
100   SET(MACOSX_BUNDLE_BUNDLE_NAME "Mussa")
101   SET(MACOSX_BUNDLE_LONG_VERSION_STRING "Mussa Copyright 2004-2006 California Institute of Technology")
102   SET(MACOSX_BUNDLE_COPYRIGHT "Copyright 2004-2006 California Institute of Technology")
103   SET(MACOSX_BUNDLE_ICON_FILE "mussa.icns")
104
105   SET(APP_DIR ${CMAKE_BINARY_DIR}/mussagl.app/Contents)
106   SET(RESOURCE_DIR ${APP_DIR}/Resources})
107
108   ADD_CUSTOM_TARGET(mussa.icns ALL
109                     cmake -E copy_directory ${CMAKE_SOURCE_DIR}/icons/osx
110                                             ${APP_DIR}
111                    )
112 ENDIF(APPLE)
113
114